1. 程式人生 > >Andrew Ng's Coursera Machine Leaning(ML) Notes Week1

Andrew Ng's Coursera Machine Leaning(ML) Notes Week1

Andrew Ng’s Coursera Machine Leaning(ML) Course Notes Week1

Author: Yu-Shih Chen
December 20, 2018 12:50AM

Intro:
本人目前是在加州上大學的大二生,對人工智慧和資料科學有濃厚的興趣所以在上學校的課的同時也喜歡上一些網課。主要目的是希望能夠通過在這個平臺上分享自己的筆記來達到自己更好的學習/複習效果所以notes可能會有點亂,有些我認為我自己不需要再複習的內容我也不會重複。當然,如果你也在上這門網課,然後剛好看到了我的notes,又剛好覺得我的notes可能對你有點用,那我也會很開心哈哈!有任何問題或建議OR單純的想交流OR單純想做朋友的話可以加我的微信:y802088

Week1

這個星期Andrew給我們介紹了這門課的流程等一些基礎知識我就不寫了,關於linear algebra的科普我也不寫了都比較基礎。
Andrew給我們introduce了ML裡面的第一個學習模型:Linear Regression Model
簡單點說的話就是如果給一份資料庫,可以畫出一條根據提供的資料庫“學習”的線如:
在這裡插入圖片描述
像這樣可以畫出一條線,用來預測未來的一些資料。那這個預測肯定是會有誤差的 ,瞭解這個誤差值也非常重要。計算Linear Regression Model的誤差用以下公式:

We can measure the accuracy of our hypothesis function by using a cost function

. – Andrew Ng
Cost

Cost function也就是計算誤差的一個公式,這個比較好理解。h(x)其實就是我們初始預測的值然後y就是已經被提供的“答案”, 因為這個時候一般還沒有開始學習,所以預測出來的值跟“答案”的誤差會很大,畢竟是直接用初始設定的theta預測出的值。後面的idea就是:因為我們要這個J(theta)的最低值,所以我們會利用一些演算法去算什麼theta能達到最低的cost(誤差)進而獲取最有效率/準確率的預測。

那要怎麼才能獲取能夠讓這個cost function最低化的theta的值呢?大佬天才們想出了一個非常聰明的方法,叫 gradient descent


大概的思想是這樣的:
在這裡插入圖片描述
可能會被這張圖嚇到,但是其實這張多維的表就是表示我們的誤差(cost)的一個表。那當然,點越高,“山”越高,就越不好,因為就代表我們的cost越高。我們要尋找的就是能夠到 “山底下”或者是整片“山域”的最低點,也就是cost的最低值。也就是 途中紅色的箭頭指的地方。那用人眼來決定的話,可能會比你一開始選擇的值要有進步,但是肯定不會是最有效率的對吧?所以gradient descent的工作就是讓電腦自己去找出最好的theta搭配來達到最低的值。

Gradient Descent的公式如下:
在這裡插入圖片描述
Intuition(我是這麼理解的):
在這裡插入圖片描述
就是計算誤差公式 (cost function)的根據theta的partial derivatives (這是微積分裡面的multivariate calculus的知識,如果你能自己derive出這個公式那很好,但如果不行也不礙事)。但是從比較初級的calculus中,我們知道derivative就是計算某個公式的slope對吧?計算出slope之後,如果它是負的,那theta減這個負的值就會變成負負得正,也就是會往右邊靠近(增加)。相反,如果slope是正的,那theta減這個正的值,就還是減,所以theta會往左邊靠近(降低)。 光看文字可能很難理解,配合圖中的graph來理解吧。第一個就是當slope是正的時候,theta就會往左邊靠因為在降低。

還有一個沒有解釋的variable,也就是alpha也叫learning rate。這個alpha會決定我們每次執行gradient descent的時候的強度。但也不是說這個越大越好越快,因為如果alpha太大,我們的誤差可能會越來越大!
WHY?
看圖!
在這裡插入圖片描述
看到了嗎,他會像蜘蛛俠一樣彈來彈去,離我們要的最低值越來越遠。但是如果alpha的值妥當,當我們得到的最低值也就是slope=0達到的時候,他就會自己停了。因為就會變成 theta - alpha * 0。

Week 1差不多就到這裡啦,暫時還沒有coding的作業。
Thanks for reading!