iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 14
2
AI & Data

機器學習模型圖書館:從傳統模型到深度學習系列 第 15

15 為什麼要深?

接著我們就來到了蠻重要的問題,既然一個 hidden layer 的網路架構就可以逼近任何連續函數,那麼為什麼要深度學習?

對於這個問題,台大李宏毅老師有非常詳細的講解:

Yes

影片裏面實驗很多,所以我還是總結一下:

  1. 用邏輯電路類比神經網路的話,你一樣可以用單層的並聯將所有邏輯閘都起來成為一個電路,一樣可以達到相同的效果,但是用多層的串聯可以將所需要的邏輯閘數目減少(類比神經網路的神經元),所以可以達到減少參數的效果。
  2. 使用 ReLU 作為 activation function 就是要用分段線性的方式來逼近一個函數,在網路參數相進的情況下,單層網路所能產生的"段"比較少,多層網路所產生的"段"比較多,產生的線段較多就可以去逼近一個更複雜的函數,所以模型就比較強大。
  3. 計算分段線性的數量,當你有 https://chart.googleapis.com/chart?cht=tx&chl=N 個神經元,單層網路裡最多只能產生 https://chart.googleapis.com/chart?cht=tx&chl=N%20-%201 個線段,多層網路,每層安排兩個神經元,可以產生 https://chart.googleapis.com/chart?cht=tx&chl=2%5E%7B%5Cfrac%7BN%7D%7B2%7D%7D 個線段。

更有文獻提到,計算線段的數量,如果你的網路每層有 https://chart.googleapis.com/chart?cht=tx&chl=K 個神經元,而且有 https://chart.googleapis.com/chart?cht=tx&chl=H 層,那麼至少會有 https://chart.googleapis.com/chart?cht=tx&chl=K%5EH 個線段。

由於深度是放在指數上面,所以增加深度就可以簡單地提高模型的複雜度,也就可以讓模型變得比較強大。

計算複雜度

在一些電腦的問題上,我們常常形容問題是 NP 或者不是 NP,來描述一個問題的複雜度有多高。

一個問題的時間複雜度可以由現代電腦在多項式時間內解決,我們稱為 P(polynomial time)。如果一個問題至少跟 P 一樣或是更難,那我們稱為 NP(nondeterministic polynomial time)。

NP 的形式定義為:一個問題可以由 non-deterministic Turing machine 在多項式時間內解決的問題。

NP-complete 問題是 NP 問題當中最難的了,計算複雜度大概會是指數級成長,這種成長速度應該使用神經網路有辦法克服。


上一篇
14 淺層神經網路
下一篇
16 深度學習其實是一種 Representation learning
系列文
機器學習模型圖書館:從傳統模型到深度學習31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

1
williamyeh
iT邦新手 5 級 ‧ 2018-12-01 15:50:31

『NP-complete 問題是 NP 問題當中最難的了』這句話,好像怪怪的。

杜岳華 iT邦新手 5 級 ‧ 2018-12-04 16:20:04 檢舉

參考維基百科 NP完全
NP完全或NP完備(NP-Complete,縮寫為NP-C或NPC),是計算複雜度理論中,決定性問題的等級之一。NPC問題,是NP(非決定性多項式時間)中最難的決定性問題。

1
williamyeh
iT邦新手 5 級 ‧ 2018-12-05 11:26:17

「一個問題的時間複雜度可以在多項式時間內的,我們稱為 P,如果不是,那我們稱為 NP。」

建議針對 "N: nondeterministic" 加一點潤飾,否則,很容易誤解這個 "N" 為 "No"。

看更多先前的回應...收起先前的回應...
杜岳華 iT邦新手 5 級 ‧ 2018-12-05 15:28:24 檢舉

基本上在電腦科學跟應用數學領域,NP 的稱呼已經是大家公認的用法,也知道他的意思。自2000年5月24日由美國克雷數學研究所(Clay Mathematics Institute,CMI)公布的千禧年大獎難題,頭號題目就是 P/NP 問題。在此之前,就已經廣為人知。

好吧。

我純粹認為,鐵人賽很重要的一個意義,是給非專家讀的。

杜岳華 iT邦新手 5 級 ‧ 2018-12-05 15:52:30 檢舉

這一系列文的適合讀者設定是由進階到專家,不太適合初學機器學習或是完全沒經驗的人。會放到鐵人賽是因為目前大家都在 AI 的這條道路上,需要釋放更多進階等級的技術跟知識到整個環境中,這樣才有辦法讓這些技術落地。如果大環境沒有吸收這些進階技術,AI 就是喊假的,台灣將會失去這波浪潮的優勢。而這些技術必然從專業領域來。

這邊的對話有點有趣,讓小弟亂入一下。
【鐵人賽很重要的一個意義,是給非專家讀的。】
顯然不是,顆顆~

不過對於原po後面留言的論述,我想法剛好不太一樣:我是認為應該先讓更多人能夠入門,入門後這些人要精進自學或自然淘汰,總之這中間會有一定比例的人,成為專家。

概念就像是,進店看商品的有10個人(進階),僅3個人購買(3人自行自學成專家),而你試圖讓沒做購買行為的7人購買(看完你的文章變成專家),最好提升到10個人都購買(本來沒辦法變專家的7人都變成了專家)。

但我更傾向主張的是,讓本來只有10人進到店裡,變成有20人進到店裡。

二個方式都是正向的(精進或科普),都是合理的,只是出發理念不太相同罷了。不過總之都是我們認為正確的事和方向,就朝自己理想去做就是囉~

ps.我還以為NPC是接任務或賣東西的呢~(誤)

杜岳華 iT邦新手 5 級 ‧ 2019-08-14 19:34:00 檢舉

其實我並沒有預設鐵人賽是給專家或非專家的。
不過從過往的鐵人賽文章來看,給非專家的撰文居多。
追隨大家走的方向意義不大,所以我決定這一系列文走另一條路。
走不同的路必定帶來風險,但是它會是提供價值的一條路。

我要留言

立即登入留言