0:00
好,所以我們故事的一開始就是到底機器什麼時候可以學習,我們什麼時候要用機器學習
就是就我們使用者的角度,我們什麼時候要用機器學習。
我們一開始就跟大家介紹,機器學習這個問題到底是什麼樣子 它有哪些的應用,然後它裡面有哪些重要的元件,最後
我們也會想辦法跟大家釐清,機器學習以及其他相關領域的關係 好,所以我們開始講機器學習
講機器學習之前,我想請大家先想一想,到底什麼是學習
好,例如說大家現在聽我在跟大家上課,這是一個學習的過程
你聽到我講什麼,也許看到我投影片做了什麼,然後你腦袋裡就想啊想啊想啊 然後最後變成你學到的知識。
又或者,從我們很小很小的時候我們就開始學習,像我女兒,我女兒現在很小
她剛開始學講話的時候,她聽她身旁的人,也許是我,也許是其他照顧她的人怎麼講話,然後- 跟著咿咿呀呀的講
然後最後她學到了說怎麼樣講話,怎麼樣跟人溝通的方式
又或者我們看一本書,書裡面寫著說到底有哪些的知識等等
看完這本書以後,經過我們腦袋裡的轉化,變成我們會的知識。
譬如說也許是數學,也許是英文等等不一樣的知識 好,所以從這些各式各樣不同的學習的歷程,或學習的方式裡面
我們可以看到,學習的其中一個共通性是,我們可以想像學習是 從觀察出發。
聽覺是一種觀察 視覺是一種觀察。
也許甚至有更多,例如說嗅覺或觸覺都是一種觀察 從這些觀察出發,然後經過我們腦袋的這個內化這個轉化過程
最後變成有用的這個技巧,有用的技能,這是一個學習的過程 好,例如說我們看書,「看」,這個視覺是一種觀察
最後我們學到的技巧,也許是數學,也許是英文 也許是其他的科目。
好,所以這是我們腦袋裡的學習。
人類,或者是其他生物 的學習,大體上都可以被這個大大的框架,這個 涵蓋進去。
就是說我們從觀察,最後這個學習的過程轉化成有用的 這個技巧。
大部分的時候,也許是例如說對生物界來說,可能就是生存的技巧
機器學習,這個名詞很大,但是說穿了,只是
我們希望用電腦來這個,模擬或者模仿類似的過程
也就是說現在我們學習的主體變成不是人 或者是其他的生物,而就是我們的電腦
好所以我們的主體是電腦,然後所以電腦也是經過一番觀察,對環境的觀察
然後最後把它變成對電腦來說有用的技能 這樣講好像還很空泛。
好,電腦的觀察是什麼? 通常呢,我們把電腦觀察到的事情,這個觀察可能是我們主動餵給電腦的
這些東西,或者是電腦,這個想辦法可以去得到的這些東西
觀察到的東西,我們通常把它叫做資料。
所以一個 機器學習的演算法,可以想成就是把這些資料拿來,然後經過一番
的這個處理,然後對應到人類的思考過程,我們腦袋轉呀轉 這個電腦裡面的硬碟也轉呀轉,或者這個 CPU 也轉呀轉
好,然後之後變成有用的技巧 機器學習說穿了,就是在這個模擬或者模仿這樣的過程
好,講到這裡大家就會想了,你說技巧技巧 技巧,到底什麼是技巧?好,所以我們就來看
所以技巧是什麼呢?我們可以把技巧再做一個稍微
這個,具體一點的定義說,技巧,實際上想要做的事情 就是想要增進某一種東西的表現。
譬如說我們學會了數學 我們數學可能,這個,算得就更 更正確,我們做證明題的時候做得就更正確。
我們學了英文,也許英文就講得更好 我們學了說話,也許這個會說的字就更多等等的
好,所以有某一種表現增進,數學的表現增進,還是英文的表現增進,還是說話的表現增進
好,這就是我們說的,學到一個技巧。
對電腦來說,也許我們之後會跟大家 介紹到說,你有各種各種不同的工作,我們想要讓電腦做,然後透過這個機器學習的過程
如果它在這個工作上面的表現變好,例如說我們要電腦去預測股票 預測的表現變好了,那我們就說,電腦是學到了東西
所以透過這個機器學習的過程,我們想要學到的技巧,實際上是某一種表現的增進
所以我們就可以把我們剛才這個,剛才這個示意圖 更進一步的去講說,機器學習的過程,是從
資料出發,然後經過這個電腦的計算之後
最終最終得到某一種表現的增進 好例如說,我剛剛講的這個股票的例子。
我們如果餵了前十年的這個 股票資料給這電腦,那電腦經過一番分析,好,知道了這個股市的這個走勢
上漲下跌等等是怎麼走的。
那我們希望得到什麼樣的增進?如果電腦 告訴我們說,好,那明天開始你就照著我說的,就這樣這樣這樣去投資
那真的這樣去投資之後,我們希望的是,欸,賺到更多的錢嘛 如果我們真的能夠做到這樣,那機器就真的學到了一些東西
學到什麼?學到當我們投資理財的這個好幫手 好,這是我們希望機器學習能夠做的事情
好,所以這是這個機器學習一個非常 非常概略的定義。
我們未來會慢慢的把這個定義更加的具體化 那大家就想啦,所以在這樣的定義之下,好吧,那為什麼要使用機器學習?
為什麼我們不用這個其他理工科裡面其他的工具?為什麼機器學習這樣的工具
會有用?我們想想在哪些這個應用裡面機器學習 可能會有用。
這是一個簡單的例子。
來問問大家,這張圖裡面 是什麼?十位同學可能有九位就會跟我講說:這裡面是一棵樹啊
我就問你啦,好吧,那如果現在跟你說,你要定義一棵樹,把它寫下來
你做得到做不到?你說,哪有人在定義樹的
可能我說,可是如果今天我要請你寫一個程式,這個程式要能夠自動的辨識 一張圖裡面有沒有一棵樹。
那你勢必要定義啊,因為 你要有這個數學的定義,你才能變成電腦看得懂的這個程式碼
然後電腦再依據這個程式碼去執行,然後最後辨認出一棵樹 所以如果你想要寫一個樹的辨識程式的話
那,古老的方法當然就是,好吧你就自己想說,那我都是怎麼辨認樹的,你腦袋裡有一百條規則
你就想辦法把這一百條規則寫下來,然後放在那邊,你說我完成了,這是我的這個樹的辨識程式
不過你可以想像這不是一個很容易的工作 你現在可能腦袋裡都還沒有一些觀念說,這一百條規則要寫什麼
但是我們從小,我們是這樣學習辨認樹的嗎?
是我們的爸爸媽媽告訴我們一百條規則,然後說來,你就把這一百條規則記起來,你就可以辨- 認樹了嗎 其實不是。
我們大體上來說,是透過很多的觀察 當然也包括我們爸爸媽媽教的,他也許說這個是樹,這個不是樹
但是很大的一部份是我們自己的眼睛的觀察,看了很多的樹
或者不是樹等等的之後,去分析出來說,啊我以後看到長得像這樣的就是樹 長得不像這樣的就不是樹。
三歲小孩差不多就會辨認這個,有一棵樹或沒有一棵樹了
他不是靠今天教導他的人,跟他講一百條規則,讓他記起來
他是靠自己去觀察過很多的樹之後
得到的這個內化的技巧,他的技巧就是去辨認一棵樹 所以機器學習想要做的是一樣的事情。
然後那我們這邊要告訴大家的是,在有些應用裡面 讓機器自己去學,像剛剛這個例子,去辨認一棵樹,可能會比我們
坐下來,寫一百行兩百行三百行的程式,去說我們要怎麼辨認樹 還要來得簡單。
好,所以這就是機器學習,他是一個 我們能夠,OK,我們想要做一些事情,想要讓機器做一些事情
但是我們發現,如果只是靠我們的腦力,然後去把這些規則寫下來 寫成程式的話,可能不容易做到。
那有另外一個方法就是 讓機器自己去分析資料,自己學會怎麼做這些事情
好那所以呢,在這樣的這個
這個理由下呢,機器學習就可能有如下這些 方向的應用。
比方說我們只是想要做一個,用機器來做一個 這個複雜的計算系統,然後我們不知道該怎麼做 於是我們就想辦法用機器學習來做。
那例如說什麼呢,例如說有的系統 我們還真的想不到要怎麼把規則詳細的寫下來。
像你要做一個這個,機器人要送到火星去好了 以我們人類目前對火星的這個了解 知識等等的,其實是很有限。
我們實際上不知道這個機器人送上火星去以後,會碰上什麼樣子的狀況 所以我們不太可能在地球上,就把一百條兩百條
一千條兩千條的規則通通寫好說,你上去看到什麼狀況就做什麼事 我們不可能這樣子做一台機器人。
有一大部分勢必要靠這個機器人 上到火星去之後觀察那邊的環境再決定要做什麼事,看到這邊有個坑的時候也許要繞過去。
所以這個時候我們也許就需要機器透過
學習,通過跟環境的互動來達到更好的 表現。
又或者是什麼時候呢?又或者是有的時候我們真的 不容易寫出這些規則。
什麼時候?向我剛才講的 如果你進行視覺的辨識或者是也許是聲音的辨識,
好,我們大家要辨識講話的聲音都很容易,我們要辨識我們看到的東西都很容易,
但真的問你說那這個什麼,哪一個發音是怎麼樣?你們寫出它的規則來,
因為你看那一堆的音訊訊號可能實際上是寫不出來的。
好,所以在這些辨識的系統裡面現在就大量地採用
機器學習,有大量的資料希望機器自動去裡面學到辨識的 技能。
又或是什麼時候呢?有些應用,這些應用是人想都沒有想過的,
什麼叫想都沒有想過的應用?例如說今天要做股市交易。
你說股市的交易人會啊, 如果我們今天要做的股市交易是我們的high frequency
trading, high frequency trading我通常把它翻譯成超級超短線,什麼意思?
10秒鐘20秒鐘你們就希望電腦做一個決定,要買還是要賣? 人沒有想過這個領域。
人想的就是哦好,我想清楚了,這個股票大概會漲,我來買。
這股票大概會跌,我來怎麼樣吧。
所以人要做決定沒有那麼快速。
所以在10秒20秒要從這個股市交易的蛛絲馬跡去決定要賣不要賣的一件事情,
可能我們只能靠電腦做什麼?分析過去十年的股市資料,然後決定說在10秒鐘20秒 之內想辦法決定要買還是要賣。
這是人完全沒有想過的。
因為完全沒有想過,所以實際上也沒有或不一定有人想得出來的規則。
又或者什麼地方呢?又或者在現在很多的網路上的應用裡面,我們常常
要一個應用要服務非常非常多使用者,我想要服務個人化的服務很多 使用者。
人不可能想的出來說每個使用者他是什麼個性?
張三是什麼個性,我要怎麼服務他?李四是什麼個性?我要怎麼服務他?人不可能一開始就想- 好這些事情。
所以如果要讓機器自動地來做這些事情,來服務這麼大量的使用者的話怎麼辦?只能讓機器
去學這些張三李四他們使用的歷程是怎麼樣?然後怎麼樣服務他們最好。
所以這個,例如說我們如果想要做 非常個人化這些服務的話,會很大量地使用
機器學習的技巧。
我們拿電腦說,我們機器學習實際上 有一點像在教電腦釣魚而不是給它魚吃。
如果我們今天就自己寫好一百行兩百行三百行的規則, 然後就放在電腦那邊讓它自己去跑,這是給電腦意思,它就解決一工作
它當然可以幫我們,我們寫好三百行程式它就乖乖地在那邊跑, 它可以幫我們解決這件事情。
但是我們今天想要的是如果我們這樣去抓魚
給它吃,太辛苦,我們抓不到,那我們是不是教它釣魚的方法,教它分析教它學習的方法。
然後之後電腦可以用這個方法來幫我們解決各式各樣不同的問題。
這是機器學習想要做的事情。
好,所以呢 從這裡出發我們就告訴大家機器學習的三個
關鍵,有了這三個關鍵之後,大家以後面對各式各樣不同的問題的時候,你也許就會想
我到底適不適合使用機器學習,也就是機器學習不是真的可以用在每一個地方。
你要去想說如果我的問題有這三個關鍵,那我可能可以使用機器學習, 那如果沒有的話,可能就不是那麼適合使用機器學習。
好,哪三個關鍵呢?第一個,我們剛
才說要有某一種效能某一種表現能夠 增進。
既然要有表現能夠增進的話,那就表示 你這個問題要可以學。
也就說你有一些這個 潛藏的這些模式。
這些潛藏的模式是可以學的。
因為你如果完全沒有模式 的一個問題的話,就算你喂了再多資料給
機器,就算你讓機器跑得再久,它最終還是學不到東西。
所以你要有某些目標,這些目標是讓機器去學的。
這樣子最終才知道你的效能有沒有增強。
比如說數學的目標,如果 是證明的正確率更高的話,那麼我們朝著這個目標去努力。
或者股市的目標,股市要有某一種 雖然說他看起來很亂,但是可能有某一種可以學的規則,然後
我們希望機器能夠去學到。
然後再來則是有這樣的規則 但是我們不知道怎麼把它寫下來。
如果我們知道怎麼把這些規則寫下,我們就自己把這些規則統統寫下來然後放在那邊就好了。
我們不知道怎麼把它寫下來,所以我們才會想要使用機器學習。
然後再來除了說要有規則,然後我們不知道怎麼
寫下來之外,我們要怎麼開始機器學習?我們剛說機器學習一切都是 從資料開始的。
所以我們要有資料,如果沒有資料的話,就不適合使用機器學習。
所以這三個關鍵都有了,那大家在未來的應用之中
如果有這三個關鍵,才會可能想要使用機器學習 的工具來解決。
好,講到這裡我們就給大家這樣一個小測驗
說到底這下面的哪一個問題適合或不適合使用機器學習?
好那第一個是說預測小嬰兒,像我女兒,到底
下一次哭的時候是在偶數的分鐘哭還是奇數的分鐘哭?
簡單的問題,預測小女孩到底什麼時候哭。
然後再來,下一個問題是說我給你一個圖,一個 抽象圖,然後它到底裡面有沒有一個cycle,有沒有一個回圈。
再來第三個題目說我們到底要不要,我是一個銀行
我要不要給顧客信用卡?給他信用卡的話,到底他會好好使用這個信用卡
還是他會捲款潛逃?第四個則是說我們現在地球上常
常使用很多核能,那我們要預測說到底未來幾年地球上會不會因為使用
這些核能而就毀滅?好,大家想一下。
好,想一想之後我希望大家能夠也許推論出來 說我們建議的答案是3。
在1這個裡面呢,至少根據我跟我女兒相處的經驗
她什麼時候會哭,是奇數分鐘哭還是偶數分鐘哭是沒有什麼規則可以預測的。
至少沒有什麼我們 想得出來的規則是可以預測的。
然後在第二個裡面,有一個規則,圖裡面有沒有cycle 這是有一個規則的。
但是這個規則我們很輕易地就可以把它寫成 這個程式,所以我們不需要使用機器學習。
那在第四個裡面,大家可能可以想象,我們現在其實也沒有什麼資料
因為地球也還沒有真正的毀滅,核能的災變可能也沒有真的很,我們沒有什麼很充足的資料去
人沒有辦法推論,機器可能也沒有辦法推論說到底未來十年地球會不會毀滅。
那第三個指的是一個機器學習 常見的應用。
我們說也許銀行裡面其實是有資料,過去 顧客的資料,然後這些顧客到底有沒有好好地使用信用卡?
但是這些要不要給顧客信用卡,這是一個,也許是一個很複雜的公式,我們真的不知道怎麼把 它寫下來。
但是應該有一個那樣的公式在裡面,怎麼樣是一個好的公式決定要不要給顧客信用卡。
所以第三個問題就比較適合使用機器學習。