佳木斯湛栽影视文化发展公司

主頁 > 知識(shí)庫 > 如何學(xué)習(xí)人工智能?

如何學(xué)習(xí)人工智能?

熱門標(biāo)簽:黑龍江電銷 平?jīng)鲭婁N 廊坊電銷 安順電銷 三亞電銷 梧州電銷 潛江電銷 天津電銷

你有沒有想做一件事,睡不著覺的沖動(dòng),有沒有想做一件事,在睜眼的那一刻就能起來的毅力。這兩樣你都有,那你可以好好學(xué)習(xí)這個(gè)。真的是持之以恒。

不管是AI也好,其他學(xué)科也好,學(xué)習(xí)、研究的過程中不斷反思學(xué)科的歷史,總結(jié)學(xué)科的發(fā)展現(xiàn)狀,找出最重要的理念,總能讓人能“吾道一以貫之”。軟件工程師James Le近期根據(jù)他研究的經(jīng)驗(yàn)總結(jié)出了AI研究必須要知道的十種深度學(xué)習(xí)方法,非常具有啟發(fā)性。AI科技評(píng)論編譯如下。

The 10 Deep Learning Methods AI Practitioners Need to Apply

人們對(duì)機(jī)器學(xué)習(xí)的興趣在過去十年經(jīng)歷了爆炸式的發(fā)展。計(jì)算機(jī)科學(xué)項(xiàng)目中、業(yè)界會(huì)議中、媒體報(bào)道中,你都能夠看到機(jī)器學(xué)習(xí)的影子。但是似乎所有關(guān)于機(jī)器學(xué)習(xí)的討論中,人們常常會(huì)把AI能做什么和他們希望AI能做什么混為一談。

從根本上來講,機(jī)器學(xué)習(xí)其實(shí)就是使用算法從原始數(shù)據(jù)中提取信息,并以某種類型的模型表示出來;然后我們使用這個(gè)模型來推斷我們尚未建模的其他數(shù)據(jù)。

神經(jīng)網(wǎng)絡(luò)作為機(jī)器學(xué)習(xí)的一類模型,它們已經(jīng)存在了至少50年。神經(jīng)網(wǎng)絡(luò)的基本單元是節(jié)點(diǎn),大致上模仿了哺乳動(dòng)物大腦中的生物神經(jīng)元的節(jié)點(diǎn);節(jié)點(diǎn)之間的鏈接(也是模仿生物大腦)隨著時(shí)間的推移(訓(xùn)練)而演化。

在上世紀(jì)八十年代中期和九十年代早期,許多重要的神經(jīng)網(wǎng)絡(luò)構(gòu)架都已經(jīng)做出了,不過要想獲得好的結(jié)果還需要足夠強(qiáng)大的計(jì)算能力和大體量的數(shù)據(jù)集,這些當(dāng)時(shí)在當(dāng)時(shí)很不理想,所以也導(dǎo)致人們對(duì)機(jī)器學(xué)習(xí)的熱情逐漸冷淡了下來。在21世紀(jì)初,計(jì)算機(jī)的計(jì)算能力呈現(xiàn)了指數(shù)級(jí)的增長(zhǎng)——業(yè)界見證了計(jì)算機(jī)技術(shù)的“寒武紀(jì)大爆發(fā)”,這在之前幾乎是不可想象的。深度學(xué)習(xí)作為這個(gè)領(lǐng)域中一個(gè)重要的架構(gòu),在計(jì)算能力爆發(fā)式增長(zhǎng)的十年中,贏得了許多重要的機(jī)器學(xué)習(xí)競(jìng)賽。這個(gè)紅利的熱度直到今年仍未降溫;今天,我們看到在機(jī)器學(xué)習(xí)的每個(gè)角落里都會(huì)提到深度學(xué)習(xí)。

