版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系我們

深度學習深幾許

陳林孝
原創(chuàng)
聚焦數(shù)學、物理、人工智能、氣候變化等領(lǐng)域的科普
收藏

相信你一定聽說過“深度學習”,它總是和人工智能一同出現(xiàn),好像各種難以置信的AI成果都因為它。那么,“深度學習”到底是何方神圣?它與AI有什么關(guān)系?

改編一句臺詞,或許可以這樣說:AI有那么多分支,其中一個叫機器學習;機器學習有那么多分支,歷史偏偏選中了深度學習。

什么是機器學習?

以圖像識別為例,把許多張貓和狗的圖片喂給電腦,希望它像人一樣正確判斷出是貓還是狗。這種人類易于完成的任務(wù)由于難以形式化、邏輯化,需要經(jīng)驗,是計算機很難做到的。

現(xiàn)在,我們在貓的圖片上標注“貓”,在狗的圖片上標注“狗”,我們就擁有了一批“已標注數(shù)據(jù)”。我們希望機器能從這些數(shù)據(jù)中自己找到規(guī)律,總結(jié)出區(qū)分貓狗圖片的辦法,這就是機器學習的思想。

我們把喂給計算機的東西叫做“輸入”,計算機給出的結(jié)果叫“輸出”,那么,機器學習就是要讓計算機找到輸入和輸出之間的一座最佳橋梁,從而對于輸入有較準確的輸出,這座橋梁可以看成是一個“函數(shù)”。

機器學習除了可以學習已標注數(shù)據(jù)(即“有監(jiān)督學習”),還可以學習沒有標注的數(shù)據(jù)(即“無監(jiān)督學習”),比如聚類,但我們先不談這個。

機器學習有很多種算法,其中對深度學習有重要意義的是“人工神經(jīng)網(wǎng)絡(luò)”,其典型例子是“多層感知機”(MLP)。人工神經(jīng)網(wǎng)絡(luò)的靈感來自于人腦神經(jīng)元,但它與復雜的人類大腦仍有很多不同。

什么是人工神經(jīng)網(wǎng)絡(luò)?

解決復雜問題往往需要復雜的、非線性的函數(shù)(函數(shù)圖像不是直線),簡單的線性函數(shù)(函數(shù)圖像為直線)最容易運用,卻不能直接解決復雜問題,能不能將復雜的、非線性的函數(shù)用線性函數(shù)表達呢?

人工神經(jīng)網(wǎng)絡(luò)與深度學習有同樣的思想:復雜函數(shù)可以用多個簡單函數(shù)表示,是簡單函數(shù)套簡單函數(shù)套……一直套多個,從而化繁為簡,由簡至繁。

但是線性函數(shù)套線性函數(shù),總歸是線性的,所以最后要套上非線性函數(shù),再輸出。

以單個神經(jīng)元為例,一個神經(jīng)元接收來自多個方向的信號,每個信號都是一個輸入x,但這一串x不是“平等”的,而是有的重要,有的不重要。這就像有一大疊文件,不能一股腦兒都給老板,要分輕重緩急,重要的放上面,不重要的放下面。我們給每個x都乘上一個數(shù)w,重要的x就乘大些的w,不重要的x就乘小些的。把這一串乘積全加起來,重要的x就在總和中占據(jù)重要地位,不重要的則相反。這一串w叫“權(quán)重”。

對神經(jīng)元來說,不是所有信號都會通過神經(jīng)細胞傳輸?shù)胶竺娴?,而是要達到一定的“閥值”才可以通過,信號就像一個跳高運動員,跳過了預定高度就晉級,否則止步。

所以,我們設(shè)定閥值b,讓w乘x乘積的總和減去b,如果差大于零,則通過,否則輸出零。

這個讓信號“跳高”的函數(shù)叫“激活函數(shù)”,上面其實是舉ReLU函數(shù)的例子,此外還有其他的激活函數(shù)。由于此前對x的操作都是線性的,再進行線性操作得到的還是x的線性函數(shù),而不是我們想要的非線性函數(shù),因此,激活函數(shù)一般是非線性的。

