1. 程式人生 > >深度學習——入門筆記(1)

深度學習——入門筆記(1)

最近有個三天小長假,也沒有什麼繁瑣的事兒,正好用來學點東西。自己根據自己的特點,找了本實踐和理論結合的深度學習的書,也不想那麼多,看完再說。

以前喜歡做筆記,但是發現找起來太麻煩,所以這次嘗試著些部落格吧。

書籍連結:http://neuralnetworksanddeeplearning.com/about.html

程式碼連結:https://github.com/mnielsen/neural-networks-and-deep-learning

序章開始:

    正如在學一個東西總會先了解它是什麼,瞭解深度學習,其實要最先了解神經網路。書中開頭便將神經網路讚美為最美的程式設計範例,其實我感覺他讚美的是它機器學習的特性:可以根據資料自動提升效能。而且,這位大佬可能把調參這件事兒給忽略了。

   下面沒什麼剖析的,基本就是我找到這本書的原因。不過最讓人有點無奈的是大佬用的py2.7,我.......感覺以後在改程式碼上會很噁心。(3與2之間的大戰)

 關於練習和問題:

     書裡面有作業

 

使用神經網路識別手寫數字(深度學習的Hello world )

1.感知

 

 

                             

文中舉了個例子很形象,效率原因不打了。最重要的認清楚,權重意味著這個因素的重要程度就好了。

 

接著重新鞏固了一個概念,每一個感知器都在做決策,同時第二層決策在第一層決策基礎上,因而更加抽象。接著解答了一個疑惑,上文說感知器是多個輸入一個輸出,那時候條件反射想到上圖,現在理清楚了,那唯一的輸出是給圓圈附了值,而圓圈後又進行的多的線條其實在表示他的輸入。

                  

對照上面那個圖,此處加了b來簡化。就是替換了閾值。 (我突然聯想到以前看視訊裡面的偏置,好像就是這麼個意思)

用了“與或非”那個邏輯概念來表示這個決策的過程。 

針對此圖,說明了兩個很有趣的思路:1.一個神經元兩次輸入同一個神經元等價以此輸入雙倍(很簡單)2.既然我們討論了感知機,那輸入層算不算感知機?文中給的思路是:不能將輸入層當作真正的感知機。

 文中表明,NAND門是計算通用門,因此也是感知器計算通用門(我驗證了上圖,確實實現了加法運算)。但還是有點說不清的疑惑(不清楚深度神經網路是不是也是有這個原理) 

         

將感知器看成計算器的想法很巧妙

 

 額,報告,為什麼我感覺如果神經網路的結構是自己定的話,和佈置電路沒區別.......

Sigmoid神經元

以前看sigmoid,只看到了它將Z壓縮至0到1之間,今天突然發現,他的平滑性也是有用的。

神經網路的體系結構:

額,其實我認為,作者在說,加了sigmoid以後的感知器不再是真正的感知器了,作者不希望我們弄混。

接著,舉了圖片輸入的例子,我突然想到了圖片大小必須確定的重要性,因為網路結構的輸入層是和它對應的。

簡單網路——手寫數字識別 

作者將分割問題轉化為識別問題。

(建議谷歌翻譯看完看英文原版,因為他翻譯的這段實在是....)作者論述了神經元個數的由來。隱藏層是嘗試出來的,而output為什麼是10個,不是4個(二進位制表示)。作者表明,經過嘗試,10個的確實比4個好,原因: 作者去論述了一種神經網路的工作方式(以前看到過類似的,當然第一次看到的話也是非常驚歎),正是這種工作方式,決定了10比4好。

                                                                                                                                       ——作者的謙虛之詞 

 

梯度下降的原理我會,所以跳過。

隨機梯度下降感覺差不多。

 

(照著數中程式碼,自己打了一遍,Network類,對整個框架又了整體認識,但是由於反向傳播演算法的具體實現自己忘了,所以這部分沒太看懂,但作用自己知道,最最關鍵,突然間明白,自己以前可能沒有把一種認知搞清楚:其實調參調的是超引數,而不是權值和偏置,這些都是自動學習的) ————(python3的同學要淡定,需要改的地方不多)

 

(所給的載入資料的程式碼也很簡單,不過挺意外的,見到了對壓縮包的操作,以及原來將一幅圖片轉換成一列是一個reshape()函式就能搞定的事兒)

 

文章中簡單又說了兩個例子,1.可以計算灰度來對圖片進行分類。2.SVM,支援向量機,當然,這是一個你用起來很方便但是理論巨噁心的東西......推導一遍簡直是。當然,作者也肯定,對於設計完美的神經網路,效果可以優於它。

 

序章終於結束,Hello world!