為了更深入地了解這些,我參加了一門“深度學(xué)習(xí)”課程,并開發(fā)了一個(gè)圖像識(shí)別的神經(jīng)網(wǎng)絡(luò)以及基于循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)和長(zhǎng)短項(xiàng)記憶(LSTM)的自然語言處理??梢匀ノ业腉ithub倉(cāng)庫中查看這些代碼:

最近,我也開始閱讀一些深度學(xué)習(xí)方面的學(xué)術(shù)論文。下面這些是我收集到的幾篇對(duì)深度學(xué)習(xí)領(lǐng)域的發(fā)展有重大影響的幾篇論文:

1、Gradient-Based Learning Applied to Document Recognition (1998)

意義:向機(jī)器學(xué)習(xí)世界引進(jìn)了卷積神經(jīng)網(wǎng)絡(luò)

作者:Yann LeCun, Leon Bottou, Yoshua Bengio, and Patrick Haffner

2、Deep Boltzmann 電銷機(jī)器人hines (2009)

意義:為玻爾茲曼機(jī)提出了一種新的學(xué)習(xí)算法,其中包含許多隱藏變量層。

作者:Ruslan Salakhutdinov, Geoffrey Hinton

3、Building High-Level Features Using Large-Scale Unsupervised Learning (2012)

意義:解決了僅從未標(biāo)記的數(shù)據(jù)構(gòu)建高層次、特定類別的特征檢測(cè)器的問題。

作者:Quoc V. Le,Marc’Aurelio Ranzato,Rajat Monga,Matthieu Devin,Kai Chen,Greg S. Corrado,Jeff Dean,Andrew Y. Ng

4、DeCAF?—?A Deep Convolutional Activation Feature for Generic Visual Recognition (2013)

意義:釋放了一個(gè)深度卷積激活特征的開源實(shí)現(xiàn)——DeCAF,以及所有相關(guān)的網(wǎng)絡(luò)參數(shù),使視覺研究人員能夠深入地在一系列視覺概念學(xué)習(xí)范例中進(jìn)行實(shí)驗(yàn)。

作者:Jeff Donahue,Yangqing Jia,Oriol Vinyals,Judy Hoffman,Ning Zhang,Eric Tzeng,Trevor Darrell

5、Playing Atari with Deep Reinforcement Learning (2016)

~vmnih/docs/dqn.pdf

意義:提供了第一個(gè)可以使用強(qiáng)化學(xué)習(xí)從高維感官輸入中直接學(xué)習(xí)控制策略的深度學(xué)習(xí)模型。

作者:Volodymyr Mnih,Koray Kavukcuoglu,David Silver,Alex Graves,Ioannis Antonoglou,Daan Wierstra,Martin Riedmiller(DeepMind 團(tuán)隊(duì))

在這些學(xué)習(xí)和研究中,我發(fā)現(xiàn)大量非常有意思的知識(shí)點(diǎn)。在這里我將分享十個(gè)深度學(xué)習(xí)的方法,AI工程師可能會(huì)將這些應(yīng)用到他們的機(jī)器學(xué)習(xí)問題當(dāng)中。

不過,首先先讓我們來定義一下什么是“深度學(xué)習(xí)”。對(duì)很多人來說,給“深度學(xué)習(xí)”下一個(gè)定義確實(shí)很有挑戰(zhàn),因?yàn)樵谶^去的十年中,它的形式已經(jīng)慢慢地發(fā)生了很大的變化。

先來在視覺上感受一下“深度學(xué)習(xí)”的地位。下圖是AI、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)三個(gè)概念的一個(gè)關(guān)系圖。

AI的領(lǐng)域要相對(duì)較廣泛,機(jī)器學(xué)習(xí)是AI的一個(gè)子領(lǐng)域,而深度學(xué)習(xí)是機(jī)器學(xué)習(xí)領(lǐng)域中的一個(gè)子集。

深度學(xué)習(xí)網(wǎng)絡(luò)與“典型”的前饋多層網(wǎng)絡(luò)之間是有一些區(qū)別的,如下:

