Dosudo deep learning newsletter #2

We are Dosudo 矽谷軟體工程師 Deep learning 讀書會.  Welcome to join our biweekly meeting and here is our website. also check out our Deep Learning 線上聚會紀錄

Upcoming event:

Dosudo deep learning #6  – on July 29   17:00 (PDT time)

 

 

A.  Deep learning highlight 

  1. Google DeepMind taught AI to walk, run and jump!

fig1

Editor: Joanne Tseng

Google DeepMind團隊在七月釋出了三篇論文與一支影片來展示人工智慧在學習人類移動行為上的成果。此三篇論文提出人工智慧如何學習人類的移動行為。

第一篇論文是在給予簡單的報酬函數下,看不同的機器人(agents)能否透過在不同難度的環境中訓練而學習到複雜的行為模式。此影片展示了論文的成果。此方法的一個缺點是因為是直接透過簡單報酬函數去學習,有時候會學習出在模型上成立不過實際上並不像人類的行為模式。因此第二篇論文利用生成對抗式模擬學習( Generative Adversarial Imitation Learning)(一種非監督式學習)的方法來進一步模擬產生出似人類的行為模式,進而彌補前篇論文模型的缺點。此篇論文利用模擬行為軌跡與真實行為軌跡構成的決策網路來學習各種行為模式包含跳躍、轉向、跑步及低頭,最後利用這些行為的組成來使得機器人的行為模式更加像人類。此影片有講解架構以及最後的成果。第三篇論文提出了一個新的類神經網路模型,結合變分自動編碼器(Variational AutoEncoder)及生成對抗式模擬學習(GAIL)來讓機器人學習出更多元的行為模式。

Google想解決問題的核心是發展一個有適應性的系統使其可以學習適應不同的行為技巧同時降低人力工程的協助,之後著重的方向也會嘗試更多的模型方法來使得機器人在更複雜的情況完成更難的行為模式。PS. 附圖是下面影片連結中機器人在走路的截圖。

原始post   中文post    Video

 

2. Is really big data resulting better performance? Google and CMU newest research said YES.

This slideshow requires JavaScript.

Editor: Hubert

機器學習領域中一直有一個疑問:「在現有架構上給予超巨量的數據是否能得到更高的準確綠率?」。從附圖中可以看到,隨著時間推進,無論是模型複雜度、運算效能都在飛躍性進化,但數據集的資料量卻一直沒有成長。

Google 此次與 CMU 合作,使用三億張有標註標籤的照片與 50 台 K80 GPU 進行長達兩個月的訓練,得到以下有趣的結論:

  1. 學到了更好的特徵,代表著數據量可以緩解噪聲所造成的負面影響,亦代表著 unsupervised 與 self-supervised learning 的未來非常值得期待。
  2. 準確率確實都得到了提升,並與數據的數量級(取對數)成正比成長。
  3. 要充分得到數據量的加持,需使用複雜度更高的模型。
  4. 在 long-tail (意指 training loss 收斂時的平坦區域)上持續訓練並沒有觀測到直接的負面影響。
  5. 得到新的 state-of-art 成果。

這篇 paper 演生的影響:

現今模型的瓶頸可能已經從架構&計算量轉換到了訓練集大小&計算效率上,這也許會更進一步讓 GAN 的未來研究得到更多重視,並讓研究者更專注於研究「怎麼設計更高效率的訓練算法」與「生成高品質的訓練集」。

原始post   中文post  Paper  Reddit上的深入討論

 

3. Synthesizing Obama: Learning Lip Sync from Audio

fig3

Editor: Chih-Hsu (Jack) Lin

俗話說:「只聞其聲,不聞其人」。但如今藉由深度機器學習,可將說話的人嘴原影重現。

