面試總結——LR

實際工作中,我們可能會遇到如下問題:

  1. 預測一個用戶是否點擊特定的商品
  2. 判斷用戶的性別
  3. 預測用戶是否會購買給定的品類
  4. 判斷一條評論是正面的還是負面的

最大似然估計,就是利用已知的樣本結果反推最有可能(最大概率)導致這樣結果的參數值
例如:一個麻袋裏有白球與黑球,但是我不知道它們之間的比例,那我就有放回的抽取10次,結果我發現我抽到了8次黑球2次白球,我要求最有可能的黑白球之間的比例時,就採取最大似然估計法: 我假設我抽到黑球的概率爲p,那得出8次黑球2次白球這個結果的概率爲:
P(黑=8)=p^8*(1-p)^2,現在我想要得出p是多少啊,很簡單,使得P(黑=8)最大的p就是我要求的結果,接下來求導的的過程就是求極值的過程啦。
可能你會有疑問,爲什麼要ln一下呢,這是因爲ln把乘法變成加法了,且不會改變極值的位置(單調性保持一致嘛)這樣求導會方便很多~

 

1、LR推導(伯努利過程,極大似然,損失函數,梯度下降),有沒有最優解?

一句話概括邏輯迴歸:邏輯迴歸假設數據服從伯努利分佈,通過極大化似然函數的方法,運用梯度下降來求解參數,來達到將數據二分類的目的。

任何的模型都是有自己的假設,在這個假設下模型纔是適用的。邏輯迴歸的第一個基本假設是假設數據服從伯努利分佈。

伯努利分佈:是一個離散型概率分佈,若成功,則隨機變量取值1;若失敗,隨機變量取值爲0。成功概率記爲p,失敗爲q = 1-p。

也就是說,輸出 Y=1 的對數機率是由輸入 x 的線性函數表示的模型,這就是邏輯迴歸模型。當  的值越接近正無窮,概率值也就越接近 1。因此邏輯迴歸的思路是,先擬合決策邊界(不侷限於線性,還可以是多項式),再建立這個邊界與分類的概率聯繫,從而得到了二分類情況下的概率。

在這我們思考個問題,我們使用對數機率的意義在哪?通過上述推導我們可以看到 Logistic 迴歸實際上是使用線性迴歸模型的預測值逼近分類任務真實標記的對數機率,其優點有:

  1. 直接對分類的概率建模,無需實現假設數據分佈,從而避免了假設分佈不準確帶來的問題;
  2. 不僅可預測出類別,還能得到該預測的概率,這對一些利用概率輔助決策的任務很有用;
  3. 對數機率函數是任意階可導的凸函數,有許多數值優化算法都可以求出最優解。

邏輯迴歸與極大似然估計的關係:

最大似然估計就是通過已知結果去反推最大概率導致該結果的參數。極大似然估計是概率論在統計學中的應用,它提供了一種給定觀察數據來評估模型參數的方法,即 “模型已定,參數未知”,通過若干次試驗,觀察其結果,利用實驗結果得到某個參數值能夠使樣本出現的概率爲最大,則稱爲極大似然估計。邏輯迴歸是一種監督式學習,是有訓練標籤的,就是有已知結果的,從這個已知結果入手,去推導能獲得最大概率的結果參數,只要我們得出了這個參數,那我們的模型就自然可以很準確的預測未知的數據了。

即在邏輯迴歸模型中,我們最大化似然函數最小化對數似然損失函數實際上是等價的。

 

2、邏輯迴歸的損失函數爲什麼要使用極大似然函數作爲損失函數?

  • 損失函數一般有四種,平方損失函數,對數損失函數,HingeLoss0-1損失函數,絕對值損失函數。將極大似然函數取對數以後等同於對數損失函數。在邏輯迴歸這個模型下,對數損失函數的訓練求解參數的速度是比較快的。至於原因大家可以求出這個式子的梯度更新

                                                             

    這個式子的更新速度只和相關。和sigmod函數本身的梯度是無關的。這樣更新的速度是可以自始至終都比較的穩定。
  • 爲什麼不選平方損失函數的呢?其一是因爲如果你使用平方損失函數,你會發現梯度更新的速度和sigmod函數本身的梯度是很相關的。sigmod函數在它在定義域內的梯度都不大於0.25。這樣訓練會非常的慢。

 

3、邏輯迴歸在訓練的過程當中,如果有很多的特徵高度相關或者說有一個特徵重複了100遍,會造成怎樣的影響?爲什麼我們還是會在訓練的過程當中將高度相關的特徵去掉?

