機器學習 神經網路(2)
本次分享也是我個人通過學習一個國外的教程而總結的,在此向作者表示感謝!我們通過以小見大形式來進行分析。一切先從簡單或特例入手。然後在此基礎上延伸和深入。

四個畫素的圖
我先從簡單圖形開始,這裡的圖形是由 4 個畫素組成的。每個畫素有著不同的灰度值。我們根據畫素不同的灰度值進行分類。

分類圖 第一類為 solid
將根據畫素明暗不同進行分類,暫時分為四類。第一種情況為實色,即全部畫素就是全白色。

第二類為 vertical
第二類為 vertical ,當四個畫素中,有兩個為白色並且縱向排列就是第二種情況。其他情況大家自己看一下吧,這裡不做過多的解釋,應該是一目瞭然。

第三種情況 diagonal

第四種情況 horizonal
這裡列出四種情況,但是實際情況還具體分析一下,圖根據畫素位置和灰白程度不同應該不僅僅是這四種。看下圖就知道這裡還有其他情況,不過下圖中兩種情況我們都歸結為 horizontal 水平分佈。

圖

用神經元來表示影象
這個由兩行兩列的四個畫素抽象為是出神經元,每個神經元對應某一行某一列的一個畫素。他包含值就是畫素的灰度值。

每個畫素的值為其灰度值
用 -1 到 1 區間的值來對應灰度值,黑色用 -1 而白色用 1 來表示。

將每個畫素對應一個神經元
每一個神經元對應一個圖的

這裡神經元都會連線到下一層的神經元
畫素對應的神經元,都會連線到下一層的神經元

圖

圖
我們將前一層神經元的輸入,輸入相求和得出該神經元。

圖

圖
我們將每條連線線附上加權值,將每個神經元的值乘上權重值後相加得出值作為下一個神經元的輸入值。


圖
每個神經元對應的畫素的灰度值作為該神經元的啟用值,每個神經元都是一個數值的容器。這個值作為下一層神經元的輸入值,這裡下一個神經元的啟用值輸入值的和。

壓縮
我們需要將結果值控制或者說壓縮在-1 到 1 之間。這裡我們通過 sigmoid 函式進行壓縮 sigmoid 函式是 s 型。

sigmoid 曲線
我們看一看如何通過 sigmoid 函式來壓縮函式的輸出在 -1 和 1 之間。

圖

圖
當我們的 x值不斷增大的時候,對應的 y 值將無限地趨近 1 而無法達到 1。反之亦然。