華盛頓大學的研究團隊以美國前總統歐巴馬為例,將歐巴馬的一段演講聲音轉換成符合的嘴型動畫,再搭配適當的影片合成出符合演講唯妙唯肖的影片。他們利用17小時近兩百萬影格的高畫質影音為訓練材料,發展將一維的聲音訊號轉換成三維的嘴型骨架動畫的長短期記憶神經網路(Long Short-Term Memory neural network, LSTM)。得到嘴型架構之後再填入嘴巴與牙齒的材質,並選擇適當的影片合成頭臉的表情動作,調整讓頭看起來自然擺動,最後再與適當的頭部以外的影片合成最終影片。

該研究主要貢獻是發展可直接將說話聲音轉換成嘴型動畫的模型,雖然有時會有雙下巴或是臉部色彩溢出到背景的雜訊,該模型也尚未考慮到舌頭的動作與聲音帶有的情緒,但就目前結果來看,已是可以假亂真的影片。此技術可望應用於語音通話時自動合成視訊,可幫助聽障人士讀唇語,或是視訊通話時網路不穩定或是網速過低,也還是可以展示影像。或是在總結擷取一段較長的演講時,可以自動生成對應擷取內容的流暢影片。或是用於電影動畫或遊戲中生成虛擬人物影像。

小編意見:

當然這樣的技術也有可能被用來製造假影片,散佈假新聞。雖然以目前的技術來說,尚有許多限制,像是需要有許多高畫質的影音作為訓練材料,但假以時日,技術繼續發展,並再搭配上合成人聲、合成人臉立體模型等其他技術,很難說會不會有人以該技術犯罪。也許未來政府應該要有相關規範,認證「真的」新聞或是影片,減少受騙受害民眾。

原始post   中文post  Paper    影像網頁

4. 能加速一千倍的超高速視頻目標監測系統NoScope  

fig4

Editor: George.Wu

近來年Deep CNN(深度卷積網路)在圖像上無論是圖像識別或目標分割等各方面都證明了其強大的能力, 而在處理影片上尤其是Object detecton(目標檢測)方限也同樣有優異的表現, 在這裡稍微回顧一下video object detecton一些有名的CNN模型. 從第一個將CNN引入目標檢測的RCNN(2013, Regions with convolutional neural network)開始, 將目標識別視為Selective Search候選區域的分類問題大大提升了效果, Fast-RCNN(2015) 實現了部分end-to-end及新的ROL pooling layer, 到Faster-RCNN (2015)引進區域生成網路(Region proposal network)取代了候選區域, 並是完全end-to-end CNN目標檢測模型. 而YOLO(2015, You only look once)則提供了不同的思路把目標檢測轉化成regression 問題, 直接在多個位置回歸出bounding box及類別. 大大提升了目標檢測的速度. YOLO2(2016)則提出一種目標分類與檢測的共訓練方法, 提升了速度及準確度.

雖然CNN在處理影片的目標檢測上已經有近期表現最好的YOLO2 以及Faster RCNN. 但如果要即時分析整個城市的監視錄像進行目標檢測時複雜的CNN模型還是稍嫌吃力. 在這裡Stanford的研究團隊提出了號稱能加速1000倍的高速視頻目標檢測系統NoScope. 它的原理在於極大地而有效率的降低了影片中大量的temporal locality(時間局部性, 即相鄰時間點高度的相似性) 及 spatial locality(空間局部性, 及不同場景目標的相似性). 利用difference detector(差異檢測器)將沒有變化的相鄰時間點影像捨棄, 以及在不同場景目標上就只針對單一物體進行訓練. NoScope也發展出一套方法能在準確度與速度間平滑地切換, 譬如相似度太高就捨棄影像, 而複雜的影像就利用高準確度的CNN做目標檢測. 在這個方法的基礎下實現了既兼顧速度又兼顧準確度的即時高速目標檢測系統.

原始post   中文post   Github   paper

 

5. DeepMind提出多任務強化學習框架Distral

fig5

Editor: Hubert

如何讓模型可以適應多項不同的任務一向是機器學習與強化學習的研究目標,過往多數的研究都偏向在訓練不同任務時共享參數,以達到更好的數據使用效率、訓練效率。但這樣的做法因為不同的任務之間會互相干擾而經常效果不彰,甚至反而降低效率。

