2018-07-20

最近發(fā)現(xiàn)自己的一個(gè)缺點(diǎn),很多原理雖然從理論上或著數(shù)學(xué)上理解了,但是難以用一種簡(jiǎn)潔的偏于溝通的方式表達(dá)出來(lái)。所以合上書(shū),用口語(yǔ)化的方法練習(xí)描述這些知識(shí)點(diǎn)。

1. SVM:支持向量機(jī),對(duì)中小數(shù)據(jù)集有效,是一種比較經(jīng)典的數(shù)據(jù)分類(lèi)方法。抽象的來(lái)說(shuō),SVM的分類(lèi)過(guò)程是在多維數(shù)據(jù)空間中尋找這樣一個(gè)超平面,這個(gè)超平面使得數(shù)據(jù)點(diǎn)落到超平面的垂直距離和,也就是margin,最大。當(dāng)這樣一個(gè)超平面尋找到時(shí),可以理解為對(duì)數(shù)據(jù)做出了置信度最高的分類(lèi)。為了把數(shù)據(jù)映射到高維空間中,我們通常使用核函數(shù),比較常用的有線性核,高斯核等。額外說(shuō)一點(diǎn),SVM對(duì)outlier比較敏感,support vecter里面出現(xiàn)outlier 會(huì)影響超平面,減小margin,為了解決這個(gè)問(wèn)題,會(huì)使用松弛變量,允許數(shù)據(jù)在一定程度上偏離超平面。

2. Tensorflow的計(jì)算圖:TF框架的計(jì)算分為兩個(gè)階段,先是定義計(jì)算圖中所有的計(jì)算,然后在session中執(zhí)行計(jì)算。TF的計(jì)算圖用節(jié)點(diǎn)和邊線來(lái)描述數(shù)學(xué)計(jì)算,節(jié)點(diǎn)表示數(shù)學(xué)操作,比如求和/乘積;邊線表示數(shù)據(jù)的流動(dòng),節(jié)點(diǎn)間的輸入輸出關(guān)系。變量輸入數(shù)據(jù),計(jì)算圖構(gòu)建計(jì)算任務(wù),session執(zhí)行計(jì)算。

3. GB,GBDT,XGBoost:這類(lèi)以決策書(shū)為基礎(chǔ)的算法和核心是迭代多個(gè)弱的模型,然后將弱模型的結(jié)果相加得到最優(yōu)解。比如先對(duì)數(shù)據(jù)做一個(gè)簡(jiǎn)單的線性擬合,計(jì)算擬合后的殘差,再將該殘差作為新模型的輸入再次預(yù)測(cè),如此反復(fù)迭代直到殘差不再改變(這種迭代方式類(lèi)似我之前用的過(guò)RAP-MUSIC)。GBDT和XGB是把GB的思想應(yīng)用于決策樹(shù)上。XGB是GBDT的高效實(shí)現(xiàn),XGB在目標(biāo)函數(shù)中加入了正則化項(xiàng),在一階導(dǎo)數(shù)外還是用了二階導(dǎo)數(shù), 二階導(dǎo)數(shù)有利于梯度下降的更快更準(zhǔn).?;此外,在分割形成新的樹(shù)時(shí),GBDT的方法是枚舉,XGB是近似算法列出幾個(gè)候選者;XGB考慮了訓(xùn)練值為稀疏值的情況,為稀疏值指定了默認(rèn)方向;XGB可以并行處理每個(gè)特征,提高了算法效率。

4.在k-means或kNN,我們是用歐氏距離來(lái)計(jì)算最近的鄰居之間的距離。為什么不用曼哈頓距離?歐式距離是L2范數(shù),曼哈頓距離L1范數(shù),受坐標(biāo)軸變換的影響,數(shù)據(jù)的偏移,旋轉(zhuǎn)均會(huì)對(duì)L1產(chǎn)生影響。

5. 線性回歸:y = w*x 特征和輸出都是線性關(guān)系;邏輯回歸:x和y之間通過(guò)邏輯回歸函數(shù)映射,即sigmod函數(shù),sigmoid函數(shù)對(duì)不同的權(quán)重呈現(xiàn)不同的特點(diǎn),小權(quán)重時(shí),函數(shù)線性,隨著權(quán)值增加,呈現(xiàn)非線性,當(dāng)權(quán)值增加到一定程度,函數(shù)飽和,解決了非線性數(shù)據(jù)的擬合問(wèn)題,且從數(shù)值計(jì)算角度解決了數(shù)值溢出的問(wèn)題。對(duì)于一組非線性數(shù)據(jù),存在多個(gè)下陷的局部最小值,如果直接使用線性擬合,很容易陷入,而使用邏輯回歸,可以形成凸函數(shù)。

adaboost, svm, lr 三個(gè)算法的關(guān)系:損傷函數(shù)不同,分布對(duì)應(yīng)exponential loss, hinge loss,和log loss.

LR和SVM都可以處理分類(lèi)問(wèn)題,且一般都用于處理線性二分類(lèi)問(wèn)題(在改進(jìn)的情況下可以處理多分類(lèi)問(wèn)題)?

兩個(gè)方法都可以增加不同的正則化項(xiàng),如L1、L2等等。所以在很多實(shí)驗(yàn)中,兩種算法的結(jié)果是很接近的。?

