第三章 沒有解決方法?現在有了!
「機器學習的發展要追溯到1957年,Rosenblatt提出了感知機模型……」
華東大學的一間教室里,徐毅站在講台上,一邊播放幻燈片,一邊對著台下的學生講解道。
剛剛進入八月份,雖然秋季學期還未正式開學,但華東大學的小學期課程已經開始,徐毅正在給選修《機器學習》這門課程的本科生上課。
炎熱的夏風伴隨著著窗外的蟬鳴,帶進屋中昏沉的睡意,連不停嗡嗡轉動的風扇也無法吹散。
但教室里的學生幾乎全都專註地看向講台,認真聽著徐毅的講授,展現出作為重點大學學生的優秀素質,讓已經汗流浹背的徐毅感到欣慰不已。
「……根據我們前面的講述,感知機實際上就是將我們輸入的數據作為向量,把向量中的每一個元素進行加權求和,最後將數據分類,我們可以用一張二維的圖像作為示例。」
徐毅放出下一張PPT,圖上是一個畫著x軸和y軸的平面坐標系,上面散落著許多紅色和藍色的點。
「來看這張圖,裡面每一個點就代表一個數據樣本,我們用兩種顏色來表示數據的種類。」
「感知機的目的就是要找到一條直線,從而將這些點按照種類分開,就像這樣…」
隨著徐毅點擊滑鼠,一條直線在圖中出現,將兩種顏色的點切到左右兩邊。
「用數學語言來描述的話,就是用直線y=wx+b來將數據樣本分類,而感知機的學習過程就是尋找這條直線的係數w和b的過程,」
徐毅又一點滑鼠,坐標繫上的點和直線統統消失,轉而出現了坐標在(0,0)(0,1)(1,0)(1,1)上的四個點,它們剛好構成了一個小正方形的四個頂點,右上角的頂點被標成藍色,另外三個點則是紅色。
「我們用這四個點來表示最基礎的邏輯門,藍色表示真,紅色表示假,圖中所示是一個與門,顯而易見我們可以用一條直線把真值和假值分開。」
一道將正方形右上角斜著切開的黑線隨著徐毅的話語出現,
「同樣地,對於或門和非門邏輯,我們同樣可以用一個感知機來表示,但是感知機有一個很重大的缺陷,大家覺得是什麼?」
聽到徐毅的提問,下面的學生七嘴八舌地回答起來。
「多個種類混雜的情況?」
「不能用直線分離的點……」
「異或問題!」
徐毅看了一眼說出正確答案的學生,這個小胖子叫王浩中,對機器學習的相關知識了解的相當全面,在前幾節課上已經給他留下了很深刻的印象,因此他毫不意外地點點頭,補充道:
「多分類問題實際上可以轉化為多個二分類問題,因此這類問題是完全可以用感知機實現的……」
「所以正確答案就是線性不可分問題!例如這樣一些混雜在一起的點,我們就不能用直線將它們分開,這種問題的最簡單形式就是異或問題。」
屏幕上的四個點顏色再變,左下和右上的兩個點變成藍色,另兩個點變成紅色。
這時台下一個扎著單馬尾的女生急切舉手,徐毅沖她點點頭示意可以提問。
「老師,異或不是可以用前面三種基本邏輯表示么?為什麼可以學習三種基本邏輯的感知器不能表示異或?」
聽到這個問題的徐毅笑了笑,並未直接回答,反而問起其他學生,
「非常好的問題!我們都知道異或可以由兩個非門和與門再加一個或門組成,那麼我們可不可以同樣用幾個感知機分別表示幾種基本邏輯,最終組成一個異或門呢?有沒有同學講一下想法……王浩中?」
看到學生紛紛陷入沉默,於是直接點名前面的小胖子。
「嗯……可能原因是由於感知機最後的非線性激活函數,從而導致多層結構的感知機無法求解?據我所知好像現在沒有類似的方法,所以這條路應該是不可行的。」
雖然徐毅提出的這個思路之前沒有想過,但憑著對機器學習的深刻理解,王浩中思索片刻后便給出了結論。
王浩中的父親是領域內的專家,在他高中時候就帶著他參與相關研究,王浩中在大二時就能以第一作者的身份發表二區論文,因此他對自己的答案有著充足的自信,挺起胸膛等著老師的回復。
「沒錯!因為在感知機中使用的激活函數是sign函數,即對於任意大於零的自變數x,我們都令函數f(x)的值為1,而對於小於等於零的x,我們令函數值為-1,這是為了模擬人的神經元工作原理……」