大綱
- 深度學(xué)習(xí)介紹
- 深度學(xué)習(xí)訓(xùn)練的技巧
- 神經(jīng)網(wǎng)絡(luò)的變體
- 展望
深度學(xué)習(xí)介紹
深度學(xué)習(xí)介紹
深度學(xué)習(xí)屬于機(jī)器學(xué)習(xí)的一種艾船。介紹深度學(xué)習(xí)之前,我們先大致了解一下機(jī)器學(xué)習(xí)拂苹。
機(jī)器學(xué)習(xí)厨剪,拿監(jiān)督學(xué)習(xí)為例,其本質(zhì)上是要找到一個(gè)函數(shù)映射:輸入數(shù)據(jù)(也就是訓(xùn)練樣本)通過(guò)函數(shù)映射(也就是我們的機(jī)器學(xué)習(xí)算法)到輸出空間上(也就是目標(biāo)值难裆,如果是分類問(wèn)題子檀,映射到某一類上)。
$$Meachine Learning \approx LookingFor A Function.$$
那么我們?nèi)绾螐囊粋€(gè)函數(shù)空間里找到目標(biāo)函數(shù)呢乃戈?這里必然存在一個(gè)指標(biāo)來(lái)評(píng)價(jià)映射函數(shù)的好壞褂痰,比如說(shuō):準(zhǔn)確率,錯(cuò)誤率等等症虑。通過(guò)這個(gè)最優(yōu)化數(shù)據(jù)指標(biāo)我們就能找到 最好的映射函數(shù)缩歪,也就是機(jī)器學(xué)習(xí)里的算法模型。
所以谍憔,機(jī)器學(xué)習(xí)模型訓(xùn)練過(guò)程主要有三個(gè)階段:
- 確定模型匪蝙,從而確定函數(shù)映射空間主籍;
- 將訓(xùn)練數(shù)據(jù)應(yīng)用于函數(shù)空間,對(duì)模型進(jìn)行訓(xùn)練逛球;
-
找出最好的模型千元;
之后,我們可以將訓(xùn)練好的模型應(yīng)用到unseen data上(這也是我們最終的目的)颤绕。
這樣诅炉,我們也可以大致推斷出深度學(xué)習(xí)的構(gòu)建過(guò)程:
神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)由一系列神經(jīng)元通過(guò)相互連接而形成。因此屋厘,在深入理解神經(jīng)網(wǎng)絡(luò)之前涕烧,先了解一下什么是神經(jīng)元?
神經(jīng)元本質(zhì)上是一個(gè)簡(jiǎn)單函數(shù)汗洒,其函數(shù)形式為:
$$f = \sigma(z);$$
$$z = a_1w_1+a_2w_2+a_iw_i+...+a_Kw_K+b;$$
其中议纯,$\sigma函數(shù)$屬于一個(gè)激活函數(shù),$z$是一個(gè)線性函數(shù)溢谤,其結(jié)果可以是任意值瞻凤,通過(guò)激活函數(shù),給模型帶來(lái)非線性因素,增加模型的表達(dá)能力世杀;通常情況下阀参,線性模型的表達(dá)能力不夠。
神經(jīng)元的$w_i$和$b$就是神經(jīng)元模型的訓(xùn)練參數(shù)瞻坝;參數(shù)不同蛛壳,形成的神經(jīng)元也不相同。
神經(jīng)元的不同連接方式形成的網(wǎng)絡(luò)架構(gòu)也各不相同所刀。神經(jīng)網(wǎng)絡(luò)的參數(shù)包括所有神經(jīng)元的$w_i(weights)$和$b(biases)$衙荐。
如果說(shuō),一個(gè)神經(jīng)元是一個(gè)簡(jiǎn)單函數(shù)$function$浮创,那么神經(jīng)網(wǎng)絡(luò)就是一個(gè)簡(jiǎn)單函數(shù)集$a,function,set$.
深度學(xué)習(xí)中的“深度”是指神經(jīng)網(wǎng)絡(luò)的層數(shù)有很多忧吟。
神經(jīng)網(wǎng)絡(luò)可以用在識(shí)別手寫(xiě)數(shù)字。
FAQ:
Q:設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)時(shí)斩披,多少層合適溜族?每層多少個(gè)神經(jīng)元合適?
$$Trial;and;error + Intuition(隨緣垦沉,多試)$$
評(píng)測(cè)模型好壞goodness of function
以手寫(xiě)數(shù)字識(shí)別為例煌抒,首先我們知道這是一個(gè)監(jiān)督學(xué)習(xí)問(wèn)題;其訓(xùn)練數(shù)據(jù)為實(shí)現(xiàn)收集的手寫(xiě)數(shù)字和標(biāo)簽乡话;最終達(dá)到輸入一個(gè)手寫(xiě)的數(shù)字能給出其所屬的類別(0-9)摧玫。
之前我們定義的函數(shù)集合耳奕,如何評(píng)價(jià)這個(gè)函數(shù)集合(模型)表現(xiàn)如何呢绑青?所以需要定義一個(gè)評(píng)價(jià)指標(biāo)诬像。這里定義的評(píng)價(jià)指標(biāo)為L(zhǎng)oss函數(shù),指輸出值和真實(shí)值之間的差距(可以通過(guò)計(jì)算兩個(gè)值之間的距離來(lái)表示)闸婴。最終我們通過(guò)優(yōu)化在所有數(shù)據(jù)上的總損失Loss來(lái)找到最優(yōu)的模型坏挠!本質(zhì)上就是通過(guò)最小化Loss函數(shù)來(lái)找到最合適的$參數(shù)\theta^*$,從而確定最優(yōu)化的模型邪乍。
怎么找到最優(yōu)化的參數(shù)$\theta^* pick the best function$
最先引入腦海的方法就是窮舉法降狠,把所有可能的取值都試一次。這種方法肯定不可缺永恪榜配!因?yàn)椋ǔG闆r下深度學(xué)習(xí)模型層數(shù)不止3層吕晌,而每層的神經(jīng)元又有很多蛋褥,導(dǎo)致最后要優(yōu)化的參數(shù)也是一個(gè)非常大的數(shù)字。
方法一:Gradient Descent 梯度下降算法
這種方法存在的一個(gè)問(wèn)題:最后求解出來(lái)的最小值睛驳,不是全局最小值烙心,而是局部最小值。
同時(shí)乏沸,由于初始的權(quán)重系數(shù)$w_i$是隨機(jī)選取的淫茵,導(dǎo)致最后的最優(yōu)化結(jié)果也各不相同。
方法二:Backpropagation 反向傳播算法
Caffe蹬跃,TensorFlow等都支持的這種求解方法匙瘪。
為什么模型總是越來(lái)越長(zhǎng),而不是越來(lái)越胖蝶缀?
Deeper is Better.
一般而言辆苔,參數(shù)越多,模型表現(xiàn)效果越好扼劈。
實(shí)驗(yàn)數(shù)據(jù)來(lái)自:Seide, Frank, Gang Li, and Dong Yu. "Conversational Speech Transcription
Using Context-Dependent Deep Neural Networks." Interspeech. 2011
對(duì)于任意的連續(xù)函數(shù)$f$,定義為:
$$f : R^N\to R^M$$
理論上來(lái)講驻啤,這種能由深度學(xué)習(xí)解決的問(wèn)題,也可以通過(guò)有一個(gè)隱藏層的網(wǎng)絡(luò)模型來(lái)解決(給它足夠多的神經(jīng)元)荐吵。但是為什么不采用這種方法呢骑冗?
[圖片上傳失敗...(image-ef17b6-1523368731320)]
實(shí)驗(yàn)效果并不好?為什么不好先煎?
論文:Learning Functions: When Is Deep Better Than
Shallow(還沒(méi)有看贼涩!)一種理由是說(shuō)deep models可以抽取更多的特征相比于Fat models。