區(qū)別:?

1、LR是參數(shù)模型,SVM是非參數(shù)模型。?

2、從目標(biāo)函數(shù)來(lái)看,區(qū)別在于邏輯回歸采用的是Logistical Loss,SVM采用的是hinge loss.這兩個(gè)損失函數(shù)的目的都是增加對(duì)分類(lèi)影響較大的數(shù)據(jù)點(diǎn)的權(quán)重,減少與分類(lèi)關(guān)系較小的數(shù)據(jù)點(diǎn)的權(quán)重。?

3、SVM的處理方法是只考慮Support Vectors,也就是和分類(lèi)最相關(guān)的少數(shù)點(diǎn),去學(xué)習(xí)分類(lèi)器。而邏輯回歸通過(guò)非線性映射,大大減小了離分類(lèi)平面較遠(yuǎn)的點(diǎn)的權(quán)重,相對(duì)提升了與分類(lèi)最相關(guān)的數(shù)據(jù)點(diǎn)的權(quán)重。?

另外線性回歸在整個(gè)實(shí)數(shù)域范圍內(nèi)進(jìn)行預(yù)測(cè),敏感度一致,而分類(lèi)范圍,需要在[0,1]。邏輯回歸就是一種減小預(yù)測(cè)范圍,將預(yù)測(cè)值限定為[0,1]間的一種回歸模型,因而對(duì)于這類(lèi)問(wèn)題來(lái)說(shuō),邏輯回歸的魯棒性比線性回歸的要好。?

6 overfitting怎么解決(lve)

7. XGBoost如何尋找最優(yōu)特征?是又放回還是無(wú)放回的呢?XGBoost在訓(xùn)練的過(guò)程中給出各個(gè)特征的評(píng)分,從而表明每個(gè)特征對(duì)模型訓(xùn)練的重要性.。XGBoost利用梯度優(yōu)化模型算法, 樣本是不放回的(想象一個(gè)樣本連續(xù)重復(fù)抽出,梯度來(lái)回踏步會(huì)不會(huì)高興)。但XGBoost支持子采樣, 也就是每輪計(jì)算可以不使用全部樣本。

8?談?wù)勁袆e式模型和生成式模型?

9. L1和L2正則先驗(yàn)分別服從什么分布

10.?CNN最成功的應(yīng)用是在CV,那為什么NLP和Speech的很多問(wèn)題也可以用CNN解出來(lái)?為什么AlphaGo里也用了CNN?這幾個(gè)不相關(guān)的問(wèn)題的相似性在哪里?CNN通過(guò)什么手段抓住了這個(gè)共性?

以上幾個(gè)不相關(guān)問(wèn)題的相關(guān)性在于,都存在局部與整體的關(guān)系,由低層次的特征經(jīng)過(guò)組合,組成高層次的特征,并且得到不同特征之間的空間相關(guān)性.

CNN抓住此共性的手段主要有四個(gè):局部連接/權(quán)值共享/池化操作/多層次結(jié)構(gòu)。

局部連接使網(wǎng)絡(luò)可以提取數(shù)據(jù)的局部特征;權(quán)值共享大大降低了網(wǎng)絡(luò)的訓(xùn)練難度,一個(gè)Filter只提取一個(gè)特征,在整個(gè)圖片(或者語(yǔ)音/文本) 中進(jìn)行卷積;池化操作與多層次結(jié)構(gòu)一起,實(shí)現(xiàn)了數(shù)據(jù)的降維,將低層次的局部特征組合成為較高層次的特征,從而對(duì)整個(gè)圖片進(jìn)行表示.

如果每一個(gè)點(diǎn)的處理使用相同的Filter,則為全卷積,如果使用不同的Filter,則為L(zhǎng)ocal-Conv。

DeepFace 先進(jìn)行了兩次全卷積+一次池化,提取了低層次的邊緣/紋理等特征。

后接了3個(gè)Local-Conv層,這里是用Local-Conv的原因是,人臉在不同的區(qū)域存在不同的特征(眼睛/鼻子/嘴的分布位置相對(duì)固定),當(dāng)不存在全局的局部特征分布時(shí),Local-Conv更適合特征的提取。

11. 說(shuō)一下Adaboost,權(quán)值更新公式。當(dāng)弱分類(lèi)器是Gm時(shí),每個(gè)樣本的的權(quán)重是w1,w2…,請(qǐng)寫(xiě)出最終的決策公式。

12.?LSTM結(jié)構(gòu)推導(dǎo),為什么比RNN好. RNN主要用于處理序列數(shù)據(jù),基礎(chǔ)神經(jīng)網(wǎng)絡(luò)只在層與層間建立聯(lián)系, RNN在層之間也建立了聯(lián)系,所以當(dāng)序列不斷推進(jìn)時(shí),前面的隱層會(huì)影響后面的隱層;當(dāng)上一個(gè)單元的輸出的特征根》1,出現(xiàn)梯度爆炸問(wèn)題,<1出現(xiàn)梯度消失。為了解決這個(gè)問(wèn)題,提出LSTM,有四扇門(mén)input gate控制數(shù)據(jù)的讀入,forget gate決定在系統(tǒng)中忘記哪部分?jǐn)?shù)據(jù),gate gate更新細(xì)胞狀態(tài),output gate決定輸出的內(nèi)容,通過(guò)這種結(jié)構(gòu)實(shí)現(xiàn)長(zhǎng)期記憶,解決了梯度爆炸/消失的問(wèn)題。

