back to index
Deep Learning Theory 2-2: Deep Linear Network

link |
沒有講到Deep Learning這樣子
link |
剛才講的是一個General的Case
link |
現在我們來講Deep Learning
link |
那在講真正的Deep Learning之前
link |
我們先來分析Deep的Linear的Network
link |
它的Loss Function長什麼樣子
link |
我們先來假設一個非常非常簡單的Deep的Linear Network
link |
這個Deep Linear Network呢
link |
然後它的每一個Neuron都沒有Non-Linear的Activation Function
link |
每一個Neuron的Activation Function都是Linear的
link |
那每一個Neuron就只有一個Weight W1跟W2
link |
它只會Output一個Value Y
link |
那Y顯然就是X乘上W1乘上W2就得到Y就結束了
link |
那我們今天在做Deep Learning的時候
link |
我們會給這個Network Training Data
link |
我們假設現在Training Data只有一筆
link |
也就是說Input是1,X等於1的時候
link |
我們希望Network的Output跟1越接近越好
link |
我們現在有這樣子的一個Linear的Network
link |
我們甚至可以把它在一個二維平面上畫出來
link |
那你要不要猜猜看現在這一個Loss Function
link |
你覺得它的Loss Function是Convex的
link |
你覺得它不是Convex的同學舉手一下
link |
我們再考慮一個更簡單的Network
link |
InputX,OutputY等於WX
link |
這一個Network它是一個Linear的Function
link |
這一個Network它就跟Linear Regression是一模一樣的
link |
第一堂課就講Linear Regression
link |
它跟Linear Regression是一樣的
link |
那希望它的Output跟1越接近越好
link |
你覺得它是一個Convex的Function嗎
link |
你覺得它是一個Convex的Function
link |
沒有人覺得,你覺得它不是一個Convex的Function的同學舉手一下
link |
還是有些同學覺得它不是Convex的Function
link |
那我們就實際上把它畫出來看看是什麼樣子
link |
我是截了那個Ian Guffalo paper
link |
同樣是Linear的Function
link |
只有一個weight的時候它是Convex的
link |
你的Loss對weight來說就不是Convex的了
link |
所以它是一個Linear的Function
link |
沒有,這只有在這個case才是Convex的
link |
這是一個Linear的Function
link |
但它的Loss就已經不是Convex的了
link |
你就會順著Gradient的方向走走走走
link |
走到這個Local Minima的地方
link |
不過這個Local Minima也是Global Minima
link |
因為它整個Function裡面是最小的地方
link |
是Global Minima的Manifold
link |
它只是把Global Minima連起來而已
link |
紅色的線是一個Settled Point
link |
就是它有一個Settled Point在00這個地方
link |
Gradient Descent會這樣子走
link |
然後今天這條粉紅色的線是要告訴我們說
link |
它不是一個Convex的Function
link |
它不是一個Convex的Function
link |
然後我們計算一下它的Gradient
link |
你會得到Critical Point
link |
它會有這個Critical Point
link |
它是一個Critical Point
link |
這就是一個Global Minima
link |
今天有一個Critical Point
link |
它是另外一個Critical Point
link |
那它有什麼樣的Eigenvector呢
link |
它不是一個Global Minima
link |
你不太需要害怕Settle Point
link |
你要最後走到Settle Point
link |
要怎麼樣才能走到Settle Point
link |
你才能夠走到Settle Point
link |
就算你不幸卡在Settle Point
link |
你就可以逃出那個Settle Point
link |
Gradient和Hatred來分析一下說
link |
哪些地方是Critical Point
link |
但光知道Critical Point還不夠
link |
我們先看一下Critical Point吧
link |
可能是Critical Point呢
link |
也就是Gradient的第一項都是0
link |
可能會製造出Critical Point
link |
所以這邊也是一個Critical Point
link |
才能夠製造Critical Point
link |
就可以讓它變成一個Critical Point
link |
它是一個Global Minimum
link |
你怎麼知道它是Global Minimum
link |
才知道它是不是一個Local Minimum
link |
你又不知道它是不是Global Minimum
link |
所以它就已經是Global Minimum
link |
這個Critical Point就不用分析了
link |
Hesitant是Zero Matrix
link |
你知道說它是一個saddle point
link |
這樣子的一個Hesitant matrix
link |
那這個Hesitant的matrix
link |
它有一個positive Eigenvalue
link |
一個negative Eigenvalue
link |
雖然它有zero Eigenvalue
link |
正好一個positive一個negative
link |
zero Eigenvalue那個方向走
link |
所以它一定就是saddle point
link |
只要你是一個local minima
link |
那你就是一個global minima
link |
它是很差的critical point
link |
那什麼叫差的critical point
link |
就是你從那個critical point
link |
這個是兩個hidden layer的情況
link |
如果是十個hidden layer的話
link |
兩個hidden layer有三個參數
link |
你不知道它是不是saddle point
link |
只有兩個neuron的linear network
link |
那我在現在我們的training data呢
link |
然後output的target也是1
link |
這個network只有兩個neuron
link |
那它的activation function是linear
link |
它的input dimension是1
link |
output dimension是1
link |
一樣它的activation function是linear
link |
故意在做參數的initialization的時候
link |
把這個neuron的所有的weight
link |
來做參數的initialization
link |
那我只要把standard deviation
link |
那在做參數的initialization的時候
link |
一個只有兩個neuron的linear network
link |
training loss就完全降不下去了
link |
初始在saddle point的地方
link |
只要在做initialization的時候
link |
給這個standard deviation
link |
就不會被卡在那個saddle point了
link |
給這個standard deviation
link |
我們稍微再加深一下這個network
link |
那在原點那個地方的saddle point
link |
它會變成一個很糟糕的saddle point
link |
它的hessian呢是一個zero matrix
link |
這個arrow的surface是非常平坦的
link |
那邊完全沒有任何的coverture
link |
所以如果你今天initialize的時候
link |
就算是你用正常的initialization
link |
你今天這個linear network是非常深的
link |
那如果你今天initialize的時候呢
link |
給參數做initialization
link |
用一個比較正常的standard deviation
link |
用一個正常的standard deviation
link |
所以你要避免在你做initialization的時候
link |
不要initialize在那個非常平的地方
link |
initialize離那個非常平的地方遠一點
link |
我們試試看把standard deviation呢
link |
general現在可以證明出來的東西是怎麼樣
link |
剛才我們舉的是一個linear的network的
link |
那現在是一個general的case
link |
就跟我剛才在兩個hidden layer證的case是一樣的
link |
如果你只要算一算它的critical point
link |
把你找到一個critical point
link |
就發現說它是local minima
link |
那它就一定是global minima
link |
要求所有hidden layer的size
link |
要大於等於input dimension跟output dimension
link |
你input dimension是五維
link |
output dimension是五維
link |
中間每一個hidden layer的output都要至少五維
link |
所以你需要讓你的這一個linear的network
link |
它的global minima的loss是零
link |
你找到一個critical point
link |
那因為global minima的loss是零
link |
所以它一定是global minima
link |
確保global minima的loss是零
link |
就會產生不好的saddle point
link |
所謂不好的saddle point是說
link |
它沒有任何negative的eigenvalue
link |
但是它沒有negative的eigenvalue
link |
這件事情在network的hidden layer
link |
也就是一個hidden layer的時候
link |
這一篇Deep learning without
link |
哇 原來Deep linear network
link |
但是它是沒有local minima的
link |
Deep linear network
link |
它submit到ICLR就被reject
link |
deep learning without
link |
nonlinear的deep network
link |
abstract introduction
link |
不管linear nonlinear
link |
它只真的證了linear的network
link |
如果是nonlinear的network
link |
告訴你說根據這兩個assumption
link |
linear network等於nonlinear network
link |
那兩個assumption是完全不合理的
link |
然後我就不打算講那兩個assumption
link |
一般的general deep network