1. 程式人生 > >機器學習課程筆記一

機器學習課程筆記一

什麼是人工智慧?

對話是一個集大成的智慧場景。語言是體現智慧的一個很重要的方面,語言約等於智慧,圖靈測試就是基於語言的。 在生活中,我們的很多手機app已經應用了人工智慧技術比如:人臉識別(圖形處理),語音識別,個性化推薦,智慧排程,機器翻譯 人工智慧技術已經深深的影響了我們的生活,我們已經無法想象沒有人工智慧的世界是什麼樣的了。

有兩個問題是我們必須要思考的:

目前的人工智慧發展到了什麼程度?要發展到什麼程度?

目前的人工智慧技術還處於弱人工智慧階段,我們想要發展到什麼地步呢?人們普遍的認為人工智慧的發展目標就是造出與人一樣的智慧體,但是要更好的回答這個問題,我們首先要明白下面這個問題的答案是什麼。

什麼是智慧?

舉一個例子,一個連走路都還沒有學會的嬰兒與一個擁有很多功能的強大的機器人,我們往往會認為嬰兒是有智慧的,而機器人沒有,為什麼呢?

智慧這個概念十分的模糊,有很多的爭議,以下從兩個要點,三個層次來解釋什麼是智慧

兩個要點

自適應能力:目前AI在一定程度內可以,知識遷移能力;AI的一個很重要的目標是實現通用人工智慧 自我意識:“知道自己在做什麼”,如何判斷一個事物是否有自我意識?(這一點也是為什麼很多人認為嬰兒具有智慧而機器人不具有,目前有著一種檢測的方法就是照鏡子)

三個層面

1.運算智慧:數學運算

2.感知智慧:視覺,聽覺

目前已經基本解決,計算機視覺與語音識別方面的技術已經很成熟

3.認知智慧:邏輯推理,知識理解,決策思考

語言是一個典型的,很重要的應用,語言是表示世界的一套符號系統,無論是各種自然語言還是數學語言,邏輯語言,程式語言,語言是認知智慧的核心,如果我們無法表示這個世界,我們也就無法改變它

其他的重要應用還有表情識別,體態識別等

圖靈測試

圖靈測試是目前一個公認的判斷一個機器是否具有智慧的方法,其核心思想就是通過語言交流來判斷機器是否擁有智慧。

圖靈測試可以判斷一個機器是否具有智慧,但其有效性是一個哲學層面的問題:假如一個AI真正有了智慧,那麼他是否可以假裝不具有智慧,從而欺騙人類。圖靈測試有這個bug是因為其是一個行為主義測試,我們無法從內涵上定義智慧,所以只能這麼做(所以說圖靈測試是一個務實的方法)。行為主義與結構主義,我們並不瞭解人腦的奧祕以及為什麼會產生意識,所以結構主義的困難很大,目前的結構主義的模型的結果有神經網路。

如何製造人工智慧?

製造人工智慧分為兩大流派:聯結主義和行為主義

聯結主義

聯結主義即通過模仿製造一個完全相同的東西使其具有一個功能,在人工智慧領域,其主要貢獻就是人工神經網路,通過模擬人的大腦來實現智慧,但是目前神經科學並不瞭解人的大腦為什麼會產生意識,為什麼會出現智慧,我們對大腦本身瞭解的並不充分,所以想要模仿是不可能的。就算我們瞭解了大腦的結構,能夠模仿,但是其成本也可能十分巨大而且效果也不一定好。人類的仿生學發展告訴我們,實現某一種功能並不一定需要完全相同的結構,只要其中遵循的原理相同即可,比如飛行,人類的一個夢想,我們最開始用機械結構模仿鳥的生理結構來製造飛行器,但後來發現行不通,但在我們掌握了空氣動力學原理後,我們卻可以造出與鳥類的結構大相徑庭但飛行能力遠遠大於自然鳥類的飛行器。這一思想也就是行為主義。

行為主義

實現智慧並不一定要完全的模仿人腦的結構,只要我們瞭解了智慧的本質,我們就可以製造出更加強大的智慧體。

要了解智慧的本質,首先要明白思考是什麼?是搜尋?是學習?

1.思考即搜尋

資訊搜尋/模型搜尋(智慧助理),智慧的一大功能就是搜尋,根據問題的需求在知識庫進行搜尋,我們的大腦的機制我們還不瞭解

WATSON 的機制 自然語言處理+資訊搜尋

搜尋需要一個很好的知識庫,網路資源混雜,相當於“垃圾”,目前的搜尋引擎已經能夠很好的做到資訊篩選;知識圖譜+匹配技術,就可以利用搜索實現智慧。

搜尋:在已有的知識中找到答案

知識從哪裡來?

學習:發現新的知識

學習:什麼是知識?

知識就是資訊中的模式(pattern),模式識別(人工智慧研究的上游),模式是什麼:資訊或物件之間的穩定的關聯關係。比如三角形中三條邊的關係,語言中的語法(不同詞彙之間的關係),物理定律(不同物理變數之間的關係)

當你在進行決策時,你是對自己腦中的模式進行處理,腦中的模式(世界觀)反應了客觀世界,也就是你的認知水平,其決定了你的決策水平。

學習就是歸納模式的過程(為什麼模式識別這麼重要?)

 