DeepMind 新提出的 Distral 架構,一樣承襲共享參數的精神,但並不直接共享數值,而是額外對共享的參數進行提取、轉換後,才將轉換後的參數應用在目標的任務上,實驗結果顯示訓練效率與性能得到了大幅提升。

原始post   中文post   paper

 

 

B. Hot deep learning news and materials

每一期的deep learning Newsletter 我們都將會收集深度學習領域最新最熱門的新聞,  以及整理業界及學界值得關注的研究或應用. 同時也會分享網路上非常實用的資源.

Date:  2017. 07.29

1. The first post from apple’s machine learning journal.

2. Microsoft 微軟新成立 AI 研究院,13 個研究組都在做什麼?

3. Google released tutorial to build “Neural Translation Machine” in TF    Github

4. Taiwanese won the first place in Kaggle competition   code  slide

5. Visual Attribute Transfer through Deep Image Analogy

6. A kernel in Kaggle competition: “Adversarial Learning Challenges

7. 手機運行神經網絡,MIT新方法使神經網絡能耗降低 73%

8. 谷歌開源機器學習可視化工具 Facets:從全新角度觀察數據

9. 麻省理工解讀神經網絡歷史,三篇論文剖析基礎理論

10. ELF:FACEBOOK最新AI遊戲訓練模擬器

 

 

C. Deep learning big event

螢幕快照 2017-07-29 上午9.46.06

Editor: George.Wu

深度學習的三大巨頭之一, Facebook人工智慧研究院(FAIR, Facebook AI Research)院長, 卷積神經網路之父Yann LeCun 在上個月來台展開為期三天的參訪, 在台灣大學, 交通大學及成功大學給演講. 為了一睹國際大師的風采報名人數很早就爆滿並需要加開演講廳及數間教室進行現場同步直播. 這次演講的題目是 Deep learning and the Path to AI. 深度學習以及AI的未來.  Yann LeCun 從深度學習的緣起及發展史開始講到現今發展AI將會遭遇的困難及未來AI系統的架構.

我們將這次 Yann LeCun的演講內容整理並分成兩次進行介紹, 同時對相關內容進行補充. 以下是這次演講的大綱:

  1. History of Deep learning
  2. What is Convolutional neural network (CNN)
  3. Some CNN milestones
  4. CNN applications in FAIR
  5. Obstacles of AI
  6. The architecture of AI system
  7. learning predictive forward models
  8. Entity NN
  9. unsupervised learning
  10. adversarial training
  11. video prediction
  12. video prediction with semantic segmentation
  13. style transfer with adversarial auto encoder
  14. Aligning fugue AI with human values

 

1. History of Deep learning

This slideshow requires JavaScript.

Pattern recognition (模式識別) 是指對事物或現象進行辨認或分類的動作. 譬如從照片中識別出汽車就是典型的Pattern recognition. 傳統以圖像處理進行Pattern recognition的流程是先用經驗選擇適合的特徵, 基於這些特徵建立Feature extractor之後再進行訓練最後進行分類, 或加上自動選擇Mid-level features. 1957年發明的感知器Perceptron 是第一個不需利用feature extractor就可以進行Pattern recognition的方法, 也是ANN(類神經網路)及Deep learning的前身. 現今Deep learning中的CNN(Convolutional Neural Networks 卷積神經網路)就等於是會自動進行low-level, mid-level, high-level feature extractor並一起進行訓練及分類的方法.

我們可以把ANN稱為Multi-layer neural nets 因為它是由多層數個Neuron神經元構成. 每個neuron只進行簡單的加總運算, 之後再接一個簡單的non-linear function(例如ReLU function). 但經由神經網路結構利用chain rule將這些簡單的neuron連結起來而讓其具備非線性運算能力而能進行複雜的pattern recognition. 而訓練是使用Back-propagation由單一個cost function 對所有的Weights 同時進行修正.  

 

2. What is Convolutional neural network (CNN)

This slideshow requires JavaScript.

