一、神經網絡的結構

二、神經網絡的變種
①convolutional neural network(卷積神經網絡)---->good for image recognition(擅長圖像識別)
②long short-term memory network(長短期記憶網絡)---->good forspeech recognition(擅長語音識別)
③最簡單的原版---->多層感知機(MLP)
三、神經網絡的介紹
神經元網絡之名來源於人的大腦,那么它的神經元指的是什么呢?相互的神經元之間又是如何連接的呢?

對於神經元而言,我們可以理解為一個用來裝數字的容器,裝着的數字在0到1之間:

例子:
神經元中裝着的數字代表對應的像素的灰度值,其中0代表純黑像素,1代表純白像素,我們把神經元里裝着的數叫做‘激活值(activation)’

神經網絡的最后一層的十個神經元分別代表0到9這十個數字,它們的激活值同理都在0到1之間,這些值代表系統認為輸入的圖像對應着的哪個數字的可能性

網絡中間還有幾層稱之為‘隱含層’,里面進行着處理識別數字的具體工作

神經網絡工作的時候,上一層的激活值決定下一層的激活值,所以說神經網絡處理信息的核心機制是一層的激活值是通過怎樣的運算,算出下一層的激活值的。某種程度上這是模仿生物中神經元組成的網絡:某些神經元的激發就會促使另一些神經元的激發。

對於一個已經訓練好了的神經網絡(可以識別數字)而言,大體過程是這樣的:
①如果你的輸入圖像是28x28=784,那么首先在你的網絡輸入層的784個神經元處輸入了784個代表輸入圖像各像素的灰度值:


②接着,這一層激活值圖案會讓下一層的激活值產生某些特殊的圖案(注:這里的‘圖案’pattern等價於‘模式識別’中的‘模式’)




四、為何就覺得這種層狀結構就可以做到智能判斷呢?
當人類在識別數字的時候,我們是在組合數字的各個部件:

在理想情況下,我們希望倒數第二層中的各個神經元能分別對應一個筆畫部件,這樣一來當我們輸入一個9或者8這種帶圈的數字時,某一個神經元的激活值就會接近1,而且我並不特指某種樣子的圈,而是希望這種所有位於圖像頂部的圓圈圖案都能點亮這個神經元,這樣一來,從第三層到最后一層,我們只要學習哪些部件能組合出哪個數字即可。

識別圓圈的任務同理可以拆分成更細微的問題,一種合理的方法便是首先識別出數字圖形中更小的邊:

於是我們希望也許網絡第二層的各個神經元就能對應上各種各樣的短邊:


如果神經網絡真的能夠識別出這類邊緣和圖案,它就能很好的運用到其他的圖像識別任務上來。

甚至不光是圖像識別,世界上各種人工智能的任務都可以轉化為抽象元素,一層層的抽絲剝繭,就比如語音識別:

語音識別就是從原音頻中識別出特殊的聲音,組合成特定的音節,再組合成單詞再組合成短語,以及更加抽象的概念
