iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 4
0
AI & Data

Learning Machine Learning Algorithm in C++系列 第 4

Day 3 Linear Regression & Gradient Descent(1)

今天終於要切入主題,開始探討機器學習的演算法,第一個演算法叫作Linear Regression,是一個在統計學常用的方法,而在Linear Regression之中會使用到梯度下降法(Gradient Descent),也會一併於本章節介紹。

Linear Regression(線性迴歸)

我個人認為線性迴歸大概就像是機器學習裡面的Hello World,是一個非常基本,但又實用的方法,線性迴歸的原理很簡單,是以線性方程式為基礎,並且找到一條誤差最小的方程式。Excel裡面的趨勢線,就有使用線性迴歸所求得的。

https://ithelp.ithome.com.tw/upload/images/20180926/20111565g0E5bZgt2x.png

線性迴歸在機器學習裡面是屬於監督式的學習,因為在訓練的時候使用的資料是具有標籤。以上圖的案例來說,我是輸入了30個點的座標值,藉由30個點位的輸入(x),以及輸出(y),Excel求得了迴歸的結果 y = 2.9555x + 6.5169。

那線性迴歸是怎麼做到的呢,上述說要找到一條方程式,這條方程式對於所有的資料點位有著最小的誤差,換句話說就是要找到一條線,並且讓所有的點到這條線的距離總和是最小的,這些距離就是代表著迴歸線與資料點位的誤差,但因為誤差有正負號的差別,因此我們會將這個誤差平方後相加,作為誤差的總和。
https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Linear_least_squares_example2.png/220px-Linear_least_squares_example2.png

好,那目前我們已經知道需要找到一條線,去最小化這條線與這些資料點的距離總和,國中數學有學過,最基本的線性函式為 y=ax+b,我們藉由調整a和b兩個值,去改變這條線的斜率和高度。因此,我們的問題就變成了一個最佳化的問題,藉由最佳化a與b兩個數字,目標是可以讓所有點位與方程式的距離是最短的。那既然是最佳化的問題,就可以用很多種方法去解,像是我很喜歡的超啟發式演算法、最佳化演算法等等,我在許多的機器學習文獻上面看到他們都會使用Gradient Descent(梯度下降法)作為找到迴歸問題最佳解的方法,因此在後續我會接著介紹梯度下降法。


上一篇
Day 2 擁抱機器學習的演算法
下一篇
Day 4 Linear Regression & Gradient Descent(2)
系列文
Learning Machine Learning Algorithm in C++7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言