人工智能
人工智能這個詞想必大家都不陌生,但你能準确的告訴我他是什麼嗎?
人工智能是人類長久以來的目标 – 希望機器可以和人一樣聰明。
大概80年代以後,有了機器學習的方法。顧名思義就是讓機器擁有自我學習的能力。機器學習就是我們達成這個目标的手段。
火爆的深度學習僅僅是機器學習的一個分支。
人們模仿生物的本能(人類智能)去設計一些機器,如聊天機器人。但是已有的很多産品是基于規則的實作方式。如隻要出現了"turn off"就會關閉機器(如智能音箱),但如果你說的是don’t turn off,依然會關閉 (剛剛用Siri測試了,掉鍊子)。基于手工規則的建構方式,無法窮舉所有的可能,而且無法超越創造者。因為規則本身隻是一種簡單的運算(本質上還是做比對),是無法去學習規則的。
機器學習
機器學習就是讓我們摒棄這種用人腦制定規則的方法,用data讓機器自己制定規則。
在我們現如今的技術能力下,研究的AI本質上是Narrow AI,即針對某一類任務的AI,而不是全能性AI。
說白了,機器學習就是要尋找到正确的函數。這個函數可以根據我們的輸入求得一個我們需要的輸出。
機器學習的架構
訓練
- 定義函數空間(函數集合)。
- 選擇評估函數。
- 在函數空間中,根據評估函數選出最優的函數。
測試
用選出最優的函數,測試未知的資料
機器學習算法分類
- 監督學習(大量有标簽資料)
- 半監督學習(少量有标簽資料+大量無标簽資料)
- 無監督學習(大量無标簽資料)
- 其他:強化學習(根據回報結果(critics)不斷進行學習),推薦系統
監督學習對比強化學習在自動應答中的應用:
The Next Step for Machine Learning
本來覺得緒論部分千篇一律,沒什麼意思。但是這部分是2019年春季班的新增内容,為我學習機器學習帶來了更大的興趣。
還有哪些是我們使用機器學習技術時需要克服的難題
1.機器知不知道“我不知道” (Anomaly detection)
例如,當我們訓練好一個貓狗分類的模型,你卻給他一個人的圖檔資料。機器有沒有能力知道這是一個我無法分類的怪東西,還是強行給他分類為狗或者貓。
2.說出我“為什麼”知道
2017年的“馬”識别器,兩個模型都取得了PCT 80多的好成績,下圖中紅色是機器真正看到的地方。圖一看到一匹馬,沒問題。圖二看到左下角有一匹馬,問題很大!因為訓練圖檔都水印都一樣,有水印就證明有馬!他并沒有真正的學會如何識别“馬”。是以我們需要一項可以讓AI告訴我們“為什麼”這麼判斷的技術。
3.機器的錯覺?(Adversrial Attack)
識别為熊貓的圖檔,加上噪聲之後,竟然99.3%識别為長臂猿。
如果無人車上的圖檔識别系統,在周圍情景的幹擾下産生這種錯覺撞車了,這是有可能會發生的。是以我們需要一項技術來防止機器發生錯覺。
4.機器的終身學習 (Catastrophic Forgetting)
一般我們隻讓一個模型學習一個任務…
問題是:
- 每個任務都訓練一個模型,那模型的熟練無線增長,存儲空間總會不夠用
-
不用任務的模型之間無法學習,無法互相幫助
一個模型學習了新的内容,就得内容就忘記了,這是一個終身學習的大問題。
5.學習如何學習 (Meta-learning/Learn to learn)
最終達到的效果就是,我們編寫的AI可以自己編寫學習的代碼,這個代碼可以寫出訓練方法,實作自主學習。
6.一定需要很多訓練資料嗎?
- Few-shot learning (少量資料學習方法):給幾個圖檔,就能學習圖像識别
- Zero-shot learning(沒有學習資料):給一段文字描述,做圖像識别。例如:烏龜就是一個綠色,有大的後蓋的動物。
7.Reinforcement Learning 強化學習
人機對戰的利器,完勝人類的AlphaGo。問題是訓練特别特别長的時間才能和人做的一樣好。有沒有辦法讓RL學的快一點。
8.神經網絡壓縮(Network Compression)
- 能不能在應用端把大神經網絡縮小,節省計算資源,降低計算成本
- 參數二進制化:能不能把所有神經元的參數都變成“+1”和“-1”,提高計算效率。
9.機器學習的謊言(Unsupervised Domain Adaptation)
真實的應用場景往往和訓練集上的資料不同,例如這個數字識别中變換顔色的問題。