如果在損失函數最終收斂的情況下,其實就算有很多特徵高度相關也不會影響分類器的效果。

但是對特徵本身來說的話,假設只有一個特徵,在不考慮採樣的情況下,你現在將它重複100遍。訓練以後完以後,數據還是這麼多,但是這個特徵本身重複了100遍,實質上將原來的特徵分成了100份,每一個特徵都是原來特徵權重值的百分之一。

如果在隨機採樣的情況下,其實訓練收斂完以後,還是可以認爲這100個特徵和原來那一個特徵扮演的效果一樣,只是可能中間很多特徵的值正負相消了。

爲什麼我們還是會在訓練的過程當中將高度相關的特徵去掉?

去掉高度相關的特徵會讓模型的可解釋性更好

可以大大提高訓練的速度。如果模型當中有很多特徵高度相關的話,就算損失函數本身收斂了,但實際上參數是沒有收斂的,這樣會拉低訓練的速度。其次是特徵多了,本身就會增大訓練的時間。

 

4、LR可以用核麼?可以怎麼用?l1l2正則項是啥?lrl1還是l2好?加哪個可以用核(加l2正則項,和svm類似,加l2正則項可以用核方便處理)

LR可以用核解決非線性分類問題:

區別是:SVM如果不用核函數,也得像邏輯迴歸一樣,在映射後的高維空間顯示的定義非線性映射函數Φ,而引入了核函數之後,可以在低維空間做完點積計算後,映射到高維。

綜上,邏輯迴歸本質上是線性迴歸模型,關於係數是線性函數,分離平面無論是線性還是非線性的,邏輯迴歸其實都可以進行分類。對於非線性的,需要自己去定義一個非線性映射。

L1 正則化:

等價於原始損失函數的後面加上了 L1 正則,因此 L1 正則的本質其實是爲模型增加了“模型參數服從零均值拉普拉斯分佈”這一先驗知識。

L2正則化:

等價於原始的損失函數後面加上了 L2 正則,因此 L2 正則的本質其實是爲模型增加了“模型參數服從零均值正態分佈”這一先驗知識。

L1 和 L2 的區別:

從上面的分析中我們可以看到,L1 正則化增加了所有權重 w 參數的絕對值之和逼迫更多 w 爲零,也就是變稀疏( L2 因爲其導數也趨 0, 奔向零的速度不如 L1 給力了)我們對稀疏規則趨之若鶩的一個關鍵原因在於它能實現特徵的自動選擇一般來說,大部分特徵 x_i 都是和最終的輸出 y_i 沒有關係或者不提供任何信息的。在最小化目標函數的時候考慮 x_i 這些額外的特徵,雖然可以獲得更小的訓練誤差,但在預測新的樣本時,這些沒用的特徵權重反而會被考慮,從而干擾了對正確 y_i 的預測。L1 正則化的引入就是爲了完成特徵自動選擇的光榮使命,它會學習地去掉這些無用的特徵,也就是把這些特徵對應的權重置爲 0。

L2 正則化中增加所有權重 w 參數的平方之和,逼迫所有 w 儘可能趨向零但不爲零(L2 的導數趨於零)。因爲在未加入 L2 正則化發生過擬合時,擬合函數需要顧忌每一個點,最終形成的擬合函數波動很大,在某些很小的區間裏,函數值的變化很劇烈,也就是某些 w 值非常大。爲此,L2 正則化的加入就懲罰了權重變大的趨勢。

                                             

那現在我們看下加了 L1 正則化和 L2 正則化之後,目標函數求解的時候,最終解會有什麼變化。

                       

從上邊兩幅圖中我們可以看出:

  • 如果不加 L1 和 L2 正則化的時候,對於線性迴歸這種目標函數凸函數的話,我們最終的結果就是最裏邊的紫色的小圈圈等高線上的點。
  • 當加入 L1 正則化的時候,我們先畫出 的圖像,也就是一個菱形,代表這些曲線上的點算出來的  範數都爲 F。那我們現在的目標是不僅是原曲線算的值要小(越來越接近中心的紫色圈圈),還要使得這個菱形越小越好(F 越小越好)。那麼還和原來一樣的話,過中心紫色圈圈的那個菱形明顯很大,因此我們要取到一個恰好的值。那麼如何求值呢?

                                                 

