Machine Learning - Andrew Ng on Coursera (Week 1)
轉(zhuǎn)載自:http://1.kaopuer.applinzi.com/?p=110
今天分享了Coursera上Andrew Ng的Machine Learning第一周的課程,主要內(nèi)容有如下,詳細(xì)內(nèi)容可以參考文末附件:
- 有監(jiān)督式學(xué)習(xí)和無監(jiān)督式學(xué)習(xí)
- 線性回歸的模型表示及成本函數(shù)
- 梯度下降算法
- 線性代數(shù)回顧
有監(jiān)督式學(xué)習(xí)和無監(jiān)督式學(xué)習(xí)
機器學(xué)習(xí)可以簡單地理解為是從數(shù)據(jù)中學(xué)習(xí)一個映射函數(shù),使得對于新的輸入數(shù)據(jù)[Math Processing Error]預(yù)測其對應(yīng)的[Math Processing Error]。機器學(xué)習(xí)的算法大致可以分為有監(jiān)督學(xué)習(xí)(Supervised Learning)和無監(jiān)督學(xué)習(xí)(Unsupervised Learning)兩種。兩者的區(qū)別主要在于在學(xué)習(xí)的過程中訓(xùn)練集數(shù)據(jù)是否提供了因變量[Math Processing Error]的信息,如果提供了[Math Processing Error]的信息,那么該過程就是有監(jiān)督學(xué)習(xí),否則就是無監(jiān)督學(xué)習(xí)。典型的有監(jiān)督式學(xué)習(xí)如分類算法、回歸算法,分別針對的是離散值和連續(xù)值的預(yù)測;無監(jiān)督式學(xué)習(xí)如聚類算法等,在搜索引擎,生物基因等領(lǐng)域也有著廣泛的應(yīng)用。
婧文提出,如何對無監(jiān)督學(xué)習(xí)的結(jié)果進(jìn)行評價,這是一個很好的問題。通常是通過定義評價函數(shù)來對無監(jiān)督學(xué)習(xí)算法的效果進(jìn)行評價的,但在實際問題中,評價函數(shù)并不完全是數(shù)據(jù)的客觀評價,而是結(jié)合問題求解目標(biāo)的一種人為定義。半監(jiān)督學(xué)習(xí)(Semi-Superviesed Learning)則是主要考慮如何利用少量的標(biāo)注樣本和大量的未標(biāo)注樣本進(jìn)行訓(xùn)練和分類的問題。半監(jiān)督學(xué)習(xí)對于減少標(biāo)注代價,提高學(xué)習(xí)機器性能具有非常重大的實際意義。
在整個課程中主要還是以介紹有監(jiān)督學(xué)習(xí)為主,但是從有監(jiān)督學(xué)習(xí)的學(xué)習(xí)中也可以從中看出機器學(xué)習(xí)對問題的切入點,慢慢也可以體會到機器學(xué)習(xí)是怎樣定義一個學(xué)習(xí)任務(wù)的然后又是怎樣進(jìn)行學(xué)習(xí)的。
線性回歸的模型表示及成本函數(shù)
以線性回歸(Linear Regression)為例切入整個課程的學(xué)習(xí),將機器學(xué)習(xí)的主干任務(wù)串聯(lián)起來。可以將實際問題抽象為具體的數(shù)學(xué)模型,具體建模過程如下圖所示:

課程中以對房子價格的預(yù)測為例,問題是:給定一批已知的房子大小和價格的對應(yīng)關(guān)系數(shù)據(jù),如何對一個給定大小的房子進(jìn)行估值。模型大概可以分解為:
以上也是對一個機器學(xué)習(xí)問題的一般建模思路。
梯度下降算法
當(dāng)然,對于線性回歸問題可以直接利用數(shù)值求得解析解,但這里引入了梯度下降法(Gradient Descent Algorithm)展示機器學(xué)習(xí)算法的一般過程。梯度下降法的框架很簡單,隨機選擇一個起點,然后按照梯度相反方向迭代直到收斂,公式如下:
[Math Processing Error]
其中[Math Processing Error]是學(xué)習(xí)速率(Learning Rate),如果設(shè)置過小,算法迭代過程會相對很慢;而如果設(shè)置過大,算法可能無法達(dá)到最小值甚至無法收斂。課程中介紹了一種方法,即初始學(xué)習(xí)速率較大,隨著向極值點靠近,學(xué)習(xí)速率也逐漸減小。
另外值得注意的是,在線性回歸問題中,成本函數(shù)的3D圖像是呈碗狀的,即有全局最優(yōu)。在其他問題的成本函數(shù)還可能存在除全局最優(yōu)以外的極值點,也可稱為局部最優(yōu)。在這種情況下,算法可能會陷入局部最優(yōu)的麻煩,這時可以采用隨機選取其他的起始點再次利用梯度下降算法求解,比較兩次結(jié)果取其中優(yōu)者。
線性代數(shù)回顧
線性代數(shù)對于計算機科學(xué)來講地位是非常重要的。Andrew和吳金閃老師都指出在計算矩陣乘法時,采用現(xiàn)有的矩陣運算包比自己用for循環(huán)寫出來的效率要高。吳金閃老師還提到了Strassen算法,將大矩陣拆分成若干個小矩陣進(jìn)行運算會降低求解的時間復(fù)雜度。同時,在諸如奇異值分解(Singular Value Decomposition)等算法中,線性代數(shù)有著廣泛的應(yīng)用。因此,本課程第一周的補充材料里面還對線性代數(shù)的一些基礎(chǔ)概念進(jìn)行了講解,主要包括了:
- 向量和矩陣
- 矩陣加法和標(biāo)量乘法
- 矩陣和向量相乘
- 矩陣和矩陣相乘
- 矩陣的轉(zhuǎn)置和逆
若有不當(dāng)之處,請大家指正,謝謝!
附本次分享演示文檔:ML-Coursera-Week1
總結(jié)
以上是生活随笔為你收集整理的Machine Learning - Andrew Ng on Coursera (Week 1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机视觉与模式识别(1)—— A4纸边
- 下一篇: Machine Learning - A