13.?貝葉斯方法 P(x|y) 在已經(jīng)發(fā)生y的情況下,從若干個(gè)備選方案中找到發(fā)生概率最大的x的概率。P(x|y)=P(y|x)*P(x)/P(y), 比如google的拼寫(xiě)檢查,寫(xiě)出一部分后,常見(jiàn)詞的P(X)更大,P(y|x)則表示正確詞拼錯(cuò)的概率,越相似的詞拼錯(cuò)的概率越高。

14?機(jī)器學(xué)習(xí)中,為何要經(jīng)常對(duì)數(shù)據(jù)做歸一化.?1)歸一化后加快了梯度下降求最優(yōu)解的速度;2)歸一化有可能提高精度。如下圖所示,藍(lán)色的圈圈圖代表的是兩個(gè)特征的等高線。其中左圖兩個(gè)特征X1和X2的區(qū)間相差非常大,X1區(qū)間是[0,2000],X2區(qū)間是[1,5],其所形成的等高線非常尖。當(dāng)使用梯度下降法尋求最優(yōu)解時(shí),很有可能走“之字型”路線(垂直等高線走),從而導(dǎo)致需要迭代很多次才能收斂;

? ? ? 而右圖對(duì)兩個(gè)原始特征進(jìn)行了歸一化,其對(duì)應(yīng)的等高線顯得很圓,在梯度下降進(jìn)行求解時(shí)能較快的收斂。

? ? ? 因此如果機(jī)器學(xué)習(xí)模型使用梯度下降法求最優(yōu)解時(shí),歸一化往往非常有必要,否則很難收斂甚至不能收斂。

一些分類(lèi)器需要計(jì)算樣本之間的距離(如歐氏距離),例如KNN。如果一個(gè)特征值域范圍非常大,那么距離計(jì)算就主要取決于這個(gè)特征,從而與實(shí)際情況相悖(比如這時(shí)實(shí)際情況是值域范圍小的特征更重要)

15. Batch Normalization: BatchNorm就是在深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練過(guò)程中使得每一層神經(jīng)網(wǎng)絡(luò)的輸入保持相同分布的。于深度學(xué)習(xí)這種包含很多隱層的網(wǎng)絡(luò)結(jié)構(gòu),在訓(xùn)練過(guò)程中,因?yàn)楦鲗訁?shù)不停在變化,所以每個(gè)隱層都會(huì)面臨covariate shift的問(wèn)題,也就是在訓(xùn)練過(guò)程中,隱層的輸入分布老是變來(lái)變?nèi)ィ@就是所謂的“Internal Covariate Shift”,Internal指的是深層網(wǎng)絡(luò)的隱層,是發(fā)生在網(wǎng)絡(luò)內(nèi)部的事情,而不是covariate shift問(wèn)題只發(fā)生在輸入層。之前的研究表明如果在圖像處理中對(duì)輸入圖像進(jìn)行白化(Whiten)操作的話——所謂白化,就是對(duì)輸入數(shù)據(jù)分布變換到0均值,單位方差的正態(tài)分布——那么神經(jīng)網(wǎng)絡(luò)會(huì)較快收斂,那么BN作者就開(kāi)始推論了:圖像是深度神經(jīng)網(wǎng)絡(luò)的輸入層,做白化能加快收斂,那么其實(shí)對(duì)于深度網(wǎng)絡(luò)來(lái)說(shuō),其中某個(gè)隱層的神經(jīng)元是下一層的輸入,意思是其實(shí)深度神經(jīng)網(wǎng)絡(luò)的每一個(gè)隱層都是輸入層,不過(guò)是相對(duì)下一層來(lái)說(shuō)而已,那么能不能對(duì)每個(gè)隱層都做白化呢?這就是啟發(fā)BN產(chǎn)生的原初想法,而B(niǎo)N也確實(shí)就是這么做的,可以理解為對(duì)深層神經(jīng)網(wǎng)絡(luò)每個(gè)隱層神經(jīng)元的激活值做簡(jiǎn)化版本的白化操作。

BN的基本思想其實(shí)相當(dāng)直觀:因?yàn)樯顚由窠?jīng)網(wǎng)絡(luò)在做非線性變換前的激活輸入值(就是那個(gè)x=WU+B,U是輸入)隨著網(wǎng)絡(luò)深度加深或者在訓(xùn)練過(guò)程中,其分布逐漸發(fā)生偏移或者變動(dòng),之所以訓(xùn)練收斂慢,一般是整體分布逐漸往非線性函數(shù)的取值區(qū)間的上下限兩端靠近(對(duì)于Sigmoid函數(shù)來(lái)說(shuō),意味著激活輸入值WU+B是大的負(fù)值或正值),所以這導(dǎo)致反向傳播時(shí)低層神經(jīng)網(wǎng)絡(luò)的梯度消失,這是訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)收斂越來(lái)越慢的本質(zhì)原因,而B(niǎo)N就是通過(guò)一定的規(guī)范化手段,把每層神經(jīng)網(wǎng)絡(luò)任意神經(jīng)元這個(gè)輸入值的分布強(qiáng)行拉回到均值為0方差為1的標(biāo)準(zhǔn)正態(tài)分布,其實(shí)就是把越來(lái)越偏的分布強(qiáng)制拉回比較標(biāo)準(zhǔn)的分布,這樣使得激活輸入值落在非線性函數(shù)對(duì)輸入比較敏感的區(qū)域,這樣輸入的小變化就會(huì)導(dǎo)致?lián)p失函數(shù)較大的變化,意思是這樣讓梯度變大,避免梯度消失問(wèn)題產(chǎn)生,而且梯度變大意味著學(xué)習(xí)收斂速度快,能大大加快訓(xùn)練速度。

