Deep Learning Tutorial 李宏毅(一)深度學(xué)習(xí)介紹

大綱

  1. 深度學(xué)習(xí)介紹
  2. 深度學(xué)習(xí)訓(xùn)練的技巧
  3. 神經(jīng)網(wǎng)絡(luò)的變體
  4. 展望

深度學(xué)習(xí)介紹

深度學(xué)習(xí)介紹

深度學(xué)習(xí)屬于機器學(xué)習(xí)的一種。介紹深度學(xué)習(xí)之前,我們先大致了解一下機器學(xué)習(xí)。
機器學(xué)習(xí),拿監(jiān)督學(xué)習(xí)為例,其本質(zhì)上是要找到一個函數(shù)映射:輸入數(shù)據(jù)(也就是訓(xùn)練樣本)通過函數(shù)映射(也就是我們的機器學(xué)習(xí)算法)到輸出空間上(也就是目標(biāo)值,如果是分類問題,映射到某一類上)。
$$Meachine Learning \approx LookingFor A Function.$$
那么我們?nèi)绾螐囊粋€函數(shù)空間里找到目標(biāo)函數(shù)呢?這里必然存在一個指標(biāo)來評價映射函數(shù)的好壞,比如說:準(zhǔn)確率,錯誤率等等。通過這個最優(yōu)化數(shù)據(jù)指標(biāo)我們就能找到 最好的映射函數(shù),也就是機器學(xué)習(xí)里的算法模型。
所以,機器學(xué)習(xí)模型訓(xùn)練過程主要有三個階段:

  1. 確定模型,從而確定函數(shù)映射空間;
  2. 將訓(xùn)練數(shù)據(jù)應(yīng)用于函數(shù)空間,對模型進(jìn)行訓(xùn)練;
  3. 找出最好的模型;
    之后,我們可以將訓(xùn)練好的模型應(yīng)用到unseen data上(這也是我們最終的目的)。


    圖像識別框架

這樣,我們也可以大致推斷出深度學(xué)習(xí)的構(gòu)建過程:


DL流程

神經(jīng)網(wǎng)絡(luò)

神經(jīng)網(wǎng)絡(luò)由一系列神經(jīng)元通過相互連接而形成。因此,在深入理解神經(jīng)網(wǎng)絡(luò)之前,先了解一下什么是神經(jīng)元?
神經(jīng)元本質(zhì)上是一個簡單函數(shù),其函數(shù)形式為:
$$f = \sigma(z);$$
$$z = a_1w_1+a_2w_2+a_iw_i+...+a_Kw_K+b;$$
其中,$\sigma函數(shù)$屬于一個激活函數(shù),$z$是一個線性函數(shù),其結(jié)果可以是任意值,通過激活函數(shù),給模型帶來非線性因素,增加模型的表達(dá)能力;通常情況下,線性模型的表達(dá)能力不夠。
神經(jīng)元的$w_i$和$b$就是神經(jīng)元模型的訓(xùn)練參數(shù);參數(shù)不同,形成的神經(jīng)元也不相同。


神經(jīng)元模型

神經(jīng)元的不同連接方式形成的網(wǎng)絡(luò)架構(gòu)也各不相同。神經(jīng)網(wǎng)絡(luò)的參數(shù)包括所有神經(jīng)元的$w_i(weights)$和$b(biases)$。
如果說,一個神經(jīng)元是一個簡單函數(shù)$function$,那么神經(jīng)網(wǎng)絡(luò)就是一個簡單函數(shù)集$a,function,set$.
深度學(xué)習(xí)中的“深度”是指神經(jīng)網(wǎng)絡(luò)的層數(shù)有很多。
神經(jīng)網(wǎng)絡(luò)可以用在識別手寫數(shù)字。

手寫字體識別

FAQ:
Q:設(shè)計神經(jīng)網(wǎng)絡(luò)時,多少層合適?每層多少個神經(jīng)元合適?
$$Trial;and;error + Intuition(隨緣,多試)$$