在Deep learning 最常被使用的Convolutional neural network (CNN, 卷積神經網路)雖然一開始是由Hubel和Wiesel發明, 但自1989年Yann LeCun改良並成功應用在圖像及模式識別上才顯現其強大的能力, 所以他又被稱為CNN之父. 和傳統的pattern recognition相比, 卷積神經網路可以直接輸入原始圖像, 之後經過convolutional layer(卷積層)包含數個convolutional filter或稱卷積核擷取來自影像像素的特徵, 之後是Pooling layer(池化層)將特徵矩陣壓縮, 不但降低了計算複雜度也同時提供識別不同尺度目標的能力. 而Deep learning的Deep就是指Convolutional neural network 是由數層或數十層convolutional layer+pooling layer的組合構成, 由一開始先擷取出局部紋路, 再組合成更具體的特徵如輪廓, 到最後辨識出物體的型態. 這分層的Hierarchical Compositionality組合架構就是Deep learning的特點所在. 而通常在最後會接上Fully connected layer.

在Yann LeCun舉出來的手寫數字例子中, 由圖中可以看到手寫數字經過多層Filters-tanh 及pooling 處理過後的變化, 而基於CNN的模式識別展現很高的對位移和尺度的Robustness, 而且可以同時識別數個目標. 重要的是經過CNN之後在每個位置都可以得到每種分類的分數, 可以識別多重目標且不需要經過image segmentation的步驟.  在這裡Yann LeCun也展示了1993年他利用當時的486電腦進行數字識別的工作的影片, 以及他在1995年Bell實驗室時期發展的Check Reader系統可以自動識別支票上的金額, 這也是CNN第一次的實際應用. 總結一句, Deep learning的特點就是Learning hierarchical representation, 而只要超過一層以上的非線性特徵轉換就稱為Deep. 而當時Yann LeCun 發展的CNN被稱為LeNet.

 

3. Some CNN milestones

This slideshow requires JavaScript.

在那之後Deep convolutional net被大量的使用並有長足的進展. 多層的結構搭配上GPU讓Object recognition的能力越來越好, 也在Imagenet數據集或 ILSVRC競賽展露頭角也有各式各樣的Deep ConvNet架構提出來, 在這裡順便回顧一下有名的CNN里程碑. 除了前面提到的LeNet(1998)之外還包括AlexNet(2012), VGG(2014), GoogleNet(2014), ResNet(2015)及DenseNet(2017).

AlexNet是Alex Krizhevsky在2012年發展的CNN架構, 一舉拿下了ILSVRC當年冠軍把準確度從70%提升到80%多. AlexNet的特點包括引入Data Augmentation(數據增強), Dropout, ReLU活化函數, Local Response Normalization, Overlapping Pooling等. 而VGG 透過很小的卷積核 3×3甚至1×1及很深的架構(超過20層), 使用小卷積核的優勢在於較少的參數及較多的ReLU層, 搭配上很深的層數讓VGG效果很好.

GoogleNet為了進一步提升效果則同時加深加廣了網路架構, 但這帶來了一些問題譬如參數過多, 容易overfitting及訓練梯度消失. 而為了避免上述的問題GoogleNet提出了Inception結構, 就是GoogleNet的節點本身也是一個network (Network in network), 每個inception module裡面包含了一些3×3, 5×5等的Conv layer以及Pooling layer及用來降維的1×1 Conv layer綁在一起. 除此之外GoogleNet也在不同深度多放置loss functions以防止梯度消失的問題. 2015年Kaiming著名的ResNet更是將深度增加到152層(以上), 而提出來的殘差函數更是很好的解決了訓練梯度消失的問題, 簡單的來說就是殘差函數將原本的目標函數變成每一層的輸入與輸出的差值. 藉由這種方式則可將深度提升到原本層數的十倍以上.