16.請(qǐng)簡(jiǎn)要說(shuō)說(shuō)一個(gè)完整機(jī)器學(xué)習(xí)項(xiàng)目的流程。

1 抽象成數(shù)學(xué)問(wèn)題?

明確問(wèn)題是進(jìn)行機(jī)器學(xué)習(xí)的第一步。機(jī)器學(xué)習(xí)的訓(xùn)練過(guò)程通常都是一件非常耗時(shí)的事情,胡亂嘗試時(shí)間成本是非常高的。?

這里的抽象成數(shù)學(xué)問(wèn)題,指的我們明確我們可以獲得什么樣的數(shù)據(jù),目標(biāo)是一個(gè)分類(lèi)還是回歸或者是聚類(lèi)的問(wèn)題,如果都不是的話,如果劃歸為其中的某類(lèi)問(wèn)題。?

2 獲取數(shù)據(jù)?

數(shù)據(jù)決定了機(jī)器學(xué)習(xí)結(jié)果的上限,而算法只是盡可能逼近這個(gè)上限。?

數(shù)據(jù)要有代表性,否則必然會(huì)過(guò)擬合。?

而且對(duì)于分類(lèi)問(wèn)題,數(shù)據(jù)偏斜不能過(guò)于嚴(yán)重,不同類(lèi)別的數(shù)據(jù)數(shù)量不要有數(shù)個(gè)數(shù)量級(jí)的差距。?

而且還要對(duì)數(shù)據(jù)的量級(jí)有一個(gè)評(píng)估,多少個(gè)樣本,多少個(gè)特征,可以估算出其對(duì)內(nèi)存的消耗程度,判斷訓(xùn)練過(guò)程中內(nèi)存是否能夠放得下。如果放不下就得考慮改進(jìn)算法或者使用一些降維的技巧了。如果數(shù)據(jù)量實(shí)在太大,那就要考慮分布式了。?

3 特征預(yù)處理與特征選擇?

良好的數(shù)據(jù)要能夠提取出良好的特征才能真正發(fā)揮效力。?

特征預(yù)處理、數(shù)據(jù)清洗是很關(guān)鍵的步驟,往往能夠使得算法的效果和性能得到顯著提高。歸一化、離散化、因子化、缺失值處理、去除共線性等,數(shù)據(jù)挖掘過(guò)程中很多時(shí)間就花在它們上面。這些工作簡(jiǎn)單可復(fù)制,收益穩(wěn)定可預(yù)期,是機(jī)器學(xué)習(xí)的基礎(chǔ)必備步驟。?

篩選出顯著特征、摒棄非顯著特征,需要機(jī)器學(xué)習(xí)工程師反復(fù)理解業(yè)務(wù)。這對(duì)很多結(jié)果有決定性的影響。特征選擇好了,非常簡(jiǎn)單的算法也能得出良好、穩(wěn)定的結(jié)果。這需要運(yùn)用特征有效性分析的相關(guān)技術(shù),如相關(guān)系數(shù)、卡方檢驗(yàn)、平均互信息、條件熵、后驗(yàn)概率、邏輯回歸權(quán)重等方法。?

4 訓(xùn)練模型與調(diào)優(yōu)?

直到這一步才用到我們上面說(shuō)的算法進(jìn)行訓(xùn)練?,F(xiàn)在很多算法都能夠封裝成黑盒供人使用。但是真正考驗(yàn)水平的是調(diào)整這些算法的(超)參數(shù),使得結(jié)果變得更加優(yōu)良。這需要我們對(duì)算法的原理有深入的理解。理解越深入,就越能發(fā)現(xiàn)問(wèn)題的癥結(jié),提出良好的調(diào)優(yōu)方案。?

5 模型診斷?

如何確定模型調(diào)優(yōu)的方向與思路呢?這就需要對(duì)模型進(jìn)行診斷的技術(shù)。?

過(guò)擬合、欠擬合 判斷是模型診斷中至關(guān)重要的一步。常見(jiàn)的方法如交叉驗(yàn)證,繪制學(xué)習(xí)曲線等。過(guò)擬合的基本調(diào)優(yōu)思路是增加數(shù)據(jù)量,降低模型復(fù)雜度。欠擬合的基本調(diào)優(yōu)思路是提高特征數(shù)量和質(zhì)量,增加模型復(fù)雜度。?

誤差分析 也是機(jī)器學(xué)習(xí)至關(guān)重要的步驟。通過(guò)觀察誤差樣本,全面分析誤差產(chǎn)生誤差的原因:是參數(shù)的問(wèn)題還是算法選擇的問(wèn)題,是特征的問(wèn)題還是數(shù)據(jù)本身的問(wèn)題……?