2.思考即學習

什麼是模型?模型就是對模式的猜測。模型不是演算法,演算法基於模型

整個科學研究都在尋找模式,1.確定你的研究目標,2.蒐集資料(實驗),3.猜測模型(儘量貼合實驗結果,大部分情況得先猜測一個),4.根據資料將模型儘可能確定下來

機器學習就是將科研自動化

 

機器學習的基本框架

1.一系列可能函式(模型)2.選出最好的函式3.訓練資料

有監督學習:標記資料需要大量人工,很多時候沒有相關的知識(目前最好的模型基本是有監督模型,中國的人口優勢使得其可能成為人工智慧強國)

無監督學習:模型自己總結出類別(一開始沒有類別,類別本身也是一種知識)

半監督學習:模型需根據標註資料完善未標註資料

強化學習:間接“標記”,給很多步一個評價,比如棋局的輸贏,訓練貓狗(在一系列動作後給予反饋),強化學習是一個反覆的過程,有監督學習一次就可以學完,給予少量資料形成模型,用模型輸出然後得到反饋,然後不斷對模型進行修改強化。

 

基於規則的模型:由人定義特徵及其與輸出之間的關係

基於統計的模型:人定義特徵,由模型確定特徵與輸出之間的關係(特徵非常重要:灌水論文,隨便選特徵看效果;工業領域蒙特徵很重要,《特徵工程》)

更智慧一點?

深度學習模型:端到端模型,資料到資料;不用定義特徵,其可以自動發現特徵(我們自己的認知可能會有缺陷),模型確定原始資料與輸出之間的關係

為什麼深度學習這麼厲害?

深度學習可以自己發現特徵,其採用多層人工神經網路,深度深在層次上,廣度和深度那個更好?越深越能發現複雜的特徵(儘管其計算代價很大,有過擬合的風險)

 

人工智慧的一些重要問題

深度學習這麼厲害,我們可以一勞永逸嗎?不行

人工標記(勞動密集型),人工選特徵(很難),選模型(很難,一半靠蒙)

什麼是好的模型? 泛化能力&效能

好的模型就是再泛化能力與效能之間尋求一個平衡

太極陰陽,工程圖紙

太極陰陽:描述性十分強,泛化能力強,但精確度與可計算性十分差 欠擬合模型

工程圖紙:泛化能力差,描述性差,具體可計算 過擬合模型

再比如大學中的哲學類課程提供了欠擬合模型,過細的專業課則是過擬合模型,我們要想構建更好的認識世界的模型(世界觀),還得自學大量的知識

模型的複雜度越高,越容易過擬合(ppt上圖片十分重要),太簡單或太複雜都不可以,機器學習的技巧性就體現在找最佳VC維,使得模型在泛化能力與效能之間達到一個平衡

 

為了避免過擬合,就有了開發集這一概念

資料集:訓練集,測試集(使用次數越少越好),開發集(使用次數不限)

模型訓練中使用開發集做評估,其使用的次數不限,但在模型投入應用前,要用測試集進行一次評估,測試集的評估結果大概率能反映模型的真實水平,因為對測試集的使用次數做了限制,所以模型在測試集上出現過擬合的概率很小。

 

另外一種方法是大家共同維護一個數據集用於測試,即公共資料集

公共資料集的代表性,質量比較高;不同的模型比較也更加公平

(刷榜問題,依然會過擬合:刷榜指的是公共資料集上好的模型會被其他團隊所借鑑,壞的模型逐漸被淘汰,最後多個團隊實際在進行一場接力賽,即最好的模型被不斷的加強,不斷的貼近公共資料集,這樣依然會發生過擬合問題)

過擬合問題看起來很簡單,但實際很難解決

“成功是最大的失敗”(當這個時代變化時,成功者會更加固執的堅持自己的固有經驗,更不願意做出改變)

 

工程應用由於成本限制,往往先從簡單的模型開始(比如基於規則的模型),如果簡單的模型效果不好,再嘗試更為複雜的模型(比如深度學習模型),以下三種模型按簡單到複雜的順序排列

基於規則的模型:問題簡單,擁有大量已有知識

基於統計的模型:資料量不大,有一些明確特徵

深度學習模型:沒有先驗知識,沒有明確特徵,資料量大,算力高

並不是所有問題都適合用深度學習模型,其必須滿足應用的條件;尤其是資料噪音大的時候更不應該用深度學習,因為其對噪音很敏感,這種情況下簡單的模型由於對噪聲的敏感度低,效果反而更好。

 

世界知識

基於知識,常識的機器學習。世界知識給機器學習提供輔助功能

在生活中,很多知識離不開具體的場景與背景知識,比如“杭州市長春藥店”,如果沒有背景知識,很有可能斷句錯誤鬧笑話。機器學習也需要大量的這種背景知識,這種背景知識支援,輔助學習過程,其被稱為背景知識。

小樣本學習

人往往需要很少的資料就可以掌握知識(比如人類兒童對語言的學習),實現小樣本學習實際上借用了外部知識(世界知識),人類很多小樣本學習可以用此解釋,除過兒童學習語言(目前的猜想是人的大腦都有本身儲存的知識,擁有所有自然語言的一個高度抽象,這些知識儲存在我們的基因之中)

 

To be continued >>>>

&n