《Neural Networks for Machine Learning》学习二
前言
課程地址:https://www.coursera.org/learn/neural-networks/home/week/1‘’【Lecture 2】百度云下載地址:鏈接:http://pan.baidu.com/s/1nvMynhR 密碼:ru3y
神經(jīng)網(wǎng)絡(luò)架構(gòu)概覽
前饋神經(jīng)網(wǎng)絡(luò)(Feed-Forward neural network)
在實(shí)際應(yīng)用中最為常見
——第一層是輸入,最后一層是輸出
——如果隱單元多于一層,我們稱為“深度”神經(jīng)網(wǎng)絡(luò)
它們計(jì)算了一系列的轉(zhuǎn)換(參數(shù)),可改變樣本之間的相似度
——每一層的活躍神經(jīng)元是其下層(below)活躍神經(jīng)元的非線性函數(shù)
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Network)
連接圖中具有有向環(huán)
——意味著沿著箭頭,可能回到了最初的出發(fā)點(diǎn)
可以有復(fù)雜的動(dòng)態(tài)特性,這使得它們很難訓(xùn)練
——尋找有效率的訓(xùn)練方法是當(dāng)前比較熱門的一個(gè)研究
它們更具有生物學(xué)真實(shí)性(biologically realistic)
循環(huán)神經(jīng)網(wǎng)絡(luò)具有多個(gè)隱藏層,而且是具有隱單元->隱單元(hidden->hidden)連接丟失的一個(gè)特殊的案例
為序列建模的循環(huán)神經(jīng)網(wǎng)絡(luò)
循環(huán)神經(jīng)網(wǎng)絡(luò)是為序列數(shù)據(jù)建模比較自然(nature)的一種方法
——等價(jià)于每一個(gè)時(shí)間片就具有一個(gè)隱藏層的非常深的網(wǎng)絡(luò)
——除了在每一個(gè)時(shí)間片使用相同的權(quán)重外,還在每個(gè)時(shí)間片接受輸入
在隱藏層具有為長時(shí)間序列記憶信息的能力
——就是使用這個(gè)潛力(potential)去訓(xùn)練網(wǎng)絡(luò)比較難
循環(huán)神經(jīng)網(wǎng)絡(luò)所能做的一個(gè)實(shí)例
※IIya Sutskever(2011)訓(xùn)練了一個(gè)特殊的循環(huán)神經(jīng)網(wǎng)絡(luò),可以預(yù)測一個(gè)序列的下一個(gè)字符
※使用來自英文的維基百科中具有五億(half a billion)字符的一個(gè)字符串訓(xùn)練了很久,就可以生成新的text文檔
——生成的方法是預(yù)測下一個(gè)字符的概率分布,然后從這個(gè)分布中采樣一個(gè)字符出來
——下面介紹它生成的一個(gè)text文檔。請注意它到底知道多少事情
※IIya Sutskever的循環(huán)神經(jīng)網(wǎng)絡(luò)生成的文檔(每個(gè)時(shí)間點(diǎn)生成一個(gè)字符)
對稱連接神經(jīng)網(wǎng)絡(luò)(Symmetrically connected network)
與循環(huán)神經(jīng)網(wǎng)絡(luò)類似,但是單元之間的連接是對稱的(每個(gè)方向具有相同的權(quán)重)
——John Hopfield(和其他人)認(rèn)識(shí)到對稱神經(jīng)網(wǎng)絡(luò)比分析一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)更簡單
——對于他們所能做的也有很多限制,因?yàn)檫`背了能量函數(shù)(energy function)
※比如它們不能模擬循環(huán)
具有對稱連接的神經(jīng)網(wǎng)絡(luò)稱為“Hopfield nets”
具有隱層的對稱連接神經(jīng)網(wǎng)絡(luò)
這些稱為“玻爾茲曼機(jī)(Boltzmann Machine)”【終于Hinton老爺子在第二節(jié)課忍不住把成名作拿出來了】
——比Hopfield nets更具有能力
——比循環(huán)神經(jīng)網(wǎng)絡(luò)差點(diǎn)
——具有非常“漂亮”的簡單地學(xué)習(xí)方法(難道是吉布斯采樣?對比散度?)
第一代神經(jīng)網(wǎng)絡(luò)
統(tǒng)計(jì)模式識(shí)別的標(biāo)準(zhǔn)范例
1.將原始輸入向量轉(zhuǎn)換為激活特征向量
——手寫案例中使用常識(shí)或者經(jīng)驗(yàn)來定義特征
2.學(xué)習(xí)如何為激活特征加權(quán)重,去獲取單獨(dú)的梯度量(single scalar quantity)
3.如果這個(gè)量超過某個(gè)閾值,就可以決定輸入向量是目標(biāo)類別的一個(gè)正向激勵(lì)樣本,感覺就是說如果大于閾值,就說這個(gè)樣本是屬于這個(gè)類別的。
標(biāo)準(zhǔn)感知器結(jié)構(gòu)
感知器歷史
在20世紀(jì)60年代早期(1960's)被Frank Roseblatt 變換形式(popularised)
——開始具有好的(powerful)學(xué)習(xí)算法
——有大量的聲明稱他們可以學(xué)習(xí)去干什么
在1969年,Minsky和Papert出版了一本書叫做“Perceptrons”,分析它們能做什么以及他們的限制
——很多人認(rèn)為這些限制是所有神經(jīng)網(wǎng)絡(luò)模型共有的
感知學(xué)習(xí)過程在如今依舊被廣泛使用,即使是那些具有數(shù)以百萬計(jì)特征的巨大特征向量的任務(wù)中
二值閾值神經(jīng)元(決策單位)
McCulloch-Pitts(1943)
——第一次從其他神經(jīng)元計(jì)算輸入的加權(quán)和(加上一個(gè)偏置)【應(yīng)該就是所謂的wx+b】
——如果加權(quán)和超出0,就輸出一個(gè)1
如何像學(xué)習(xí)權(quán)重一樣使用相同的規(guī)則去學(xué)習(xí)偏置
一個(gè)閾值等價(jià)于具有一個(gè)負(fù)的偏置(negative bias)【自我感覺訓(xùn)練的時(shí)候這個(gè)負(fù)不負(fù)無所謂吧,反正都是自動(dòng)學(xué)習(xí)的,不管你怎么初始化】
我們可以通過使用一個(gè)小技巧去避免必須為偏置指定一個(gè)單獨(dú)的學(xué)習(xí)規(guī)則
—— 一個(gè)偏置完全等價(jià)于在輸入行的一個(gè)額外的激活值為1對應(yīng)的一個(gè)權(quán)重【比較拗口,我的理解就是,這樣wx就等于wx+b了】
——這樣我們就可以學(xué)習(xí)一個(gè)偏置,這時(shí)候這個(gè)偏置就像一個(gè)權(quán)重了
感知器收斂過程:訓(xùn)練二值輸出神經(jīng)元作為分類器的情況
在每一個(gè)輸入向量的尾部增加一個(gè)額外值1,“偏置”權(quán)重在這個(gè)成分上的閾值是負(fù)(minus)的,現(xiàn)在我們可以忘掉這個(gè)閾值。
可以使用任何策略去保證每一個(gè)訓(xùn)練樣本都會(huì)被丟到網(wǎng)絡(luò)中訓(xùn)練
——如果輸出單元是正確的,就單獨(dú)留下權(quán)重
——如果輸出單元是錯(cuò)誤的,且輸出為0,就將輸入向量加到權(quán)重向量
——如果輸出單元是錯(cuò)誤的,且輸出為1,就將輸入向量從權(quán)重向量中減去
這保證了尋找到一組權(quán)重,能夠?yàn)樗械挠?xùn)練樣本得到正確的答案(如果有這樣的集合存在的話)
感知器的幾何角度觀點(diǎn)
注意
如果是非數(shù)學(xué)專業(yè)的,這一部分可能比前面難點(diǎn)
——你需要使用很長時(shí)間去學(xué)習(xí)接下來的兩部分
如果你沒有嘗試過在高維空間中思考超平面(hyper-planes),那么現(xiàn)在就是學(xué)習(xí)的時(shí)機(jī)。
在14維空間中處理超平面,可視化3D空間以及大聲對自己說“十四”,每個(gè)人都做~~~【這是鬧哪出?o(╯□╰)o】
※記住從13維到14維會(huì)比從2維到三維有額外的復(fù)雜度。
權(quán)重空間
這個(gè)空間中對于每一個(gè)權(quán)重都是一維
空間中的每一個(gè)點(diǎn)就是由所有權(quán)重合起來代表
假如我們?nèi)サ袅碎撝?#xff0c;那么每一個(gè)訓(xùn)練案例就可以被一個(gè)通過原點(diǎn)(origin)的超平面所表示
——權(quán)重必須在超平面的一側(cè),以獲取正確答案
每一個(gè)訓(xùn)練樣本都定義了一個(gè)平面,比如下圖的黑線
——平面過原點(diǎn),并且垂直于輸入向量
——平面的一側(cè)是錯(cuò)誤的,因?yàn)闄?quán)重與輸入向量向量的內(nèi)積(數(shù)量積scalar product)具有錯(cuò)誤的跡象(sign)
可行解(feasible solutions)錐(cone)
【PS】cone應(yīng)該是翻譯成錐吧,看網(wǎng)上dual cone翻譯成數(shù)學(xué)名詞“對偶錐”
為了讓訓(xùn)練案例都得到正確解,我們需要找到位于所有平面的正確側(cè)的一個(gè)點(diǎn)
——可能根本沒有這樣的點(diǎn)
如果有任何權(quán)重對于所有的案例都有正確解,那么它們將位于一個(gè)超錐,且頂點(diǎn)在原點(diǎn)
——所以兩個(gè)好的權(quán)重向量的平均也是好的權(quán)重向量
※這是一個(gè)凸問題(convex)
為什么學(xué)習(xí)會(huì)有效
為什么學(xué)習(xí)過程會(huì)有效?——第一個(gè)嘗試
思考可行權(quán)重向量(feasible weight vector)和當(dāng)前權(quán)重向量(current weight vector)的平方距離
——有用的要求:每次感知器發(fā)生錯(cuò)誤的時(shí)候,學(xué)習(xí)算法就將當(dāng)前權(quán)重向量朝所有的可行權(quán)重向量移動(dòng)
可能也會(huì)有問題:下圖的黃點(diǎn)就是可能不會(huì)被接近的可行向量
考慮到由一個(gè)邊緣(margin)規(guī)定的可行區(qū)域的“豐富的可行(generously feasible)”權(quán)重向量至少與定義每一個(gè)約束平面(constraint plane)的輸入向量長度一樣大。
——感知器每一次發(fā)生錯(cuò)誤,到所有豐富的可行權(quán)重向量間平方距離經(jīng)常減少了至少更新向量的長度(貼一下這句話的原話:?the squared distance to all of these generously feasible weight vectors is always decreased by at least the squared length of the update vector)
非正式的收斂證明示意
※感知器每次出錯(cuò),當(dāng)前權(quán)重向量就會(huì)朝著與“豐富可行”區(qū)域的每一個(gè)權(quán)重向量平方距離減少的方向移動(dòng)
※平方距離減小了至少輸入向量的平方長度(原話:The squared distance decreases by at least the squared length of the input vector)
※所以當(dāng)經(jīng)過有限(finite)出錯(cuò)以后,權(quán)重向量應(yīng)該會(huì)穩(wěn)定在可行區(qū)域(如果這個(gè)區(qū)域存在的話)
感知器不能做什么
感知器的限制
如果允許手動(dòng)選擇特征并且假設(shè)你使用了足夠的特征,你幾乎可以做任何事情。
——對于二值輸入向量,我們可以為每一個(gè)指數(shù)級的二值向量有一個(gè)單獨(dú)的特征單元,因此我們可以在二值輸入向量上做任意的可能的判別工作。
※這種類型的查找表(table look-up)不會(huì)發(fā)生
一旦手工編碼特征被決定,感知器的學(xué)習(xí)能力將會(huì)受到極大限制
二值閾值不能做什么
二值閾值輸出單元不能指出兩個(gè)由一位編碼(single bit)的特征相同!
正樣本(相同):(1,1)->1;(0,0)->1
負(fù)樣本(不同):(1,0)->0;(0,1)->0
四個(gè)輸入輸出對給定了四個(gè)不平等的(inequalities)推斷,是不可能被同時(shí)滿足的
二值閾值神經(jīng)元無法做的事情的幾何視角
想想一下由一個(gè)輸入向量組成坐標(biāo)軸的“數(shù)據(jù)空間(data-space)”
——每個(gè)輸入向量是空間中的一個(gè)點(diǎn)
——權(quán)重向量在數(shù)據(jù)空間中定義了一個(gè)超平面
——權(quán)重平面是垂直于權(quán)重向量的,是不過原點(diǎn)的,與原點(diǎn)的距離就是閾值的大小
判別循環(huán)(wrap-around)變化(translation)的簡單模式
※假設(shè)我們使用像素作為特征
※一個(gè)二值閾值單元是否能判別具有相同像素點(diǎn)數(shù)目的不同模式?
——如果模式不循環(huán)轉(zhuǎn)變!
關(guān)于二值決策無法判別具有相同像素?cái)?shù)的模式的證明草圖(假設(shè)循環(huán)轉(zhuǎn)換)
對于模式A,使用所有可能轉(zhuǎn)換的訓(xùn)練案例
——模式A中每個(gè)像素會(huì)被4種不同的轉(zhuǎn)換所激活
——因此所有的被這些模式的決策單元接受的輸入是所有權(quán)重總和的四倍
對于模式B,使用所有可能轉(zhuǎn)換的訓(xùn)練案例
——模式B中每個(gè)像素被4中不同的轉(zhuǎn)移所激活
——因此所有的被這些模式的決策單元接受的輸入是所有權(quán)重總和的四倍
但是為了正確判別,模式A的每一個(gè)單獨(dú)案例必須為決策單元提供比模式B的每個(gè)案例更多的輸入。
——如果樣例數(shù)目總和是相同的,那么上述情況就不太可能了。
為什么感知器的這種結(jié)果是災(zāi)難性的(devastating)
模式識(shí)別的關(guān)鍵在于識(shí)別模式,不論是何種轉(zhuǎn)變(despite transformations like translation)
Mnisky和Papert's 的“組不變性定理(group invariance theorem)”指出在轉(zhuǎn)變形成一個(gè)組的時(shí)候,感知器學(xué)習(xí)不能很好學(xué)習(xí)的(原文:the part of a Perceptron that learns cannot learn to do this if the transformations form a group)。
——具有循環(huán)特性的轉(zhuǎn)換就能形成一個(gè)組
為了處理這種轉(zhuǎn)換,感知器就需要使用多個(gè)特征單元去識(shí)別信息子模式(informative sub-patterns)的轉(zhuǎn)變
——所以模式識(shí)別比較“狡猾(tricky)”的部分必須使用手動(dòng)編碼特征探測器的方法去解決,而非使用學(xué)習(xí)過程
具有隱藏單元的學(xué)習(xí)
沒有隱單元的神經(jīng)網(wǎng)絡(luò)非常受限于他們所能學(xué)習(xí)到的模型的輸入-輸出映射
——更多的線性單元層根本沒啥用,因?yàn)橐琅f是線性的
——修正輸出為非線性(non-linerities)的并不足以彌補(bǔ)
我們需要多層具有自適應(yīng)能力和非線性的隱單元。但是我們?nèi)绾稳ビ?xùn)練這種網(wǎng)路呢?
——我們需要一種有效率的方法去調(diào)整(adapt)所有權(quán)重,并僅僅關(guān)注最后一個(gè)單元層。這很難。
——學(xué)習(xí)連接到隱單元的權(quán)重等價(jià)于學(xué)習(xí)特征。
——這還是比較難的,比因?yàn)闆]有人直截了當(dāng)?shù)馗嬖V我們隱單元應(yīng)該干啥
總結(jié)
以上是生活随笔為你收集整理的《Neural Networks for Machine Learning》学习二的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux的用户切换、修改用户的用户名和
- 下一篇: 深度 | 一篇文章带你进入无监督学习:从