機器學習原理
學習完數學理論就差不多該開始學習機器學習的原理了,現在流行的深度學習和強化學習,基本都是基於機器學習的原理,機器學習是基礎,所以需要先了解機器學習是什麼,怎麼實現的。
1. 機器學習的本質
機器學習的本質是找到一個功能函數,這個函數會根據我們的輸入,返回一個結果。所謂函數就是輸入了一個或幾個變量(x),通過數學轉換之後輸出一個數據(y),所以只要確定了數學轉換的算法,以及算法中所需要的參數,就能確定這個函數。
2. 機器學習任務及具體步驟
機器學習的核心任務有兩個,首先是找到合適的算法,其次是計算該算法所需要的參數。一般我們舉一個最簡單的函數,如 ,其中w是變量的係數,代表權重,參數b是常量,代表偏置量。通過給出大量的x值和y值,算出w和b,那麼就可以得出具體的功能函數,我們也就找到規律了,有了具體的函數,根據輸入x的值,我們就知道輸出的y值了,這就是機器學習,具體的步驟如下:
根據x,y值的輸入,推算規律
x | y |
---|---|
12 | 33 |
45 | 34 |
32 | 3 |
56 | 43 |
… | … |
- 算法選擇:選用最簡單的線性函數
- 初始化參數:就是給w,b一個初始的值,這個初始的值是個隨機數
- 計算誤差:現在已經知道了w和b,那麼就可以把樣本數據中的x帶入函數中求y值,爲了避免混淆把這次算出的y值記作,然後通過計算誤差的函數計算誤差,計算誤差函數爲
- 判斷學習是否完成:每次計算出來的誤差相互對比,總誤差不超過0.0001,就認爲學習已經完成。
- 調整參數:學習的目的是爲了把誤差降到最低,根據數學知識我們知道,沿着誤差函數的導數方向調整參數,誤差函數就可以變小了。即,用現有的誤差公式求對參數w的偏導數,以及對參數b的偏導數,就能得到,再用原來的參數w,b減去,就實現了對參數的調整,每次只調整1%,這個1%就是學習率 。
具體過程如下:
利用符合函數的求導公式:
,令 ,
,上述誤差函數的偏導數分別爲
- 反覆迭代,根據步驟3計算的誤差,再次進行步驟4和步驟5的迭代循環,直到誤差變得足夠小,此時的w和b值就是機器學習要找的參數。以後就可以用這個具體的功能函數根據任意一個新的x值,計算出對應的y值了。
3. 機器學習的複雜化
現實中基本不可能只存在一個變量,影響事務發展的因素也不可能只有一個,所以將線程方程複雜化之後,我們得出一個公式:
其中代表權重,n是變量的個數。之後我們就可以得出損失函數,也叫代價函數,可以用公式表示爲:
其中m表示樣本數據的個數,機器學習的目標就是讓損失函數足夠小,而辦法就是不斷的調整,調整的方法就是對求偏導數。