AI學習筆記 — 什麼是機器學習?

Nantu, Taiwan, photo by Sean Yeh

AI時代已經來臨。我們除了學習AI領域常用的Python語言外,還可以做什麼?這是「AI學習筆記」系列想要探討的議題。包括AI是什麼?AI可以做什麼?以及AI未來的發展該與如何應用AI等問題。筆者個人的願望是要在今年(雖然已經Q4了)與明年好好的學習並理解AI領域相關的知識。筆者並非所謂的理工男,在學習的過程中透過閱讀相關書籍、參加線上課程,並且加上實作等等方式來學習。期間並非一帆風順。藉此將這段時間學習的心得做紀錄,希望對其他所謂的「文科生」,卻想要學習AI相關知識的朋友有所幫助。如有理解錯誤之處請不吝指教。

雖然AI人工智慧這個名詞的定義不是很清晰,但是作為AI人工智慧技術之一的機器學習卻是實實在在的存在著。

機器學習,不僅是AI人工智慧的分類之一,也可以說是目前AI人工智慧範疇裡面最成熟的技術,已經活用於各式各樣的領域。例如「判斷郵件是否為垃圾信」的技術,可以說是機器學習的經典範例。

何謂機器學習

那麼倒底什麼是機器學習?

所謂「學習」是指電腦透過一個過程,將工程師輸入的資料進行分析,並且依照資料改良工程師原先給予的規則。這個過程就像是人類在「學習」一般。

在機器學習出現之前,AI人工智慧的主流為「專家系統」,間單來說,電腦可以處理「若A,則回傳B」的規則,但是當我們輸入C的時候,因為不曾給過電腦處理C時應該要如何的規則,電腦就笨笨的不知道該回傳什麼結果。

因此,若要讓專家系統概念下的電腦「變聰明」,就需要讓電腦將「全部的答案」背下來。但是天下之大,事情之多,我們怎麼可能知道全部的答案呢?更不可能讓電腦背下天地間所有問題的全部的答案。於是,透過這種方式設計出來的電腦是無法預測與解答未知的資料。

近年來拜科技進步之賜,大數據的取得變得比以前容易,我們可以用比過去低的成本取得與累積數據資料。有了海量的數據資料,加上電腦運算能力的提升,就可以反覆的訓練模型,即便輸入未知之資料也可以判斷出答案。

因此,機器學習一詞隱含了「電腦不僅僅是執行預先規劃好的事」。它與過去單靠「記憶」學習不同,這個「機器」本身可以自己「學習」,透過這樣的學習,讓電腦可以做到超出工程師原先所設計的程式外之事。

為何要使用機器學習

我們為何要使用機器學習?難道不能使用人工來處理?就算不用人工,難道不能將規則寫入電腦程式中?使用機器學習是基於下面的幾個理由:

可以大量處理資料

最直覺最簡單的理由之一,是「電腦不會累」。它自始至終可以用一貫的標準來處理大量的資料。也可以比人類更快速的處理大量資料。

人類無法定義出完美的規則

以處理垃圾郵件為例,假設我們在D Day定義了一組「何謂垃圾郵件」的規則,剛開始這項規則固然可以攔截到各種垃圾信,但是道高一尺,魔高一丈,隨著時間的經過,出現了日新月異的逃脫技術與方法,讓先前機關算盡定義出來的規則『近似完美』的規則開始捉襟見軸,常常讓漏網之魚逃脫,信箱中又開始出現了垃圾郵件。這時候,就必須重新回過頭去定義新的規則,來適應新的現象。而事實是,百密一疏,不管我們添加了多少規則,都有可能出現例外。反之,機器學習的優點就在於從人類無法處裡的巨量資料裡面,找出規則與模式,進行分類與預測。

便於維護

此外,當出現原本規則無法分類的新型態垃圾郵件時,機器學習可以自動新增規則,將該郵件分類為垃圾郵件。方法很間單,只要透過再一次的學習,就可以訂定適當的規則。

訓練機器學習模型的流程

「機器學習模型」(簡稱模型)對機器學習來說非常重要。當電腦接收資料後,透過模型運算來輸出結果。模型相當於我們的大腦,模型的好壞會決定電腦輸出結果的適當與否。因此,訓練出好模型就非常重要。

