machine learning 之 導論 一元線性回歸
整理自Andrew Ng 的 machine learnig 課程 week1
目錄:
- 什麽是機器學習
- 監督學習
- 非監督學習
- 一元線性回歸
- 模型表示
- 損失函數
- 梯度下降算法
1、什麽是機器學習
Arthur Samuel不是一個playing checker的高手,但是他編了一個程序,每天和這個程序playing checker,後來這個程序最後變得特別厲害,可以贏很多很厲害的人了。所以Arthur Samuel就給機器學習下了一個比較old,不太正式的定義:
” the field of study that gives the computer the ability to learn without being explicitly programmed “
現代比較正式的一個定義是:
” A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P , if its perfermance at tasks in T as measured by P, improves with experience E “
也就是說:計算機程序從 ” 做一系列任務T得來的經驗E ” 和 “ 測度這個任務做的好不好的表現測度 P “ 中去學習,學習的目標就是,通過這些經驗E ,這些任務T做的更好了,做的好不好的評價標準就是P;
以上面Arthur Samuel playing checker的例子來說:
E:Arthur Samuel和程序很多次play checker的經驗;
T:playing checker
P:程序在下一次比賽中贏的概率
機器學習問題一般可以分為 ” 監督學習 “ 和 ” 非監督學習 “兩類。
2、監督學習
"given data set and already know what our correct output should look like"
對於輸入和輸出之間的關系我們已經差不多可以有一個思路了
” 回歸 “ 和 ” 分類 “
回歸:結果是連續的,map input to some continuous function (如:預測房價)
分類:結果是離散的,map input to some discrete function (如:預測房價是否大於某個值)
3、非監督學習
” approach problems with little or no ideal what our result should look like “
對於輸入和輸出之間的關系,我們沒有一個概念
” 聚類 “ 和 ” 非聚類 “
聚類:對1000,000中不同的基因聚類,group related to lifespan, height.......
非聚類:雞尾酒宴會算法,find structure in chaotic environment (比如,在雞尾酒宴會中各種混雜的聲音中識別出某個人的聲音或者背景音樂)
4、一元線性回歸
模型表示
$x^{(i)}$:輸入變量
$y^{(i)}$:輸出變量
$(x^{(i)}, y^{(i)})$:一個訓練數據
$(x^{(i)}, y^{(i)}); i=1...m$:訓練數據集
$X=Y=R$:輸入空間和輸出空間,這裏是一樣的
$h_\theta(x)=\theta_0+\theta_1x$
比如以下:
對於監督學習問題:給定訓練數據集(x,y),學習一個$h(x):X \rightarrow Y$,對於h(x)是y的一個好的預測
損失函數
用於衡量h(x)的accuracy,是h(x)和y的average difference
$ J(\theta_0,\theta_1)$ = $ \frac{1}{2m} $ $\sum_{i=1}^m$ $(h_\theta(x^{(i)}-y^{(i)})))^2 $
這個函數被稱為平方損失函數(square error function / mean square error), 在回歸問題中常用於表示損失函數,非回歸問題中也會用,比較常用
這裏 $ \sum_{i=1}^m$ $(h_\theta(x^{(i)})-y^{(i)})^2 $ 是損失平方和,$\frac12$是為了以後求導方便加上去的
我們的目標就是找到一個使得損失函數最小的$\theta_0和\theta_1$:
損失函數 visual 1
以下為了展示損失函數,為了方便,讓$\theta_0=0$
當$\theta_1=1$時,$J(\theta_1)=0$,在右圖綠色叉叉的位置;
當$\theta_1=0.5$時,$J(\theta_1)=0.~$,大概在右圖藍色叉叉的位置;
當$\theta_1=0$時,$J(\theta_1)=2.~$,大概在右圖上y軸的黑色叉叉那裏;
基於以上三個點,我們知道$J(\theta_1)$大概就是上右圖的樣子,當$\theta_1=1$時$J(\theta_1)$最小,左邊遞減,右邊遞增;
損失函數 visual 2
對於以上簡單的損失函數,我們還可以在二維圖上畫出來,也比較好理解,但是當維度(變量)大了之後,這種圖就不好畫了,比如二維:
此時常用等高線圖來表示損失函數:
對於以上的訓練數據,當$\theta_0=0, \theta_1=360$時,$J(\theta_0, \theta_1)$位於等高線圖中紅色叉叉的位置;
當$\theta_0, \theta_1$如下左圖時,$J(\theta_0, \theta_1)$位於等高線圖中綠色叉叉的位置;
當$\theta_0, \theta_1$如下左圖時,$J(\theta_0, \theta_1)$位於等高線圖中藍色叉叉的位置,也就是接近最優解的地方,等高線的近似中間位置;
梯度下降算法
那麽如何找到最優解呢?梯度下降算法就是一個方法,見以往博客:Gradient Descent
machine learning 之 導論 一元線性回歸