下文會出現以下知識點:神經網路的計算流程。
TensorFlow遊樂場:
網址:http://playground.tensorflow.org。
神經網路簡介:
在機器學習中,所有描述一個實體的數字的組合就是一個實體的特徵向量。
目前主流的神經網路都是分層的結構,第一層是輸入層,代表每一個特徵的取值。最後一層是輸出層得到計算結果。在輸入和輸出層之間的神經網路叫做隱藏層,一般一個神經網路的隱藏層越多,這個神經網路越“深”。
以分類問題舉例,神經網路解決分類問題主要分為以下四步:
1、提取問題中實體的特徵向量作為神經網路的輸入。
2、定義神經網路的結構,並定義如何從神經網路的輸入得到輸出。這個過程就是神經網路的前向傳播演算法。
3、通過訓練資料來調整神經網路中引數的取值,這就是訓練神經網路的過程。
4、使用訓練好的神經網路來預測未知的資料。
前向傳播演算法簡介:
神經網路可以將輸入的特徵向量經過層層推導得到最後的輸出,解決如何得到神經網路輸出的過程就是——前向傳播演算法。不同的神經網路結構前向傳播的方式也不一樣。
神經元是構成一個神經網路的最小單元,一個神經元有多個輸入和一個輸出。每個神經元的輸入既可以是其它神經元的輸出,也可以是整個神經網路的輸入。
神經網路的結構指的就是不同神經元之間的連線結構。
一個最簡單的神經元結構的輸出就是所有輸入的加權和,而不同輸入的權重就是神經元的引數。神經網路的優化過程就是優化神經元中引數取值的過程。
計算神經網路的前向傳播結果需要三部分資訊:
一是神經網路的輸入,也就是從實體中提取的特徵向量。
二是神經網路的連線結構。神經網路是由神經元構成的,神經網路的結構給出不同神經元之間輸入輸出的連線關係。神經網路中的神經元也可以稱之為節點。
三是每個神經元中的引數。
給定神經網路的輸入,神經網路的結構以及邊上權重,就可以通過前向傳播演算法來計算出神經網路的輸出。
反向傳播演算法(backpropagation)簡介:
在神經網路優化演算法中,最常用的方法是反向傳播演算法。
反向傳播演算法實現了一個迭代的過程:
每次迭代開始,先選取一小部分訓練資料(batch)。
然後通過前向傳播演算法得到神經網路模型對這一部分資料的預測結果。
最後,基於預測值和真實值之間的差距,反向傳播演算法會相應更新神經網路引數的取值,使神經網路模型對這一小部分資料的預測結果和真實值更接近。