iT邦幫忙

2021 iThome 鐵人賽

DAY 15
0

前半段講python講得差不多惹XDD 終於進入機器學習篇章(打開全新的一頁的感覺),接著讓我們好好地繼續學習吧/images/emoticon/emoticon62.gif

人工智慧的分級

扯到機器學習,不得先拉回比較宏觀的角度,人工智慧。人工智慧依照歷史發展可以分成四個層級:

  • 第一級:自動控制
  • 第二級:探索推論、運用知識
  • 第三級:機器學習
  • 第四級:深度學習

人工智慧是讓機器可以展現人類的智慧,基本上是一個讓電腦執行人類工作的廣泛用語。

  • 人工智慧可以泛稱機器展現人類的智慧,包含第一級自動化流程控制、第二級的專家知識。
    第一級是寫 if else ,若是開發一個聊天機器人,則開發者需要寫很多條件去猜想顧客可能回答的問題。
    第二級是加入該領域的專家,可以協助開發者更完整地解決一個問題。例如,請聊天專家協助開發聊天機器人,猜想顧客的問題以及滿意的回覆。

  • 機器學習則是透過演算法學習資料的樣態,企圖給予機器讓它去學習一套規則或技能,通常可以建立一個模型去預測新的數據,而機器學習可以分成三種:

    • 監督式學習:從過去標記過的資料來進行訓練模型,這個模型可以預測沒見過的數據

      例如:訓練大量的電子郵件,跟機器說哪些是垃圾郵寄哪些不是,請機器去預測未來的郵件是否是垃圾郵件

    • 非監督式學習:給予資料卻不給與正確的答案,讓模型從資料中找尋潛在的規則

      例如:由於人力標示成本耗時耗力,給予機器很多動物的圖片來找尋分類規則

    • 強化式學習:讓機器學習當前的狀態,通常包含獎懲機制。

      例如:請機器下圍棋,最後跟機器說是輸還是贏;讓電腦玩馬力歐遊戲

      類似人類學習的過程,如果犯法會有懲罰,如果做好事會得到別人的稱讚

  • 深度學習是機器學習其中一種方法,藉由模仿人類的神經元傳遞,建立許多深層的網路建構,可以去學習更複雜的工作。
    例如:影像辨識、手寫辨識、語音辨識複雜工作等等

建立模型的流程

而瞄準機器學習,其中建立模型開發流程可以粗略分成以上幾個步驟:

  • 定義問題:一開始與需求方討論和定義想要解決的問題

  • 蒐集資料:蒐集需要訓練的資料或是答案,可能採用爬蟲或從資料庫拿取等方式

  • 清理資料:這些資料很有可能格式不一致,或是有可能有空值的情形需要進行資料處理

  • 特徵工程:這通常需要 Domain Knowledge,對於資料有相當程度地了解的人,對資料萃取新的特徵以增加模型準度

  • 訓練模型:此階段耗費的時間長短會決定於選擇的演算法、資料樣本大小、硬體資源(是否有GPU)等等

  • 模型評估:開發者會依照問題選擇不同的評估方式,通常會有一個 baseline 成效,接著開發者的工作是想方設法地超越它

  • 模型部署:若模型成效已經達到需求方滿意的水準之後,就會讓模型上線並實際應用

  • 監控維運:模型開發後並不是結束,而是另一個開始,通常開發者需要肩負維運的責任

    通常隨著時間模型成效會下降,這時候就需要有 re-train 的機制,讓模型重新進行訓練

此外,箭頭的指向也可能會變動,僅是提供大致方向參考

機器學習的演算法

機器學習的演算法可以大致分為監督式學習與非監督式學習,兩者的差別在於是否知道標準答案

  • 監督式學習好比說學生寫作業對答案,我們從錯誤中學習,有老師跟我們說標準答案,告訴我們這個世界的基準是什麼。
    • 分類
    • 預測
  • 非監督式學習會讓小孩去自己學習,例如你帶他去一趟動物園之後,他可能會歸納說猴子跟猩猩很像,老虎跟貓很像,藉此從資料中學習一套法則,但你並沒有跟他說答案。
    • 分群
    • 降維

過度擬合

若實作機器學習之後會常常聽見的名詞,過度擬合(overfitting)

機器會根據資料來進行學習,但倘若它過度擬合這些圓點,而使用一個過度複雜的模型(右圖),雖然在訓練的時候得到比較好的成效,但通常在沒看過的資料成效會大打折扣

image

為了防止這種情況,我們可以...

  • 收集更多資料(但也意味者成本提高)
  • 用資料增補(Data Augmentation)
    這招常常使用在影像辨識,由於收集的資料有限,我們可以將既有的資料進行旋轉、光暗調整、縮小放大等等進行調整,就可以倍增很多資料。
  • 重新進行資料探索,合併或減少沒有用的特徵
  • 正規化,有 L1、L2 regularization。在演算法的 loss 計算加上懲罰項,如此一來機器在進行訓練時來約束模型不要過度擬合

上一篇
Day 14 : 程式碼日誌與品質
下一篇
Day 16 : 模型衡量指標
系列文
Python資料分析學習地圖30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言