因此深度學(xué)習(xí)可以被定義為在以下四個(gè)基本網(wǎng)絡(luò)框架中擁有大量參數(shù)和層的神經(jīng)網(wǎng)絡(luò):

在這篇文章中,我主要對(duì)后三個(gè)框架比較感興趣。

卷積神經(jīng)網(wǎng)絡(luò) 基本上就是用共享權(quán)重在空間中進(jìn)行擴(kuò)展的標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò)。設(shè)計(jì)CNN主要是為了通過內(nèi)部卷積來識(shí)別圖片,內(nèi)部卷積可以看到待識(shí)別物體的邊。

循環(huán)神經(jīng)網(wǎng)絡(luò) 基本上是在時(shí)間上進(jìn)行擴(kuò)展的標(biāo)準(zhǔn)神經(jīng)網(wǎng)絡(luò),因?yàn)檫呥M(jìn)入下一個(gè)時(shí)間步,而不是在同一時(shí)間步進(jìn)入下一個(gè)層。設(shè)計(jì)RNN主要是為了識(shí)別序列,例如語音信號(hào)或者文本。它里面的循環(huán)意味著網(wǎng)絡(luò)中存在短暫的記憶。

遞歸神經(jīng)網(wǎng)絡(luò) 更類似于分層網(wǎng)絡(luò),其中輸入序列沒有真正的時(shí)間面,而是輸入必須以樹狀方式分層處理。

以下10種方法可以應(yīng)用于所有這些體系結(jié)構(gòu)。

1、反向傳播

反向傳播是“誤差反向傳播”的簡(jiǎn)稱,它是一種計(jì)算函數(shù)(在神經(jīng)網(wǎng)絡(luò)中以函數(shù)形式存在)偏微分的方法。當(dāng)你要用一個(gè)基于梯度的方法來解決一個(gè)最優(yōu)問題時(shí)(注意梯度下降只是解決這類問題的一種方法),你希望在每一次迭代中計(jì)算函數(shù)梯度。

對(duì)于神經(jīng)網(wǎng)絡(luò)而言,目標(biāo)函數(shù)具有合成的形式。那么如何計(jì)算梯度呢?一般情況下有兩種常見的方法:

1)微分分析法。當(dāng)你知道這個(gè)函數(shù)的形式時(shí),你只需要用鏈?zhǔn)椒▌t計(jì)算導(dǎo)數(shù)即可;

2)用有限差分方法來近似微分。這種方法的計(jì)算量很大,因?yàn)楹瘮?shù)評(píng)估的數(shù)量是O(N),其中N是參數(shù)的數(shù)量。與微分分析法相比,這是比較昂貴的。不過,有限差分通常在調(diào)試時(shí)驗(yàn)證后端實(shí)現(xiàn)。

2、隨機(jī)梯度下降

一個(gè)直觀理解梯度下降的方法是去想象一條溯源山頂?shù)暮恿?。這條河流會(huì)沿著山勢(shì)梯度的方向流向山麓下的最低點(diǎn)。

如果讓人來走,可能就不一樣了,你可能會(huì)先隨便選一個(gè)方向,然后沿著這個(gè)方向的梯度向下走;過一會(huì)兒再隨機(jī)換一個(gè)方向向下走;最后你發(fā)現(xiàn)自己差不多也到了谷底了。

數(shù)學(xué)化的理解就是:

隨機(jī)梯度下降主要用來求解類似于如下求和形式的優(yōu)化問題:

梯度下降法:

當(dāng)n很大時(shí),每次迭代計(jì)算所有的梯度會(huì)非常耗時(shí)。隨機(jī)梯度下降的想法就是每次在Delta f_i 中隨機(jī)選取一個(gè)計(jì)算代替上面的Delta f_i,以這個(gè)隨機(jī)選取的方向作為下降的方向。這樣的方法反而比梯度下降能夠更快地到達(dá)(局部)最優(yōu)解。

3、學(xué)習(xí)率衰減

