一天搞懂深度学习—学习笔记1
Introduce of deep learning
1.問題展示
正常情況下,輸入為‘cat’輸出為一張貓的圖片;而我們研究的內(nèi)容是輸入一張貓的圖片,輸出‘cat’。f(‘cat’) = a pic of cat,我們研究f(‘a(chǎn) pic of cat’)=‘cat’。
為了達到上述效果,我們需要定義一系列函數(shù),優(yōu)化函數(shù)有關(guān)參數(shù),然后在定義的函數(shù)中選出最適合的函數(shù)。就是這么簡單的幾步,這就是深度學習要做的事情。只不過上述定義的函數(shù)是模擬神經(jīng)網(wǎng)絡(luò)建立的, 如圖。可以看到,這里的計算可以抽象成矩陣的計算,所以線性代數(shù)一定要好好學。下圖只是一個函數(shù),而神經(jīng)網(wǎng)絡(luò)是有多個這樣的函數(shù)串行或者并行組成。
一個簡單的圖片識別的例子,如下圖所示
文中也介紹到要確定神經(jīng)網(wǎng)絡(luò)的層數(shù)和每一層的神經(jīng)元個數(shù)需要我們不斷的嘗試和糾正另外也要靠一些直覺。
2.深度學習組件
訓練數(shù)據(jù),學習目標,損失,總損失。他們之間的關(guān)系是,我們通過訓練數(shù)據(jù)要達到一定的學習目標,在這個目標情況下,總損失最小。
我們是以函數(shù)為訓練目標的,函數(shù)結(jié)構(gòu)事先定義好,參數(shù)先隨機生成。將前向計算得到的結(jié)果和我們的預期結(jié)果對比計算出loss,得到總loss,然后根據(jù)設(shè)定的梯度下降算法(Gradient Descent)更新參數(shù)。而更新
3.為什么要深度學習
實踐證明,參數(shù)越多,性能越好;Fat+Short 比 Thin + Tall性能差。
深度學習的代碼編寫者有兩種角色,一種是正常角色,即搭積木的孩子;一種非正常角色,即寫函數(shù)的大佬。目前的科學研究大部分在于調(diào)節(jié)深度學習的結(jié)構(gòu),優(yōu)化參數(shù)等操作。
4 recipe of deep learning
選擇合適損失函數(shù),mini-batch,激活函數(shù),可適應(yīng)學習率,momentum,early stop, 正則化, 網(wǎng)絡(luò)結(jié)構(gòu)。
損失函數(shù)有那些:square error,cross entropy
mini-batch:batch是我們選擇的一個處理單位,表明一次取多少數(shù)據(jù)進行處理
激活函數(shù):ReLU,Sigmoid,Maxout
學習率:學習率太高,則總損失在每次更新后可能不會下降,如果學習率太低,則訓練過程會很慢
momentum:momentum是梯度下降法中一種常用的加速技術(shù)。(https://www.zhihu.com/question/24529483)
early stopping: 學習目標由訓練數(shù)據(jù)定義,而訓練數(shù)據(jù)和測試數(shù)據(jù)往往不一樣,因此我們需要確保訓練數(shù)據(jù)訓練出來的參數(shù)適應(yīng)于測試數(shù)據(jù),不要出現(xiàn)過擬合現(xiàn)象。
正則化:weight decay是一種正則化手段,weight decay是放在正則項(regularization)前面的一個系數(shù),正則項一般指示模型的復雜度,所以weight decay的作用是調(diào)節(jié)模型復雜度對損失函數(shù)的影響,若weight decay很大,則復雜的模型損失函數(shù)的值也就大
dropout:是指隨機去掉神經(jīng)網(wǎng)絡(luò)中的某些神經(jīng)元達到優(yōu)化訓練過程(http://www.cnblogs.com/dupuleng/articles/4341265.html)
網(wǎng)絡(luò)結(jié)構(gòu):各種cnn模型(Inception v1,v2,v3等)
有錯誤的話歡迎指正~
總結(jié)
以上是生活随笔為你收集整理的一天搞懂深度学习—学习笔记1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery ajax json转换出错
- 下一篇: 一天搞懂深度学习