診斷后的模型需要進(jìn)行調(diào)優(yōu),調(diào)優(yōu)后的新模型需要重新進(jìn)行診斷,這是一個(gè)反復(fù)迭代不斷逼近的過(guò)程,需要不斷地嘗試, 進(jìn)而達(dá)到最優(yōu)狀態(tài)。?

6 模型融合?

一般來(lái)說(shuō),模型融合后都能使得效果有一定提升。而且效果很好。?

工程上,主要提升算法準(zhǔn)確度的方法是分別在模型的前端(特征清洗和預(yù)處理,不同的采樣模式)與后端(模型融合)上下功夫。因?yàn)樗麄儽容^標(biāo)準(zhǔn)可復(fù)制,效果比較穩(wěn)定。而直接調(diào)參的工作不會(huì)很多,畢竟大量數(shù)據(jù)訓(xùn)練起來(lái)太慢了,而且效果難以保證。?

7 上線運(yùn)行?

這一部分內(nèi)容主要跟工程實(shí)現(xiàn)的相關(guān)性比較大。工程上是結(jié)果導(dǎo)向,模型在線上運(yùn)行的效果直接決定模型的成敗。 不單純包括其準(zhǔn)確程度、誤差等情況,還包括其運(yùn)行的速度(時(shí)間復(fù)雜度)、資源消耗程度(空間復(fù)雜度)、穩(wěn)定性是否可接受。?

17.如何解決梯度消失和梯度膨脹?

梯度消失:?

根據(jù)鏈?zhǔn)椒▌t,如果每一層神經(jīng)元對(duì)上一層的輸出的偏導(dǎo)乘上權(quán)重結(jié)果都小于1的話,那么即使這個(gè)結(jié)果是0.99,在經(jīng)過(guò)足夠多層傳播之后,誤差對(duì)輸入層的偏導(dǎo)會(huì)趨于0。?

梯度膨脹:?

根據(jù)鏈?zhǔn)椒▌t,如果每一層神經(jīng)元對(duì)上一層的輸出的偏導(dǎo)乘上權(quán)重結(jié)果都大于1的話,在經(jīng)過(guò)足夠多層傳播之后,誤差對(duì)輸入層的偏導(dǎo)會(huì)趨于無(wú)窮大。

1.)梯度剪切這個(gè)方案主要是針對(duì)梯度爆炸提出的,其思想是設(shè)置一個(gè)梯度剪切閾值,然后更新梯度的時(shí)候,如果梯度超過(guò)這個(gè)閾值,那么就將其強(qiáng)制限制在這個(gè)范圍之內(nèi)。這可以防止梯度爆炸.

2) 另外一種解決梯度爆炸的手段是采用權(quán)重正則化(weithts regularization)比較常見(jiàn)的是l1l1正則,和l2l2正則,正則化是通過(guò)對(duì)網(wǎng)絡(luò)權(quán)重做正則限制過(guò)擬合,仔細(xì)看正則項(xiàng)在損失函數(shù)的形式.如果發(fā)生梯度爆炸,權(quán)值的范數(shù)就會(huì)變的非常大,通過(guò)正則化項(xiàng),可以部分限制梯度爆炸的發(fā)生。

3) relu、leakrelu、elu等激活函數(shù)

4)?batchnorm

5)?殘差結(jié)構(gòu):殘差可以很輕松的構(gòu)建幾百層,一千多層的網(wǎng)絡(luò)而不用擔(dān)心梯度消失過(guò)快的問(wèn)題,原因就在于殘差的捷徑(shortcut)部分,?相比較于以前網(wǎng)絡(luò)的直來(lái)直去結(jié)構(gòu),殘差中有很多這樣的跨層連接結(jié)構(gòu),這樣的結(jié)構(gòu)在反向傳播中具有很大的好處,?小括號(hào)中的1表明短路機(jī)制可以無(wú)損地傳播梯度,而另外一項(xiàng)殘差梯度則需要經(jīng)過(guò)帶有weights的層,梯度不是直接傳遞過(guò)來(lái)的。殘差梯度不會(huì)那么巧全為-1,而且就算其比較小,有1的存在也不會(huì)導(dǎo)致梯度消失。所以殘差學(xué)習(xí)會(huì)更容易。

6) LTSM

18. 正則化 又稱為”懲罰“,penalty, ?正則化的一般形式是在整個(gè)平均損失函數(shù)后增加一個(gè)正則項(xiàng),簡(jiǎn)化模型

19 協(xié)方差和相關(guān)性有什么區(qū)別?協(xié)方差在概率論統(tǒng)計(jì)學(xué)中用于衡量?jī)蓚€(gè)變量的總體誤差;相關(guān)系數(shù)由于它是標(biāo)準(zhǔn)化后的協(xié)方差,因此更重要的特性來(lái)了:它消除了兩個(gè)變量變化幅度的影響,而只是單純反應(yīng)兩個(gè)變量每單位變化時(shí)的相似程度。

20?貝葉斯定理

21sigmoid激活函數(shù)。

