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

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

# 機器學習是什麼 **機器學習就是讓機器能自動找到一個函式(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](https://github.com/chouxianyu) Github Pages(github.io):[@臭鹹魚](https://chouxianyu.github.io/) 知乎(zhihu.com):[@臭鹹魚](https://www.zhihu.com/people/chouxianyu0) 部落格園(cnblogs.com):[@臭鹹魚](https://www.cnblogs.com/chouxianyu/) B站(bilibili.com):[@絕版臭鹹魚](https://space.bilibili.com/346368054) 微信公眾號(WeChat Official Accounts):[@臭鹹魚的快樂生活]() 轉載請註明出處,歡迎討論和交