吴恩达《机器学习》学习笔记十三——机器学习系统(补充)
這次筆記是對筆記十二的補充,之前討論了評價指標,這次主要是補充機器學習系統設計中另一個重要的方面,用來訓練的數據有多少的問題。
筆記十二地址:https://blog.csdn.net/qq_40467656/article/details/107602209
之前曾說過不要盲目地開始花費大量的時間來收集大量的數據,因為大量的數據只在一些情況下對改善系統性能起作用。但事實證明,在一定條件下,得到大量的數據并在某種類型的學習算法中進行訓練,可以是一種有效的方法來獲得一個具有良好性能的學習算法,而這種情況往往出現在這些條件對于你的問題都成立,并且你能夠得到大量數據的情況下,這可以是一個很好的方式來獲得非常高性能的學習算法。
先來看一個例子理解一下:
這是一個對詞匯進行分類的系統,分別采用了感知機等四個算法,右邊的圖展示了隨著訓練數據集的增大,這些算法得到的準確率都得到了提升。
但并不是所有的情況下數據集增大都會提升性能,需要滿足一些條件,首先是特征需要提供足夠的信息使得模型能夠準確地預測,如下面這張圖所示,混淆詞分類足夠問題上下文已經提供了足夠的信息使得模型可以依據它們來預測,而房價預測只提供一個面積特征是遠遠不夠的,這時增加數據也無濟于事。
那么我們來看一下增加數據集是有效的情況:
假設我們使用一種需要大量參數的學習算法,如有很多特征的邏輯回歸或線性回歸,或有很多隱藏單元的神經網絡,它們有很多參數,這些參數可以擬合非常復雜的函數,所以這些算法具有低偏差,因為擬合能力強,所以訓練誤差就可能比較小。
現在假設我們使用了非常大的訓練集,訓練樣本比參數量大,那么這些算法就不太容易過擬合,算法就具有較低的方差,所以測試誤差就可能比較接近訓練誤差。結合兩者,訓練誤差小,測試誤差接近訓練誤差,那么可以得到這個算法的測試誤差也將比較小,具體如下圖中所示:
總結一下,這次筆記內容很簡單,就是如果你使用一個比較復雜的模型,比如深層的神經網絡,它具有較多的參數,可以擬合非常復雜的函數,偏差是比較小的,這時如果能夠有很龐大的數據集來訓練模型,因為數據樣本大,過擬合風險小,導致方差也小,所以該算法同時具有低偏差和低方差,最終的模型測試誤差將會較小,模型性能就會較好。這也是為什么現在的深度學習特別依賴數據的原因。
總結
以上是生活随笔為你收集整理的吴恩达《机器学习》学习笔记十三——机器学习系统(补充)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyTorch框架学习六——图像预处理t
- 下一篇: 吴恩达《机器学习》学习笔记三——多变量线