22卷積:對(duì)圖像(不同的數(shù)據(jù)窗口數(shù)據(jù))和濾波矩陣(一組固定的權(quán)重:因?yàn)槊總€(gè)神經(jīng)元的多個(gè)權(quán)重固定,所以又可以看做一個(gè)恒定的濾波器filter)做內(nèi)積(逐個(gè)元素相乘再求和)的操作就是所謂的『卷積』操作

23pool層:取區(qū)域平均或最大

24 極大似然估計(jì)方法:利用已知的樣本結(jié)果,反推最有可能(最大概率)導(dǎo)致這樣結(jié)果的參數(shù)值。

24生成對(duì)抗網(wǎng)絡(luò)相關(guān)知識(shí)點(diǎn):

1)貝葉斯和SVM的區(qū)別:svm的決策函數(shù)是y = f(x), 對(duì)于輸入x, 輸出y, 這個(gè)y和一個(gè)閾值比較,判斷屬于哪個(gè)類(lèi)別;貝葉斯使用條件概率分布p(y|x),對(duì)于輸入x, 比較x屬于所有類(lèi)別的概率,然后輸出概率對(duì)大的那個(gè)最為x對(duì)應(yīng)的類(lèi)別。

相同點(diǎn)是:設(shè)計(jì)分類(lèi)器的實(shí)質(zhì)是尋找一個(gè)分類(lèi)樹(shù)或者分類(lèi)面,在給定數(shù)據(jù)x的基礎(chǔ)上估計(jì)數(shù)據(jù)的概率模型。

2)判別方法/判別模型:有輸入x直接學(xué)習(xí)決策函數(shù)或者條件概率分布。在有限樣本的條件下建立判別函數(shù),不考慮樣本的產(chǎn)生模型,直接研究預(yù)測(cè)模型。包括:knn, xgboost, svm。不能反映訓(xùn)練數(shù)據(jù)本身的特性。但它尋找不同類(lèi)別之間的最優(yōu)分類(lèi)面,反映的是異類(lèi)數(shù)據(jù)之間的差異。直接面對(duì)預(yù)測(cè),往往學(xué)習(xí)的準(zhǔn)確率更高。由于直接學(xué)習(xí)P(Y|X)或P(X),可以對(duì)數(shù)據(jù)進(jìn)行各種程度上的抽象、定義特征并使用特征,因此可以簡(jiǎn)化學(xué)習(xí)問(wèn)題。

生成方法/生成模型:有數(shù)據(jù)x學(xué)習(xí)聯(lián)合概率密度分布P(X,Y),然后求條件概率分布P(Y|X)=P(X,Y)/P(X). 要學(xué)習(xí)P(x )的概率分布,要求樣本足夠大。不能反映訓(xùn)練數(shù)據(jù)本身的特性。從統(tǒng)計(jì)的角度表示數(shù)據(jù)的分布情況,能夠反映同類(lèi)數(shù)據(jù)本身的相似度。但它不關(guān)心到底劃分各類(lèi)的那個(gè)分類(lèi)邊界在哪。生成方法可以還原出聯(lián)合概率分布P(Y|X),而判別方法不能。生成方法的學(xué)習(xí)收斂速度更快,即當(dāng)樣本容量增加的時(shí)候,學(xué)到的模型可以更快的收斂于真實(shí)模型,當(dāng)存在隱變量時(shí),仍可以用生成方法學(xué)習(xí)。此時(shí)判別方法就不能用。

由生成模型可以得到判別模型,但由判別模型得不到生成模型。

3)GANs簡(jiǎn)單的想法就是用兩個(gè)模型,一個(gè)生成模型,一個(gè)判別模型。判別模型用于判斷一個(gè)給定的圖片是不是真實(shí)的圖片(判斷該圖片是從數(shù)據(jù)集里獲取的真實(shí)圖片還是生成器生成的圖片),生成模型的任務(wù)是去創(chuàng)造一個(gè)看起來(lái)像真的圖片一樣的圖片,有點(diǎn)拗口,就是說(shuō)模型自己去產(chǎn)生一個(gè)圖片,可以和你想要的圖片很像。而在開(kāi)始的時(shí)候這兩個(gè)模型都是沒(méi)有經(jīng)過(guò)訓(xùn)練的,這兩個(gè)模型一起對(duì)抗訓(xùn)練,生成模型產(chǎn)生一張圖片去欺騙判別模型,然后判別模型去判斷這張圖片是真是假,最終在這兩個(gè)模型訓(xùn)練的過(guò)程中,兩個(gè)模型的能力越來(lái)越強(qiáng),最終達(dá)到穩(wěn)態(tài)。

25. 哪些機(jī)器學(xué)習(xí)算法不需要做歸一化處理?

概率模型不需要?dú)w一化,因?yàn)樗鼈儾魂P(guān)心變量的值,而是關(guān)心變量的分布和變量之間的條件概率,如決策樹(shù)、RF。而像Adaboost、GBDT、XGBoost、SVM、LR、KNN、KMeans之類(lèi)的最優(yōu)化問(wèn)題就需要?dú)w一化。