一般來說,人工神經(jīng)網(wǎng)絡(luò)會使用多個神經(jīng)元完成任務(wù),神經(jīng)元會一層一層排列。一串x所處的層叫輸入層,最后得到分類結(jié)果的層,叫輸出層。對于已標注數(shù)據(jù),我們只能知道輸入層、輸出層是什么樣的,但在人工設(shè)計了需要多少層、每層幾個神經(jīng)元之后,中間各層的神經(jīng)元上,w、b這些參數(shù)都要機器去學出最優(yōu)值,我們一開始并不知道最終會是什么,于是這些神經(jīng)元所在的層統(tǒng)稱隱藏層。

一串輸入x在經(jīng)過一層神經(jīng)元之后,終于魚躍龍門,到達了下一層。人工神經(jīng)網(wǎng)絡(luò)要求神經(jīng)元不可跨層連接,不可以讓x在幾個神經(jīng)元間走循環(huán)路。

那么,設(shè)計好人工神經(jīng)網(wǎng)絡(luò)之后,怎么讓機器學會區(qū)分貓狗呢?

把所有已標注圖片分為兩類,大類叫“訓練集”,小類叫“測試集”。訓練集用來學習,測試集用來考試。如果學習之后,面對沒學過的數(shù)據(jù)(沒做過的題),準確率在要求范圍內(nèi)(考得好),那么就算學習成功。

剛才說了,從輸入到輸出,每個神經(jīng)元有一串w,一個b,整個網(wǎng)絡(luò)就有幾串w,一串b,這些參數(shù)不靠人教,要機器根據(jù)已標注數(shù)據(jù)學出來。學習的過程,就是求出最佳參數(shù)的過程,從而得到最好的函數(shù),也就是個優(yōu)化問題,求最值。主流方法是梯度下降法,大概意思是:二元函數(shù)好比凹凸不平的跳跳床,如果在床的某個點上,跳跳床凹得最深,這個點就是我們要找的最小值點。從某個點開始,沿著一個方向移動,在這個方向上床變深的速度最快,我們就會找到深凹的點,當有幾個深凹點時,經(jīng)過比較,可求出最小值。

人工神經(jīng)網(wǎng)絡(luò)在圖像識別方面達到了一定水平,但準確率一直難以突破,直到深度學習出現(xiàn)。

什么是深度學習?

深度學習是機器學習的一種,但在圖像、語音識別方面,準確率比其他機器學習算法高許多。它包括多種算法,如卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò),本文主要談深度學習算法的共同特性。

深度學習其實是對人工神經(jīng)網(wǎng)絡(luò)的繼承和超越,它主要改進了兩個方面:1.設(shè)置更多的隱藏層。2.讓機器學習特征,而非人工設(shè)計。

在人工神經(jīng)網(wǎng)絡(luò)時代,如果想要獲得較好的結(jié)果,則需提供大量數(shù)據(jù)進行訓練,并用多層網(wǎng)絡(luò)解決復雜問題,但當時的數(shù)據(jù)量、算力都無法支撐。后來,海量數(shù)據(jù)出現(xiàn),算力大幅提升,才為多層網(wǎng)絡(luò)的訓練提供了可能。

此外,訓練多層神經(jīng)網(wǎng)絡(luò)還要解決“梯度消失”問題,大致是指原有算法中從后向前對多層神經(jīng)網(wǎng)絡(luò)運用梯度下降法,會使前面的層難以更新參數(shù),降低準確率。通過換用更好的激活函數(shù)等方法,人們終于解決了這個問題。

因此有人說,第三次人工智能浪潮是由算法、算力、數(shù)據(jù)三駕馬車拉動的。

