11.談談判別式模型和生成式模型?
判別方法:由數(shù)據(jù)直接學習決策函數(shù) Y = f(X),或者由條件分布概率 P(Y|X)作為預測模型,即判別模型。
生成方法:由數(shù)據(jù)學習聯(lián)合概率密度分布函數(shù) P(X,Y),然后求出條件概率分布P(Y|X)作為預測的模型,即生成模型。
由生成模型可以得到判別模型,但由判別模型得不到生成模型。
常見的判別模型有:K近鄰、SVM、決策樹、感知機、線性判別分析(LDA)、線性回歸、傳統(tǒng)的神經(jīng)網(wǎng)絡、邏輯斯蒂回歸、boosting、條件隨機場
常見的生成模型有:樸素貝葉斯、隱馬爾可夫模型、高斯混合模型、文檔主題生成模型(LDA)、限制玻爾茲曼機
12.L1和L2的區(qū)別
L1范數(shù)(L1 norm)是指向量中各個元素絕對值之和,也有個美稱叫“稀疏規(guī)則算子”(Lasso regularization)。
比如 向量A=[1,-1,3], 那么A的L1范數(shù)為 |1|+|-1|+|3|.
簡單總結(jié)一下就是:
L1范數(shù): 為x向量各個元素絕對值之和。
L2范數(shù): 為x向量各個元素平方和的1/2次方,L2范數(shù)又稱Euclidean范數(shù)或者Frobenius范數(shù)
Lp范數(shù): 為x向量各個元素絕對值p次方和的1/p次方.
在支持向量機學習過程中,L1范數(shù)實際是一種對于成本函數(shù)求解最優(yōu)的過程,因此,L1范數(shù)正則化通過向成本函數(shù)中添加L1范數(shù),使得學習得到的結(jié)果滿足稀疏化,從而方便人類提取特征。
L1范數(shù)可以使權(quán)值稀疏,方便特征提取。
L2范數(shù)可以防止過擬合,提升模型的泛化能力。
13. CNN最成功的應用是在CV,那為什么NLP和Speech的很多問題也可以用CNN解出來?為什么AlphaGo里也用了CNN?這幾個不相關的問題的相似性在哪里?CNN通過什么手段抓住了這個共性?
@許韓:
來源:深度學習崗位面試問題整理筆記
Deep Learning -Yann LeCun, Yoshua Bengio & Geoffrey HintonLearn TensorFlow and deep learning, without a Ph.D.The Unreasonable Effectiveness of Deep Learning -LeCun 16 NIPS Keynote以上幾個不相關問題的相關性在于,都存在局部與整體的關系,由低層次的特征經(jīng)過組合,組成高層次的特征,并且得到不同特征之間的空間相關性。如下圖:低層次的直線/曲線等特征,組合成為不同的形狀,最后得到汽車的表示。
CNN抓住此共性的手段主要有四個:局部連接/權(quán)值共享/池化操作/多層次結(jié)構(gòu)。局部連接使網(wǎng)絡可以提取數(shù)據(jù)的局部特征;權(quán)值共享大大降低了網(wǎng)絡的訓練難度,一個Filter只提取一個特征,在整個圖片(或者語音/文本) 中進行卷積;池化操作與多層次結(jié)構(gòu)一起,實現(xiàn)了數(shù)據(jù)的降維,將低層次的局部特征組合成為較高層次的特征,從而對整個圖片進行表示。如下圖:
14.簡單說說RNN的原理
我們升學到高三準備高考時,此時的知識是由高二及高二之前所學的知識加上高三所學的知識合成得來,即我們的知識是由前序鋪墊,是有記憶的,好比當電影字幕上出現(xiàn):“我是”時,你會很自然的聯(lián)想到:“我是中國人”。關于RNN,這里有個課程會詳細講RNN,此外這里也有篇講解LSTM的文《理解 LSTM 網(wǎng)絡》。
15. 說一下Adaboost,權(quán)值更新公式。當弱分類器是Gm時,每個樣本的的權(quán)重是w1,w2...,請寫出最終的決策公式。
給定一個訓練數(shù)據(jù)集T={(x1,y1), (x2,y2)…(xN,yN)},其中實例,而實例空間,yi屬于標記集合{-1,+1},Adaboost的目的就是從訓練數(shù)據(jù)中學習一系列弱分類器或基本分類器,然后將這些弱分類器組合成一個強分類器。
Adaboost的算法流程如下:
a. 使用具有權(quán)值分布Dm的訓練數(shù)據(jù)集學習,得到基本分類器(選取讓誤差率最低的閾值來設計基本分類器):
b. 計算Gm(x)在訓練數(shù)據(jù)集上的分類誤差率
由上述式子可知,Gm(x)在訓練數(shù)據(jù)集上的誤差率em就是被Gm(x)誤分類樣本的權(quán)值之和。
c. 計算Gm(x)的系數(shù),am表示Gm(x)在最終分類器中的重要程度(目的:得到基本分類器在最終分類器中所占的權(quán)重):
由上述式子可知,em <= 1/2時,am >= 0,且am隨著em的減小而增大,意味著分類誤差率越小的基本分類器在最終分類器中的作用越大。
d. 更新訓練數(shù)據(jù)集的權(quán)值分布(目的:得到樣本的新的權(quán)值分布),用于下一輪迭代
使得被基本分類器Gm(x)誤分類樣本的權(quán)值增大,而被正確分類樣本的權(quán)值減小。就這樣,通過這樣的方式,AdaBoost方法能“重點關注”或“聚焦于”那些較難分的樣本上。
其中,Zm是規(guī)范化因子,使得Dm+1成為一個概率分布:
從而得到最終分類器,如下:
更多請查看此文:《Adaboost 算法的原理與推導》。
步驟3. 組合各個弱分類器
步驟2. 進行多輪迭代,用m = 1,2, ..., M表示迭代的第多少輪
步驟1. 首先,初始化訓練數(shù)據(jù)的權(quán)值分布。每一個訓練樣本最開始時都被賦予相同的權(quán)值:1/N。
16.LSTM結(jié)構(gòu)推導,為什么比RNN好?
推導forget gate,input gate,cell state, hidden information等的變化;因為LSTM有進有出且當前的cell informaton是通過input gate控制之后疊加的,RNN是疊乘,因此LSTM可以防止梯度消失或者爆炸
17.****經(jīng)常在網(wǎng)上搜索東西的朋友知道,當你不小心輸入一個不存在的單詞時,搜索引擎會提示你是不是要輸入某一個正確的單詞,比如當你在Google中輸入“Julw”時,系統(tǒng)會猜測你的意圖:是不是要搜索“July”,如下圖所示:
這叫做拼寫檢查。根據(jù)谷歌一員工寫的文章顯示,Google的拼寫檢查基于貝葉斯方法。請說說的你的理解,具體Google是怎么利用貝葉斯方法,實現(xiàn)"拼寫檢查"的功能。
由于對于所有備選的c來說,對應的都是同一個w,所以它們的P(w)是相同的,因此我們只要最大化
即可。其中:
所以,我們比較所有拼寫相近的詞在文本庫中的出現(xiàn)頻率,再從中挑出出現(xiàn)頻率最高的一個,即是用戶最想輸入的那個詞。具體的計算過程及此方法的缺陷請參見這里。
P(c)表示某個正確的詞的出現(xiàn)"概率",它可以用"頻率"代替。如果我們有一個足夠大的文本庫,那么這個文本庫中每個單詞的出現(xiàn)頻率,就相當于它的發(fā)生概率。某個詞的出現(xiàn)頻率越高,P(c)就越大。比如在你輸入一個錯誤的詞“Julw”時,系統(tǒng)更傾向于去猜測你可能想輸入的詞是“July”,而不是“Jult”,因為“July”更常見。
P(w|c)表示在試圖拼寫c的情況下,出現(xiàn)拼寫錯誤w的概率。為了簡化問題,假定兩個單詞在字形上越接近,就有越可能拼錯,P(w|c)就越大。舉例來說,相差一個字母的拼法,就比相差兩個字母的拼法,發(fā)生概率更高。你想拼寫單詞July,那么錯誤拼成Julw(相差一個字母)的可能性,就比拼成Jullw高(相差兩個字母)。值得一提的是,一般把這種問題稱為“編輯距離”,參見博客中的這篇文章。
18.為什么樸素貝葉斯如此“樸素”?
因為它假定所有的特征在數(shù)據(jù)集中的作用是同樣重要和獨立的。正如我們所知,這個假設在現(xiàn)實世界中是很不真實的,因此,說樸素貝葉斯真的很“樸素”。
19.請大致對比下plsa和LDA的區(qū)別
。
綜上,LDA真的只是pLSA的貝葉斯版本,文檔生成后,兩者都要根據(jù)文檔去推斷其主題分布和詞語分布,只是用的參數(shù)推斷方法不同,在pLSA中用極大似然估計的思想去推斷兩未知的固定參數(shù),而LDA則把這兩參數(shù)弄成隨機變量,且加入dirichlet先驗。
更多請參見:《通俗理解LDA主題模型》。
還是再次舉下文檔d具體產(chǎn)生主題z的例子。給定一篇文檔d,現(xiàn)在有多個主題z1、z2、z3,它們的主題分布{ P(zi|d), i = 1,2,3 }可能是{0.4,0.5,0.1},也可能是{0.2,0.2,0.6},即這些主題被d選中的概率都不再認為是確定的值,可能是P(z1|d) = 0.4、P(z2|d) = 0.5、P(z3|d) = 0.1,也有可能是P(z1|d) = 0.2、P(z2|d) = 0.2、P(z3|d) = 0.6等等,而主題分布到底是哪個取值集合我們不確定(為什么?這就是貝葉斯派的核心思想,把未知參數(shù)當作是隨機變量,不再認為是某一個確定的值),但其先驗分布是dirichlet 分布,所以可以從無窮多個主題分布中按照dirichlet 先驗隨機抽取出某個主題分布出來。如下圖所示(圖截取自沈博PPT上):
文檔d產(chǎn)生主題z(準確的說,其實是Dirichlet先驗為文檔d生成主題分布Θ,然后根據(jù)主題分布Θ產(chǎn)生主題z)的概率,主題z產(chǎn)生單詞w的概率都不再是某兩個確定的值,而是隨機變量。
但在貝葉斯框架下的LDA中,我們不再認為主題分布(各個主題在文檔中出現(xiàn)的概率分布)和詞分布(各個詞語在某個主題下出現(xiàn)的概率分布)是唯一確定的(而是隨機變量),而是有很多種可能。但一篇文檔總得對應一個主題分布和一個詞分布吧,怎么辦呢?LDA為它們弄了兩個Dirichlet先驗參數(shù),這個Dirichlet先驗為某篇文檔隨機抽取出某個主題分布和詞分布。
舉個文檔d產(chǎn)生主題z的例子。給定一篇文檔d,主題分布是一定的,比如{ P(zi|d), i = 1,2,3 }可能就是{0.4,0.5,0.1},表示z1、z2、z3,這3個主題被文檔d選中的概率都是個固定的值:P(z1|d) = 0.4、P(z2|d) = 0.5、P(z3|d) = 0.1,如下圖所示(圖截取自沈博PPT上):
文檔d產(chǎn)生主題z的概率,主題z產(chǎn)生單詞w的概率都是兩個固定的值。
20.請簡要說說EM算法
@tornadomeet來源:http://www.cnblogs.com/tornadomeet/p/3395593.html
有時候因為樣本的產(chǎn)生和隱含變量有關(隱含變量是不能觀察的),而求模型的參數(shù)時一般采用最大似然估計,由于含有了隱含變量,所以對似然函數(shù)參數(shù)求導是求不出來的,這時可以采用EM算法來求模型的參數(shù)的(對應模型參數(shù)個數(shù)可能有多個),EM算法一般分為2步:
E步:選取一組參數(shù),求出在該參數(shù)下隱含變量的條件概率值;
M步:結(jié)合E步求出的隱含變量條件概率,求出似然函數(shù)下界函數(shù)(本質(zhì)上是某個期望函數(shù))的最大值。
重復上面2步直至收斂。
公式如下所示:
M步公式中下界函數(shù)的推導過程:
EM算法一個常見的例子就是GMM模型,每個樣本都有可能由k個高斯產(chǎn)生,只不過由每個高斯產(chǎn)生的概率不同而已,因此每個樣本都有對應的高斯分布(k個中的某一個),此時的隱含變量就是每個樣本對應的某個高斯分布。
GMM的E步公式如下(計算每個樣本對應每個高斯的概率):
更具體的計算公式為:
M步公式如下(計算每個高斯的比重,均值,方差這3個參數(shù)):