第三章 沒有解決方法?現在有了!
“機器學習的發展要追溯到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,這是為了模擬人的神經元工作原理……”