白話機器學習 - 感知機


在機器學習里面,有一大類叫做神經網絡。神經網絡里面,大名鼎鼎的有卷積神經網絡CNN,循環神經網絡RNN。其中,卷積神經網絡在圖形圖像處理方面,有着很出色的成果。例如識別圖像的功能,通過基於CNN的深度學習技術,現在機器已經可以識別出很多東西了。下面這個圖是電視劇《三生三世 十里桃花》的劇照,使用Tensorflow和ImageNet,機器告訴我們,這張圖是 kimono(和服)的可能性是 0.86。gown(長外衣;外罩)0.05.
圖像識別技術

如果是一些簡單的圖片,例如鍵盤,鼠標,水杯等,識別准確度還是蠻靠譜的。
Paste_Image.png

神經網絡的如果要用圖來表示的話,應該就是下面這個樣子的。最左邊的是輸入,最右邊的是輸出。然后中間有很多隱藏層。

感知機示意圖

這個圖中隱藏層只有一層,但是大部分用於真實計算的神經網絡,都會有很多隱藏層。

復雜神經網絡

無論是簡單的,還是復雜的神經網絡,其中最小的單元就是感知器。
對於感知器的介紹,可以參考網絡上的文章:
零基礎入門深度學習(1) - 感知器 
感知器

既然是白話,那么我們就用講故事的方法來說一下。(假設讀者已經閱讀了上面的文章)
假設有一次考試,分為語文,數學,英語,滿分都是100分。但是,語文,數學,英語占的權重(weight)不一樣。同時,我們還需要根據考試難度,在最后總分上面,進行一些加分或者減分的調整(bias)。最后,根據一個標准(激活函數 Step Function)來定考試合格或者不合格(output)。

如果教務處說,我們是外國語學校,對於英語成績比較看重,則我們給予這樣的英語比較高的權重。
X1:語文成績 W1:0.3
X2:數學成績 W2:0.2
X3:英語成績 W3: 0.5

然后,由於這次考試難度比較高,則每個人都加5分 (這個其實叫做 偏置項 bias)

X0 = 1 W0 = 5

成績 = X0 * W0 + X1 * W1 + X2 * W2 + X3 * W3
然后,如果成績為60分及以上則為合格。(激活函數 Step Function)
如果 成績 >= 60 ,則合格
成績 < 60 ,則不合格

OK,這樣一個簡單的感知機就做成了。在權重(W0,W1,W2,W3)和 Step Function(合格標准)定下來的時候,它可以根據輸入(各科成績),求得輸出(是否合格)了。

例如:

語文成績 50 * 0.3 = 15
數學成績 40 * 0.2 = 8
英語成績 80 * 0.5 = 40
附加分 5
成績 15 + 8 + 40 + 5 = 68 =>合格

語文成績 80 * 0.3 = 24
數學成績 50 * 0.2 = 10
英語成績 40 * 0.5 = 20
附加分 5
成績 24 + 10 + 20 + 5 = 59 => 不合格

當然,一般來講,感知機往往是激活函數(StepFunction)是事先決定的,作為訓練數據的輸入,輸出是已知的,權重則是需要通過機器學習來獲得的。我們的例子中,合格標准是事先決定的,60分及格,然后給出一部分數據:某些人的語文成績,數學成績,英語成績 ,是否合格,然后通過機器學習,將各科的權重計算出來,獲得一個模型。然后利用這個模型,通過輸入 語文成績,數學成績,英語成績,來判定是否合格。

當然,如果在訓練數據比較少的時候,這個權重可能計算的不是很准確,數據越多,權重越准確。

語文成績 50 數學成績 40 數學成績 40 附加分 5 合格
語文成績 80 數學成績 50 數學成績 40 附加分 5 不合格

能夠滿足這樣條件的權重有很多很多,所以機器學習的結果可能不是很好。
但是如果有足夠的數據,則權重的計算結果則會非常理想。

最后再回來說一下,為什么叫感知機,其實最簡單的,最原始的時候,感知機的輸出就是 0(不合格) 或者 1(合格).結果能被感知,或者不能被感知。當然,隨着研究的深入,則輸出形式也越來越豐富了,不僅限於是否,也可以是數值或者其他形式的東西。例如,感知機做線性回歸的時候,則是數值作為輸出。

關注公眾號 TensorFlow教室 深度學習,機器學習,自然語言處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM