初識神經網路---My way of AI18
感知機
說到神經網路之前我們先說一下感知機,它其實是一種偽神經元。 有n個數據,通過權重與各種資料之間的計算和比較啟用函式結果,得出輸出,它的主要目的是解決分類問題。
但是如何現在是有一個感知機解決不了的我們就引入了多個感知機,這其實也就是我們常說的svm演算法。
我們登陸playground.tensorflow.org網站去模擬一下單個以及多個感知機的分類效果。
1.一個神經元進行二分類
可以明顯的看出分類結果毫不準確,就是因為一條線不可能分開。
2.兩個神經元
3.三個神經元
可以看出來三個神經元得出的結果已經是非常準確了。所以可以看得出來,所謂的感知機其實就是神經網路(神經元)。
神經網路
神經網路的一些過程無法解釋(其實今天10.28才在csdn上看到新聞,國外有一些科學家把深度學習比作是鍊金術,hhhh),我討厭將深度學習稱為AI。
多個神經元(感知機)組成神經網路。不同的結構解決不同的問題,不只是分類,迴歸及其他問題。
特點
- 輸入向量維度與輸入神經元個數相同
- 每個連線都有權值
- 同一層神經元之間沒有連線
- 由輸入層,隱層和輸出層組成
- 第N層和第N-1層的所有神經元連線,叫做全連線
組成
- 結構:神經網路中的權重,神經元等
- 啟用函式
- 學習規則:學習規則規定了網路中的權重如何隨著時間推進而調整(反向傳播演算法)
神經網路。解決多分類,得出某一個樣本屬於全部樣本的概率,所有有多少個類別就有多少個類別概率的輸出。
神經網路的模組選擇: tf.nn:提供神經網路的基本操作 tf.layers:主要是對tf.nn的進一步封裝 tf.contrib:將tf.layers進一步封裝,目前處於試驗階段還不穩定
學習中採用tf.nn模組體會神經網路的流程
淺層的人工神經網路模型
SoftMax迴歸
Si=ei/(e1+e2+…+ej)求出的是一個概率值,其中i代表的是第i個類別求出的值,j代表一共j個列別。這樣就可以求出各個類別的概率。且從公式可以看出來所有類別的概率值相加等於1。
神經網路用交叉熵函式衡量損失 其實就是資訊熵,一個樣本就有一個交叉熵損失,y\i代表是真實值,yi代表預測概率
優化:反向傳播演算法(就是梯度下降)
因為神經網路有反響傳播的概念,我們把資料的輸入叫做正向傳播,我們把更新權重叫做反向傳播。可以參考李金洪的《深度學習之tensorflow入門與實戰》。