1. 程式人生 > 其它 >《Dive Into Deep Learning》學習筆記

《Dive Into Deep Learning》學習筆記

一、序言

1.結構

2.小結:

  • 深度學習已經徹底改變了模式識別,引入了一系列技術,包括計算機視覺、自然語言處理、自動語音識別。

  • 要成功地應用深度學習,你必須知道如何丟擲一個問題、建模的數學方法、將模型與資料擬合的演算法,以及實現所有這些的工程技術。

二、預備知識

1.安裝與環境配置

按照書上的步驟來即可。

安裝Miniconda

安裝Jupyter Notebook

安裝MXNet的GPU版本

一切順利

(只是還沒搞懂這些東西有啥用)

2.資料操作

(1)定義與基本操作:

基本變數是NDArray

x=nd.arange(12)

x.shape ->(12,)

x.size -> 12

x.reshape((3,4))

nd.zeros((2,3,4))

(2)運算:

注意,直接寫的都是按元素

特殊的
X.exp() //按元素指數運算

nd.dot(X,Y.T) //矩陣乘法

條件判別式得到的也是矩陣。X>Y X<Y X==Y

*(3)廣播機制

自動增加行或者列,使得運算可以進行

(4)索引

0開始編號,左閉右開

X[1:3]

X[1,2]

X[1:2,:]=12

(5)關於運算記憶體開銷

用id查指向的記憶體

避免臨時記憶體開銷:

Z=Y.zeros_like()

nd.elemwise_add(X,Y,out=Z)

(6)NDArray和NumPy相互轉換

3.自動求梯度

梯度定義同高等數學

求梯度一般是標量對向量求梯度,得到的也是向量,該向量某個位置的值,為標量對其求偏導後帶入原值的結果

對於帶while,if的語句也可以求梯度,本質上就是多了幾條語句而已。

三、線性迴歸

是關於預測的模型

1.引出了深度學習的基本要素:

模型

訓練資料

損失函式

為了保證十個非負數,這裡採用平方

要找的是:

優化演算法

首先,這個問題可以找到解析解。類似最小二乘法求偏導然後等於0即可

小批量隨機梯度下降:

具體地,就是:

迭代一些次數即可。

大致思路就是往低處走。

比模擬退火看起來靠譜一些。