AI學習筆記 — 機器學習的種類

Shoyoen, Kaohsiung, photo by Sean Yeh

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

機器學習是讓機器透過資料進行學習的相關演算法、技術與技巧的結合。機器學習的方法不只一種,有多種不同類型。目前最的主流方法有下面幾種:

  • 監督式學習(supervised learning);
  • 非監督式學習(unsupervised learning)與;
  • 強化學習(reinforcement learning)。

除了上面三種外,也有所謂的半監督式學習(Semi-supervised Learning)。接下來分別就這幾種學習方法簡單說明。

監督式學習

監督式學習(supervised learning)是一種人工智慧的學習方法,在機器學習領域裡面算是最主流的方法。它使用標籤數據來訓練演算法,是一種有標準答案的學習方式。

進行監督式學習時,我們會先準備好「訓練資料」(training data),並由人類扮演教師的角色讓人工智慧往單一方向學習。

監督式學習在日文裡面被稱為「教師あり学習」(亦即,有教師存在的學習方式),從該字面上便可以清楚的看出監督式學習裡面有扮演教師角色的人參與。

在監督式學習模型裡面,需要有例題與標準答案(又稱為 instructional signal )。易言之,在過程中我們會給予機器資料以及每一筆資料所對應的「標籤」,而這些標籤就好像是用來教電腦辨別事物的答案。換句話說,正確的答案即為標籤,而含有標準答案的資料稱為附帶標籤的資料,也就是訓練資料。

就像我們在學校接受考試時常見的是非題一樣,讓電腦判斷「某一封信是否為垃圾信?」,就屬於這種學習方式。或者是給予各式數字0與1的圖片以及答案後,在提供沒有看過的圖像,讓電腦辨識看看這張圖片應該是0還是1。

因此,只要可以建立「訓練資料」的課題,就可以採用監督式學習來解決問題。反之,無法建立「訓練資料」的課題,就無法採用監督式學習。例如前面提到的垃圾郵件判斷的課題,只要我們可以蒐集到正確答案與錯誤答案,換句話說只要可以蒐集到垃圾郵件(正確答案)與非垃圾郵件(錯誤答案),就可以透過監督式學習來處理這個問題。

監督式學習有許多不同的演算法,包括邏輯回歸、支持向量機、決策樹、隨機森林和人工神經網絡等等,大致上可以分為「分類」與「迴歸」兩種類型。分類的答案會是「貓或狗」、「這是詐欺或不是詐欺」、「是垃圾郵件或非垃圾郵件」等不同類別。

目前,監督式學習在機器學習領域裡面算是最主流的方法之一,在業界有許多應用方式,例如NLP自然語言處理、電子商務或串流影音平台的推薦系統、金融風險的控制、醫學影像的診斷和遊戲強化學習等。

非監督式學習 - 找出數據背後的隱藏規則

人類在觀看一群物體時,即便不知道它們的名稱,也會下意識地根據物體的特徵進行區別。若以下面的圖來說,我們可能會下意識的依照顏色來區分左邊的那些散落的圖型。

前面提到「訓練資料」的有無,決定了是否可以採用監督式學習的方式。使用非監督式學習的契機,正好是在無訓練資料的情況之下。

非監督式學習使用未標籤的數據來訓練演算法。演算法會透過對數據的結構和關係做分析,來學習如何做出預測。通常在進行非監督式學習時,人們會給予資料但不會給予對應的標籤。這種學習方式的模型則可以依照「特徵」判斷,將特徵相似的資料分成不一同的群組而不需要事先準備例題與標準答案。因此,我們可以說非監督式學習是一種可以從資料中找出背後隱藏規則的一種方法。

因為非監督式學習,使用未標籤的數據來訓練演算法,可以從資料中找出背後隱藏規則,這也是它與監督式學習不同之處。由於監督式學習需要有「標準答案」才可以預測的特性,不可能去預測未知世界將發生的事情。畢竟未知的世界會變成什麼樣子並無標準答案。而非監督式學習則無此限制,不需要人類提供標準答案,也就不受人類聰明才智的限制。

非監督式學習演算法透過分析數據的結構和關係來學習如何做出預測。它有許多不同的演算法,包括集群(Clustering)、降維(Dimension Reduction)和階層式分群(Hierarchical Clustering)等。在應用方面也有很多種,例如文本分類、影像分類、模式識別、情感分析與欺詐偵測等。可以看到,非監督式學習在那些需要大量分析未經標籤數據的場景中特別有用。

強化學習

第三種人工智慧的學習方法為強化學習,它會透過不斷評估和改進策略來學習如何做出最佳的決策。

強化學習不同於前面兩種學習方式(監督式學習和非監督式學習),它不是透過訓練資料集來進行學習,而是藉由發號命令,讓電腦進行動作,並且給予正向或者是負向的回饋,以便於讓電腦進行一連串的學習行為。

若以狗主人訓練小狗為例,被訓練的小狗(Agent)會與主人進行互動(Environment),小狗藉由觀察主人(環境)而表現出各種行為(Action)。當它進行每一項行為時,主人都會給予不同的反饋(Reward),各種反饋中包含了正向回饋或者是負向的回饋。在過程中小狗學到了,只要「陪主人玩『你丟我撿』一陣子」(Action),主人就會「賞賜它一個食物」(Reward)。

換句話說,在學習過程中我們不會給定正確答案,而是以「報酬」來描述該行動的優劣,促使電腦採取更高報酬的行動。再以獲得最佳報酬為目標下,讓演算法學習到越來越強的運作方式。

半監督式學習

最後,半監督式學習意味著部分學習採用監督式學習,而部分則採用非監督式學習。在訓練模型時,部分資料帶有標籤,而部分資料則不具備標籤。

採用這種方法的目的是利用有限的標籤資料來提高演算法的性能,同時也利用未標籤的資料來增加模型的泛化(Generalization)能力。

半監督式學習常用於處理非常龐大的資料集,而這些資料集中只有少數資料有標籤,大部分資料都沒有標籤的狀況。透過半監督式學習的使用,可以同時保持高準確性並且降低訓練時間和成本。

結論

綜上所知,「監督式學習」是一種人工智能的學習方法,它使用標籤資料來訓練演算法。該演算法會透過模仿訓練資料集中的標籤資料來學習如何做出預測。

「非監督式學習」使用未標籤過的數據來訓練演算法。該演算法會透過對數據的結構和關係做分析,來學習如何做出預測。

強化學習,則會透過對應的動作和環境狀態進行反覆評估和改進,自行嘗試錯誤,不斷評估和改進策略並從中找出最佳的行動策略來完成指定的任務。

而半監督式學習在訓練演算法時會同時使用包含標籤和未標籤的資料集。透過這種方式,即可以利用有限的標籤資料來提高演算法的性能,並且也同時利用未標籤的資料來增加學習模型的泛化能力。

--

--

Sean Yeh
Python Everywhere -from Beginner to Advanced

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