侃一侃人工智慧2-零散的人工智慧概念
宣告:本人並未深入研究人工智慧技術,也暫無此打算,主要談自己的理解,以下內容僅供參考。
人工智慧概述
人工智慧現狀如下圖
從大到小的概念依次是:人工智慧(AI)->機器學習->表徵學習->深度學習
機器學習主要靠的是邏輯迴歸,表徵學習靠的是自動編碼,深度學習靠的是神經網路。
人工智慧的發展階段
符號階段(人給機器規則)
給定一個簡單的邏輯運算規則,機器自己可以計算出結果。這個規則就是“程式設計”。說白了就是人類找到了可程式設計的裝置。最早的是圖靈機。這個階段智慧只依賴於數學模型。
統計學習階段(數學模型和資料結合)
是數學模型和資料的結合,人最初設定一個數學模型,機器通過學習一些過去的資料,反饋回來,改變自身的結構。常用的是一些無監督學習的數學模型,有:向量機、邏輯迴歸、決策樹、貝葉斯網路等。典型的應用比如文件分類、股票的高頻交易、醫學的醫理和藥理實驗的模擬等,總之可以為人類省去一大堆繁瑣枯燥的工作,把最可能的解決方案挑選出來供人們選擇。
連線階段(直接模擬人的硬體)
直接模擬人神經元的聚合模式,設計一套神經網路來解決問題。但是由於神經網路的計算結果不會收斂到唯一的答案,因此最初人們根本不知道這個神經網路能幹啥。近幾年由於計算機硬體的發展,GPU程式設計興起,神經網路火起來了。神經網路最突出的作用就是可以提取複雜事物的表徵。以卷積神經網路為例,通過一個判別矩陣,計算出圖片的指紋,通過對指紋的計算最後達到識別圖片的目的。
深度學習的一些概念
神經元
一個個體,多個輸入通過邏輯運算產生一個輸出,不同的輸入有不同的權重。學習的目的就是修改這個權重。
神經網路
每一層有多個神經元,不同層之間的神經元全排列,就組成了神經網路。
深度神經網路
層數大於2的神經網路,就可以稱為深度神經網路。
卷積神經網路(CNN)
把圖片分成小格子,用判別矩陣遍歷這些小格,最終計算出圖片的指紋。
迴圈神經網路(RNN)
將神經網路的中隱藏層的計算結果記錄下來作為下一輪計算的一個輸入。相當於給神經網路添加了記憶功能,增加了時間維度,這樣神經網路就可以解決一些有歷史依賴的問題,比如翻譯。還可以大大減少神經網路的引數,減少了操作的複雜度。但是存在結果爆炸和梯度下降的問題。比如1.01的n次方趨近於無窮大,0.99的n次方趨近於0,有記憶的神經網路會放大這種效應,造成結果失效。解決梯度消失的問題大概就是選擇性記憶一部分內容,常用的有長短記憶網路(LSTM)、門迴圈網路(GRU)。
生產判別式網路
包括Real Data,Detective、Generator,Input for Genterator.也就是一個真實資料,一個判別者,一個生成者,一個生成者的輸入。生成者根據輸入,輸出一個內容,判別者對比輸出的內容和真實的資料把結果反饋給生成者,這樣,生成者生成的資料會更接近真實資料。這個在電子試衣鏡什麼的地方很有前景。
人工智慧需要學習的知識
線性代數
微積分、凸優化、計算方法
概率論,線性迴歸
python
參考
http://colah.github.io/
http://cs231n.github.io/neural-networks-1/
https://arxiv.org/