26.?梯度下降法。梯度下降法的優(yōu)化思想是用當(dāng)前位置負(fù)梯度方向作為搜索方向,因?yàn)樵摲较驗(yàn)楫?dāng)前位置的最快下降方向,所以也被稱為是”最速下降法“。最速下降法越接近目標(biāo)值,步長(zhǎng)越小,前進(jìn)越慢。(1)靠近極小值時(shí)收斂速度減慢 (2)直線搜索時(shí)可能會(huì)產(chǎn)生一些問(wèn)題;(3)可能會(huì)“之字形”地下降。

隨機(jī)梯度下降:隨機(jī)梯度下降每次迭代只使用一個(gè)樣本,迭代一次計(jì)算量為n2,當(dāng)樣本個(gè)數(shù)m很大的時(shí)候,隨機(jī)梯度下降迭代一次的速度要遠(yuǎn)高于批量梯度下降方法。兩者的關(guān)系可以這樣理解:隨機(jī)梯度下降方法以損失很小的一部分精確度和增加一定數(shù)量的迭代次數(shù)為代價(jià),換取了總體的優(yōu)化效率的提升。增加的迭代次數(shù)遠(yuǎn)遠(yuǎn)小于樣本的數(shù)量。

牛頓法:方法使用函數(shù)f?(x)的泰勒級(jí)數(shù)的前面幾項(xiàng)來(lái)尋找方程f?(x) = 0的根。牛頓法最大的特點(diǎn)就在于它的收斂速度很快。牛頓法是二階收斂,梯度下降是一階收斂,所以牛頓法就更快。如果更通俗地說(shuō)的話,比如你想找一條最短的路徑走到一個(gè)盆地的最底部,梯度下降法每次只從你當(dāng)前所處位置選一個(gè)坡度最大的方向走一步,牛頓法在選擇方向時(shí),不僅會(huì)考慮坡度是否夠大,還會(huì)考慮你走了一步之后,坡度是否會(huì)變得更大。所以,可以說(shuō)牛頓法比梯度下降法看得更遠(yuǎn)一點(diǎn),能更快地走到最底部

 擬牛頓法的本質(zhì)思想是改善牛頓法每次需要求解復(fù)雜的Hessian矩陣的逆矩陣的缺陷,它使用正定矩陣來(lái)近似Hessian矩陣的逆,從而簡(jiǎn)化了運(yùn)算的復(fù)雜度。

共軛梯度法是介于最速下降法與牛頓法之間的一個(gè)方法,它僅需利用一階導(dǎo)數(shù)信息,但克服了最速下降法收斂慢的缺點(diǎn),又避免了牛頓法需要存儲(chǔ)和計(jì)算Hesse矩陣并求逆的缺點(diǎn),共軛梯度法不僅是解決大型線性方程組最有用的方法之一,也是解大型非線性最優(yōu)化最有效的算法之一

27.?最小二乘法:優(yōu)化最小化誤差的平方和尋找數(shù)據(jù)的最佳函數(shù)匹配

28.常見(jiàn)的損失函數(shù)

1) 0正確-1錯(cuò)誤

2)L1范數(shù)

3)L2范數(shù)

4)對(duì)數(shù)log loss ?-logP(Y|X)即預(yù)測(cè)正確的概率

5)?Hinge損失函數(shù) SVM,用來(lái)最大化“分類(lèi)間隔”

6)?Cross Entropy Loss:交叉熵就是用來(lái)判定實(shí)際的輸出與期望的輸出的接近程度, 刻畫(huà)的是實(shí)際輸出(概率)與期望輸出(概率)的距離,也就是交叉熵的值越小,兩個(gè)概率分布就越接近。



29 優(yōu)化方法總結(jié):

1) SGD ?Stochastic Gradient Descent 每讀入一個(gè)數(shù)據(jù),立刻計(jì)算cost function的梯度更新參數(shù)。收斂快,易陷入局部最小和鞍點(diǎn)。

2)mini-batch Gradient Descent 從訓(xùn)練集中取出子集計(jì)算梯度,每輪迭代一個(gè)mini-batch的梯度,效率高,收斂穩(wěn)定。缺點(diǎn)是學(xué)習(xí)率選擇困難

3)monentum 模擬物體運(yùn)動(dòng)關(guān)系,在更新梯度的時(shí)候一定程度上保留之前的方向,利用當(dāng)前batch的梯度進(jìn)行微調(diào),增加穩(wěn)定性

4)Adagrad 可以條件學(xué)習(xí)率,每輪訓(xùn)練中對(duì)每個(gè)參數(shù)的學(xué)習(xí)率進(jìn)行調(diào)整

5)RMSprop 自適應(yīng)學(xué)習(xí)率,Adagrad會(huì)累加之前所有的梯度平方,而RMSprop僅僅是計(jì)算對(duì)應(yīng)的平均值,因此可緩解Adagrad算法學(xué)習(xí)率下降較快的問(wèn)題

6)Adam也是一種自適應(yīng)學(xué)習(xí)率的方法,相當(dāng)于RMSprop和momentum的結(jié)合,它利用梯度的一階矩估計(jì)和二階矩估計(jì)動(dòng)態(tài)調(diào)整每個(gè)參數(shù)的學(xué)習(xí)率。Adam的優(yōu)點(diǎn)主要在于經(jīng)過(guò)偏置校正后,每一次迭代學(xué)習(xí)率都有個(gè)確定范圍,使得參數(shù)比較平穩(wěn)。

29.CV框架