在訓(xùn)練模型的時(shí)候,通常會(huì)遇到這種情況:我們平衡模型的訓(xùn)練速度和損失(loss)后選擇了相對(duì)合適的學(xué)習(xí)率(learning rate),但是訓(xùn)練集的損失下降到一定的程度后就不在下降了,比如training loss一直在0.7和0.9之間來回震蕩,不能進(jìn)一步下降。如下圖所示:

遇到這種情況通??梢酝ㄟ^適當(dāng)降低學(xué)習(xí)率(learning rate)來實(shí)現(xiàn)。但是,降低學(xué)習(xí)率又會(huì)延長(zhǎng)訓(xùn)練所需的時(shí)間。

學(xué)習(xí)率衰減(learning rate decay)就是一種可以平衡這兩者之間矛盾的解決方案。學(xué)習(xí)率衰減的基本思想是:學(xué)習(xí)率隨著訓(xùn)練的進(jìn)行逐漸衰減。

學(xué)習(xí)率衰減基本有兩種實(shí)現(xiàn)方法:

4、dropout

在當(dāng)前的大規(guī)模神經(jīng)網(wǎng)絡(luò)中有兩個(gè)缺點(diǎn):

Dropout 可以很好地解決這個(gè)問題。Dropout說的簡(jiǎn)單一點(diǎn)就是在前向傳導(dǎo)的時(shí)候,讓某個(gè)神經(jīng)元的激活值以一定的概率p停止工作,示意圖如下:

每次做完dropout,相當(dāng)于從原始的網(wǎng)絡(luò)中找到一個(gè)更瘦的網(wǎng)絡(luò)。

Hinton在其論文中做了這樣的類比,無性繁殖可以保留大段的優(yōu)秀基因,而有性繁殖則將基因隨機(jī)拆了又拆,破壞了大段基因的聯(lián)合適應(yīng)性;但是自然選擇了有性繁殖,物競(jìng)天擇,適者生存人工智能,可見有性繁殖的強(qiáng)大。dropout 也能達(dá)到同樣的效果,它強(qiáng)迫一個(gè)神經(jīng)單元,和隨機(jī)挑選出來的其他神經(jīng)單元共同工作,消除減弱了神經(jīng)元節(jié)點(diǎn)間的聯(lián)合適應(yīng)性,增強(qiáng)了泛化能力。

5、max pooling

池化(Pooling)是卷積神經(jīng)網(wǎng)絡(luò)中另一個(gè)重要的概念,它實(shí)際上是一種形式的向下采樣。有多種不同形式的非線性池化函數(shù),而其中“最大池化(Max pooling)”是最為常見的。它是將輸入的圖像劃分為若干個(gè)矩形區(qū)域,對(duì)每個(gè)子區(qū)域輸出最大值。

直覺上,這種機(jī)制能夠有效地原因在于,在發(fā)現(xiàn)一個(gè)特征之后,它的精確位置遠(yuǎn)不及它和其他特征的相對(duì)位置的關(guān)系重要。池化層會(huì)不斷地減小數(shù)據(jù)的空間大小,因此參數(shù)的數(shù)量和計(jì)算量也會(huì)下降,這在一定程度上也控制了過擬合。通常來說,CNN的卷積層之間都會(huì)周期性地插入池化層。

6、批標(biāo)準(zhǔn)化

包括深度網(wǎng)絡(luò)在內(nèi)的神經(jīng)網(wǎng)絡(luò)需要仔細(xì)調(diào)整權(quán)重初始化和學(xué)習(xí)參數(shù)。批標(biāo)準(zhǔn)化使這些變得輕松許多。

權(quán)重問題:

在反向傳播過程中,這些現(xiàn)象會(huì)導(dǎo)致梯度彌散。這就意味著在學(xué)習(xí)權(quán)重產(chǎn)生所需要的輸出前,必須對(duì)梯度的異常值進(jìn)行補(bǔ)償,這將導(dǎo)致需要額外的時(shí)段來收斂。

