1. 程式人生 > >2018-11-23隨筆

2018-11-23隨筆

這個月趁著雙十一買了幾本關於深度學習理論與TensorFlow等深度學習框架的書。

首先是日本齋藤康毅學者著(陸宇傑譯)的《深度學籍入門-基於Python的理論與實現》。

該書的主旨是通過簡單的工具形象地介紹神經網路的基礎理論,然後過渡到深度學習。僅適用了Python的基礎函式與numpy庫。

以下是每章節的內容:

  1. 介紹Python語言,簡述了基本語法。(這裡簡單介紹沒什麼好說的,Python基本語法可以花幾天時間看《Python基本程式設計》過一遍,有其他語言基礎的可能一兩天看完了)。但是我總感覺自己看了一年基本語法的感覺,遲遲無法入門-_-|||
  2. 介紹感知機
  • 傳統的感知機,感知機只有‘0/1’兩種取值,兩個輸入,一個輸出。 

    線性系統(權值w為一次方)y=f(x1,x2),f=w1

    x1+w2x2,當f>γ,輸出1;當f<γ,輸出0。

    想象在直角座標系中,分佈著四個點,當四個點或者三個點均是同種型別輸出時,能很輕易用一條直線將其分開。在其中兩個點為同種型別時,兩個點處於同一邊,則同樣用一條直線可以分開,但如果是呈對角分佈,則為一個非線性系統,即無法通過一條直線將其分開。
  • 傳統的與門,與非門,或門均可以使用簡單一層感知機實現,但是異或門為非線性系統,需要使用兩層感知機進行劃分,即通過X1與X2分別計算或門S1和與非門S2,再用S1和S2構造與門得到結果。這就是多層感知機的實現。
    1 def XOR(x1,x2):
    2     s1=NAND(X1,X2)
    
    3 s2=OR(X1,X2) 4 result=AND(s1,s2) 5 return result

    但是這些感知機都是階躍函式的表示結果,只有0/1兩種狀態,後面會說到sigmod函式、relu函式等啟用函式(即轉換輸出函式)用於神經網路中神經元的表達。

下一章節說感知機到神經網路的過渡,並推理一下神經網路的前進學習推理過程,然後闡述誤差反向傳播更正權值的實現。2018/11/23