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í)類似葛假,也可以看成三個(gè)步驟
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之間)會(huì)得到一組輸出值,這個(gè)過程如圖3所示模捂。
用矩陣計(jì)算表示如下:
激活函數(shù) *(用權(quán)重矩陣*輸入值向量+偏差向量)
多層的神經(jīng)網(wǎng)絡(luò)寂嘉,會(huì)通過不同的規(guī)則來連接,不同的連接方式又會(huì)又不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)枫绅。這里以fully connect feedforward network為例,每一層的每一個(gè)數(shù)據(jù)都會(huì)傳輸?shù)较乱粚拥拿恳粋€(gè)數(shù)據(jù)硼端,這叫做fully(矩陣的乘法運(yùn)算并淋,但是要用權(quán)重矩陣*輸入值),從輸入正向傳播叫feedforward珍昨。
一個(gè)神經(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)。
通過一個(gè)例子來更直觀的說明神經(jīng)網(wǎng)絡(luò)的工作原理赶舆,如圖5所示哑姚,是一個(gè)手寫數(shù)字的識(shí)別問題祭饭。輸入數(shù)據(jù)為一個(gè)256維的向量,是這個(gè)數(shù)字的像素點(diǎn)叙量,通過構(gòu)建神經(jīng)網(wǎng)絡(luò)倡蝙,輸出一個(gè)10維的向量,這個(gè)向量表示了是0-9數(shù)字的概率绞佩。
Step 2:Goodness of Function
第一步是用神經(jīng)網(wǎng)絡(luò)寺鸥,找到可用的函數(shù)表達(dá)式,第二步需要定義什么樣的函數(shù)表達(dá)式(神經(jīng)網(wǎng)絡(luò))是好用的品山。
假設(shè)需要辨識(shí)手寫1胆建,輸入像素點(diǎn)向量后,會(huì)得到預(yù)測(cè)值谆奥,通過計(jì)算預(yù)測(cè)值與真實(shí)值之間的差距眼坏,可以得到cross entropy,不斷調(diào)整使得該值越來越小酸些。
不斷的輸入有標(biāo)簽的數(shù)據(jù)宰译,可以得到將所有的誤差值相加,可以得到Total Loss魄懂,接下來的任務(wù)就是找到使得Total Loss最小的function沿侈,即找到該function對(duì)應(yīng)的參數(shù)值。
求解的方法與之前機(jī)器學(xué)習(xí)相同市栗,還是采用梯度下降的方法缀拭。要求損失函數(shù)的最小值,則在該店對(duì)L進(jìn)行微分如果小于0就向右移動(dòng)填帽,大于0則向左蛛淋,直到微分值為0,這樣就可以得到一個(gè)局部最優(yōu)解篡腌。學(xué)習(xí)率μ決定了每次移動(dòng)的距離褐荷。
通過每一層的迭代,直到每一層對(duì)應(yīng)的使得損失函數(shù)最小的參數(shù)值嘹悼。
梯度下降是一個(gè)很有用的工具叛甫,Alpha Go也是通過梯度下降來計(jì)算損失函數(shù)最小的。但是由于在深度學(xué)習(xí)中杨伙,計(jì)算較為復(fù)雜其监,可以選用Pytorch,TensorFlow
Notes:
· 深度學(xué)習(xí)的訓(xùn)練集大邢尴弧:
· 深度學(xué)習(xí)的計(jì)算資源
· 深度學(xué)習(xí)的算法優(yōu)化: