https://toutiao.com/group/6704782539921293832/?app=explore_article×tamp=1561095395&req_id=20190621133634010016019155936552F&group_id=6704782539921293832&tt_from=copy_link&utm_source=copy_link&utm_medium=toutiao_ios&utm_campaign=client_share(人腦可能有1000多億個神經元每個神經元都可能在幾個方向上互相連接形成了一個超級大型的網絡因為這些網絡而存在各種各樣的思想和意識) 人腦可能有1000多億個神經元,每個神經元都可能在幾個方向上互相連接著,這么大量的神經元及連接就形成了一個超級大型的網絡。我們就是因為這些網絡而存在各種各樣的思想和意識。 大腦神經元即是腦神經細胞,主要包括細胞體、樹突、軸突、突觸等。
模擬大腦神經網絡就是人們試圖對大腦內部運作的模擬形式,在計算機領域,這種模型的起源相當早,可以追溯到20世紀40年代中期,當時計算機其實也剛出現不久。 1943年,麥卡洛克和皮茨發表了論文《神經活動內在概念的邏輯演算》,其中首次提出了表示人腦學習功能的一種數學方法。 如上圖中x類似軸突,其它神經元的輸出,經過突觸連接樹突,經過樹突后輸入到細胞體,細胞體執行一定運算后再經過激活函數最后輸出到軸突。 這個簡單的模型就是機器學習中神經網絡的基礎模型了,不經讓我們驚呼我們的大腦如此的簡單,但事實并不是這樣,人類對大腦的認識是在太少,可以說幾乎還沒有什么實質性進展。而用這種模型模擬的大腦,實際上比大腦差太多太多了,如果人類是上帝造的,那上帝肯定不會讓你猜透他是怎么造的。 這個階段雖然大腦的神經元已經被數學建模了,我們也并不知道這個模型是否正確,而且當時也沒有明確權重參數的調整方法。 感知機模型進入到20世紀50年代,一種最簡單的人工神經元模型被提出來了。感知機?一聽感覺就像是一個實際存在的東西,就像計算機一樣,它應該是看得見摸得著的機器吧!的確,20世紀60年代第一個硬件實現出現,當時直接將整個硬件都叫感知機,但后來感知機被改成是算法的名字了,所以它其實是一個算法。 感知機以前輩的思想作為基礎,基于此提出了一種反饋循環的學習機制,通過計算樣本輸出結果與正確結果之間的誤差來進行權重調整。 大致的流程如下:
引入梯度下降與感知機的學習機制不同,ADALINE則是訓練神經網絡模型的另外一種算法,由于它引入了梯度下降,所以可以說它比感知機更加先進。 大概流程為:
早期模型的局限我們可以看到感知機和ADALINE已經具備了神經網絡模型的基本要素,兩者都是單層神經網絡,主要用于二分類問題,通過學習能實現二分類功能。 對于早期的神經模型,它其實具有非常大的局限性,甚至某種意義上來說,它一點用處都沒有。明斯基和帕佩特于1969年出版了《感知機》一書,其中闡明了感知機只能處理線性可分的問題,對于其他復雜問題完全無能為力。 比如對于XOR函數,不存在任何一條直線能將其正確分割,感知機就是存在這種尷尬的情況,這種線性不可分的情況,感知機沒法正確將兩個類別分開。至此,神經網絡進入寒冬。 多層感知機既然單個神經元的感知機無法解決非線性問題,那么是不是可以推廣到多個神經元組成多個神經網絡層?于是將多組神經元連接起來,某個神經元的輸出可輸入到其它神經元中。 多層網絡的傳播,數據被輸入第一層后,將從每個神經元流入到下一層中對應的神經元中。然后在隱含層中進行求和并傳遞,最后到達輸出層進行處理。而學習多層網絡則需要反向傳播算法來支持,多層網絡增加了學習的復雜程度,從輸入到最后的輸出組成了很長的函數嵌套,這就增加了學習的難度。不過,好在求到時有鏈式法則的幫忙,讓事情簡單了很多。 大概流程為:
問題類型神經網絡可用于回歸問題和分類問題。常見的結構差異在于輸出層,如果想要得到一個實數結果,我們就不應該使用標準化函數,比如sigmoid的函數。因為標準化函數會使我們的輸出結果限定在某個范圍內,而有時我們真正想要的是連續的數值結果。
深度神經網絡21世紀第二個十年,深度學習成為了人工智能最閃耀的研究。2011年谷歌X實驗室從youtube抽取1000萬圖片,把它喂給采用了深度學習的谷歌大腦,三天后這個大腦在沒有人類的幫助下自己發現了貓。2012年微軟使用深度學習,完成演講者實時語音識別、翻譯,也就是完成同聲翻譯。 雖然深度學習在20世紀80年代就出現了,但受限于當時的硬件能力和數據資源缺乏,并沒有體現出效果。只有辛頓帶著學生在這個冷門領域堅持耕耘,直到2009年,辛頓他們才獲得了意外的成功,他們將深度學習用在語音識別領域,打破了世界紀錄,錯誤率比之前減少25%。深度學習開始火起來。 深度學習之所以有這么大的性能提升,是因為它類似人腦一樣的深層神經網絡,它更好地模擬了人腦的工作。 卷積神經網絡卷積神經網絡的發展主要是為了解決人類視覺問題,不過現在其它方向也都會使用。發展歷程主要從Lenet5->Alexnet->VGG->GooLenet->ResNet等。 上世界80年代發明了卷積層,但由于硬件限制無法構建復雜網絡,直到后面90年代才開始有實踐。 1998年LeCun提出卷積層、池化層和完全連接層組合,以此來解決手寫數字的識別問題。此時的效果已經很不錯了,能與其它經典的機器學習模型相比。架構如下,一個32 x 32的輸入,通過卷積提取特征,然后進行下采樣,再一次卷積和下采樣,后面進行全連接和高斯連接。即Lenet5。 后來隨著可用的結構化數據和處理能力呈指數增長,使得模型能進一步增強,特別是Imagenet開源數據集的出現,數百萬張被標記分類的圖像。 2012年的LSVRC挑戰賽,Hinton和他學生Alex Krizhevsky開發了Alexnet深度卷積網絡,結構類似Lenet5,但是卷積層深度更深,參數總數達數千萬。多個卷積層且每個網絡深度都達數百。即Alexnet。 2014年LSVRC挑戰賽強大的競爭者,由牛津大學視覺幾何組織提出的VGG模型。比起Alexnet,它主要是將卷積核縮小了,全部改用3x3。大體結構一致,但卷積配置可以不同。激活函數使用ReLU,池化使用max pooling,最后使用softmax輸出各項概率。 2014年,GoogLenet網絡模型贏得LSVRC挑戰賽,該系列賽首次由大型公司參賽并獲得成功,此后也一直由擁有巨額預算的大公司贏得比賽。GoogLenet 主要由9個Inception模塊組合而成。GoogLenet參數數量降到了一千多萬,并且準確性比Alexnet提高,誤差從16.4%降到6.7%。 2015年隨著《重新思考計算機視覺的Inception架構》文章發表,google研究人員發布新的Inception架構,主要解決協方差移位問題,其中將規范化應用于原始輸入及每層的輸出值。除此之外卷積核大小也有所變化,且增加了網絡總體深度及卷積的分解。 2015年ResNet被提出,由原來微軟研究院何愷明博士提出,現為Facebook AI研究科學家。ResNet戰績輝煌,當年一下取得5項第一。 循環神經網絡循環神經網絡即recurrent neural network,它的提出主要是為了處理序列數據,序列數據是什么?就是前面的輸入和后面的輸入是有關聯的,比如一句話,前后的詞都是有關系的,“我肚子餓了,準備去xx”,根據前面的輸入判斷“xx”很大可能就是“吃飯”。這個就是序列數據。 循環神經網絡有很多變種,比如LSTM、GRU等。 對于傳統的神經網絡,從輸入層到若干隱含層再到輸出層,層與層之間都是全連接的,而且層內之間的節點不相連。這種網絡模型對于序列數據的預測就基本無能為力。 循環神經網絡則擅長處理序列數據,它會對前面的信息進行記憶并且參與當前輸出的計算,理論上循環神經網絡能處理任意長度的序列數據。 比如可以做字符級別的預測,如下圖,假如這里只有四種字符,樣本為”hello”單詞,則輸入h預測下個字符為e,e接著則輸出l,l則輸出l,最后輸入l則輸出o。 (人腦可能有1000多億個神經元每個神經元都可能在幾個方向上互相連接形成了一個超級大型的網絡因為這些網絡而存在各種各樣的思想和意識)
|
|
來自: 山峰云繞 > 《機器學習視覺訓練模式識別攝像頭搜索原理》