iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 2
3
AI & Data

Knock Knock! Deep Learning系列 第 2

Day 1 / Deep Learning 簡介 / 從人腦啟發的 Deep Learning

Deep Learning(深度學習)的本體架構稱作 Neural Network(神經網絡),而 Neural Network 內的激活、資訊傳遞等等運作則啟發自人體的神經系統。讓我們簡單從人體的神經元了解 Neural Network 的運作以及 Deep Learning 的概念吧。

從神經元到 Perceptron

neuron
—— 神經元的構造。每門 Deep Learning 的課都會出現這種圖![1]

相信大家國中的時候都認識過人體的神經系統。假設我們現在要判斷一個人是男是女。我們的眼睛、耳朵等等受器會將接收到的訊息,例如這個人的五官輪廓、聲音高低、身高體重等等,藉著神經系統傳遞到大腦,大腦便會得出是男是女的預測。讓電腦學會接收訊息並判斷預測,即是人工智慧的終極目的。

神經系統的基本元件,意即神經元(Neuron),構造如圖。感知訊息從上一個神經元經由突觸傳進來,再由樹突整合後傳遞至細胞體。若細胞體形成動作電位,則會將訊息藉由軸突傳遞出去,進入下個神經元 [2]。好的這邊看過就能忘了,我最討厭生物。

而電腦科學家有了這麼一個想法:仿造神經元,再將之串連再一起,形成神經網絡(Neural Network)。這個早在 1957 年即被發明的人工神經元,稱為 Perceptron(感知器),也是而後 Neural Network 與 Deep Learning 的開端。

perceptron
—— Perceptron 的構造。[3]

一開頭就這麼多數學,別被嚇到了,其實很簡單。

從最左邊接收訊息,經由 Perceptron 的處理,得出最右邊的小結論。為什麼叫做小結論,因為之後會提到的 Neural Network 中,各個 Perceptron 會把小結論傳到下一層的 Perceptron,而無數 Perceptron 會討論出一個總結,作為 Neural Network 的最終預測。

讓我們藉由前面預測男女的例子來一步步了解 Perceptron 的構造,以及大致對應神經元的類比:

  • Inputs(接收突觸傳進來的訊息)
    • 接收到的訊息,例如人體的特徵。https://chart.googleapis.com/chart?cht=tx&chl=x_1 可能是五官輪廓、https://chart.googleapis.com/chart?cht=tx&chl=x_2 可能是聲音高低等等,共有 m 個特徵幫助預測。
  • Weights(神經元的「設定」)
    • 權重,可以想像為每個特徵對預測的幫助程度。例如若 https://chart.googleapis.com/chart?cht=tx&chl=w_1https://chart.googleapis.com/chart?cht=tx&chl=w_2 大,那麼這個 Perceptron 在預測時認為 https://chart.googleapis.com/chart?cht=tx&chl=x_1 五官輪廓比 https://chart.googleapis.com/chart?cht=tx&chl=x_2 聲音高低更能分辨男女,便分配高分給 https://chart.googleapis.com/chart?cht=tx&chl=x_1
  • Summation and Bias(樹突整合訊息)
    • 各個特徵的加權總分為 https://chart.googleapis.com/chart?cht=tx&chl=w_1%20x_1%20%2B%20w_2%20x_2%20%2B%20...%20%2B%20w_m%20x_m%20%3D%20%5Csum%5Em_%7Bi%3D1%7D%20w_i%20x_i。Bias 是男女判斷標準,預測結果是拿分數對比標準。
  • Activation(細胞體激發)
    • 根據分數和標準判斷結果的函數。例如分數高於標準為女、低於標準為男,所以有兩種預測結果 1 和 0。這個函式畫出來像個階梯,被稱為 step function。如果把式子中的 b 往右邊移:https://chart.googleapis.com/chart?cht=tx&chl=%5Csum%20wx%20%5Cge%20-bhttps://chart.googleapis.com/chart?cht=tx&chl=%5Csum%20wx%20%3C%20-b 則比較容易看出是在跟標準比較。b 的正負不要緊,因為是要學習的值,他會自己做調整。
  • Output(將訊息傳至軸突,以傳遞給下個神經元)
    • 就是 activation 出來的預測結果了。

Weights 和 bias 為此 Perceptron 的 parameter(參數),意即他們的值可藉由訓練調整讓 Perceptron 預測更準確,類似他的設定。至於怎麼調整這些參數以達到準確的預測結果,就是 Deep Learning 的精髓。

從 Perceptron 到 Neural Network

單單一個仿造神經元的 Perceptron,你可能想說他能做的不多。事實真是如此。Perceptron 只能用來做 binary linear classification(二元線性分類),也就是為什麼我們需要更複雜的 Neural Network。

先說什麼是二元線性分類:
binary linear classification
—— 貓與非貓線性分類。[4]

二元即兩種結果,例如男或女、貓或非貓。線性有比較深入的數學定義,但簡單來說就是在二維平面能畫一條線分開兩組 data point,三維空間能用一塊平面切出兩組 data point,以此往高維類推。圖中藍色 data point 是貓類,紅色 data point 是非貓類,因為我們能用一條線乾淨分開兩類,線性分類在這個 dataset 是成立的。真幸運。

但如果今天我們 data 長這樣:
binary linear classification fails

