好,現在講完了這個機器學習可能的這些應用之後,我想要進一步的開始跟大家說
到底我們有了一個機器學習基本的這個流程之後,機器學習細部到底長什麼樣子。
希望我們讓大家從這個比較抽象的描述一路現在進入到具體的機器學習。
我會用的一個這個比喻是我們剛才在一個 題目裏面給大家看過的說,今天如果有一個銀行
它要決定要不要發信用卡給它的顧客,發給他這張信用卡之後,顧客
到底會好好用還是會這個,這個欠錢不還,這是銀行想要決定的事情。
我們現在有了一些這個機器學習的這個基本概念以後,我們可能會想
所以銀行手裏到底有哪些資料呢?銀行手裏可能有的資料就是所謂的
顧客的資料,申請人的資料,例如說這個顧客她是23歲,她是女性 她的年收入多少錢等等,所以會列出一些這個顧客的資料來。
銀行的希望就是從,好,你填的這張申請表上的這些資料最後來決定要不要發信用卡給你。
所以我們要學的是什麼?是銀行怎麼樣發卡。
會讓它的也許是獲利,或讓它的服務最好,這是這個我們希望機器學習能夠自動學到的。
好,那這個我們就會開始用一些符號來跟大家
表示這個問題,這個符號會慢慢的抽象化,然後我們以後加很多問題的時候都會是相同的。
我們把你的申請書上面有關的這些資料叫做x,OK,這是我們的機器學習的輸入
有點像說我們若有一個新的申請人來,我們就把這個x喂給機器算出來的東西,然後
說,誒,到底我要不要發卡給這個人,然後我們想要機器告訴我們的答案我們叫做y,
所以在這個例子裏面,我們只有兩種選擇一個是發卡一個 是不發卡,或者說我們說發卡到底是好還是壞,good or bad。
這是y,總共有兩個一個是輸入申請人一個是輸出要不要發卡。
然後呢我們說 誒,機器學習底下要有某個可能可以這個學得到的東西啊,
這個可能可以學的到的東西我們把它取個名字叫做target function。
目標函數,然後我們用 f 來代表,所以這個 f
就是我們想要學 只是我們不知道的東西,ok,我們剛剛再三強調過我們不知道
f,我們 如果知道f,就是不用玩了,我們就直接把f 寫一個程式寫下來就好。
我們不知道f,我們看到說這個 f 這個函數是從哪裡到哪裡呢?
從X,OK,從這個X就是說X所在的這個 這個集合到Y,就是y我們的輸出所在的這個
集合,所以這是我們說這個理想上我們 最想學的這個,這個公式到底是怎麼樣。
不過我們不知道 f 啊,我們不知道 f 的話,我們這個要怎麼樣,怎麼樣開始機器學習呢?
我們說機器學習要有資料,最簡單的例子,我們說資料長什麼樣子? 資料長得我們現在想像說有n筆資料我叫x1,
y1一直到 xn,yn 好我們有有n筆的資料,這些資料可能是銀行之前搜集的,好,過去一年兩年五年
它搜集的這些,我有這些顧客然後給他們信用卡以後到底是好還是
不好,所以這是以前的顧客給他們信用卡好還是不好,以前的顧客給他們信用卡好
還是不好?總共有n筆,例如說銀行可能搜集了1000筆資料。
這個資料我們用D來做代表,這是銀行以前有的 東西。
好,然後再來呢,機器學習學到的什麼, 它不見得是學到 f 啊,f是我們想要但是我們不知道的
機器學習我們想,我們希望機器學習演算法告訴我們一個函數 告訴我們一個函數我們把它叫做hypothesis,
OK,就是假說,OK,機器看到這些資料以後猜 猜看說到底好的公式應該長什麼樣子,那這個函數我們把它叫做g,
我們希望什麼,我們希望g的表現很好,這是機器學習想要做的事情,我 們希望g的這個表現很好,那實際上機器最後告訴我們的
這個g,然後銀行會做什麼,它會拿這個g去衡量要不要給未來的顧客 信用卡。
所以這是一些這個符號。
所以,如果有這些符號以後我們就大概可以把 我們原來機器學習的這個簡單的流程圖稍微符號化一下。
我們說我們從資料出發,從資料xn,yn這個D出發,
最後機器學習告訴我們g,好,那這個資料呢我們說它應該要來自什麼?
應該要來自我們想學但是學不到的那個,那個pattern,那個模式,那個公式。
然後從這裡出發,我們不知道f,但是我們有跟f有關 的資料。
然後這些資料,機器學習告訴我們一個g 或者更進一步來說,好,我把它列了,這是一個更詳細的流程
我們可以想像說從左上角 好我們說這個f這個,這個理想的公式,這個理想的公式產生了資料。
產生了資料,這個過程我們不知道,我們只是假設這個事情就這樣發生。
我們真的資料是從哪裡開始,從我們手上有資料,
資料我們喂給機器學習,我們應該把這個機器學習核心叫做一個機器學習演算法。
我們用A來代表,然後呢機器學習的演算法就從這些資料最後 告訴我們說到底它推薦我們哪一個g。
然後我們說我們希望什麼,我們希望g代表了某一種效能的增進,
什麼叫效能增進?g跟f越像越好,越像我們就說g很棒,如果
這個不太像的話,我們就會說這個g差太遠了,所以我們希望 機器學習最後能夠拿到一個g跟 f 很像。
好那我們這邊值得提醒兩件事情,一件事情是我們之前一再強調f我們之前不知道,
知道的話就不用機器學習了,我們不知道。
那但是呢,我們希望g要跟 f 很像,因為
我們不知道所以通常g不會跟f一模一樣,如果你不知道f最好能夠拿來跟f 的一模一樣,那運氣太好了,不過我們通常很難發生這一件事。
我們希望g跟 f 只要越像就越好。
好這是我們從這個流程裏面我們可以看出來的一些事情。
好, 我們說這好抽象喔,g到底長什麼樣子?也有f也有g一下子又冒出一個符號來,
好,我們來看看一些這個例子,例如說如果我們今天決定
要不要核發給這個顧客信用卡,有些可能的公式是這樣,我們說,誒,一個可能的式子是
到底這個人的年收入有沒有超過80萬台幣,
有超過80萬台幣我們給他信用卡,沒有超過80萬台幣我們不要給他信用卡,好這是一個可- 能的g。
我只說可能,沒有說極其一定會成這個g,你說另外一個可能的g是這樣, 如果這個人負債超過10萬就給信用卡,
你說這太荒謬了吧,為什麼要這樣?搞不好啊,因為,因為這個,這個負債多的人他搞不好
會願意拿這張信用卡來然後這個,這個趕快把債還掉,然後付銀行一些利息 等等,還不知道。
這是一個可能的公式,或者是呢,這個人如果在工作不滿兩年的話我們就給他信用卡
這也是有可能啊,這個,這個年輕人花錢比較凶,搞不好信用卡公司是要宰這種肥羊。
不知道,不知道,總之有很多很多可能的公式。
我們可以把這很多很多可能的公式我們把它們取叫h,小寫的h.
把它集合起來放在一個這個大大的集合,我們說大寫的這個H裏面,放在這個集合裏,然後我- 們說機器學習 演算法要做的事情是什麼。
如果我們把這些東西想像說我們把它列出來的話 機器學習演算法應該做的事情就是從它看到的資料裏面
去這個集合裏選一個最好的出來。
好,所以呢,這個g的長相,各種我們所允許的g的長相我們會把
它放在一個集合裏面,這個集合我們叫做hypothesis set,OK,這個假說的這個集合。
然後機器學習演算法要做的事情就是從這個hypothesis set裏面選一個
也許最符合這些資料的出來,當作它最後的 g。
好,所以H裏面可能有好的,可能有不好的,最後只選一個出來,
選一個演算法覺得最好的,可能還有很多很多個不好的,不過這個
是這個機器學習演算法開始的基礎,所以機器學習演算法你可以看到它實際上
有兩個輸入,一個是看到資料, 一個是你到底允許它選哪些hypothesis,OK,這個H
長什麼樣子,機器學習演算法拿到這兩個最後決定一個g。
好,所以呢,這個, 這個最好的機器學習演算法
覺得最好,當然它覺得最好是不是真的是最好,這是我們以後要理清的事情。
不過它會選一個它覺得最好的出來。
好,那我們一般我們未來會講到機器學習很多的不同的 模型,我們指的機器學習的模型就是指演算法
還有它所使用的這個,這個,hypothesis set,使用的H的部分,這兩個集合起來叫做一個模型。
你說那幹嘛這麼麻煩,幹嘛要分成演算法跟模型,為什麼不把它們合 在一個就好。
那實際上因為我們以後會看到模型在我們做機器學習演算法的 設計跟分,這個分析上面有一些重要,它特
跟演算法其他部分不一樣,所以我們把它獨立出來。
好,所以有了這個,這個
比較完整的流程以後,我們現在就對機器學習有一個 更具體的定義。
這個定義是這樣機器學習就是我們從資料出發
從資料出發以後機器學習演算法要算什麼,要算出一個假說,一個hypothesis,我- 們叫做g。
然後我們希望這個g要做什麼,這個g要很接近我們真正心裏最渴望的那個
f,這個f是用來產生資料,但是我們不知道那個東西。
所以這是機器學習的這個演算法。
好,整個的流程我們告訴大家以後,那這個我們幫大家
溫習一下,如果回到我們剛才講的我們想要預測每個 使用者會給這個每首歌多少分這個問題,
好,然後從這個問題呢,我們列出了四個s1到s4這四個不同的這個集合
那,請大家來看一看說這四個集合到底哪一個是我們的這個輸入x,
哪一個是我們的輸出y,哪一個是我們的hypothesis set H,然後哪一個是我們的資料D.
好,大家看了之後我相信大家能夠很正確地選到我們的參考答案是
這個2,我們從資料出發,然後呢把演算法用在這個hypothesis set 上面。
最後我們得到了這個g,那這個g會是一個函數,從我們的這個
輸入,OK,這個input的部分到我們輸出的部分的一個函數。