批量歸一化使這些梯度從分散到正常值并在小批量范圍內(nèi)流向共同目標(biāo)(通過歸一化)。

學(xué)習(xí)率問題:一般來說,學(xué)習(xí)率需要保持較低的值,使得只有一小部分的梯度來校正權(quán)重,原因是要使異常激活的梯度不影響已學(xué)習(xí)到的激活。通過批量標(biāo)準(zhǔn)化,可以減少這些異常激活,因此也就可以使用更高的學(xué)習(xí)率來加速學(xué)習(xí)過程。

7、long short-term memory

LSTM網(wǎng)絡(luò)具有以下三個(gè)方面,使其與循環(huán)神經(jīng)網(wǎng)絡(luò)中的常見神經(jīng)元不同:

1)它能夠決定何時(shí)讓輸入進(jìn)入神經(jīng)元;

2)它能夠決定何時(shí)記住上一個(gè)時(shí)間步中計(jì)算的內(nèi)容;

3)它決定何時(shí)讓輸出傳遞到下一個(gè)時(shí)間步。

LSTM的美妙之處在于它能夠根據(jù)當(dāng)前的輸入本身來決定所有這些。 所以你看下面的圖表:

當(dāng)前時(shí)間的輸入信號(hào)x(t)決定所有上述3個(gè)點(diǎn)。 輸入門決定點(diǎn)1,遺忘門決定點(diǎn)2,輸出門決定點(diǎn)3。任何一條輸入都能夠采取所有這三個(gè)決定。這種設(shè)計(jì)其實(shí)是受到了我們大腦如何工作的啟發(fā),并且可以基于輸入來處理突然的上下文切換。

8、skip-gram

詞嵌入模型的目標(biāo)是為每個(gè)詞項(xiàng)學(xué)習(xí)一個(gè)高維密集表示,其中嵌入向量之間的相似性顯示了相應(yīng)詞之間的語義或句法相似性。 Skip-gram是一個(gè)學(xué)習(xí)詞嵌入算法的模型。

skip-gram模型(以及許多其他的詞語嵌入模型)背后的主要思想如下:兩個(gè)詞項(xiàng)相似,如果它們共享相似的上下文。

換句話說,假設(shè)你有一個(gè)句子,例如“貓是哺乳動(dòng)物”;如果你用“狗”而不是“貓”,這個(gè)句子還是一個(gè)有意義的句子。因此在這個(gè)例子中,“狗”和“貓”可以共享相同的上下文(即“是哺乳動(dòng)物”)。

基于上述假設(shè),你可以考慮一個(gè)上下文窗口(一個(gè)包含k個(gè)連續(xù)項(xiàng)的窗口),然后你跳過其中一個(gè)單詞,試著去學(xué)習(xí)一個(gè)能夠得到除跳過項(xiàng)外的所有項(xiàng)的神經(jīng)網(wǎng)絡(luò),并預(yù)測(cè)跳過的這個(gè)項(xiàng)。如果兩個(gè)詞在一個(gè)大語料庫中反復(fù)共享相似的語境,則這些詞的嵌入向量將具有相近的向量。

9、連續(xù)詞袋

在自然語言處理問題中,我們希望學(xué)習(xí)將文檔中的每個(gè)單詞表示為一個(gè)數(shù)字的向量,使得出現(xiàn)在相似的上下文中的單詞具有彼此接近的向量。在連續(xù)的單詞模型中,目標(biāo)是能夠使用圍繞特定單詞的上下文并預(yù)測(cè)特定單詞。

我們通過在一個(gè)大的語料庫中采取大量的句子來做到這一點(diǎn),每當(dāng)我們看到一個(gè)單詞時(shí),我們就提取周圍的單詞。 然后,我們將上下文單詞輸入到一個(gè)神經(jīng)網(wǎng)絡(luò),并預(yù)測(cè)在這個(gè)上下文中間的單詞。

