李巨集毅機器學習課程筆記-1.機器學習概論

臭鹹魚發表於2020-12-22

機器學習是什麼

機器學習就是讓機器能自動找到一個函式(function)

  • 語音識別(Speech Recognition)

    輸入是音訊,輸出是音訊對應的文字。

  • 影像分類

    輸入是圖片,輸出是類別(比如貓、狗)。

  • AlphaGo下圍棋

    輸入是當前棋盤的狀態,輸出是下一步落棋的位置。

  • 對話/問答系統

機器能夠找到哪些函式?

為解決不同的問題、完成不同的任務,需要找到不同的函式,那機器學習能找到哪些函式呢?

  • 迴歸(Regression)

    輸出是一個連續的數值、標量,比如PM2.5預測。

  • 分類(Classification)

    輸出是一個離散的值。

    二分類(Binary Classification)的輸出就是0或1、Yes或No、…,比如文字情感分析的輸出可以是正面和負面。

    多分類(Multi-Category Classification)的輸出就是[1,2,3,...,N],比如影像分類裡判斷一張圖片是貓還是狗還是杯子。

  • 生成(Generation)

    很多教科書把機器學習劃分為迴歸問題和分類問題,但其實不止這兩種問題,還有其它問題,比如生成(Generation)。

    生成(Generation)指讓機器學習如何創造/生成,比如生成文字、圖片等。

如何告訴機器我們希望找到什麼函式

我們該如何為機器提供學習資料?

  • 有監督學習(Supervised Learning)

    可以把有監督學習中的“監督”理解為“標籤(Label)”,即資料集中不僅包括特徵還包括標籤。

    有了標籤,我們就可以評價一個函式的好壞,進而優化這個函式。

    使用Loss判斷函式的好壞,Loss越小,函式越好。個人想法:值得一提的是,Loss/評價指標是多樣的、優化方法也是多樣的。

  • 強化學習(Reinforcement Learning)

    原始的AlpahGo是先通過有監督學習優化到一定程度,然後用強化學習繼續優化。

    新版本的AlphaGo是完全通過強化學習實現的,優於原始的AlphaGo。

  • 無監督學習(Unsupervised Learning)

    只給機器提供資料特徵,但不提供資料標籤。那機器能學到什麼呢?

下面以讓機器學習下圍棋為例:有監督學習VS強化學習。

  • 有監督學習

    函式的輸入(資料特徵)就是棋盤狀態,函式的輸出(資料標籤)就是下一步落棋的位置。

    此時,我們需要為機器提供的資料就類似棋譜(如果現在棋局是這樣,那下一步怎麼落棋最好),但其實人類不一定知道怎麼落棋最好

    個人想法:理論上,通過這樣的有監督學習,機器是無法超越人類的。因為這樣的有監督學習的本質是人類把自己的下棋策略教給機器,機器學習的內容僅僅是人類的下棋策略而無法“自主進行思考”,所以理論上機器是無法超越人類的。同時要注意,這裡的人類指全人類。

  • 強化學習

    讓機器跟自己、別人下棋,把結果(贏或輸)作為Reward,引導機器學習如何下棋。

    如果它贏了,那它就知道這一盤裡有幾步棋下得好,但不知道是哪幾步;如果它輸了,它就知道這一盤裡有幾步棋下得不好,但不知道是哪幾步。

    個人想法:理論上,通過這樣的強化學習,機器是可以超過人類的。因為兩者的學習材料沒有本質區別,但機器的機能卻優於人類,這裡講的機能包括資訊共享能力、記憶能力、執行能力等方面

機器如何找出我們想找到的函式

  • 我們要給定函式形式/範圍(模型)

    比如假定函式是線性模型、神經網路等等。模型就是一個函式集,模型的引數確定以後,才得到一個函式。

  • 找到更好的函式:

    使用梯度下降(Gradient Descent),找到更好的函式。

前沿研究

  • AI的可解釋性(Explainable AI)

    比如,機器為什麼認為這張圖片裡有一隻貓?

  • 對抗攻擊(Adversarial Attack)

    對輸入故意新增一些人無法察覺的細微的干擾,導致模型以高置信度給出一個錯誤的輸出。

  • 模型壓縮(Network Compression)

    把模型壓縮以減少模型對計算資源消耗。

  • 異常檢測(Anomaly Detection)

    使機器知道它遇到了自己不知道的東西。

  • 遷移學習(Transfer Learning/Domain Adversarial Learning)

    一個模型已經學到了一些知識,將這些知識應用到另一個任務中。

  • 元學習(Meta Learning)

    讓機器學習如何學習。

    機器學習是我們教機器學習某種知識,元學習是我們教機器如何學習。

  • 終身學習(Life-Long Learning)

    讓機器終身學習,學習完任務1、再繼續學任務2、……

機器學習的三個步驟

  1. 確定模型(Model)/函式集(Function Set)
  2. 確定如何評價函式的好壞
  3. 確定如何找到最好的函式

Github(github.com):@chouxianyu

Github Pages(github.io):@臭鹹魚

知乎(zhihu.com):@臭鹹魚

部落格園(cnblogs.com):@臭鹹魚

B站(bilibili.com):@絕版臭鹹魚

微信公眾號(WeChat Official Accounts):@臭鹹魚的快樂生活

轉載請註明出處,歡迎討論和交流!


相關文章