綜上所述,我們可以看見,加入正則化項,在最小化經驗誤差的情況下,可以讓我們選擇解更簡單(趨向於 0)的解。

結構風險最小化:在經驗風險最小化的基礎上(也就是訓練誤差最小化),儘可能採用簡單的模型,以此提高泛化預測精度。

因此,加正則化項就是結構風險最小化的一種實現。

正則化之所以能夠降低過擬合的原因在於,正則化是結構風險最小化的一種策略實現。

簡單總結下

給 loss function 加上正則化項,能使新得到的優化目標函數 ,需要在 f 和 ||w|| 中做一個權衡,如果還像原來只優化 f 的情況下,那可能得到一組解比較複雜,使得正則項 ||w|| 比較大,那麼 h 就不是最優的,因此可以看出加正則項能讓解更加簡單,符合奧卡姆剃刀理論,同時也比較符合在偏差和方差(方差表示模型的複雜度)分析中,通過降低模型複雜度,得到更小的泛化誤差,降低過擬合程度。

L1 正則化就是在 loss function 後邊所加正則項爲 L1 範數,加上 L1 範數容易得到稀疏解(0 比較多)。L2 正則化就是 loss function 後邊所加正則項爲 L2 範數的平方,加上 L2 正則相比於 L1 正則來說,得到的解比較平滑(不是稀疏),但是同樣能夠保證解中接近於 0(但不是等於 0,所以相對平滑)的維度比較多,降低模型的複雜度。

 

5、LR可以用來處理非線性問題麼?(還是lr啊 只不過是加了核的lr 這裏加核是顯式地把特徵映射到高維 然後再做lr)怎麼做?可以像SVM那樣麼?爲什麼?

LR可以用核解決非線性分類問題:
(1)利用特殊核函數,對特徵進行變換:把低維空間轉換到高維空間,而在低維空間不可分的數據,到高維空間中線性可分的機率會高一些。
(2)擴展LR算法,提出FM算法。

區別是:SVM如果不用核函數,也得像邏輯迴歸一樣,在映射後的高維空間顯示的定義非線性映射函數Φ,而引入了核函數之後,可以在低維空間做完點積計算後,映射到高維。

綜上,邏輯迴歸本質上是線性迴歸模型,關於係數是線性函數,分離平面無論是線性還是非線性的,邏輯迴歸其實都可以進行分類。對於非線性的,需要自己去定義一個非線性映射。

使用核函數(特徵組合映射):

針對線性不可分的數據集,可以嘗試對給定的兩個feature做一個多項式特徵的映射,例如:

下面兩個圖的對比說明了線性分類曲線和非線性分類曲線(通過特徵映射)

在LR中,我們可以通過在基本線性迴歸模型的基礎上引入交叉項,來實現非線性分類,如下:

但是這種直接在交叉項xixj的前面加上交叉項係數wij的方式在稀疏數據的情況下存在一個很大的缺陷,即在對於觀察樣本中未出現交互的特徵分量,不能對相應的參數進行估計。
即,在數據稀疏性普遍存在的實際應用場景中,二次項參數的訓練是很困難的。其原因是,每個參數 wij的訓練需要大量xi和 xj都非零的樣本;由於樣本數據本來就比較稀疏,滿足xi 和 xj都非零”的樣本將會非常少。訓練樣本的不足,很容易導致參數 wij 不準確,最終將嚴重影響模型的性能。

使用FM模型:

另一種方法是對LR進行擴展,因子分解機(Factorization Machine,FM)是對LR算法的擴展。FM模型是一種基於矩陣分解的機器學習模型,對於稀疏數據具有很好的學習能力
對於因子分解機FM來說,最大的特點是對於稀疏的數據具有很好的學習能力。
FM解決了LR泛化能力弱的問題,其目標函數如下所示:

 

6、爲什麼LR需要歸一化或者取對數,爲什麼LR把特徵離散化後效果更好,爲什麼把特徵組合之後還能提升,反正這些基本都是增強了特徵的表達能力,或者說更容易線性可分吧

爲什麼LR需要歸一化或者取對數?

符合假設、利於分析、歸一化也有利於梯度下降。

爲什麼LR把特徵離散化後效果更好?離散化的好處有哪些?