當(dāng)我們有成千上萬個(gè)這樣的上下文單詞和中間詞時(shí),我們就有一個(gè)神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)集的實(shí)例。 我們訓(xùn)練神經(jīng)網(wǎng)絡(luò),最后編碼的隱藏層輸出表示了特定單詞的嵌入。 恰巧,當(dāng)我們對(duì)大量的句子進(jìn)行訓(xùn)練時(shí),類似語境中的單詞得到相似的向量。

10、遷移學(xué)習(xí)

讓我們想一下如何在CNN中處理一張圖片。假設(shè)有一張圖片,你對(duì)它進(jìn)行卷積處理,然后你得到的輸出是像素的組合,我們姑且稱之為“邊”吧。我們?cè)俅问褂镁矸e,這時(shí)候你得到的輸出將是邊的組合,我們稱之為“線”。如果再次使用卷積,那么你將得到線的組合,等等。

每一層都是在尋找相應(yīng)的特定模式。你的神經(jīng)網(wǎng)絡(luò)最后一層一般會(huì)給出非常特定的模式。也許你在處理ImageNet,你的網(wǎng)絡(luò)最后一層可能是在找孩子、狗或飛機(jī)或別的任何東西。如果你向前兩層看,網(wǎng)絡(luò)可能是在找眼睛、耳朵、嘴巴或者輪子。

深度卷積神經(jīng)網(wǎng)絡(luò)中的每一層的深入都是在構(gòu)建越來越高層次的特征表示。最后兩層會(huì)產(chǎn)生你輸入模型的數(shù)據(jù)中的特定模式。換句話說,早期的層提取的特征則廣泛得多,在提取的大量的類中有很多簡(jiǎn)單的模式。

遷移學(xué)習(xí)就是當(dāng)你用一個(gè)數(shù)據(jù)集訓(xùn)練CNN時(shí),砍掉最后的一(些)層,再用另一個(gè)不同的數(shù)據(jù)集重新訓(xùn)練最后一(些)層的模型。直觀地說,你在重新訓(xùn)練模型來識(shí)別不同的高級(jí)層次特征。作為結(jié)果,訓(xùn)練時(shí)間大幅減少。所以當(dāng)你沒有足夠的數(shù)據(jù)或者訓(xùn)練的資源時(shí),遷移學(xué)習(xí)是非常有用的一個(gè)工具。

這篇文章只是展示了這些方法的一般概述。我建議閱讀下面這些文章以獲得對(duì)這些概念更詳細(xì)的解釋:

深度學(xué)習(xí)非常注重技術(shù),而對(duì)每一個(gè)新的想法卻沒有太多具體的解釋。大多數(shù)新的idea只是用實(shí)驗(yàn)結(jié)果來證明它們的工作。深度學(xué)習(xí)就像玩樂高,掌握它有一定的挑戰(zhàn)性人工智能,但是入門還是很容易的。

標(biāo)簽:洛陽 通化 宜賓 桂林 廣安 懷化 連云港 巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《如何學(xué)習(xí)人工智能?》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。

  • 相關(guān)文章
  • 下面列出與本文章《如何學(xué)習(xí)人工智能?》相關(guān)的同類信息!
  • 本頁收集關(guān)于如何學(xué)習(xí)人工智能?的相關(guān)信息資訊供網(wǎng)民參考!
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    长子县| 武冈市| 大名县| 长海县| 安西县| 西吉县| 武穴市| 余庆县| 凤台县| 页游| 利津县| 呼玛县| 遂溪县| 三原县| 茶陵县| 台北市| 离岛区| 巴彦淖尔市| 雷波县| 师宗县| 延长县| 桃源县| 卢湾区| 娱乐| 秭归县| 杭锦旗| 新化县| 灌南县| 子长县| 苍南县| 墨竹工卡县| 华池县| 龙井市| 奉节县| 广西| 襄城县| 江孜县| 呈贡县| 凯里市| 大邑县| 老河口市|