? ? ? ? 花了一周斷斷續(xù)續(xù)把這個神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的教程看完,有一些晦澀的地方暫時略過。作者的python代碼也暫時沒去跑。但整體上大致看了一遍。
? ? ? ? 從感知機開始講起,用感知機計算各種邏輯函數(shù)。核心部分還是bp(誤差逆?zhèn)鞑ィ┧惴ǎ貏e是bp算法的偏微分計算方面,主要是為了用梯度下降需要算微分(這部分的推導(dǎo)主要利用了微分的鏈式規(guī)則),然后通過迭代的方式讓權(quán)重和閾值收斂,中間有一章通過可視化交互的方式解釋bp算法可以計算連續(xù)函數(shù),比較直觀,但背后的原因是因為bp算法可以表示連續(xù)函數(shù)空間的一組基函數(shù)(可以計算sin和cos函數(shù),然后任意一個連續(xù)函數(shù)可以通過傅里葉變換表示成sin和cos的組合,從而能被神經(jīng)網(wǎng)絡(luò)計算,這個證明只用到了兩層神經(jīng)網(wǎng)絡(luò)即可,那么實際計算神經(jīng)網(wǎng)絡(luò)為什么需要多層呢?因為用多層可以提取不同抽象層的特征,分解問題也需要分而治之)。選擇合適的刺激函數(shù)(連續(xù)、非負)以及合適的誤差函數(shù)都是很重要。隱藏層有分convolution層、full-connected層、softmax層等。convolution層對local feature field 做map。bp的隱藏層次數(shù)多的時候會導(dǎo)致權(quán)重微分的不穩(wěn)定,層數(shù)多之后,越早的層要么太小導(dǎo)致收斂慢,要么太大導(dǎo)致其他問題。bp的參數(shù)多了之后就計算量大,卷積層就是縮減參數(shù)個數(shù)的辦法(通過在卷積層共享卷積模板的權(quán)重和閾值)。再往后就是遞歸神經(jīng)網(wǎng)絡(luò),只是簡要介紹。2010-2015年之間神經(jīng)網(wǎng)絡(luò)取得很多突破進展,google最厲害。最后作者還對AI能否由少數(shù)簡單的算法實現(xiàn)寫了一堆自己的看法,特別是從分子生物學(xué)的角度根據(jù)人類和大猩猩基因差異的部分所能表示的最大信息量和人腦的神經(jīng)元之間的連接數(shù)量的差距推算基因應(yīng)該只是包含了那些“少數(shù)核心AI算法”的部分,同時也分析了大腦的不同功能區(qū)雖然功能各異,但是作者認為他們背后可能都共用一套核心的AI算法。
? ? ? ? bp算法本質(zhì)上是在做函數(shù)的逼近,AI的本質(zhì)是計算任意連續(xù)函數(shù)?似乎可以看看可計算理論。