|
去年最受矚目的科技詞匯莫過于“人工智能”了,而前一段時間神秘旗手Master的連勝事件再一次把“人工智能”這個話題推到了普通大眾面前。但是,作為一名技術(shù)人員,自然不能和普通人一樣只是看個熱鬧,我和你一樣,對于這項(xiàng)技術(shù)背后的運(yùn)作原理深感興趣。 當(dāng)前人工智能的核心技術(shù)是深度學(xué)習(xí)。而深度學(xué)習(xí)到底為什么能在現(xiàn)實(shí)世界中起作用?為什么給它一堆數(shù)據(jù)它就能從中學(xué)到“知識”?它背后有沒有堅(jiān)實(shí)的數(shù)學(xué)基礎(chǔ)甚至哲學(xué)基礎(chǔ)?這些問題我都很想知道答案。因此,我最近花了不少精力來研究,發(fā)現(xiàn)這項(xiàng)技術(shù)原來與信息論、概率和統(tǒng)計學(xué),都有著密不可分的關(guān)系,很多看似散亂的概念其實(shí)相互之間都有關(guān)聯(lián)。 在這篇文章中,我會嘗試將這些相關(guān)的數(shù)學(xué)原理和概念進(jìn)行總結(jié),在必要時也會深入到一些細(xì)節(jié),但更側(cè)重原理性的描述,希望沒有相關(guān)基礎(chǔ)的讀者也能讀懂大部分內(nèi)容。
我們在平常經(jīng)常聽到一些概念,比如:人工智能、機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)。為了后面描述清晰,我們先用一張圖來表達(dá)這幾個概念之間的包含關(guān)系: 
其中神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)這兩個概念之間的關(guān)系,不同的人有不同的看法。有些人認(rèn)為神經(jīng)網(wǎng)絡(luò)包含深度學(xué)習(xí),深度學(xué)習(xí)就等同于多層的神經(jīng)網(wǎng)絡(luò);另一些人則認(rèn)為這兩個概念是交叉關(guān)系。我們不在這里糾結(jié)這兩個概念,可暫且按前一種看法來理解,這不影響下文的討論。 注:如果你想對神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)有更直觀詳盡的了解,請先參見我的另一篇文章:從三體人列計算機(jī)到神經(jīng)網(wǎng)絡(luò) 下文描述的一些數(shù)學(xué)原理,對于機(jī)器學(xué)習(xí)和深度學(xué)習(xí)大部分情況下都是適用的。
我們在讀大學(xué)本科時一般都學(xué)過概率論,知道隨機(jī)現(xiàn)象可以用概率來表示。但我內(nèi)心深處卻對于與隨機(jī)性相關(guān)的概念一直有一些疑問:隨機(jī)現(xiàn)象到底是事物本質(zhì)上的隨機(jī),還是由于我們對系統(tǒng)缺少足夠的信息而造成的表面現(xiàn)象? 比如說,向空中拋一枚硬幣觀察正面還是反面,我們一般認(rèn)為是一個隨機(jī)現(xiàn)象,用概率的語言來表述就是,我們觀察到正面或反面的概率都是1/2。但是,如果我們能對每一次拋硬幣出手的位置、速度、加速度、周圍的空氣密度以及風(fēng)速等影響因素都能精確了解的話,那么我們就能根據(jù)物理定律對硬幣出手后每一時刻的運(yùn)行狀態(tài)進(jìn)行精確地計算,這樣硬幣落地時是正面還是反面就是個確定性事件,而不是隨機(jī)事件了。因此,我們是不是可以說,拋硬幣帶來的隨機(jī)性,只不過是由于我們對硬幣的信息了解不夠而造成的表面上的隨機(jī)呢? 再舉一個程序員經(jīng)常碰到的例子。比如,我們的計算機(jī)是產(chǎn)生不了真正的隨機(jī)數(shù)的,我們平常調(diào)用的隨機(jī)數(shù)函數(shù)所產(chǎn)生的只不過是個“偽隨機(jī)數(shù)”。如果我們指定了隨機(jī)的種子(seed),那么隨機(jī)函數(shù)輸出的整個序列都是確定的。有時候,偽隨機(jī)數(shù)所暗含的這種“確定性”的特性,甚至可以被用來實(shí)現(xiàn)某些應(yīng)用特性(特別是在游戲?qū)崿F(xiàn)中)。 這有點(diǎn)像是哲學(xué)中決定論的論調(diào)。那么世界上到底有沒有絕對的隨機(jī)現(xiàn)象呢?如果任何隨機(jī)現(xiàn)象都可以用更精確的確定性模型來描述,那么我們還需要概率論這一學(xué)科嗎?《Deep Learning》[1]這本書的作者指出,機(jī)器學(xué)習(xí)經(jīng)常需要處理兩類數(shù)量性質(zhì):隨機(jī)性(Stochasticity)和不確定性(Uncertainty),而它們都需要用概率進(jìn)行描述。書中還總結(jié)了隨機(jī)性和不確定性的三種來源: 內(nèi)在的隨機(jī)性(Inherent stochasticity)。比如,量子力學(xué)認(rèn)為微觀世界里的現(xiàn)象是真正的隨機(jī)現(xiàn)象,而隨機(jī)性是事物固有的、內(nèi)在的特性。那么,有沒有可能存在一種比量子力學(xué)更本質(zhì)的理論,卻是基于確定性的描述呢?這個問題我們恐怕暫時沒有能力回答,這屬于哲學(xué)或者科幻的范疇了。但是,根據(jù)主流科學(xué)家的觀點(diǎn),我們可以暫且認(rèn)為真正意義上的隨機(jī)是存在的,這并不妨礙我們基于概率對一些問題進(jìn)行建模。 不完全觀測(Incomplete observability)。比如我讓你猜硬幣在我的左手還是右手里。對于我來說,我當(dāng)然很確定地知道它在哪只手里,但在你看來,結(jié)果卻是不確定的。因?yàn)槟銢]有我了解的信息多。 不完全建模(Incomplete modeling)。指的是我們的模型(可能為了簡單實(shí)用)忽略了真實(shí)世界的一些信息,所以造成了不確定性。
可見,除了事物內(nèi)在的隨機(jī)性之外,即使我們只是本著簡單實(shí)用的原則,用概率的觀點(diǎn)來看世界也是一種“方便”的方式。 然而,我們平常在編程當(dāng)中,每一個邏輯分支都是嚴(yán)密的、確定的。也正因?yàn)槿绱耍瑐鹘y(tǒng)的編程方式就對解決那些帶有不確定性的、“模糊的”問題不太適用。在一些典型的機(jī)器學(xué)習(xí)任務(wù)中,比如圖像識別,即使圖像模糊一些,模型也應(yīng)該能夠識別正確;再比如語音識別,即使有些噪音,也不應(yīng)該影響模型的判斷。傳統(tǒng)的編程方式?jīng)]法完成這種模糊條件的判斷,它只能給出非對即錯的結(jié)果,而且輸入的微小變動就會造成結(jié)果的劇烈變動。 所以,神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)的模型建立在概率和統(tǒng)計學(xué)之上,也就是順理成章的了。
經(jīng)典統(tǒng)計學(xué)的觀點(diǎn)
在深度學(xué)習(xí)領(lǐng)域,我們解決問題的思路不再是直接針對問題本身進(jìn)行編程,而是先設(shè)計一個能自我學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò),然后把大量的數(shù)據(jù)輸入到這個網(wǎng)絡(luò)中去,這個過程稱為訓(xùn)練。在訓(xùn)練過程中,這個神經(jīng)網(wǎng)絡(luò)能夠從數(shù)據(jù)集(dataset)中學(xué)習(xí)到數(shù)據(jù)的內(nèi)在結(jié)構(gòu)和規(guī)律,從而最終有能力對原問題中新出現(xiàn)的數(shù)據(jù)給出預(yù)測的解。這篇文章《從三體人列計算機(jī)到神經(jīng)網(wǎng)絡(luò)》就給出了對于手寫體數(shù)字圖片進(jìn)行識別這樣的一個具體的例子。 從統(tǒng)計學(xué)的觀點(diǎn)來看,神經(jīng)網(wǎng)絡(luò)用來訓(xùn)練的數(shù)據(jù)集(dataset)相當(dāng)于樣本,而學(xué)習(xí)過程相當(dāng)于對總體信息進(jìn)行估計(屬于統(tǒng)計推斷問題)。 對于無監(jiān)督學(xué)習(xí)(unsupervised learning)來說,每一個輸入樣本是一個向量:x={x1, x2, ..., xn}T,學(xué)習(xí)過程相當(dāng)于要估計出總體的概率分布p(x)。而對于監(jiān)督學(xué)習(xí)(supervised learning)來說,每一個輸入樣本x還對應(yīng)一個期望的輸出值y,稱為label或target,那么學(xué)習(xí)的過程相當(dāng)于要估計出總體的條件概率分布p(y | x)。這樣,當(dāng)系統(tǒng)遇到一個新的樣本x的時候,它就能對應(yīng)地給出預(yù)測值y。 下面我們以監(jiān)督學(xué)習(xí)為例,把學(xué)習(xí)過程看作是統(tǒng)計推斷中的最大似然估計( Maximum Likelihood Estimation)[2]問題來進(jìn)行討論。 假設(shè): 由m個樣本組成的數(shù)據(jù)集記為矩陣X={x(1), x(2), ...,x(m)},對應(yīng)的m個label組成的矩陣Y={y(1), y(2), ...,y(m)}。 pdata表示未知的真實(shí)的分布(true distribution),即pdata(y | x)就是我們要估計的總體條件分布。按照經(jīng)典的統(tǒng)計學(xué),上面m個樣本也都是隨機(jī)變量,它們與pdata(y | x)獨(dú)立同分布。 pmodel(y | x;θ)表示一個概率分布族,是我們定義的模型,用于估計真實(shí)的概率分布pdata(y | x)。它含有未知參數(shù)θ(在神經(jīng)網(wǎng)絡(luò)中,參數(shù)θ代表了權(quán)重w和偏置b),我們機(jī)器學(xué)習(xí)的任務(wù)就是估計合適的θ值,讓pmodel(y | x;θ)盡可能逼近真實(shí)的數(shù)據(jù)分布pdata(y | x)。
那么,似然函數(shù)可以記為pmodel(Y | X;θ),而機(jī)器學(xué)習(xí)的目標(biāo)可以描述為計算參數(shù)θ的最大似然估計θML: 
上面的公式中之所以乘法能改成加法,是因?yàn)樵黾恿艘粋€對數(shù)運(yùn)算,這樣并不影響使似然函數(shù)最大化的參數(shù)θ的選取。 一般來說,上面公式的右邊還可以針對樣本數(shù)量m求平均值,最大似然估計的公式改寫為: 
在深度學(xué)習(xí)領(lǐng)域,我們一般不是通過使似然函數(shù)最大化來估計參數(shù)θ,而是通過定義一個Cost Function來使它最小化的方式進(jìn)行。因此,上面公式右邊部分加上一個負(fù)號就能作為Cost Function。由于它的形式是取對數(shù)的負(fù)數(shù),因此這種形式被稱為negative log-likelihood,簡稱NLL。如下: 
后面我們可以看到,深度學(xué)習(xí)相關(guān)的Cost Function基本都可以使用NLL推導(dǎo)得到。
前面我們從統(tǒng)計學(xué)的觀點(diǎn)分析了機(jī)器學(xué)習(xí)的目標(biāo)本質(zhì),得到了最大似然估計和NLL的形式。它們?yōu)闄C(jī)器學(xué)習(xí)的模型設(shè)計和Cost Function的確定提供了理論依據(jù)。而信息論則提供了另外一個視角。 信息論由Claude Elwood Shannon在1948年所創(chuàng)立,它提供了一種將信息進(jìn)行量化的手段。根據(jù)這門理論我們可以得到信息的最優(yōu)編碼長度。 這里我們首先借用一下"Visual Information Theory[3]"這篇blog所給出的一個具體例子來說明幾個概念。 假設(shè)現(xiàn)在我們要對一份詞匯表進(jìn)行二進(jìn)制編碼。為了簡單起見,這份詞匯表只包含4個單詞,它們分別是: 顯然,每個單詞只需要用2個bit進(jìn)行編碼。下面是一個編碼的例子: 
現(xiàn)在假設(shè)有一位叫Bob的同學(xué),他使用這份詞匯表的時候每個單詞出現(xiàn)的頻率并不是均等的。再假設(shè)他比較喜歡狗,因此使用dog這個單詞的頻率比較高。Bob對于每個單詞的使用頻率(相當(dāng)于單詞出現(xiàn)的概率分布)如下: 
那么,這時2bit的定長編碼就不是最優(yōu)的了??雌饋恚覀儜?yīng)該對出現(xiàn)概率高的單詞采用較短的編碼,而對于出現(xiàn)概率低的單詞采用較長的編碼,這樣就得到了如下的一種變長編碼: 
這次,我們計算一下平均編碼長度為:1 * 1/2 + 2 * 1/4 + 3 * 1/8 + 3 * 1/8 = 1.75bit,少于2bit。 我們可以用信息論中的概念來解釋一下這里的編碼問題。首先,第一個概念,是自信息量(self-information[4]): I(x) = log (1/p(x)) = -log p(x) 它表明了一個隨機(jī)事件中所包含的信息量的多少。其中p(x)表示事件x的出現(xiàn)概率。由這個定義可以看出,某事件發(fā)生的概率越低,那么這個事件真正發(fā)生時它所攜帶的信息量越大。在極端情況下,如果一個事件百分之百發(fā)生,即p(x)=1,那么這個事件的信息量為0;而一個小概率事件一旦發(fā)生,那么它的信息量是巨大的。 在I(x)的定義中,log對數(shù)操作既可以以2為底,也可以以e為底,但它們沒有本質(zhì)區(qū)別,只差一個固定的倍數(shù)。當(dāng)討論信息編碼的時候,采用以2為底比較方便,這時候I(x)的單位是bit;而討論機(jī)器學(xué)習(xí)的時候,以e為底比較方便。 在前面單詞編碼的例子中,"dog"一詞出現(xiàn)的概率為1/2,因此它的自信息量為: I = -log2 (1/2) = 1bit 說明正好用1bit來編碼。同樣計算可以得到,“cat”, "fish", "bird"三個單詞的自信息量分別為2bit, 3bit, 3bit。在前面給出的變長編碼中,各個單詞所使用的二進(jìn)制編碼長度正好等于各自的自信息量的值。 如果I(x)量化了單個事件的信息量,那么計算整個分布p(x)的平均信息量(概率均值),就得到了信息熵(Entropy[5])的概念: H(p) = Ex~p[I(x)] = -Ex~p[log p(x)] = -∑x p(x)*log(p(x)) H(p)可以解釋為:概率分布p(x)所包含的平均信息量。那么,如果對p(x)的各個可能的隨機(jī)事件進(jìn)行二進(jìn)制編碼,那么平均至少也需要這么多個bit。實(shí)際上,針對前面的詞匯表中各個單詞的概率分布,計算H(p)的值恰好也是1.75bit,因此前面給出的這種變長編碼就是最優(yōu)的一種編碼了,再也找不到另外一種編碼可以讓平均編碼長度比信息熵還小。 現(xiàn)在假設(shè)又有一位叫Alice的同學(xué),她也使用這份只有4個單詞的詞匯表,但是她不太喜歡狗,而是比較喜歡貓,因此她使用cat這個單詞的頻率比較高。Alice對于每個單詞的使用頻率如下圖中的右圖所示: 
如果Alice也采用前面給出的變長編碼,那么她使用這同一份詞匯表的平均編碼的長度為:1 * 1/8 + 2 * 1/2 + 3 * 1/4 + 3 * 1/8 = 2.25bit。 信息論中有一個概念,叫做Cross-Entropy[6],正是表達(dá)了類似的含義。它的定義公式如下: H(q,p) = -Ex~q[log p(x)] = -∑x q(x)*log(p(x)) H(q,p)可以理解為:對于符合概率分布q(x)的詞匯表使用p(x)對應(yīng)的最優(yōu)編碼時所得到的平均編碼長度。當(dāng)然,這時對于q(x)來講就肯定算不上最優(yōu)編碼了。 如果運(yùn)用前面Entropy的概念,可以算得Alice的最優(yōu)編碼的平均長度為: H(q) = -∑x q(x)*log(q(x)) = -1/8 * log(1/8) - 1/2 * log(1/2) - 1/4 * log(1/4) - 1/8 * log(1/8) = 1.75bit。 Cross-Entropy與Entropy的差,定義了另外一個概念,叫做Kullback-Leibler (KL) divergence[7]。 DKL(q||p) = H(q,p) - H(q) = -Ex~q[log p(x)] + Ex~q[log q(x)] 它表示符合概率分布q(x)的詞匯表,如果使用p(x)對應(yīng)的最優(yōu)編碼,那么比q(x)自身對應(yīng)的最優(yōu)編碼在平均編碼長度上要多出多少。從更抽象的意義上來講,KL divergence量化了從一個概率分布到另一個概率分布之間的距離。 具體到Bob和Alice的例子中,p(x)和q(x)分別是Bob和Alice的單詞使用概率分布,那么,DKL(q||p)就表示Alice使用Bob的編碼比她使用自己的最優(yōu)編碼平均要多用幾個bit。這個具體的值可以計算出來: DKL(q||p) = H(q,p) - H(q) = 2.25bit - 1.75bit = 0.5bit 回到機(jī)器學(xué)習(xí)的場景當(dāng)中,KL divergence恰好可以用來表示我們定義的模型和樣本數(shù)據(jù)之間的差距。即:DKL(p'data||pmodel) = -Ex~p'data[log pmodel(y|x;θ)] + Ex~p'data[log p'data] 注意,上面式子中pmodel(y|x;θ)是一個概率分布族,也就是我們定義的模型。而p'data是由樣本得到的經(jīng)驗(yàn)分布(empirical distribution),它與待求的真正的數(shù)據(jù)分布pdata還有所不同,兩者之間的差異由樣本數(shù)據(jù)集的大小和質(zhì)量決定。如果暫且不論樣本的質(zhì)量,機(jī)器學(xué)習(xí)的目標(biāo)就可以歸結(jié)為將pmodel(y|x;θ)和p'data之間的差異減小,也就是使DKL(p'data||pmodel)最小化。而這個最小化的過程,其實(shí)就是通過修改參數(shù)θ不斷優(yōu)化pmodel(y|x;θ)的過程。 仔細(xì)觀察上面DKL(p'data||pmodel)的定義,可以看出,對于固定的樣本數(shù)據(jù)來說,第二項(xiàng)是固定的,而只有第一項(xiàng)才包含參數(shù)θ,因此上述第二項(xiàng)在將KL divergence最小化的過程中不起作用。 因此,將KL divergence最小化,就相當(dāng)于將上面式子中的第一項(xiàng)(也就是Cross-Entropy)最小化。這個Cross-Entropy的值記為: H(p'data, pmodel) = -Ex~p'data[log pmodel(y|x;θ)] 再對比上一節(jié)計算得到的NLL(θ)的值: 
可以看出,Cross-Entropy正好等同于NLL,即: H(p'data, pmodel) = NLL(θ) 現(xiàn)在,經(jīng)過了前面結(jié)合統(tǒng)計學(xué)和信息論的分析,我們可以得出結(jié)論:在指導(dǎo)機(jī)器學(xué)習(xí)的優(yōu)化目標(biāo)上,以下四種方式是等價的: 最大似然估計 使NLL最小化 使KL divergence最小化 使Cross-Entropy最小化
這里還需要著重指出的一點(diǎn)是:Cross-Entropy是一個很容易讓人迷惑的概念。很多機(jī)器學(xué)習(xí)或深度學(xué)習(xí)的教程上都把Cross-Entropy當(dāng)成了一種特定的Cost Function,這其中也包括著名的Michael Nielsen的《Neural Networks and Deep Learning》一書[8]。但根據(jù)上面的分析,Cross-Entropy其實(shí)應(yīng)該是一個更基礎(chǔ)的信息論的概念,它指導(dǎo)我們在不同的情況下推導(dǎo)出不同的Cost Function。我們不應(yīng)該把Cross-Entropy當(dāng)做一種特定的Cost Function來對待,這樣不利于知識的融會貫通。
統(tǒng)計學(xué)有兩個流派:頻率學(xué)派和貝葉斯學(xué)派。兩個學(xué)派有很多不同點(diǎn),比如: 在針對機(jī)器學(xué)習(xí)進(jìn)行統(tǒng)計推斷時,前面在經(jīng)典統(tǒng)計學(xué)中的模型p(x ; θ)被看做是包含了未知參數(shù)θ的一個概率分布族。而在貝葉斯推斷中未知參數(shù)θ被看做是隨機(jī)變量,因此,模型可以寫為條件分布的形式:p(x | θ)。 貝葉斯統(tǒng)計是要先計算出后驗(yàn)分布,即: p(θ | x) = p(x | θ) * p(θ) / p(x) 兩邊求對數(shù): log p(θ | x) = log p(x | θ) + log p(θ) - log p(x) 按照最大后驗(yàn)估計(Maximum A Posteriori Estimation, MAP)的思路,上面式子最后一項(xiàng)與θ無關(guān),可以忽略掉。第一項(xiàng)相當(dāng)于經(jīng)典統(tǒng)計學(xué)中的最大似然估計,而第二項(xiàng)log p(θ)是一個先驗(yàn)分布。這個先驗(yàn)分布允許對學(xué)習(xí)過程施加一些人為的經(jīng)驗(yàn)的影響,這些經(jīng)驗(yàn)不依賴于訓(xùn)練數(shù)據(jù)。在某些情況下,這個先驗(yàn)分布可以看成是Regularization的一種形式。
這一小節(jié)會涉及神經(jīng)網(wǎng)絡(luò)的一些技術(shù)細(xì)節(jié),如果你不想太過于深入細(xì)節(jié),本節(jié)內(nèi)容可以跳過。 神經(jīng)網(wǎng)絡(luò)的輸出層與模型pmodel分布的選擇緊密相關(guān),而pmodel確定之后,Cost Function也隨之基本確定了,因此,Cost Function與神經(jīng)網(wǎng)絡(luò)的輸出層之間緊密相關(guān)。 我們先把平常經(jīng)常碰到的一些Cost Function的形式羅列一下,然后挨個看一下它們是否能由前面的最大似然估計來得到。 第一種,比較經(jīng)典的,稱為mean squared error,簡稱MSE: 
其中,a表示網(wǎng)絡(luò)的實(shí)際輸出值,而y(x)是輸入為x的時候,期望的輸出值,即label。y(x)是one-hot code vector的形式,表示一個0和1組成的向量,其中只有1位為1。 第二種,普遍被稱為Cross-Entropy Cost Function。前面我們已經(jīng)提到過,這個概念與信息論里的Cross-Entropy的概念有所沖突。它的定義形式如下: 
第三種,稱為log-likelihood: 
注意上面log-likelihood的表達(dá)式只是針對單個輸入樣本x的形式,最終計算的時候還應(yīng)該針對x求均值。它的意思是:當(dāng)網(wǎng)絡(luò)的輸出層(即第L層)的第y個輸出是期望的輸出(即為1)時,Cost Function是上面公式所描述的形式。 上面第二和第三種Cost Function,在Michael Nielsen的《Neural Networks and Deep Learning》[8]一書的第三章都有提及過。 實(shí)際上,仔細(xì)計算的話,上面三種Cost Function的形式,都可以從最大似然估計得來,或者等價地從NLL、KL divergence或Cross-Entropy得來。 如果將pmodel看成一個高斯分布(即正態(tài)分布)[9],而且輸出單元是線性輸出,就能推導(dǎo)出MSE的形式。 如果將輸出層的每一個輸出單元都看成是Bernoulli分布(即0-1分布)[10],就能推導(dǎo)出所謂的"Cross-Entropy Cost Function"。這時輸出單元一般是Sigmoid神經(jīng)元。 如果將輸出層的多個輸出看成是Multinoulli分布(也稱為Categorical分布)[11],即典型的分類器場景,那么就能推導(dǎo)出log-likelihood形式的Cost Function。這時輸出單元一般采用softmax形式。
這里面有一些細(xì)節(jié)值得注意,比如[12]這篇文章基于信息論的Cross-Entropy概念給出了這樣一種Cost Function: 
首先,這個式子也只是針對單個輸入樣本x的形式。在這個式子中,y'是網(wǎng)絡(luò)期望的輸出值,即label,而且是one-hot code vector的形式。因此,上面這個式子其實(shí)和log-likelihood是一樣的。但如果y'不是one-hot code vector的形式了,那么它在某些場景應(yīng)該還是能這樣計算的,只要仍是輸出一個Multinoulli分布。比如,《Deep Learning》[1]一書的第7章提到的label smoothing機(jī)制,在這種情況下,仍然可以利用上面這個式子計算Cross-Entropy。但要注意,這時就不是像本文前面章節(jié)所講的是最小化p'data和pmodel之間的Cross-Entropy,而是在固定一個輸入樣本的前提下,最小化由多個輸出單元組成的實(shí)際輸出和期望輸出之間的Cross-Entropy了。 在實(shí)際中,由最大似然估計得來的Cost Function,通常帶有NLL的形式(包含對數(shù)),因此它在很多情況下恰好可以與輸出單元激活函數(shù)(activation function)中的指數(shù)形式抵消,從而避免網(wǎng)絡(luò)單元達(dá)到saturation的狀態(tài)。
本文以統(tǒng)計學(xué)和信息論的視角總結(jié)了機(jī)器學(xué)習(xí)和深度學(xué)習(xí)與各學(xué)科之間的關(guān)系,并說明了它們?nèi)绾沃笇?dǎo)優(yōu)化的目標(biāo)。 在討論的過程中,我們會發(fā)現(xiàn),如果將機(jī)器學(xué)習(xí)和深度學(xué)習(xí)比作一座宏偉的大廈的話,統(tǒng)計學(xué)和信息論基礎(chǔ)只是這個大廈的基座。而且這個基礎(chǔ)可能還存在一些薄弱的地方,比如說: 這個基礎(chǔ)告訴我們應(yīng)該盡力優(yōu)化p'data和pmodel之間的差異,但p'data和真正的pdata之間的差異卻不是這個基礎(chǔ)能決定的。這取決于樣本數(shù)據(jù)的質(zhì)量。 pmodel本身的設(shè)計只能憑人的經(jīng)驗(yàn),而沒有堅(jiān)實(shí)的理論支持來指導(dǎo)我們?nèi)绾未_定它。 貝葉斯推斷引入的對于未知參數(shù)的先驗(yàn)分布,仍然主要依賴人的經(jīng)驗(yàn)。
所以,構(gòu)建一個自底層到上層全部堅(jiān)實(shí)的理論大廈,仍然任重而道遠(yuǎn)。 (完)
其它精選文章: 【科普】神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí) 知識的三個層次 技術(shù)的成長曲線 互聯(lián)網(wǎng)風(fēng)雨十年,我所經(jīng)歷的技術(shù)變遷 技術(shù)的正宗與野路子 程序員的宇宙時間線 論人生之轉(zhuǎn)折 Redis為什么用跳表而不用平衡樹? 小白的數(shù)據(jù)進(jìn)階之路
掃碼或長按關(guān)注微信公眾號:張鐵蕾。 有時候?qū)扅c(diǎn)技術(shù)干貨,有時候?qū)扅c(diǎn)有趣的文章。
這個公眾號有點(diǎn)科幻。
|