爲了構建神經網絡模型,我們需要首先思考大腦中的神經網絡是怎樣的?每一個神經元都可以被認爲是一個處理單元/神經核(processing unit/Nucleus),它含有許多輸入/樹突(input/Dendrite),並且有一個輸出/軸突(output/Axon)。神經網絡是大量神經元相互鏈接並通過電脈衝來交流的一個網絡。
神經網絡模型建立在很多神經元之上,每一個神經元又是一個個學習模型。這些神經元(也叫激活單元,activation unit)採納一些特徵作爲輸出,並且根據本身的模型提供一個輸出。下圖是一個以邏輯迴歸模型作爲自身學習模型的神經元示例,在神經網絡中,參數又可被成爲權重(weight)。
我們設計出了類似於神經元的神經網絡,效果如下:
其中, , 是輸入單元(input units),我們將原始數據輸入給它們。
, , 是中間單元,它們負責將數據進行處理,然後呈遞到下一層。
最後是輸出單元,它負責計算。
神經網絡模型是許多邏輯單元按照不同層級組織起來的網絡,每一層的輸出變量都是下一層的輸入變量。下圖爲一個3層的神經網絡,第一層成爲輸入層(Input Layer),最後一層稱爲輸出層(Output Layer),中間一層成爲隱藏層(Hidden Layers)。我們爲每一層都增加一個偏差單位(bias unit):
下面引入一些標記法來幫助描述模型:
代表第 層的第 個激活單元。代表從第 層映射到第 層時的權重的矩陣,例如代表從第一層映射到第二層的權重的矩陣。其尺寸爲:以第 層的激活單元數量爲行數,以第 層的激活單元數加一爲列數的矩陣。例如:上圖所示的神經網絡中的尺寸爲 3*4。
對於上圖所示的模型,激活單元和輸出分別表達爲:
上面進行的討論中只是將特徵矩陣中的一行(一個訓練實例)餵給了神經網絡,我們需要將整個訓練集都餵給我們的神經網絡算法來學習模型。
我們可以知道:每一個都是由上一層所有的和每一個所對應的決定的。
(我們把這樣從左到右的算法稱爲前向傳播算法( FORWARD PROPAGATION ))
把, , 分別用矩陣表示:
我們可以得到 。