機器學習第一天

在模型組已經小半年了,機器學習的應用下的算法也混了耳熟,從上個項目到現在,所有ETL工作也沒有什麼創新,藉助這樣好的平臺環境,最近的想法是上班時候看建模相關的東西,晚上下班看爬蟲的東西,從今天起正式開始第一天的機器學習算法的學習。

1、什麼是機器學習:

參考:知乎 https://zhuanlan.zhihu.com/p/24339995
作爲人類的一員,你的大腦可以應付絕大多數情況,並且在沒有任何明確指令時也能夠學習如何處理這些情況。如果你做房地產經紀人時間足夠長,你對於房產的合適定價、房屋的最佳營銷方式以及客戶會感興趣類型等等都會有一種本能般的「感覺」。強人工智能研究的目標就是要計算機複製這種能力。

但是目前的機器學習算法還沒有那麼強大——它們只能在非常特定的、有限的問題上有效。也許在這種情況下,「學習」更貼切的定義是「在少量樣本數據的基礎上找出一個公式來解決特定的問題」。

但是「機器在少量樣本數據的基礎上找出一個公式來解決特定的問題」不是個好名字。所以最後我們用「機器學習」取而代之。

2、機器學習算法的實質就是:代價函數(cost function)的最小化

注:代價函數(有的地方也叫損失函數,Loss Function)在機器學習中的每一種算法中都很重要,因爲訓練模型的過程就是優化代價函數的過程,代價函數對每個參數的偏導數就是梯度下降中提到的梯度,防止過擬合時添加的正則化項也是加在代價函數後面的。在學習相關算法的過程中,對代價函數的理解也在不斷的加深,在此做一個小結。
假設有訓練樣本(x, y),模型爲h,參數爲θ。h(θ) = θTx(θT表示θ的轉置)。

(1)概況來講,任何能夠衡量模型預測出來的值h(θ)與真實值y之間的差異的函數都可以叫做代價函數C(θ),如果有多個樣本,則可以將所有代價函數的取值求均值,記做J(θ)。因此很容易就可以得出以下關於代價函數的性質:

對於每種算法來說,代價函數不是唯一的;
代價函數是參數θ的函數;
總的代價函數J(θ)可以用來評價模型的好壞,代價函數越小說明模型和參數越符合訓練樣本(x, y);
J(θ)是一個標量;
(2)當我們確定了模型h,後面做的所有事情就是訓練模型的參數θ。那麼什麼時候模型的訓練才能結束呢?這時候也涉及到代價函數,由於代價函數是用來衡量模型好壞的,我們的目標當然是得到最好的模型(也就是最符合訓練樣本(x, y)的模型)。因此訓練參數的過程就是不斷改變θ,從而得到更小的J(θ)的過程。理想情況下,當我們取到代價函數J的最小值時,就得到了最優的參數θ,記爲:

minθJ(θ)
例如,J(θ) = 0,表示我們的模型完美的擬合了觀察的數據,沒有任何誤差。

(3)在優化參數θ的過程中,最常用的方法是梯度下降,這裏的梯度就是代價函數J(θ)對θ1, θ2, …, θn的偏導數。由於需要求偏導,我們可以得到另一個關於代價函數的性質:

選擇代價函數時,最好挑選對參數θ可微的函數(全微分存在,偏導數一定存在)

3、知識儲備:

https://zhuanlan.zhihu.com/p/26169982
https://zhuanlan.zhihu.com/p/26169982
https://zhuanlan.zhihu.com/p/26169982
https://zhuanlan.zhihu.com/p/36311622
https://blog.csdn.net/tiankong_/article/details/78611680
https://www.cnblogs.com/Belter/p/6128644.html
http://www.cnblogs.com/Belter/p/6653773.html

https://zhuanlan.zhihu.com/p/47200561
http://www.sohu.com/a/145845622_642762
https://www.zhihu.com/search?type=content&q=機器學習
https://www.zhihu.com/question/22553761
https://www.zhihu.com/topic/20014861/top-answers
https://zhuanlan.zhihu.com/p/24339995

待續。。。

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