延續上一篇「人工智慧、機器學習、演算法、大數據 (1) 概要與蒙地卡羅法。」本篇介紹機器學習(Machine learning)。有的人對於「機器學習」這一個名詞感到困惑,認為機器沒有主動學習的能力,所以不會學習,怎麼會出現一個「機器學習」的內容?
我們要如何了解機器學習的意義呢?基本上「學習」可以理解為「複製行為模式」,比如說:我學會了用削皮器削蘋果皮,然後我看到水梨,我理所當然的也會對水梨做同樣一件事情,而這就是學習,學習到「削皮」這個行為模式。
同理,機器學習就是人類輸入了一串指令讓他學會處理一件事,而他在判斷後就會用同樣的方法來處理這件事。如:無人駕駛車、AlphaGo、蒙地卡羅法求出面積值。
【複習電腦科技名詞】
- 人類的腦子叫人腦,對應到電子機器類稱為電腦。
- 人類的智慧對應到電腦的智慧稱為人工智慧(Artificial Intelligence : AI)。因為是人賦予電腦的智慧,故可稱為人工智慧。人工智慧是現階段的情況,以後可能會出現電腦製造下一代的電腦智慧。
- 人類解決各個問題的器具稱為工具,電腦解決各個問題的方法稱為演算法(Algorithm)。
- 人類的學習對應到電腦稱為機器學習(Machine learning)。
- 人類依據經驗或是直覺的決策行為對應到電腦就稱為黑盒子模式(black box mode),也就是一種機率及統計評估後的行為模式,或是直接執行特例的行為模式,也可將黑盒子模式理解為決策部分的演算法。
- 人類依賴過往經歷稱為經驗,對應到電腦累積的資料稱為大數據( Big Data)。
- 大數據是近年來才有的概念,電腦利用大數據的意涵,主要是指在強大的硬體帶來的大量數據量、快速的運算速度。
這些名詞的關係就對應到我們所熟悉的事物上,可參考圖1。
圖1
【認識機器學習的案例-無人駕駛車】
無人駕駛車的概念是人類輸入一些開車的行為模式(演算法),之後讓它在路上移動,並建立自己的資料庫(大數據),判斷各種情況要如何應對(黑盒子模式),久而久之它就學會如何在路上開車(機器學習)。並且一段時間後,多台車的資料可以進行資料共享,如同人類的交流學習後的內容(機器學習),最後每一台充滿著智慧(人工智慧)的車就可以完美的在路上行駛。
接著觀察無人駕駛車遇到坑洞的演算法,以及利用黑盒子更新後的演算法。
圖2:遇到坑洞的原本演算法
由圖2可知,遇到坑洞時先執行方法1,看看是否會成功,若方法1不行,則執行方法2,若再不行就執行方法3。可以發現此流程套用在人類身上也成立,因為這就是人類的決策方式,讓無人駕駛車模仿(機器學習)人類的決策方式,並去執行該解決的方法(演算法),而人類也只能盡量把可能的情況列出來,如果都無法解決則會出現方法3的發呆情況。
但是圖2的流程並不是一個好方法,可以發現電腦必須逐步的依次動作,直到成功為止,或是嘗試所有方法後,才能判斷出不能解決,相當的浪費時間。我們可以知道圖2的方法相當的費時,且不聰明。我們應該讓無人駕駛車先累積經驗,見圖3
圖3:遇到坑洞的原本演算法並記錄數據
建立大數據的資料庫後,可以知道各方法成立的機率情況,在此假設執行方法1有30%、方法2有60%、方法3有10%,因此我們可以修正圖3的演算法為圖4。
圖4:更新後的遇到坑洞演算法
之後無人駕駛車再遇到坑洞時,就會以圖4的演算法來進行決策,就是以機率的大小順序作為嘗試的順序,也就是方法2、方法1、方法3,而不是永遠用方法1、方法2、方法3的順序處理。而決策的演算法就是黑盒子模式,見圖5。可以看到更新後的遇到坑洞演算法可分為兩部分,一個是決策部分的演算法,也就是利用大數據及統計概念的黑盒子模式的演算法,一個是處置方式部分的演算法。可以發現電腦進步到會進行判斷坑洞大小來決定該執行哪一個方法。
圖5:更新後的遇到坑洞演算法,標示出決策部份及處理問題部份
最後無人駕駛車累積很多數據、及多台車的資料共享後,無人駕駛車在閃避坑洞時,會快速執行圖5的概念,先執行黑盒子模式部分的決策演算法,再執行解決方法的演算法。所以無人駕駛車確實學會如何閃避坑洞,同時會不斷累積數據,修正各方法的機率。而這就是機器學習的最大重點,會自主修正機率,進而越來越有智慧。
【機器學習後的能力與人類能力的比較】
我們可以發現機器學習似乎學著如何變得像人類,尤其是在判斷能力上,電腦就是利用大數據及統計來產生判斷能力。但在此要注意到一件事,電腦經由機器學習產生的人工智慧,看似與人類差不多。但是我們要注意到,人類會感到疲累,也就是反應沒有電腦快;人類會老導致記憶力衰退,也就是人類累積的數據庫帶來的機率會失真,與電腦的大數據帶來的機率相比,出現錯誤的情況大於電腦。所以機器學習的人工智慧在已經學會的事物上,會不斷的超越人類。參考圖6,比較人類、以前的機器學習、現在的機器學習(加入大數據+統計方法)的差別。
圖6比較表
【機器學習的古今異同】
機器學習以前與現在的差別,在於以前是從案例中學習(參考圖2),沒有加入黑盒子模式,也就是沒有大數據的資料量及運算速度、以及統計分析模型,只能由人類一條條輸入處理方式,顯得呆版,並且不會自主學習經驗來加以修正,故相當費時。而現在是從大數據中學習經驗來判斷該如何做(參考圖3)。換言之現在的機器學習能力上升,我們可視為電腦的智慧增加。
換句最直接的講法,就是以前的電腦只會死套公式作題目,現在的電腦會找出相對高效率的解決方法。或是用小孩做事情變成熟來討論,小孩子會學習什麼時候該做什麼事,比方說,上課有許多規定,經教導後知道哪些規定,當犯錯過幾次後,就知道哪些事情可以做哪些不能做。
【結論】
「機器學習」或許不是一個好名詞,容易令人困惑,部分人認為機器不會主動閱讀怎麼會學習。作者認為,這是部份人的想法太過狹隘,事實上我們從以前就一直在讓機器學習各個處理問題的演算法。到現在有了更強大的硬體,可以大量記錄數據及快速運算,再搭配統計的模型,我們有了所謂的黑盒子模式(決策的演算法)。當原本依流程運作的演算法,加入利用大數據及統計的黑盒子模式,使得電腦處理的效率大大提升,並且比人類更加強大。加入大數據及統計的概念就是「現在機器學習」的重點。