評測模型好壞goodness of function

以手寫數(shù)字識別為例,首先我們知道這是一個監(jiān)督學(xué)習(xí)問題;其訓(xùn)練數(shù)據(jù)為實現(xiàn)收集的手寫數(shù)字和標(biāo)簽;最終達(dá)到輸入一個手寫的數(shù)字能給出其所屬的類別(0-9)。
之前我們定義的函數(shù)集合,如何評價這個函數(shù)集合(模型)表現(xiàn)如何呢?所以需要定義一個評價指標(biāo)。這里定義的評價指標(biāo)為Loss函數(shù),指輸出值和真實值之間的差距(可以通過計算兩個值之間的距離來表示)。最終我們通過優(yōu)化在所有數(shù)據(jù)上的總損失Loss來找到最優(yōu)的模型!本質(zhì)上就是通過最小化Loss函數(shù)來找到最合適的$參數(shù)\theta^*$,從而確定最優(yōu)化的模型。

怎么找到最優(yōu)化的參數(shù)$\theta^* pick the best function$

最先引入腦海的方法就是窮舉法,把所有可能的取值都試一次。這種方法肯定不可取!因為,通常情況下深度學(xué)習(xí)模型層數(shù)不止3層,而每層的神經(jīng)元又有很多,導(dǎo)致最后要優(yōu)化的參數(shù)也是一個非常大的數(shù)字。
方法一:Gradient Descent 梯度下降算法


梯度下降算法

這種方法存在的一個問題:最后求解出來的最小值,不是全局最小值,而是局部最小值。
同時,由于初始的權(quán)重系數(shù)$w_i$是隨機選取的,導(dǎo)致最后的最優(yōu)化結(jié)果也各不相同。
方法二:Backpropagation 反向傳播算法
Caffe,TensorFlow等都支持的這種求解方法。

為什么模型總是越來越長,而不是越來越胖?

Deeper is Better.
一般而言,參數(shù)越多,模型表現(xiàn)效果越好。

Deep is better

實驗數(shù)據(jù)來自:Seide, Frank, Gang Li, and Dong Yu. "Conversational Speech Transcription
Using Context-Dependent Deep Neural Networks." Interspeech. 2011

對于任意的連續(xù)函數(shù)$f$,定義為:
$$f : R^N\to R^M$$
理論上來講,這種能由深度學(xué)習(xí)解決的問題,也可以通過有一個隱藏層的網(wǎng)絡(luò)模型來解決(給它足夠多的神經(jīng)元)。但是為什么不采用這種方法呢?
[圖片上傳失敗...(image-ef17b6-1523368731320)]
實驗效果并不好?為什么不好?
論文:Learning Functions: When Is Deep Better Than
Shallow
(還沒有看!)一種理由是說deep models可以抽取更多的特征相比于Fat models。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作業(yè)1 被公舉為“群花”不是沒有道理的:深陷的眼窩里嵌著一雙熟透的黑玫瑰葡萄似的眼睛,雖不長卻自然上挑的如黛的眉毛...
    同處當(dāng)下閱讀 289評論 3 0
  • 那位女運動員,受到了機場的服務(wù)員的鼓勵!她的心里重新充滿了自信,她再次登上金碧輝煌的舞臺。但她心里還是有些緊張。她...
    小子家閱讀 416評論 1 3
  • 前不久看書,讀到這樣一句――我始終認(rèn)為,一個人可以很天真簡單的活下去,必是身邊無數(shù)人,用更大的代價守護(hù)而來的...
    大寶的兔子閱讀 1,163評論 2 2
  • 一絲 一談 一想 一念 馬蹄踏踏終究掩不住黃沙 銅鏡冷冷卻是蓋不住芳華
    謝噠噠閱讀 201評論 2 1

友情鏈接更多精彩內(nèi)容