Brief Introduction of Deep Learning
· Deep learning 的歷史
深度學(xué)習(xí)從發(fā)現(xiàn)開始起起伏伏,直到2012年,在ILSVRC image competition中深度學(xué)習(xí)的技術(shù)得到了廣泛的關(guān)注。

· Deep learning的步驟
深度學(xué)習(xí)的步驟與機(jī)器學(xué)習(xí)類似,也可以看成三個步驟

Step 1:Neutral Network
深度學(xué)習(xí)是有多層的神經(jīng)網(wǎng)絡(luò)構(gòu)成。假設(shè)輸入一組數(shù)據(jù),如圖4 input layer,然后通過設(shè)置好的權(quán)重(weight)與偏差(bias),通過SIGMOID函數(shù)(激活函數(shù),將數(shù)據(jù)轉(zhuǎn)化為非線性,且范圍在1.-1之間)會得到一組輸出值,這個過程如圖3所示。

用矩陣計(jì)算表示如下:
激活函數(shù) *(用權(quán)重矩陣*輸入值向量+偏差向量)

多層的神經(jīng)網(wǎng)絡(luò),會通過不同的規(guī)則來連接,不同的連接方式又會又不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。這里以fully connect feedforward network為例,每一層的每一個數(shù)據(jù)都會傳輸?shù)较乱粚拥拿恳粋€數(shù)據(jù),這叫做fully(矩陣的乘法運(yùn)算,但是要用權(quán)重矩陣*輸入值),從輸入正向傳播叫feedforward。
一個神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)由Input Layer,Hidden Layers,Output Layer組成,如圖4。Deep表示many hidden layers。一般很多層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),都不適用Fully connect,而是需要特定的結(jié)構(gòu)。

通過一個例子來更直觀的說明神經(jīng)網(wǎng)絡(luò)的工作原理,如圖5所示,是一個手寫數(shù)字的識別問題。輸入數(shù)據(jù)為一個256維的向量,是這個數(shù)字的像素點(diǎn),通過構(gòu)建神經(jīng)網(wǎng)絡(luò),輸出一個10維的向量,這個向量表示了是0-9數(shù)字的概率。

Step 2:Goodness of Function
第一步是用神經(jīng)網(wǎng)絡(luò),找到可用的函數(shù)表達(dá)式,第二步需要定義什么樣的函數(shù)表達(dá)式(神經(jīng)網(wǎng)絡(luò))是好用的。
假設(shè)需要辨識手寫1,輸入像素點(diǎn)向量后,會得到預(yù)測值,通過計(jì)算預(yù)測值與真實(shí)值之間的差距,可以得到cross entropy,不斷調(diào)整使得該值越來越小。

不斷的輸入有標(biāo)簽的數(shù)據(jù),可以得到將所有的誤差值相加,可以得到Total Loss,接下來的任務(wù)就是找到使得Total Loss最小的function,即找到該function對應(yīng)的參數(shù)值。

求解的方法與之前機(jī)器學(xué)習(xí)相同,還是采用梯度下降的方法。要求損失函數(shù)的最小值,則在該店對L進(jìn)行微分如果小于0就向右移動,大于0則向左,直到微分值為0,這樣就可以得到一個局部最優(yōu)解。學(xué)習(xí)率μ決定了每次移動的距離。

通過每一層的迭代,直到每一層對應(yīng)的使得損失函數(shù)最小的參數(shù)值。

梯度下降是一個很有用的工具,Alpha Go也是通過梯度下降來計(jì)算損失函數(shù)最小的。但是由于在深度學(xué)習(xí)中,計(jì)算較為復(fù)雜,可以選用Pytorch,TensorFlow
Notes:
· 深度學(xué)習(xí)的訓(xùn)練集大?。?/h4>
· 深度學(xué)習(xí)的計(jì)算資源




· 深度學(xué)習(xí)的算法優(yōu)化:
