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

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