這次的人工智慧浪潮會持續多久?
最近剛好有個機會可以持續學習人工智慧,這次分享的是政大的蔡炎龍老師,目前人工智慧的主軸是深度學習,而深度學習的核心就是神經網路,白話一點來說就是叫電腦學個函數解決我們問出的問題,當然要準備些考古題來訓練他(像AlphaGo先收集所有的棋譜一樣),然後測試我們訓練出來的AI(就像AlphaGo跟韓國李世石、中國的柯潔對打)。
神經網路要成功有三大要件
1. 複雜的軟體
2. 電腦計算能力
3. 大量的數據
前面兩次浪潮分別是1960年代第一次提出人工智慧,以及1980年代灌輸專家知識為系統的人工智慧,這兩次都沒有三大要件的幫忙,這次的以機器學習為基礎的人工智慧,似乎到了水到渠成的階段,因此進展比前兩次更快更兇猛,甚至有人開始吹捧AI泡沫,但到目前為止,人工智慧仍不是萬能,但未來怎麼走,仍值得期待!
深度學習的步驟
1. 先問一個問題
2. 化成函數的形式
3. 準備有正確答案的訓練資料(類似考古題:一些當訓練資料,一些當測試資料)
4. 架構神經網路:根據資料選擇適合的NN、CNN或RNN,可以考慮另外加上強化學習、生成對抗模式(GON)來幫忙,架好了神經網路,調完一些參數,函數就出現了
5. 學習:將資料送進神經網路學習,再調整參數,用loss function看跟觀察值差多少(說起來都很容易XD)
目前這樣的應用,已經在各行業都有,像是可以利用前一個月或前一年的股票價格預測下一期的變化,利用MLB球星這季的數據預測下一季的打擊率等等,而手寫辨別、圖像辨識、對話機器人等也都是深度學習為主軸的發展。
內容筆記
神經網路需要經過訓練,就像我們從學生時代一直寫考古題一樣,這種學習方式稱為backpropagation。神經網路結構決定之後,可以調整的參數就是比重weight跟bias,我們目標就是找出一個參數的集合,使得我們的函數結果和目標最接近,也就是loss function的值最小。
這種調整w1,w2,b1的方法就叫gradient descent,每次調整都是往局部極小值移動,其實就是求切線的斜率,這種調整有時候會跑過頭,為了不要一次調太大,我們會乘上一個小小的數(自己給的),叫learning rate。
神經網絡的三大天王:NN、CNN、RNN
標準NN
Ø fully connected neural networks
Ø 每個神經元動作是一樣的:若干刺激輸入,一個刺激輸出(基本上NN跟CNN都是類似的,RNN比較不同)
Ø 我們要先算總刺激,加上偏值
Ø 再用激發函數作用上去,得到總輸出h
CNN(convolutional neural network)卷積神經網路
Ø 圖形辨識的超級天王
Ø 搭配reinforcement learning
Ø 每個filter看一個特徵,掃過每一個點,紀錄該點附近的特徵強度
Ø CNN應用步驟
1.Convolution layer: 原本8x8的圖片,做一個filter,自己決定大小,大多一樣,例3x3,因為filter會很多,所以我們會得到很多矩陣,這邊的filter就是一種weight
2.Max-pooling layer: 像選區投票,決定範圍然後選一個代表,每區選出最大的
3.兩層不一樣的結構:convolution (filter) 和max-pooling layer(投票) 可以不斷重複( c->m -> c -> m ),做完再傳送到正常的神經網路
RNN(recurrent neural network)遞迴神經網路
Ø有記憶的神經網路
Ø RNN會偷偷把上次的輸出也當這一次的輸入
Ø RNN的cell會把記憶傳給同一層的其他RNN cells
Ø 每個輸入都越來越多,因為會加上上一次的,之後再輸出
Ø RNN應用:對話機器人、翻譯法、即時影片文字輸出、生成一段文字、畫一半的圖
Ø 輸入都是向量,有權重,輸出都是純量
Ø 另外兩個變形是LSTM和GRU
1.LSTM(long short term memory):會多一個cell的狀態,他會有一個gate控制閥,閥要開多大要決定(輸出0-1之間的數字:用sigmoid function),LSTM總共有三個gate
2.GRU: LSTM的簡化版,只留兩個gate
強化學習跟生成對抗模式是兩大連結的方式
GAN:生成對抗網路
Ø GAN是兩個神經網路,一個生成,一個判斷,相互對抗,去把要解決的問題做出來
Ø 訊號進入有生成器(G)先生圖
Ø 然後經過鑑別器(D)判斷,是真或是假
Ø 生成器:基本上不用準備資料,判斷器:準備真實的照片,所以不用labeling,資料不需要配對
Ø 不好訓練的model
Ø 鑑別跟生成器是兩個獨立網路
Ø Progressive GAN、cycle GAN的應用
強化學習 reinforcement learning
Ø aphago核心技術
Ø 設定環境狀態St,叫電腦agent做動作at,電腦知道得到多少分,電腦不需及時告訴他分數
Ø policy based: pi function,問題點是去學狀態的時候要配合很多動作,通常直接學不容易
Ø value based: Q function(deep Q learning),評分,利用很多次學習去評分
深度學習心法
Ø 數據量大時,深度學習通常比一般方法好,資料上萬的時候
Ø 要相信神經網路一定學得會(如果沒有,要考慮資料有問題?架構有問題?)
Ø 學不好的時候考慮一些正則化的方法(drop out, L1/L2 regularization, SELU)
雖然上述內容對相關工程師都屬於幼幼班程度,但希望持續敲開自己的入門磚
學習資源整理
人工智慧AI晶片與Maker創意接軌
科技報橘: 最完整機器學習書單,10 本讓你從凡人變神人!
深度學習公開課資源整理
Github 机器学习(Machine Learning)&深度学习(Deep Learning)资料