back to index
【機器學習 2022】魚與熊掌可以兼得的深度學習

link |
好,今天這堂課要告訴大家說,深度學習到底好在哪裡
link |
好,我們說我們這個陷入了兩難,這個兩難是什麼呢?
link |
也就是說呢,我們今天在做Optimization的時候
link |
這個時候雖然我們可以讓這個LODO也就是最理想的狀況
link |
他的壞處就是理想跟現實會有比較大的差距
link |
反過來說,如果我們選擇了一個比較小的模型
link |
只有比較少的可以選擇的Function
link |
那我們的Loss就會比較大,我們的理想會比較糟
link |
所以上次我們停在這邊說我們陷入了兩難
link |
那最後我說魚與熊掌有沒有可能可以兼得呢?
link |
我們有沒有可能既有一個Loss很低的理想
link |
要怎麼做到這個魚與熊掌兼得的狀況呢?
link |
如果你今天要從大H裡面找出某一個Function小H
link |
你只有很少的可以選擇的Function
link |
可以讓這個大L可以讓你的Loss又很低
link |
我們就可以有好的理想Loss低的理想
link |
上次就說什麼樣的模型可以做到這件事呢?
link |
幫大家複習一下為什麼我們需要深度學習
link |
為什麼我們需要Hidden Layer
link |
已經跟大家講過Hidden Layer的重要性
link |
為什麼我們要加Hidden Layer呢?
link |
在預習的影片中跟你講的理由是這個樣子的
link |
我們說我們可以透過一個Hidden Layer
link |
我們怎麼找一個Function來逼近
link |
怎麼用一個Network來逼近這條線呢?
link |
怎麼用一個Network來產生這條線呢?
link |
得到一個Piecewise Linear的Function
link |
那這個Piecewise Linear的Function
link |
如果今天這個Piecewise Linear的
link |
你可以用一個Hidden Layer的Neural Network
link |
輕易的製造出綠色的這條Piecewise Linear的線段
link |
加上一堆這樣形狀的藍色的Function
link |
所以一個綠色的Piecewise Linear的Function
link |
怎麼製造這個綠色的Piecewise Linear的Function呢?
link |
那接下來你加上第一個階梯形的Function
link |
你再加第二個階梯形的Function
link |
你再加第三個階梯形的Function
link |
就可以製造出綠色的Piecewise Linear的Function
link |
所以一個Piecewise Linear的Function
link |
而Piecewise Linear的Function
link |
你其實都有辦法用Neural Network製造出來
link |
怎麼製造出這個Piecewise Linear的Function呢
link |
怎麼表示這個階梯形的Function呢
link |
有人又叫做Hard Sigmoid Function
link |
一個Hidden Layer的Neural Network
link |
可以製造出一個階梯形的Function
link |
假設你現在你的Neural Network
link |
你選擇的Activation Function
link |
製造出不同的Sigmoid Function
link |
那你製造出合適的Sigmoid Function
link |
Piecewise Linear的Function
link |
那你就可以用這個Piecewise Linear的Function
link |
表示這個Hard Sigmoid Function的方法呢
link |
Hard Sigmoid Function
link |
一個Hidden Layer的Network
link |
有Relu當作Activation Function的Neural
link |
可以形成任何Piecewise Linear Function
link |
Piecewise Linear Function
link |
可以變成任何Piecewise Linear Function
link |
有一個Hidden Layer的Network
link |
那只要一個Hidden Layer就夠啦
link |
其實只要一個Hidden Layer
link |
但是之所以不創造Fat Neural Network
link |
只是因為Fat Neural Network
link |
所以我們比較喜歡Deep Learning
link |
Deep Learning聽起來就是比較潮
link |
InterSpeech 2011年的paper
link |
Deep Learning還是一個非常潮的東西
link |
你Train個三層五層Network
link |
如果你離Deadline只剩24個小時
link |
因為你不可能把這個NetworkTrain完了
link |
如果你要Train個類似的Network
link |
都Train個十五成八成的Network
link |
他實際上把Deep Learning使用的方式
link |
In-train一發的那種Network之前啊
link |
其實如果你說你用Deep Learning
link |
他可以把那個Phoning的Sequence
link |
他跑出來是比Phoning更小的單位
link |
Sequence to Sequence的Model
link |
就是Deep Learning的力量
link |
當你選擇一層3772個Neuron的時候
link |
一層的內窩有16K個Neuron的時候
link |
它的表現雖然比同樣層數2000個Neuron還要好
link |
雖然一個Hidden Layer的內窩
link |
但是當你要表示某一個Function的時候
link |
舉例來說假設你有某一個Function
link |
這邊就隨便畫一個綠色的Function
link |
所以用Deep Learning並不是比較容易Overfitting
link |
很多人對Deep Learning都有一個誤解
link |
但這不是Deep Learning的核心
link |
並不是Deep Learning真正的優勢所在
link |
Deep Learning真正的優勢所在是
link |
當你要產生某一個Function的時候
link |
因為一般的印象就是Deep Learning
link |
就是大資料容易Overfitting
link |
但事實上Deep Learning它真正的強項
link |
在我們直接探討Deep Learning的好處之前
link |
你給你的電路一串0101的Sequence
link |
如果你要做一個Parity Check的模組
link |
假設輸入的Sequence長度叫做低的話
link |
你就可以兜出這個Parity Check的模組
link |
但是沒有人用兩層的邏輯電路來做一台電腦
link |
如果你要用邏輯電路來解Parity Check的問題
link |
你根本不需要用到2個低次方的Gate
link |
又會再是下一個XNOR的Gate的輸入
link |
都放在你的Main Function裡面
link |
你除了Main Function以外
link |
你會在適當的時機去呼喚這些Module
link |
都還有它可以去呼叫的Subfunction
link |
也可以呼叫同樣的Subfunction
link |
那你可以去Call同樣的Function
link |
其實就是Deep Learning裡面的Layer
link |
只有一層的Shallow的Network
link |
這個只有一層的Shallow的Network
link |
我們這邊用的Activation Function
link |
是Relu這個Activation Function
link |
所以把X-0.5跟-X加0.5通過Relu
link |
我們會把這兩個Neuron的Output
link |
所以把這兩個藍色的Neuron結合起來
link |
那怎麼把第二層的Neuron加上去呢
link |
它把前面這兩個藍色Neuron的輸出
link |
因為本來如果藍色這兩個Neuron都乘上1
link |
然後再通過一個Redu的Activation Function
link |
那我們把我們第二層的這兩個Neuron呢
link |
它的Activation Function的輸入是X-0.5
link |
看這個有三層的Neural Network
link |
你想讓一個Neural Network的Output Y呢
link |
那你需要多複雜的Neural Network呢
link |
現在你的Network的Input是X
link |
那你其實不需要一個太複雜的Network
link |
如果你想要用一個Shallow的Network
link |
就算是只有一個Hidden Layer
link |
因為當只有一個Hidden Layer的時候
link |
你的Activation Function是Relu
link |
那每一個Neural只能製造一個線段出來
link |
所以我們比較一個Shallow跟Deep的Network
link |
Deep的Network2K個Neural
link |
Shallow的Network是2的K次方的Neural
link |
所以今天要產生同樣的Function的時候
link |
Deep的Network參數量比較小
link |
而Shallow的Network它的參數量比較大
link |
所以Deep Learning的優勢
link |
很多人以為Deep Learning需要大量的資料
link |
你不用Deep的Network選擇Shallow的Network
link |
如果你今天你的目標的Function
link |
也就是可以讓你的Loss很低的那個Function
link |
那Deep的Network會優於Shallow的Network
link |
那什麼樣的問題會讓Loss低的那些Function
link |
會讓Loss低的那些Function是複雜而有規律的
link |
為什麼今天深度學習在影像上、在語音上
link |
那些可以讓Loss特別低的Function
link |
Deep相較於Shallow才能夠佔到優勢呢
link |
那如果說Function要真的很複雜的時候
link |
那顯然是一個非常簡單的Function
link |
我們用Shallow的Network去產生這樣的Function
link |
跟用Deep的Network去產生這樣子的Function
link |
Deep是比Shallow還要Exponential的好
link |
要產生Y等於X平方這個Function
link |
它需要Exponential多的參數量
link |
因為它是一個可以讓魚與熊掌兼得的方法