機器學習透過下面的流程進行學習。

  • 取得原始資料
  • 資料清理與探勘
  • 資料特徵工程
  • 訓練機器學習模型:包括評估訓練出來的模型,並且調整參數。
  • 測試模型:將測試資料輸入到訓練出來的模型中測試結果。
  • 預測結果:對未知的數據進行預測。
機器學習模型的訓練流程

以影像辨識來說,當我們將各種圖像輸入到腦中,比如說各手寫的數字或者是各種動物的照片(A),電腦中的機器學習模型,則依照模型來辨識該圖片,並將判斷的結果(B)輸出。然後電腦比較A與B是否正確?如果正確的話,就再進行下一個判斷,如果錯誤的話,就調整機器學習模型,讓結果正確。如此來回的反覆處理與修正,直到訓練出可以預測從來沒有提供過的手寫數字或動物照片。

機器學習處理的問題

機器學習並非萬能,目前機器學習所能夠處理的問題不外乎可以分為兩類:「分類問題」與「迴歸問題」。

分類問題

分類,顧名思義就是要將資料分門別類,並歸至不同的群組。哪個資料屬於哪個類別,屬於同一類別的資料歸入同樣的群組中,對於群組內的細微差異並不去討論。

在此分類的類別需要符合兩個條件:

  1. 被分類者不是連續數值。即便乍看一下,答案好像是連續的數值,如果該每一個數值都可以視為不同的類別,則這個問題就是分類的問題。例如,推測數字倒底為1或2或3或4或5,雖然乍看一下,是個連續數字,但是我們想要的答案只有1或2或3或4或5,而不是1.1、2.3、3.4這種數值,這樣的問題就仍然可以歸類為分類問題。
  2. 不具備大小、順序的意義。再以前面的數字辨識為例,我們如果只關注在結果是否正確,而不在乎數字與數字間的大小關係,這樣的問題就可以歸類為分類問題。

如果以圖形來表示的話,分類的處理方式是盡可能的在所有資料中,找到一條可以區分出資料的線條。例如:找出顧客會不會續約?一張照片中是貓還狗的圖片?A或B哪一個促銷方式能吸引更多顧客?是否為經濟詐欺犯罪等等的問題。

分類

迴歸問題

與分類不同的是,迴歸是將輸入的資料當作一個群組來處理,分析群組內的差異,挖掘資料的傾向。

異言之,迴歸分析的主要目的在於找出變數之間的關係。也就是找出線性方程式 Y = f(X) 中,獨立變數x,與應變數Y之間的關係。

例如若想要找到某一個地區房價與屋齡之間的關係,可以用x代表屋齡,Y代表房價,找出最適合表示兩者關係的 Y = f(X) 線性方程式,到底是藍線、紅線、綠線還是橘線最能符合我們的數據分佈,最可以代表兩者關係?

實際上,當我們要預測的結果若是個連續變數時,最適合使用迴歸分析。例如石油市場價格預測、明天最高氣溫的預測、預測下週我會獲得多少新追蹤者等等。

我們知道,機器學習是AI人工智慧的分類之一,也可以說是AI範疇中最成熟的技術,現今大家所談論的「AI人工智慧」通常都使用了機器學習技術。

很多成功的企業,藉由機器學習與AI人工智慧,實現了自家企業與他企業的區別,甚至於顛覆原本的產業傳統。

例如Amazon、Facebook、Google、Uber或Netflix等企業透過機器學習的核心技術,打造推薦系統等AI應用,顛覆傳統市場,並且重塑各自所在的產業,甚至於完全改變了市場的遊戲規則。

目前機器學習已經活用於各式各樣的領域。它可以處理未知的事物,可以根據我們輸入的資料,自動學習並預測何者為最正確的答案。

拜機器學習技術之賜,讓人工智慧跳出純粹專家研究者們的封閉世界,進入到你我一般人的日常生活,成為席捲世界的社會現象。也因為機器學習的應用,才引爆了第三次人工智慧的熱潮。

這是一個與前兩次完全不一樣的熱潮。

--

--

Sean Yeh
Python Everywhere -from Beginner to Advanced

# Taipei, Internet Digital Advertising,透過寫作讓我們回想過去、理解現在並思考未來。並樂於分享,這才是最大贏家。