[音樂] [音樂] [音樂] [音樂] 好,大家好,歡迎回到今天的機器學習基石課程 我們今天的課題是 Linear Regression,大家可能聽過這個名詞,那我們會從機器學習的角度 來跟大家解釋 Linear Regression 到底是怎麼一回事 我們上次講了什麼呢?我們上次講到說,我們花力氣在二元分類 Binary Classification 上面證明了 VC bound 是可以用在各種不同的 Error Measure,也可以用在有 Noise 的情形 那當然,也包括我們今天要講的 Regression 這個課題 所以想像我們已經有這個 Bound,那我們現在來看看,演算法上我們要怎麼樣設計 那 Regression 這個問題要做什麼呢?我們再回到我們之前舉的銀行要發信用卡這個例子 但是如果今天銀行不是要決定要不要發信用卡給這個顧客,而是要決定到底要給這個顧客 多少的信用額度的話,好我們就想,這已經不是一個是非題了,這會是什麼?例如說如果今天- 是這個顧客 那它可能給他每個月十萬塊的信用額度,另外一個顧客 可能給他八萬塊的信用額度,每個顧客會有不一樣的信用額度 那麼這也可以用我們原來講過的,這個 Learning 的整個流程來 cover 那唯一的差別就是說,今天我們的 target function,我們要的那個 最理想的公式是一個會輸出實數的公式 會說到底我要給這個顧客多少的信用額度 那大家就可以用我們之前所提過的 Regression 問題,它的特點是什麼?它的輸出空間就是 整個實數,當然在信用卡這個問題裡面,實際上它的輸出空間是正的實數,你不會給他負的- 信用額度 好那, 但是我們可以看成稍微廣一點說,它的輸出空間,如果是整個實數的話 那到底我們要怎麼樣做到機器學習這件事情 好所以我們就來想啦,那首先 我們的 Hypothesis 要長什麼樣子才會輸出一個實數 跟先前一樣,我們想像說一些最簡單的 Hypothesis 會長什麼樣子 我們有一些顧客的資料,那也許我們從這個顧客的資料,來把它做一個加權 然後算一個分數,那我們直接用這個分數來做預測 所以我們一些顧客的資料,注意到跟我們之前的 習慣一樣,我們在原來的資料上加上了一個 X0 這個 X0 代表說,哎, 我有一個那個常數項放在那邊 好那中間資料呢,我就算一個加權的分數,這個加權是用 w 來做加權的動作 那我希望這個加權之後的結果,會跟我想要預測的 到底我要給顧客多少的信用額度會是接近的,好, 所以我的 Hypothesis 就可以很簡單地寫成長成這個樣子 我有一個 x 的向量這代表我的顧客,然後呢我做了加權的動作 用 w 這些權重來做加權的動作 然後之後直接輸出來,那這跟我們之前做的 Perceptron 不太一樣 Perceptron 做什麼?好我算完分數之後,我還要決定說它是正的還是負的 然後我要回答正 1 還是負 1,圈圈還是叉叉,那現在 我們不用再取這個正負號的動作,我們直接把它輸出來就好 好, 這是我們的 Hypothesis,一般我們可能叫做 Linear Regression 的 Hypothesis,或直接叫做 Linear 的 Hypothesis 說哎, 我就是要做這個算分數的動作,那我算分數, 可能算完分數 就是一個實數,我現在想要的就是這個實數 跟我這個最後最希望的值要越接近越好 好,視覺化來說,Linear 的 Hypothesis 長什麼樣子呢? 好, 如果今天我的 x, 我的輸入的部分,是一維的話 那麼 Linear Hypothesis 其實就長得像左邊這個圖這個樣子 好, 所以我的 x 是一個維度,我的 y 是我這個, 我把這個相對應的 y 的值列出來,我的每一個 example 我的資料裡的每一個 example,我在這裡用這一堆一堆的圈圈來表示 好我們現在又沒有圈圈跟叉叉,我就只有一堆圈圈這些點在 x y 這個平面上 這跟我們之前只有畫 x 那個平面,然後畫圈圈叉叉這是不一樣的 好, 所以我們在 x y 這個平面上,我們把所有的點標出來,然後怎麼樣? 然後我的 w transpose x 其實一樣,在這個平面上就會變成一條線 我希望這條線跟我已經看到的這些圈圈,越接近越好 所以我可能可以衡量它到底有多接近,那有多接近的其中一個方法,就是看這些 紅色的這個垂直的這個線,這就是說我已經看到了點 跟我的 Hypothesis,我的藍色的這條線,這個 Hypothesis 說的,到底有多接近 如果今天在一個三維的空間呢,我的 Hypothesis 就會長成像一個平面的樣子 Ok, 因為我是拿那個 w 加權之後,然後乘上這個 x 的值,去計算出它變成一個平面的樣子 那同樣的,我所觀察的每個資料點,在 x 跟 y 所組成的三維空間裡面,我也可以去畫說 到底它跟我的 Hypothesis,我的藍色的那個 Hypothesis 的誤差到底有多少 然後, 咦, 所以這樣子的話,我們就可以看成說我們的 Hypothesis,在例如說如果今天我的 x 是二維的話 就是一堆三維的平面,在這邊晃來晃去 那我想要找出一個最好的平面,來描述我的資料點 那如果我的 x 是一維的話,我是不是要找出一條最好的線,來描述我的資料點 這是回歸分析要做的事情,或者我們叫它說 Linear Regression,線性的迴歸分析要做的事情 那這些紅色的,我們一般把它叫做誤差,或有時候把它叫做 residual,ok, 就是餘數 什麼東西的餘數?就是我們預測完之後,我們預測,我們的 Hypothesis,藍色那個 Hypothesis 預測之後還沒有辦法滿足的部分,我們叫做餘數。 那我們當然希望說,我的 Hypothesis 如果要能夠描述我所看到的資料的話,我希望它能夠這些餘數的部分,這些紅色的部分 要越小越好。 那我要怎麼衡量我們的這些 residual 這些餘數,到底是小 還是不小呢?在傳統上,Linear Regression 實際上是一個統計學者已經研究了很久很久的問題 但是傳統上呢,大家最常用的方式,是 Square 的 Error Measure,就是平方的,好我們上次跟大家講過,錯誤的衡量 那平方的方式,就是說我看看我想要的 y,跟我所預測的 y,到底差多遠,取它的平方 來當作錯誤衡量的方式,那從機器學習的角度來說,我們就會看兩個東西,一個是 in-sample, ok, 也就是在我們的資料上,到底這個平方的錯誤表現怎麼樣,我們就會算說 咦, 我的 h(Xn) 在我看到的第 N 筆資料上 跟 Yn 到底差多遠,然後我取這個平均 那因為我們現在考慮的 h,我們說我們的 Hypothesis 是線性的,是這個 w transpose x 的 form,所以呢我們也會 把這個 Ein 很直接的,因為每個 w 就對應到一個 h,所以我們就直接 用 Ein(w) 來表示,而不是用 Ein(h) 來表示,這會讓我們之後的 一些符號稍微簡單一些,那相對應的,如果今天是 out-of-sample 的 error 的話 我們也有 Eout 的 w 來表示,那就是在什麼,在未來我們抽樣出來,還沒有看過的資料裡面 來看看說,平均到底我們犯了多少的平方錯誤 那大家對這個設定應該很熟悉了,我只是提醒大家一下說,我們現在 已經切換到一個可能有 noise 的 setting,可能有 noise 的 setting 是什麼?就是除了我們的 x 要從某個 distribution 出來之外,我們的 y 也要從某個 distribution 出來,它們兩個結合起來 等於我們可以說,它從一個所謂的 Joint Distribution,聯合的分佈,來抽取出來 我們用這樣的設定來看看說,我們可以達到什麼樣, 理論上的效果 好所以呢,那現在只剩下一個問題啦,我們要怎麼樣 minimize 我們的 Ein,對不對? 如果你相信我們做 VC Bound 的一切推導是對的,然後也相信 我揮揮手跟你說說, 哎, 這個 VC Bound 延伸到其他的問題也會是對的話 那我們只剩下一個問題,我們只要把 Ein 做得越小越好 我們就可能可以做到機器學習的效果 好所以接下來的課題,我們就探討怎麼把 Ein 做得越小越好 不過呢在做這件事情之前,我先給大家一個小小的測驗 先確定大家說,了解我們的 Hypothesis 到底長什麼樣子 好我們回頭來說,如果今天是銀行要決定要給顧客 多少的信用額度這個問題的話,到底如果今天是一個好的 Hypothesis 好的 Hypothesis 它有一個它相對的這個權重的向量,那這個權重的向量裡面, 到底哪一個 Component 或者哪一個維度會得到比較大的正積 好那大家想一想之後,我希望大家想到正確的答案是 2,正確答案是 2 的原因 是說哎今天它的收入多少,收入越高,我們正常來說應該給它越高的信用額度 那今天 w 如果是正的,它就會反映這件事情說 今天你這個收入越高的話,我們就給你越高的信用額度,所以你參考的答案是 2