2018年7月2日 星期一

機器學習演算法—類神經網路(Artificial Neural Network)初探



隨著近期機器學習跟深度學習快速爆紅,有一個名詞-類神經網路,討論的程度也越來越火熱,但其實類神經網路(Artificial Neural Network),並不是一個新出的算法,早在上個世紀中時就已經被發展出來了,只是當時的硬體,尚不足以支撐太多層的神經網路,只能夠訓練學習一些簡單的邏輯函數,所以學術界對於類神經網路的熱情就漸漸消退了。

後來隨著硬體逐漸的發展,直到2012年波茲曼機的發明人Hinton發明了對比分歧法(Contrast Divergence),在分類、特徵抽取等方面頗有斬獲,還可以和多層感知器疊合,創造出了深度神經網路,而後來深度神經網路又加入了Convolutional(中文譯作卷積)運算,成為了卷積神經網路,在影像辨識上非常有效,接著開始推展到人工智慧的各個領域,也就跟上了這一波機器學習與深度學習的熱潮(之後再來開一篇講人工智慧的興衰到再次崛起)。

我知道上面說了一堆專有名詞大家已經頭昏眼花了,接下來簡單的說説類神經網路吧



上圖是一個神經,有樹突(負責輸入資料),有突觸(負責輸出資料),而類神經網路,就是用電腦來模仿生物神經網路的結構和功能的運算模型,建立大量相連的人工神經來模仿生物的神經網路,並且經過不斷學習的過程, 讓機器能夠像人類一樣擁有推導的能力。


類神經網路  from wiki
人工神經元是簡單的模擬生物神經元(如上圖),有隱藏單元(Hidden units)會與外部層進行通訊,而輸入和輸出單元(input and outpot units),只會與隱藏層進行通訊,每一個節點被稱作人工神經元,當他接收的信號量達到處門檻,他就會被觸發,然後發送出信號,藉由傳輸管道將信號發送至其他與之相連的單元,而連接點模擬生物神經的突觸,並具有發射信號強度權重的基本功能,權重用相乘方式計算,而權重本身由連結決定。
簡單介紹各層
輸入層(Input layer):透過許多神經元(Neuron)接受大量資訊。
輸出層(Output layer):資訊在神經元鏈接中傳輸、分析,形成預測結果。
隱藏層(Hidden layer):模擬複雜的非線性關係,好比人類的神經突觸連結越多,就會越聰明。但是過多的話會有過度學習的狀況,所以也不是越多越好。


類神經網路有以下幾個重點
1.每個神經元都與下一層所有神經元連接
2.屬於同一層的神經元之間沒有任何連接
3.有幾層以及每一層有幾個神經元由待解決的問題決定

接下來順帶簡單介紹一下機器學習的學習模式
監督式學習(Supervised learning):在訓練的過程中告訴機器答案、也就是「有標籤Label」的資料,比如給機器各看了 1000 張貓和豿的照片後、詢問機器新的一張照片中是貓還是豿。
非監督式學習(Unsupervised learning):訓練資料沒有標準答案、不需要事先輸入標籤,所以機器在學習的過程中並不知道其分類結果是否正確。訓練時僅須對機器提供輸入範例,機器會自動從這些範例中找出潛在的規則。
增強學習(Reinforcement learning):或稱作強化式學習,透過觀察環境而行動,並會隨時根據新進資料修正、以獲得最大成果,特徵是訓練必須要有正負回報(positive/negative reward)。
另外的半監督式學習(Semi supervised learning),可視為監督式學習與非監督式學習的混合版,資料中少部分有標記,大部分沒有標記。

以上希望可以幫助大家快速了解類神經網路以及機器學習的模式,如果有寫得不夠詳細的部分,也歡迎留言討論。





1 則留言:

經濟日報數位訂閱懶人包

  去年寫過一篇介紹文,經濟日報推出了數位訂閱產品,如果你是價值投資者,或是對產業研究及經濟數據有興趣的朋友,包含深耕國內外財經深度內容、圖像式產業資料庫、早安經濟日報聽新聞等等。   目前有「彭博新聞獨家聯名、七大外媒授權合作、專家解析深度專欄」三大內容,豐富你的關鍵投...