邏輯迴歸屬於廣義線性模型,表達能力受限;
在工業界,很少直接將連續值作爲邏輯迴歸模型的特徵輸入,而是將連續特徵離散化爲一系列0、1特徵交給邏輯迴歸模型,這樣做的優勢有以下幾點:

  1. 邏輯迴歸屬於廣義線性模型,表達能力受限;單變量離散化爲N個後,每個變量有單獨的權重,相當於爲模型引入了非線性,能夠提升模型表達能力,加大擬合;
  2. 離散化後可以進行特徵交叉,由M+N個變量變爲M*N個變量,進一步引入非線性,提升表達能力;
  3. 特徵離散化以後,簡化了邏輯迴歸模型,降低了模型過擬合的風險。
  4. 離散特徵的增加和減少都很容易,易於模型的快速迭代;
  5. 稀疏向量內積乘法運算速度快,計算結果方便存儲,容易擴展;
  6. 離散化後的特徵對異常數據有很強的魯棒性:比如一個特徵是年齡>30是1,否則0。如果特徵沒有離散化,一個異常數據“年齡300歲”會給模型造成很大的干擾;
  7. 特徵離散化後,模型會更穩定,比如如果對用戶年齡離散化,20-30作爲一個區間,不會因爲一個用戶年齡長了一歲就變成一個完全不同的人。當然處於區間相鄰處的樣本會剛好相反,所以怎麼劃分區間是門學問;

 

7、美團技術團隊《Logistic Regression 模型簡介》https://tech.meituan.com/intro_to_logistic_regression.html

應用

預測用戶在未來某個時間段是否會購買某個品類,如果把會購買標記爲1,不會購買標記爲0,就轉換爲一個二分類問題。我們用到的特徵包括用戶在美團的瀏覽,購買等歷史信息,見下表

                                             

其中提取的特徵的時間跨度爲30天,標籤爲2天。生成的訓練數據大約在7000萬量級(美團一個月有過行爲的用戶),我們人工把相似的小品類聚合起來,最後有18個較爲典型的品類集合。如果用戶在給定的時間內購買某一品類集合,就作爲正例。喲了訓練數據後,使用Spark版的LR算法對每個品類訓練一個二分類模型,迭代次數設爲100次的話模型訓練需要40分鐘左右,平均每個模型2分鐘,測試集上的AUC也大多在0.8以上。訓練好的模型會保存下來,用於預測在各個品類上的購買概率。預測的結果則會用於推薦等場景。

由於不同品類之間正負例分佈不同,有些品類正負例分佈很不均衡,我們還嘗試了不同的採樣方法,最終目標是提高下單率等線上指標。經過一些參數調優,品類偏好特徵爲推薦和排序帶來了超過1%的下單率提升。

此外,由於LR模型的簡單高效,易於實現,可以爲後續模型優化提供一個不錯的baseline,我們在排序等服務中也使用了LR模型。

 

8、SVMlogistic迴歸分別在什麼情況下使用?https://www.zhihu.com/question/21704547

如何選擇LR與SVM?

  1. 如果Feature的數量很大,跟樣本數量差不多,這時候選用LR或者是Linear Kernel的SVM
  2. 如果Feature的數量比較小,樣本數量一般,不算大也不算小,選用SVM+Gaussian Kernel
  3. 如果Feature的數量比較小,而樣本數量很多,需要手工添加一些feature變成第一種情況。

什麼是參數模型(LR)與非參數模型(SVM)?

參數模型通常假設總體(隨機變量)服從某一個分佈,該分佈由一些參數確定(比如正太分佈由均值和方差確定),在此基礎上構建的模型稱爲參數模型;

非參數模型對於總體的分佈不做任何假設,只是知道總體是一個隨機變量,其分佈是存在的(分佈中也可能存在參數),但是無法知道其分佈的形式,更不知道分佈的相關參數,只有在給定一些樣本的條件下,能夠依據非參數統計的方法進行推斷。

 

9、爲什麼LR可以用來做CTR預估?https://www.zhihu.com/question/23652394

1、爲什麼LR可以用來做點擊率預估?

把被點擊的樣本當成正例,把未點擊的樣本當成負例,那麼樣本的ctr實際上就是樣本爲正例的概率,LR可以輸出樣本爲正例的概率,所以可以用來解決這類問題,另外LR相比於其他模型有求解簡單、可解釋強的優點,這也是工業界所看重的。

2、滿足什麼樣條件的數據用LR最好?換句話說,爲了LR工作的更好,要對數據做一些什麼處理?

這裏給個充分不必要的條件:

 