2015年ResNet大放異彩, 而在今年2017年 CVPR則有號稱比ResNet更強大的DenseNet (2017 CVPR best paper), 也是能很好的解決梯度消失的問題並減少了參數以及加強了特徵的傳播. 傳統的CNN 某一層只會跟上一層或下一層相連結, 而DenseNet 則將每三個或五個layer包成一個Dense block, 在Dense block裡面的每一層Conv layer都互相連結. 而在block跟block之間有時會夾雜單一層Conv layer及pooling layer稱為transition layer. 跟ResNet相比較, DenseNet 可以取得更低的錯誤率以及更好的參數效率.

 

4. CNN applications in FAIR

This slideshow requires JavaScript.

隨著CNN架構的發展效能越來越好, 也有越來越多Facebook或其他地方基於CNN的應用出現. 譬如Deep face是Facebook發展的基於Deep learning的臉孔辨識系統. 每張你po到臉書上的照片都會經過數個CNN. 第一個CNN將照片進行分類譬如這是一張風景照片或室內或者是人像照片, 以及照片中的是人像或是其他動物. 而如果是人像則會經過detection, alignment, represent及classify的步驟, 所以臉書上的照片才能自動tag朋友. 包括辨識照片中的是人像或其他物體, 也進行臉孔辨識所以才會有臉書的照片auto-tag. 除此之外照片也可以進行similarity search, 找出某張照片和另一張照片在FAISS照片庫裡的最短路徑.

CNN也應用在driving上例如可以對車頭前方影像辨識出不同的地形, 或辨識出阻礙物. 而Image captioning及Semantic segmentation也可應用在driving上. 經由辨識影像中每個pixel並進行分類, 而能在影像中標示這是路, 樹或車或阻礙物. Yann LeCun 也展示了影片效果都很不錯, 以及自駕車訓練前和訓練後之後的差別.

而像DeepMask, SharpMask++, Mask R-CNN 等CNN方法不但能識別影像中的物體例如棒球場裡的觀眾, 或一群羊, 更能把每個觀眾或每頭羊分別開來. 這稱為instance segmentation. 其中Mask R-CNN更能辨識人體的一些keypoints並分類或預測動作.

最後也整理了FAIR目前在進行的open source projects也及Github.

 

5. Obstacles of AI

This slideshow requires JavaScript.

雖然目前Deep convolutional net或Deep learning在很多領域都獲得很好的結果, 但距離真正的AI還有很長一段路要走. 在這裡Yann LeCun提到目前發展AI所遭遇到或需要越過的一些障礙. 譬如需要去了解這世界是怎麼運轉的, 必須學習相當多的背景經驗知識, 也要學習如何去感知這個世界, 也要能隨時更新並記憶這世界的狀況, 也要懂得推理及制定計劃. 簡而言之, AI必須是同時有intelligence (智慧)以及common sense(常識). 這就等於感知加上預測加上記憶以及能推理及制定計畫的能力.

Common sense被認為是要填補AI理解這個世界很重要的一塊, 包括如何從部分資訊正確理解這世界, 如何從過去及現在去推知未來, 或從現在理解過去的事件. 舉了例子來說, 要將獎盃放進皮箱內, 雖然電腦能理解獎盃是什麼及皮箱是什麼, 但要對上述句子正確理解還需要背景知識獎盃及皮箱的大小才能進行推理譬如太大或太小. 這背景知識或common sense就是要填補這中間的差距. 總結一句, 必須要做到能預測過去現在或未來所有一切無論有什麼資料. 在這裡 Yann LeCun介紹了一個新名詞 predictive learning (預測學習), 也就是之前所說的unsupervised learning. 也因為唯有unsupervised learning才能有足夠的資料去學習進而達到predictive learning而能預測各種不同的tasks. 由人類去進行標示的方法是遠遠不夠的.  