懸賞我今天剛做的起司蛋糕你找不到任何一條線可以切開貓與非貓。Perceptron 是沒辦法學會分類這組 data 的,因為他就只會拿一條直線在那邊擺來擺去。更遺憾的是,真實世界的 data 基本上都跟這組一樣,沒辦法單靠線性分類。

拿直線想分類這組不行,但彎的線呢?沒問題,這就是 non-linearity(非線性)。想分類更多種類的話,又該如何?那就畫更多條線吧,也就是做更多的 binary classification,合在一起成為 multiclass classification(多元分類)。從 Perceptron 到 Neural Network,便是在加入這些複雜度,讓能力更強大,世界更寬廣。

neural network
—— 一個簡單的 Neural Network。[5]

圖中的圓圈類似於一個 Perceptron,稱為 Neuron,不同的是 activation 這一步不侷限於 step function,而可以是很多其他 non-linear function 讓 network 學習彎曲的分類線。

而 Neural Network 通常是分層的。Input 輸入第一層後,經過 neuron 們的運轉產出第一層的小結論傳給第二層,以此傳到最後一層得到總結。分層的概念也可以類比到人類的感知過程:以判斷一張圖片是否為貓咪為例,前面幾層建立在比較粗糙的訊息上,例如某個地方的顏色、稜角,而後面幾層建立在前面的基礎,有比較高階的概念,例如貓的五官、體型等等,以此作最後判斷就會很準確了。

Neural Network 輸入叫 input layer、輸出叫 output layer,中間各層稱為 hidden layer。只有一個 hidden layer 的稱之為 Shallow Neural Network,多個 hidden layer 的則為常聽到的 Deep Neural Network。利用 Deep Neural Network 做學習就是 Deep Learning 啦。越多層的 hidden layer 可以習得越複雜的概念,但學習能力受限於硬體資源,沒辦法無限上綱。

Neural Network 根據 data 的特性有很多變形,以後會慢慢介紹。

Neural Network 不同的學習方式

最後來簡單介紹一下 Neural Network 有哪些學習方式。

Supervised Learning

監督式學習。

想像一個小孩看著蘋果喊 banana,媽媽會說 no no no,這是 apple。小孩一聽,大腦神經啟動,將這個錯誤回傳給剛剛負責判斷的神經元說,給我調整改進。下次小孩就知道紅紅的圓圓的是 apple 了。

「監督」在於媽媽有給他「正確答案」,讓學習有效率。訓練的 dataset 如果每筆 data 有 label,也就是答案,就可以透過 supervised learning 學習。例如判斷貓的種類,dataset 每張圖片會搭配該貓的種類當 label,讓 network 進行 supervised learning。

Unsupervised Learning

非監督式學習。

想像一個小孩,媽媽很懶惰不告訴他怎麼分辨水果和非水果。但小孩可以透過一些資訊,例如飯後會吃的、或酸或甜、中間可能有籽等等,自行學會分辨一個東西是不是水果。

少了「正確答案」,雖然缺乏效率但仍然能夠進行學習。訓練的 dataset 如果 data 沒有 label,就只能透過 unsupervised learning 學習。例如有一堆新聞,沒有人有時間幫忙標註是哪一類的新聞,但可以根據新聞內容等等,以 unsupervised learning 學會做 clustering(聚類分析),知道哪些新聞是相關的。

Semi-Supervised Learning

半監督式學習。

想像一個學生在學英文,判斷副詞。英文老師很忙,不可能每次他碰到一個單字,英文老師都要告訴他是不是副詞。但英文老師會說 actually 是副詞,randomly 也是副詞,幾次之後學生就知道後面有 ly 的大概就是副詞。

非監督是學習通常是因為取得 label 不易,成本太高,出此下策。而半監督式學習能取得平衡,藉由比 supervised learning 少量許多的 label 進行比 unsupervised learning 更為有效率的學習。

Reinforcement Learning

強化學習。

想像一個小孩,偷了媽媽的零用錢而被毒打一頓。為了不要再被打,小孩下次偷媽媽零用錢的意願就會降低。之後小孩幫忙洗碗,媽媽給了他一點零用錢。為了能賺零用錢,小孩下次會更願意洗碗。

這種學習模式並沒有標準答案,而是實際做了之後,根據得到的回饋修正自己之後行動的判斷。常見應用在機器人學習動作、玩遊戲等等,知名的 AlphaGo 就是這樣學會圍棋的。

Checkpoint

  • 一個簡單的 Perceptron 有哪些基本步驟?
  • Perceptron 為何能力受限?
  • Bias 的作用為何?
  • Neural Network 為何需要分層?
  • Neural Network 有哪些不同學習方式?他們的主要差別為何?

參考資料

  1. Wikipedia - 神經元
  2. 腦力通訊 - 腦力基本:神經元的訊息傳遞
  3. Introducing Deep Learning and Neural Networks — Deep Learning for Rookies (1)
  4. Wikipedia - Perceptron
  5. What is an artificial neural network? Here’s everything you need to know
  6. Types of Machine Learning Algorithms You Should Know

上一篇
Day 0 / 導讀
下一篇
Day 2 / Deep Learning 簡介 / 細解 Deep Learning(一) —— Prediction
系列文
Knock Knock! Deep Learning31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言