10、邏輯迴歸估計參數時的目標函數 (就是極大似然估計那部分)。如果加上一個先驗的服從高斯分佈的假設,會是什麼樣(天啦。我不知道,其實就是在後面乘一個東西,取log後就變成加一個東西,實際就變成一個正則項

 

11、邏輯迴歸估計參數時的目標函數邏輯迴歸的值表示概率嗎?(值越大可能性越高,但不能說是概率)

 即:對於輸入的x,y=1的概率估計。

 

12、手推邏輯迴歸目標函數,正類是1,反類是-1。一般都是正例是1,反例是0的,就是極大似然函數的指數不一樣

 

13、看沒看過scikit-learn源碼LR的實現?(回頭看了一下是調用的liblinear

 

14、naive bayeslogistic regression的區別http://m.blog.csdn.net/blog/muye5/19409615

如果GNB假設成立,在漸進意義上,NB和LR會收斂成同一個分類器,否則,二者一般會訓練處不同的分類器,這時,當數據量無限時,LR的結果往往比NB要好

LR不必假設數據的各個屬性之間必須是相互獨立的,對於不滿足假設的數據,LR會在訓練過程中對W參數自動調整

但是GNB與LR相比,GNB會快速的收斂,並且需要log n (n是數據維度)級別的樣本數據。而LR需要n級別的數據,這時,對於小數據量下,GNB可能會比LR好一些!

 

15、LR爲什麼用sigmoid函數。這個函數有什麼優點和缺點?爲什麼不用其他函數?sigmoid函數由那個指數族分佈,加上二項分佈導出來的。損失函數是由最大似然估計求出的。

邏輯迴歸是在線性迴歸的基礎上加了一個 Sigmoid 函數(非線性)映射,使得邏輯迴歸稱爲了一個優秀的分類算法。本質上來說,兩者都屬於廣義線性模型,但他們兩個要解決的問題不一樣,邏輯迴歸解決的是分類問題,輸出的是離散值,線性迴歸解決的是迴歸問題,輸出的連續值。

Sigmoid 函數到底起了什麼作用:

  • 線性迴歸是在實數域範圍內進行預測,而分類範圍則需要在 [0,1],邏輯迴歸減少了預測範圍;
  • 線性迴歸在實數域上敏感度一致,而邏輯迴歸在 0 附近敏感,在遠離 0 點位置不敏感,這個的好處就是模型更加關注分類邊界,可以增加模型的魯棒性。

 

16、瞭解其他的分類模型嗎,問LR缺點,LR怎麼推導,寫LR目標函數,目標函數怎麼求最優解(也不會)講講LR的梯度下降,梯度下降有哪幾種,邏輯函數是啥

LR與其他模型的對比:

1、LR與線性迴歸 

  •  線性迴歸和邏輯迴歸都是廣義線性迴歸模型的特例
  •  線性迴歸只能用於迴歸問題,邏輯迴歸用於分類問題(可由二分類推廣至多分類)
  •  線性迴歸使用最小二乘法作爲參數估計方法,邏輯迴歸使用極大似然法作爲參數估計方法
  •  邏輯迴歸引入了sigmoid函數,把y值從線性迴歸的(−∞,+∞)限制到了(0,1)的範圍。
  •  邏輯迴歸通過閾值判斷的方式,引入了非線性因素,可以處理分類問題。
  •  線性迴歸要求變量服從正態分佈,logistic迴歸對變量分佈沒有要求。

2、LR與最大熵模型

邏輯迴歸和最大熵模型本質上沒有區別,最大熵在解決二分類問題時就是邏輯迴歸,在解決多分類問題時就是多項邏輯迴歸。

3、LR與 SVM

相同點:

  • 都是分類算法,本質上都是在找最佳分類超平面;
  • 都是監督學習算法;
  • 都是判別式模型,判別模型不關心數據是怎麼生成的,它只關心數據之間的差別,然後用差別來簡單對給定的一個數據進行分類;
  • 都可以增加不同的正則項。

不同點:

  • LR 是一個統計的方法,SVM 是一個幾何的方法;
  • SVM 的處理方法是隻考慮 Support Vectors,也就是和分類最相關的少數點去學習分類器。而邏輯迴歸通過非線性映射減小了離分類平面較遠的點的權重,相對提升了與分類最相關的數據點的權重;
  • 損失函數不同:LR 的損失函數是交叉熵,SVM 的損失函數是 HingeLoss,這兩個損失函數的目的都是增加對分類影響較大的數據點的權重,減少與分類關係較小的數據點的權重。對 HingeLoss 來說,其零區域對應的正是非支持向量的普通樣本,從而所有的普通樣本都不參與最終超平面的決定,這是支持向量機最大的優勢所在,對訓練樣本數目的依賴大減少,而且提高了訓練效率;
  • LR 是參數模型,SVM 是非參數模型,參數模型的前提是假設數據服從某一分佈,該分佈由一些參數確定(比如正太分佈由均值和方差確定),在此基礎上構建的模型稱爲參數模型;非參數模型對於總體的分佈不做任何假設,只是知道總體是一個隨機變量,其分佈是存在的(分佈中也可能存在參數),但是無法知道其分佈的形式,更不知道分佈的相關參數,只有在給定一些樣本的條件下,能夠依據非參數統計的方法進行推斷。所以 LR 受數據分佈影響,尤其是樣本不均衡時影響很大,需要先做平衡,而 SVM 不直接依賴於分佈;
  • LR 可以產生概率,SVM 不能;
  • LR 不依賴樣本之間的距離,SVM 是基於距離的;
  • LR 相對來說模型更簡單好理解,特別是大規模線性分類時並行計算比較方便。而 SVM 的理解和優化相對來說複雜一些,SVM 轉化爲對偶問題後,分類只需要計算與少數幾個支持向量的距離,這個在進行復雜核函數計算時優勢很明顯,能夠大大簡化模型和計算

4、LR與樸素貝葉斯

樸素貝葉斯和邏輯迴歸都屬於分類模型,當樸素貝葉斯的條件概率 服從高斯分佈時,它計算出來的 P(Y=1|X) 形式跟邏輯迴歸是一樣的。

兩個模型不同的地方在於:

  • 邏輯迴歸是判別式模型 p(y|x),樸素貝葉斯是生成式模型 p(x,y):判別式模型估計的是條件概率分佈,給定觀測變量 x 和目標變量 y 的條件模型,由數據直接學習決策函數 y=f(x) 或者條件概率分佈 P(y|x) 作爲預測的模型。判別方法關心的是對於給定的輸入 x,應該預測什麼樣的輸出 y;而生成式模型估計的是聯合概率分佈,基本思想是首先建立樣本的聯合概率概率密度模型 P(x,y),然後再得到後驗概率 P(y|x),再利用它進行分類,生成式更關心的是對於給定輸入 x 和輸出 y 的生成關係;
  • 樸素貝葉斯的前提是條件獨立,每個特徵權重獨立,所以如果數據不符合這個情況,樸素貝葉斯的分類表現就沒邏輯會好了。

邏輯迴歸的求解方法

1、由於該極大似然函數無法直接求解,我們一般通過對該函數進行梯度下降來不斷逼急最優解。在這個地方其實會有個加分的項,考察你對其他優化方法的瞭解。因爲就梯度下降本身來看的話就有隨機梯度下降,批梯度下降,small batch 梯度下降三種方式,面試官可能會問這三種方式的優劣以及如何選擇最合適的梯度下降方式。

(1)簡單來說 批梯度下降會獲得全局最優解,缺點是在更新每個參數的時候需要遍歷所有的數據,計算量會很大,並且會有很多的冗餘計算,導致的結果是當數據量大的時候,每個參數的更新都會很慢。

(2)隨機梯度下降以高方差頻繁更新,優點是使得sgd會跳到新的和潛在更好的局部最優解,缺點是使得收斂到局部最優解的過程更加的複雜。

(3)小批量梯度下降結合了sgd和batch gd的優點,每次更新的時候使用n個樣本。減少了參數更新的次數,可以達到更加穩定收斂結果,一般在深度學習當中我們採用這種方法。

2、其實這裏還有一個隱藏的更加深的加分項,看你了不瞭解諸如Adam,動量法等優化方法。因爲上述方法其實還有兩個致命的問題。

(1)第一個是如何對模型選擇合適的學習率。自始至終保持同樣的學習率其實不太合適。因爲一開始參數剛剛開始學習的時候,此時的參數和最優解隔的比較遠,需要保持一個較大的學習率儘快逼近最優解。但是學習到後面的時候,參數和最優解已經隔的比較近了,你還保持最初的學習率,容易越過最優點,在最優點附近來回振盪,通俗一點說,就很容易學過頭了,跑偏了。

(2)第二個是如何對參數選擇合適的學習率。在實踐中,對每個參數都保持的同樣的學習率也是很不合理的。有些參數更新頻繁,那麼學習率可以適當小一點。有些參數更新緩慢,那麼學習率就應該大一點。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章