深度學習對以往機器學習最重要的超越,也是最重要的特性,是學習特征。在其他機器學習中,訓練時輸入的一串x,其實是特定領(lǐng)域?qū)<以O(shè)計的“特征”,而不是“原圖”。比如要把西瓜分成“好瓜”“壞瓜”,則需了解相關(guān)知識的人告訴我們:要看色澤、根蒂、敲聲,而這些就是西瓜的“特征”。機器通過對特征的描述(如:色澤:青綠;根蒂:蜷縮;敲聲:沉濁),和標注的結(jié)果(好瓜),能學出怎樣的瓜屬于“好瓜”。特征的歸納對學習的效果有重要影響。

人工設(shè)計特征的不足在于:一、模型的框架難以通用,換個問題就要重新設(shè)計特征。二、解決復雜問題往往需要更多特征,特征多到一定程度時,訓練數(shù)據(jù)量要極大增加才能保證準確率,而原有方法無法應對,這被稱為“維數(shù)災難”。

由機器提取特征,不僅是解決這些問題的重要方法,也是機器全自動分析數(shù)據(jù)的大勢所趨。

2006年,辛頓等人提出了一種實現(xiàn)機器提取特征的方法,但更具實用性的例子是卷積神經(jīng)網(wǎng)絡(luò)(CNN)?;贑NN的算法達到的圖像識別準確率已經(jīng)超越了人類平均水平。在CNN中,用于提取特征的是“卷積”過程。一張圖片在計算機眼中,其實是一張數(shù)字表,每個數(shù)字就是一個像素。數(shù)學上,“卷積”和神經(jīng)元中對一串x和w的乘積求和類似。我們把圖片分成很多小塊,每塊的全部像素是一串x,我們再給出一串w,然后每個x與w對應相乘,對這串乘積求和,替換原來的小塊數(shù)表。對于圖片的所有小塊,我們都用同一串w進行同樣操作。此時w叫卷積核。當我們對所有小塊都這樣操作之后,圖片的尺寸縮小了,像素也被聚合了,再進行下一次卷積(本例對應單通道圖片的簡單情形)。簡單說,卷積層的作用就是“聚沙成塔”。這一方法的靈感來自人腦對圖片的感知過程,其實是從邊緣到局部再到整體的,每一次卷積,就使散點聚為邊緣,再聚為形狀,最后,整張圖片的特征就被勾勒出來了。

可以發(fā)現(xiàn),卷積的核心在于卷積核的選取,采用梯度下降等方法,可以找出最好的卷積核,從而實現(xiàn)機器自主提取特征。

深度學習的未解之謎?

深度學習以其通用的框架和多種實用的算法,讓機器直接從經(jīng)驗中學出規(guī)律,在圖像識別、自然語言處理等方面取得了很多成果,但以下幾個問題不容忽視:

1. 魯棒性。如果對圖像施加一些干擾,比如把豬的圖片疊加一些黑白噪聲點,人類看不出任何差別,卻會導致算法誤判。這實際上是抗干擾能力,不少科學家正在解決這一問題。

2. 可解釋性。機器直接從數(shù)據(jù)學出規(guī)律,并以此進行新的決策。但它為什么會得出這樣的結(jié)論,訓練數(shù)據(jù)和規(guī)律之間有何邏輯聯(lián)系,目前還不太清楚,因而被稱為“黑箱”。

3. 對數(shù)據(jù)量和訓練次數(shù)的依賴。當已標注數(shù)據(jù)較少、訓練次數(shù)不多時,深度學習的效果不佳。在硬件算力增長速度下降(摩爾定律近期不斷修改)、部分領(lǐng)域已標注數(shù)據(jù)不足的情況下,擺脫這一限制或成重要方向,目前已有相關(guān)成果,如遷移學習。

深度學習深幾許?今年花勝去年紅。

已知盡處是春山,行人更在春山外!

(圖片來自網(wǎng)絡(luò),部分圖片經(jīng)作者修改)

評論
祥和123
學士級
深度學習是機器學習的一種,但在圖像、語音識別方面,準確率比其他機器學習算法高許多。它包括多種算法,如卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò),本文主要談深度學習算法的共同特性。
2025-01-08
巴依拉
庶吉士級
已讀文章
2025-01-17
寧遠縣陳世權(quán)
太傅級
已閱讀
2025-01-16