以Yann LeCun最喜歡的蛋糕slide做譬喻. Reinforcement learning(強化學習)就像是蛋糕上面的櫻桃, 雖然能強化但也只能獲得特定種類某部分的知識. Supervised learning 就像是蛋糕外層的糖霜或冰淇淋, 只能夠學到特定經過人類標示過的種類, 同時種類別也太多不可能可以描述所有世界上的類別. 而unsupervised learning或predictive learning則像真正的蛋糕能夠之後內部的每一塊. 在這裡特別介紹了 由 Reinforcement learning model 發明者所提的框架 Dyna: an lintgrated architecture for learning, planning and reacting. 基本上就是目前強化學習的架構. 譬如機械人利用強化學習學走路, 在經過多次的撞樹之後學習到不能夠往有樹的地方走. 但人類的學習方式其實也不是這樣, 不需要撞很多次樹才知道不能走, 而是之前就理解這個物理世界運作的方式, 知道無法穿越樹就可以學習到. 所以這裡他也回顧model-based optimal control的學習架構. 包含有plant simulator去模擬世界上的規則, 而有初始的control sequence(類似強化學習的action). 而經由objective function而調整這control sequence, 這架構也叫做adjoint state method. 最後他也展示了Facebook在強化學習的projects譬如VizDoom及StarCraft RL-based system.

 

6. The architecture of AI system

This slideshow requires JavaScript.

延續上面就談到如何架構一個intelligent system. Yann LeCun所架構的AI system 包括了三大部分, Perception, Agent, 及 Objective. 其中perception 包含了各種感知這個世界狀態的能力包括包括視覺, 聽覺及語言等等. 當perception接受了觀察值(observation)就會傳遞給Agent, 而Agent會執行prediction(預測), causal inference(因果推斷), planning(計畫), reasoning(推理), 以及memory(記憶)等動作. Agent 會採取動作Action 或output 給World. Agent也會根據Objective更新他的State(狀態) 以及執行動作. 這個架構很類似於強化學習, 但在Agent的部分有所改良, 這裡詳述一下Agent的內部架構.

Agent內部架構可分為World simulator, Actor, 以及Critic. World simulator 主要是模擬世界的物理規則, 以及建立世界的common sense. 透過world simulator 就可以建立符合世界的預測性感知, 或可以根據外界的觀察值而反映更新state. 而根據這模擬世界的預知及狀態的更新而Actor採取相對應的動作, 或提出action proposal. 而Critic則負責對action進行評估, 最小化預測所帶來的代價. 和強化學習比較, 我們發現引入world simulator的AI system 具備有預測學習(prediction learning)的能力, 舉例來說強化學習再經歷過數次的撞樹之後學習到不能去撞樹, 而這新的AI system則能根據world simulator而學習到樹是阻礙物, 根據物理定律不能通過, 即使沒有撞過樹也能根據物理定律避開來. 所以根據這個架構我們可以設計出Model-based reinforcement learning. 加入world simulator 而能有效降低達到objective function的cost.

 

7. The architecture of AI system

This slideshow requires JavaScript.

前面談到了AI system的架構, 也提到了加入的world simulator能給AI system帶來prediction的能力, 那要如何去建立 world simulation呢? 舉例來說 PhysNet 是使用ConvNet去學習物理規則的一個project, 利用Unreal game engine去訓練ConvNet能正確模擬物體掉落的機制及軌跡. 如圖片所示是三個在Unreal world中的積木, 或不同位置及數量的積木相疊, PhysNet在圖像中的mask都能正確的反應積木的掉落軌跡. 經由類似這樣的project 就能一步一步建立起符合物理規則的world simulator

到目前為止Yann LeCun 為我們介紹了Convolutional neural network的淵源及發展史, 以及目前Facebook內部的一些ConvNet的應用及project. 並談到了目前AI 發展上需要克服的地方. 而Yann LeCun 所構想的新 AI system 加入world simulator的概念而能做到prediction learning將會是跨越這些困難的一個方向.

在Newsletter#3終將會繼續介紹Yann LeCun的演講內容, 包括unsupervised learning, adversarial training(GAN), 以及目前在Video prediction上的進展, 最後並談到未來的AL system 應該會是怎麼樣. 請不要錯過了.

 

Newsletter editors:  George.Wu, Joanne Tseng, Hubert, Chih-Hsu (Jack) Lin

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s