1) lenet:6 conv-pool-conv-pool-fc-fc

2) AlexNet 8: conv-pool-norm-conv-pool-norm-conv-conv-conv-pool-fc-fc-fc 首次使用relu作為激活函數(shù)(解決梯度消失問(wèn)題,單側(cè)激活) 加入了normalization layer和dropout單元 一定程度上解決過(guò)擬合的問(wèn)題

alexnet 8 conv-conv-pool-conv-pool-conv-conv-pool-fc-fc-fc

zfnet : 類(lèi)似alexnet, 但是第一個(gè)卷積層變得更小,第3,4,5卷積層用了更多的filter

3)vgg16/19: 用更小的3*3濾波器和更深的網(wǎng)絡(luò), 有效接受域相同,但是參數(shù)更少;更深的網(wǎng)絡(luò)可以增加模型的非線性

vgg16:conv-conv-pool-conv-conv-pool-conv-conv-pool-conv-conv-conv-pool-conv-conv-conv-pool-fc-fc-fc

vgg19:conv-conv-pool-conv-conv-pool-conv-conv-pool-conv-conv-conv-conv-pool-conv-conv-conv-conv-pool-fc-fc-fc

4)googlenet: 22 inception module, 沒(méi)有全鏈接層

inception module: 輸入-》1×1conv,3×3 conv, 5×5 conv, 3×3 pool->輸出 ?用1×1的bottleneck layer減少通道數(shù)量,增加模型的分辨率

5) resnet

residual block 輸入-conv-conv-輸出;輸入-》輸出

30 DICOM文件格式: DICOM格式存儲(chǔ)了醫(yī)學(xué)圖像信息和詳細(xì)的醫(yī)療檔案。主要分為兩部分:頭文件由128個(gè)預(yù)定義的引導(dǎo)字節(jié)和4個(gè)字節(jié)前綴構(gòu)成;數(shù)據(jù)部分依次排列,每個(gè)數(shù)據(jù)部分由四個(gè)組分構(gòu)成,tag,value representation,length,value field。對(duì)于圖像的存儲(chǔ),dicom采用位圖格式,即逐點(diǎn)表示出每個(gè)位置的顏色,亮度信息。

31 watershed vs deep watershed: 分水嶺算法的原理把圖像看作地形,像素的灰度值看成海拔,標(biāo)記出局部最小值,然后從各個(gè)局部最小值慢慢擴(kuò)展,相鄰的盆地間的分割構(gòu)成分水嶺。分水嶺方法容易產(chǎn)生過(guò)度分割的問(wèn)題,優(yōu)化主要圍繞三個(gè)方面展開(kāi):最小值的選擇,分水嶺的邊界和地形高度。

:影像科醫(yī)生并不是直接根據(jù)片子得出診斷結(jié)果的,還要結(jié)合病人的年齡、性別、家族史等臨床資料,過(guò)程非常復(fù)雜。病理科同樣如此,比如病理科醫(yī)生診斷一個(gè)病人是否患有腫瘤,一定要和放射科醫(yī)生和臨床外科醫(yī)生討論后才能下結(jié)論。

機(jī)器肯定可以替醫(yī)生減輕負(fù)擔(dān)。我們可以把一部分機(jī)器能夠解決的問(wèn)題交給它處理,幫助醫(yī)生變得更加高效。我認(rèn)為,人工智能主要需要解決三類(lèi)問(wèn)題:一、醫(yī)生沒(méi)時(shí)間去做的事;二、醫(yī)生需要工具輔助才能解決的事;三、簡(jiǎn)化成像流程,讓其更加標(biāo)準(zhǔn)規(guī)范。標(biāo)準(zhǔn)化和規(guī)范化的好處在于,可以幫助醫(yī)生更方便地找到需要的信息。從這個(gè)角度來(lái)說(shuō),AI確實(shí)可以幫助醫(yī)生降低工作難度。

另外,臨床上醫(yī)生需要對(duì)病情有動(dòng)態(tài)的觀察。比如,病人第一次來(lái)醫(yī)院檢查,發(fā)現(xiàn)了小結(jié)節(jié)或者毛玻璃結(jié)節(jié),醫(yī)生一般會(huì)建議其三個(gè)月或者六個(gè)月后來(lái)復(fù)查。醫(yī)生最煩看復(fù)查的片子了,因?yàn)椴∪穗m然只做了一次檢查,醫(yī)生卻要將其所有的歷史檢查結(jié)果都看一遍。假如AI可以自動(dòng)將結(jié)節(jié)的影像與歷史數(shù)據(jù)比較,分析密度、大小的變化,醫(yī)生很容易就可以得出診斷結(jié)論。

再比如體驗(yàn)。以前都是用胸片體檢,不怎么能發(fā)現(xiàn)病灶,現(xiàn)在都改成用高分辨率的薄層CT了,光肺部就有幾百?gòu)埍覥T圖像。醫(yī)生檢查的時(shí)候起碼要看三四遍,否則就容易漏掉結(jié)節(jié),工作量非常大。醫(yī)生疲勞的時(shí)候也容易犯錯(cuò),對(duì)結(jié)節(jié)熟視無(wú)睹。假如AI可以先把所有結(jié)節(jié)都圈出來(lái),醫(yī)生就輕松多了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容