《機器學習實戰 學習筆記》(七):訓練模型練習題

1. 如果訓練集特徵超過百萬個,你會選擇什麼線性迴歸訓練算法?

   隨機梯度下降或小批量梯度下降,內存允許的話也可以用批量梯度下降。由於計算複雜度隨着特徵數量的增加而加速提升(比二次方高),所以不能使用標準方程。

2.如果訓練集裏特徵的數值大小迥異,什麼算法可能會受到影響?受影響程度如何?你該怎麼做?

   成本函數呈現爲細長的碗狀,導致梯度下降算法震盪耗費很長時間才能收斂。解決:數據縮放。

3.訓練邏輯迴歸模型時,梯度下降是否會困於局部最小值?

   邏輯迴歸的成本函數是凸函數,所以不會,否則會。

4.假設運行時間足夠長,所有的梯度下降算法是不是最終會產生相同的模型?

   如果優化問題是凸的(比如線性迴歸或邏輯迴歸),且學習率不搞,那麼所有梯度下降算法都可以接近全局最優,生成的模型都非常相似?爲什麼呢???。即使運行時間足夠長,也會有輕微不同。

5.假設你使用的是批量梯度下降,並且每一輪訓練都繪製出其驗證誤差,如果發現驗證誤差持續上升,可能發生了什麼?如何解決?

   如果驗證誤差開始每輪上升,可能學習率太高。如果訓練誤差也開始上升,顯示是算法開始發散,需要降低學習率。但是,如果訓練誤差不上升,驗證誤差上升(兩條線間間隙變大),過擬合。

6.當驗證誤差開始上升時,立刻停止小批量梯度下降算法訓練是否是一個好主意?

   不能,無論是SGD還是小批量梯度下降,由於隨機性,不能保證每一輪迭代取得最優。解決方法:定時保存最優模型,當較長一段時間沒有改善時,恢復到最優模型。

7.哪種梯度下降算法能最快到達最優解附近?哪種會收斂?如何使用其他算法同樣收斂?

   隨機梯度下降的迭代訓練最快,因爲一次只考慮一個訓練實例。只有批量梯度下降纔會真正收斂。隨機梯度下降和小批量梯度下降,將會一直圍繞最小值上上下下,除非降低學習率。

8.假設您使用的是多項式迴歸,繪製出學習曲線,你發現訓練誤差和驗證誤差之間存在很大的差距,發送了什麼?哪三種方法可以解決這個問題?

   訓練集上表現好,驗證集上表現差,過擬合。 解決方法:多項式降階 (降低模型複雜度)、增加正則項、擴大訓練集。

9.假設你使用的是嶺迴歸,你注意到訓練誤差和驗證誤差幾乎相等,並且非常高。你認爲模型是高方差還是高偏差?你應該提高還是降低正則化超參數α\alpha

   高偏差,降低

10.你爲何要使用:

   嶺迴歸而不是線性迴歸? 因爲正則項使模型泛化能力更好。
   lasso迴歸而不是嶺迴歸? lasso使用l1懲罰函數,傾向於將無用特徵權重置爲0,生成一個稀疏模型。
   彈性網絡而不是lasso迴歸? 因爲特徵相關性強或特徵數量比實例數量還多時,lasso非常不穩定。另外,彈性網絡會添加一個額外的超參數r對模型進行調整,可自由切換嶺迴歸和lasso迴歸。

11.如果你想將圖片分類爲戶外/室內以及白天/黑夜。你應該實現兩個邏輯迴歸分類器還是一個Softmax迴歸分類器?

   2個邏輯迴歸分類器,因爲不是互斥的。

12.用Softmax迴歸進行批量梯度下降訓練,並實施早期停止法(不使用sklearn)。

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