arduino and raspberry pi – 自幹硬體的浪漫

今天 meetup 的記錄上線拉!非常好玩,尤其時其中大家 side project 分享的部分。
  • Louis Lo 的分享在最前面,個人覺得只要有當過爸媽,就會對你奶瓶的那個專案心有戚戚焉。
  • Lydian TingYen Lee 的分享從 17:12 開始,他是我目前看過把 Smart Home 整得最徹底的台灣人。對 smart home 有興趣的可以多參考她使用的很多 open source 的專案。
  • Zero Cho 的分享從 46:43 開始,(直接在現場用 iphone 做 slide XD) ,他用 synology NAS 的 docker 支援做出很多有意思的 smart home 功能。
  • Jacky Wu 的分享從 54:15 開始,他是唯一用 arduino 的講者 XD 。其中討論到使用 arduino 與不同的 module 作出適合銀髮族使用的緊急救援按鈕。
有興趣直接點進去看吧 😉

Dosudo deep learning newsletter #4

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

Upcoming event:

之後將會以Andrew Ng(吳恩達) 在Coursera的深度學習課程Deep Learning Specialization為主, 大家一起上這堂課一起討論project, 然後一起拿course certificate. 目前將會暫停幾週並在之後公佈細節.

 

A.  Deep learning highlight

  1.  DeepMind及Blizzard 共同推出了星海爭霸II 人工智慧研發環境SC2LE

螢幕快照 2017-09-19 下午4.20.27DeepMind及Blizzard 共同推出了星海爭霸2 人工智慧研發環境(SC2LE, StarCraft II learning environment)

Editor:     George.Wu

 

2. 打破GAN神話, 基於端對端網路的高質量圖像生成

螢幕快照 2017-09-19 下午4.25.42.png

今年的ICCV 2017 出現一篇備受矚目的直接用端對端的方式生成高質量圖像的方法. 它的原理等於是從圖像的語意分割直接生成照片級圖像.

Editor:     George.Wu

 

3. TripleGAN – 包含判別器、生成器和分類器的三方生成對抗網路

aa

新型態的生成對抗網路TripleGAN. 增加了一個Classifier(C). 讓原本GAN的兩方競爭轉變成判別器、生成器和分類器的三方博弈.

Editor:     George.Wu

 

4. Review of Andrew Ng’s deep learning course

 

bb在前三階段課程中 Andrew.Ng 介紹深度學習重要觀念及實作應用. 後續本系列課程將會釋出卷機神經網路(CNN), 序列模型(Sequence Models)兩個階段課程

Editor:     Ian Ching

 

5. DeepMind 推出可關係推理的新型神經神經網路

cc目標是解決關係推理 (Relational reasoning) 的問題,如何根據輸入的非結構化數據 (例如:文字、圖像) 推理出數據內的關聯性。

 

Editor:    Hubert

 

 

B.  Hot deep learning news and materials

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

Date:  2017. 09.19

1. 16 歲少女發明視網膜 AI 診斷模型,幫助全球 300 萬窮人免於失明!

2. AI 自動生成二次元妹子?或將替代插畫師部分工作

3. Sony免費推毋須編寫程式的DeepLearning機械學習工具 deep learning console

4. 馬斯克的OpenAI,究竟是如何在dota2中擊敗頂級人類選手的?

5. AI前進印度眼科醫院第一線,Google用深度學習及早發現7千萬糖尿病患的失明危機

6. IBM運用分散式深度學習加快模型訓練過程,50分鐘圖像辨識度可達33.8%

7. Teaching A.I. Systems to Behave Themselves

8. 自然语言处理从入门到进阶资代码资源库汇总

9. 最前沿:视觉推理(Visual Reasoning),神经网络也可以有逻辑


C. 
Review of 2017 CVPR

Dosudo 今後將會重點整理一系列深度學習, AI, 計算機視覺等重要會議的論文並作介紹, 為大家掌握各領域的最新研究現況. 第一次的重點會議就從CVPR開始. 今年的 2017 CVPR (計算機視覺與模式識別會議) 七月在美國夏威夷舉行. CVPR 與 ICCV, ECCV 並列計算機視覺三大會議. 今年的CVPR共收到2680篇論文, 率取率為29%. 且無論是論文量及參加人數及廠商都大大的增加. 可見的CVPR受重視的程度.

這一次為大家介紹了2017 CVPR的兩篇best papers, 包括受矚目的DenseNet, 以及Apple第一次公開發佈的paper. 兩篇honor papers: Polygon-RNN以及最新的YOLO. 除此之外也選錄了十篇各領域的論文做導讀.

2017  CVPR best paper

1.  超越ResNet的緊密連接卷積神經網路

1

Dense Convolutional Network (DenseNet) 把所有的層都連結在一起.在訓練過程中, 這樣的確可以確保梯度訊息能正確的傳遞到每一層

Editor:     George.Wu

 

2.  通過對抗訓練從模擬與無監督圖像中學習

2

這篇paper提出一種模擬+無監督學習的方法提升合成圖片的真實程度稱為SimGAN. 簡單而言之, 就是利用改良式的生成對抗網路GANs 將合成圖片提升至真實圖片的品質

Editor:     George.Wu

 

2017  CVPR honor paper

3.  Polygon-RNN: 比圖像語義分割更快的半自動圖像標註

3

Polygon-RNN將Semantic image segmentation問題轉化成在圖片中的多邊形位置預測問題.  當使用者在圖像中框出目標框, Polygon-RNN將會依序生成多邊形的邊.

Editor:     George.Wu

 

4.  更快更強的YOLO目標檢測系統: YOLO9000

4

YOLO2在很多數據都獲得很好的精確度的及檢測速度. 除此之外, 透過對COCO以及ImageNet的dataset的共訓練將YOLO2可檢測的物體數達到9000種. 稱為YOLO9000

Editor:     George.Wu

5.  Selected 2017 CVPR papers

5

除了Best paper 及honor paper之外, 在這裡還選錄了10篇Object detection, Super-resolution, 3D reconstruction等不同主題的 2017 CVPR精彩論文.

Editor:     George.Wu

 

Dosudo deep learning newsletter #3

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 #7  – on August 26   17:00 (PDT time)

A.  Deep learning highlight 

  1. 最後一屆ImageNet大規模視覺識別大賽(ILSVRC2017) 

a1

最後一屆ImageNet大規模視覺識別大賽(ILSVRC2017) 順利落幕, 而WebVision圖像大賽會是 … 

Editor:     林之昫、 HubertLin 

2. Review: Neuroscience-Inspired Artificial   Intelligence

a2DeepMind 發表在Neuron journal的review文章. 整理的很好值得一看, 詳述為甚麼人工智慧的未來是神經科學 …..

Editor:     George.Wu

 

3. Reading Wikipedia to Answer Open-Domain Question

a3Facebook AI Research 公佈了他們目前 QA 最新的研究 Reading Wikipedia to Answer Open-Domain Question …..

Editor:     Howard Lo

 

4. Learned in Translation: Contextualized Word Vectors

a4

Transfer learning 讓Natual Language Processing 的tasks 明顯的效能提升 …..

Editor:     Howard Lo

5. Optimizing the Latent Space of Generative Networks (GLO)

a5

FAIR此次發表新的架構 GLO (Generative Latent Optimization),解決了saddle point optimization 問題

Editor:     Hubert Lin

 

B.  Hot deep learning news and materials

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

Date:  2017. 08.19

1.  DeepMind 最新的blog 揭示了具想像力(Imagination)的強化學習Agent 及兩篇paper

2.  Intel 推出全球第一款USB格式的神經網路處理器NCS

3.  Google 宣佈成立孵化器LaunchpadStudio 支援AI創業公司

4.  最新AI技術能從 2D影像產生3D物體

5.  微軟開發出機器閱讀理解系統的通用遷移學習方法SynNet

6.  Facebook 的人工智慧研究院用GAN發展的聊天機械人沒有失控

7.  Facebook 開源人工智慧平台 CommAI 可測試及訓練AI

8.  CMU開源即時多人關鍵點偵測系統OpenPose

9.  Heroes of deep learning 系列訪談,吳恩達訪問深度學習大師們

10. Google聯手MIT研發演算法在手機拍照前模仿攝影師自動幫你修圖


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系統的架構.

在上一期的Newsletter #2中 Yann LeCun 先從Deep learning及CNN的緣由開始談起, 以及CNN的一些milestones 及有名的應用, 一直到未來AI的架構及可能遇到的問題.   Newsletter #3繼續介紹Yann LeCun的演講內容, 包括unsupervised learning, adversarial training(GAN), 以及目前在Video prediction上的進展, 最後並談到未來的AL system 應該會是怎麼樣.

8. Inferring the state of the world from text:  Entity NN

This slideshow requires JavaScript.

前面談到了如何建立AI system 的world simulation 物理規則, 譬如PhysNet能模擬物體掉落的機制及軌跡. 那如何透過文字去建立world simulator呢? 就是如何從人的文字, 對話等去了解真正發生的事. 這問題就更複雜了因為本身語言系統就比較複雜可以用截然不同的語句形容一樣的事, 或者句子非常接近但意思天差地別. 記憶問題是自然語言裡比較基礎的問題, 因為常用的Recurrent network 的記憶會在經歷很久的訓練後遺忘之前的記憶(之前訓練學習到的事物). 所以我們必須為神經網路設計特別的記憶機制, 就像人類大腦的hippocampus(海馬迴)一樣. 除了著名的LSTM (Long-short Term Memory) 之外, 譬如DeepMind於2016年發表了記憶增強式的神經網路 (memory-augmented network), 也被稱為可微分神經網路(differentiable neural computer). 它不但能像一般的神經網路一樣透過訓練緩慢地學習, 也能像計算機一樣透過一個controlled輸入, 寫入及儲存記憶. 其他像2014年發展的Memory network, stacked-augmented recurrent neural net, neural turing machine也都有異曲同工之妙引入了記憶的機制.

9. unsupervised learning

This slideshow requires JavaScript.

Unsupervised learning (非監督式學習) 一直是近代深度學習的熱門發展方向, 也很多實驗室在影像及影片處理嘗試導入unsupervised learning的概念, 希望之後不需要以人工標記影像或影片的方式處理數據. 在這裡Yann 引入能量模型非監督是學習的概念, 將學習過程看成以energy function 定義的曲面上逼近的過程. energy function 又被稱為contrast function, 意義是低點是資料點所在處. 並提出有一些策略可以繪出這能量曲面譬如將資料點附近的平面拉低, 其他地方拉高, 譬如像max likelihood, 或者可以嘗試將資料點附近曲面gradient能到最低, 而curvature到最高, 譬如score matching方法. 其實energy-based的方法不只出現在深度學習模型上, 只要有定義lose function或目標函數都可以用能量模型去解釋. 它主要影響了模型的泛化能力, 只是在unsupervised learning因為沒有明確的目標, 所以如何定義適合於unsupervised learning的energy function就是一大挑戰.

10. adversarial training

This slideshow requires JavaScript.

提到GAN (Generative Adversarial Networks) 更是深度學習中最火熱的研究方法. adversarial training 可以用之前提到能量模型的方式去解釋. 以prediction來說, 有時候很難給予適當的lose function 去進行準確的預測因為大部分模型或現象都包含著不確定性, 舉例來說用手指頂著筆在桌上放下, 很難預測筆會正確往哪個方向倒, 只能知道它的大概趨勢或mainfold. 所以GAN利用兩個神經網路共學習, G(Generator) 產生出預測的sample譬如圖像, 而和一般學習不一樣的GAN並非給出明確的lose function去校正generator, 而透過另外一個神經網路D (Discriminator) 去修正能量曲面進行預測. GAN採用的 adversarial training方式在很多領域都展現很好的效果. 譬如最常見的DCGAN (Deep Convolution GAN) 就廣泛被用在generate images, 無論是室內, 風景, 寵物, 動畫角色等等. 而Yann 之前發表的EBGAN(Energy-based generative adversarial network) 是基於能量模型的GAN, 大大降低了生成圖片的隨機性, 並增加了圖像的流暢性. 主要的改量在於EBGAN將Discriminator改能了結合Encoder及Decoder的神經網路Auto-encoder. 

11. video prediction with adversarial training and semantic segmentation

This slideshow requires JavaScript.

影片上的prediction 也可透過adversarial training的方法能正確的預測出後幾幅的畫面. Yann之前就使用multiscale convent encoder-decoder 結合了數個generator 對不同的size 對下幾幅進行prediction. 而在影片的semantic segmentation上也有很好的表現, 在Yann展示的成果中, 結合了之前的multiscale convent encoder-decoder 以及auto-regressive model 可以正確地對行車影片做 semantic segmentation, 以及9 frames之後的預測, 當車轉向時,預測也是會正確朝向方向轉.

12. style transfer with adversarial auto encoder

This slideshow requires JavaScript.

Style transfer 也是很常見的深度學習的應用, 譬如將圖像或照片套上某訓練過後的藝術風格. 而當使用adversarial learning, 或者之前的adversarial auto-encoders時, 還可以生成Style transfer 的interpolation, 也可以用在2D 或3D的avatar generation上.

13. Aligning fugue AI with human values

This slideshow requires JavaScript.

在演講的最後, Yann 強調的一件事就是, 人類從自然的身上學習到很多人工智慧的概念. 但AI的未來並不是完全的複製自然, 而是要去瞭解自然的規則, 去了解透過演化有哪些值得進步的地方, 或者本身就會受其限制. 舉例來說人類曾經仿造了鳥類的翅膀形狀的飛行器想學鳥類飛行, 但最後人類飛上的天空的方式來自於對自然定律的了解而非一昧的仿造.

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

Dosudo deep learning newsletter #1

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 #5  – on July 15   17:00 (PDT time)

 

A.  Deep learning highlight 

  1.   Google 開源了Tensorflow物體辨識系統API

fig1

Google 近日在官方blog 貼出 “ Supercharge your Computer Vision models with the TensorFlow Object Detection API ” 的po文. 並開源了這套Google花費非常長時間訓練開發, 在Google內部使用的物體辨識系統 TensorFlow Object Detection API (Github). 這套系統可以在單張image辨識出多個物體, 並在COCO物體辨識 competition 名列第一名. 它的另一個特點是包含輕量化的版本可以運行在行動裝置上. 之後將簡單介紹如何安裝TensorFlow Object Detection API及如何使用.

原始post   中文post    Github   Paper link

 

2. 讓 AI 獲得多元感官統合能力 的Deep Aligned Representations

fig2

AI 在無論是物體辨識, 語音或自然語言處理的單項能力已經非常傑出甚至超越人類. 但人類感知這個世界的方式是統合各項能力. 例如聽到電話的鈴聲, 在視覺上辨識出電話, 在文字或言語上描述電話這些都應該是相關連的. MIT以及Google 的研究人員開始針對這方面進行研究並有些初步成果. 在MIT的Yusuf Aytar 這篇paper裡描述了將這些能力協調與統合的方法 (Deep Aligned Representations), 原理是基於CNN但設計了可以共享前一層神經元的網路學習架構.

Project website   原始post   中文post  Paper

 

3. 讓機器自己挑「對」資料樣本!Google雲端AI掌門人李飛飛發表機器學習新模型! 

fig3

非監督式學習(Unsupervised Learning) 一直是Deep learning的重點研究之一, 傳統以人工將資料如影像加上標籤的方式在越來越龐大的訓練資料甚至像影片這樣的資料變得越來越不可行. Google 李飛飛團隊在今年的CVPR提出一種能自動選擇訓練資料並標示影片的方法 Learning to learn from from noisy web videos. 透過一組標示數據來學習為新的未學習過的動作進行標示. 並以增強學習的Q-learning概念從網路資料選擇訓練樣本.

中文post  Paper

 

4. ㄧ個神經網路學習一切?? one model to learn them all

fig4

傳統訓練ANN或Deep learning network 都是以一組特定的資料進行訓練而針對單一任務的. 而至於Transfer learning則是將訓練好的模型參數轉移到新模型而幫助訓練新的訓練資料. 而在Google的這篇Paper中 one model to learn them all 中, 提出創造單一的深度學習模型而能應用在不同的任務上譬如圖像識別, 語音辨識等等. 並將這套系統(Tensor2Tensor)開源.

原始post   中文post   Github   paper

B. Hot deep learning news and materials

1. 史丹佛CS231n 2017最新課程:李飛飛詳解深度學習的框架實現與對比

2. 吳恩達成立創業公司 Deeplearning.AI    

3. 干货 | TensorFlow的55个经典案例  

4. 谷歌大脑揭秘:48名成员20大研究领域

5. 我的深度學習開發環境詳解:TensorFlow + Docker + PyCharm等  

6. Science journal: AI is changing how we do science. Get a glimpse

 

C. Doing Deep learning 

這一次要實作的是近日Google 開源的 Tensorflow Object detection API. 包括如何安裝及示範簡單的例子. 另外也已經有人做了Docker image, 如果有興趣的人可以自行試試看及參考官方安裝

安裝:

1. libraries installation

除了Tensorflow之外(如果尚沒有安裝tensorflow也請參考tensorflow的官方網站進行安裝), 還有一些library是需要事先安裝的, 包括 Protobuf (2.6), Pillow (1.0), lxml, Jupyter, matplotlib. 另外slim 是自帶在tensorflow的models裡的所以不需要另外安裝. 這裡以pip install 為例:

sudo pip install pillow

sudo pip install lxml

sudo pip install jupyter

sudo pip install matplotlib

2.  下載Protobufs

Tensorflow Object detection API 也會使用Protobufs, 如果沒有或需要升級請到google/protobuf 下載和你的系統相對應的protoc檔. 舉例來說如果是mac 系統就下載 protoc-3.3.0-osx-x86_64.zip. 解壓之後請先備份你的舊protoc, 然後將解壓的檔案覆蓋到對應目錄即可:

cp /usr/bin/protoc ~/protoc_bak

sudo cp protoc-3.3.0-osx-x86_64/bin/protoc /usr/bin/protoc

3.  下載tensorflow/models

從tensorflow官方github 下載

git clone https://github.com/tensorflow/models.git

4. 編譯Object detection API

進入剛剛下載的tensorflow/models 並輸入

protoc object_detection/protos/*.proto --python_out=.

 

Run example

完成了Tensorflow Object detection API 的安裝, 我們也可以試跑官方自帶的例子看看. 先輸入 jupyter notebook 在 tensorflow/models就可以進入jupyter, 在tensorflow/models/object_detection下找到 object_detection_tutorial.ipynb並執行, 就可以在jupyter notebook上試跑出結果. 

1

4

更改Training model

這個API其實包含了數個已經訓練完成的模型的凍結權重(Frozen weights), 所以不需訓練即可使用. 在以上的例子使用的是MobileNets 的 SSD (Single Shot Multibox Detector), 可以check object_detection_tutorial.ipynb的code:

MODEL_NAME = ‘ssd_mobilenet_v1_coco_11_06_2017'

如果要選擇其他的object Detection模型, 包括 SSD+Inception V2、R-FCN+ResNet101、Faster RCNN+ResNet101、Faster RCNN+Inception_ResNet, 可以從Tensorflow detection model zoo下載, 並把MODEL_NAME的值改掉就好.

MODEL_NAME = 'ssd_inception_v2_coco_11_06_2017'

MODEL_NAME = 'rfcn_resnet101_coco_11_06_2017'

MODEL_NAME = 'faster_rcnn_resnet101_coco_11_06_2017'

MODEL_NAME = 'faster_rcnn_inception_resnet_v2_atrous_coco_11_06_2017'

 

 

Edited by George.Wu

Dosudo 讀書肚矽谷工程師讀書會 Deep learning study group

螢幕快照 2017-05-09 下午2.52.47

從五月份開始Dosudo 讀書肚將開始一系列的Deep learning study 專題. 從基礎的一起共同學習Deep learning線上課程之外, 將為大家更新深度學習最新進展, 及各領域具有潛力的應用. 並一起實作. 預計每兩個禮拜舉行一次meeting. 

Syllabus:  Deep learning study group

On line course:    Deep Learning A-Z™: Hands-On ANN

要加入Study Group 請填寫 Google form  並加入我們的 slack  

First Meeting  (May 13)

在第一次的Meeting中, George 將會為大家導讀課程的Section 1&2, 並帶來從ANN到深度學習CNN, RNN 到GAN等最常用模型的介紹.

講者 George.Wu in Purdue University PhD    

George_photo                                                                                                                             

Mobile A/B Testing with Feature Flag System

11 月份的聚會我們請到 Jacky Wu 跟我們聊聊 Slack Mobile 工程團隊如何使用 Feature Flag System ,跳過 App Store 的審查機制,達到從 server 端更改 App 的運行。

演講簡介

On the web frontier, because developers own the deployment environment, they can deploy their product at any given time as they wish. Mobile products are not as fortunate.

The app store review process can take up to days and still sometimes result in rejections. This bottleneck negatively impacts mobile feature delivery and growth experiement.

However, worry not, mobile developers have adapted a technique called “feature flag” that allows them to achieve continuous delivery, perform AB testing, and even dynamically change mobile features from server-side without app resubmission.

講師

Jacky Wu
Jacky Wu

Jacky Wu

Senior iOS Engineer – Slack
iOS Software Engineer – Udemy
Co-founder Glamorsky – Inc
Software Engineer – Apple Maps Apple

演講直播影片

https://www.facebook.com/plugins/video.php?href=https%3A%2F%2Fwww.facebook.com%2Fwing.c.chen%2Fvideos%2F10154630973988400%2F&show_text=1&width=560

範例專案連結

https://github.com/jackywu07/FeatureFlagDemo

Keynote 投影片下載連結

https://github.com/jackywu07/FeatureFlagDemo/blob/master/Feature%20Flag.key

Demo 所使用 Feature Flag 的工具

https://www.leanplum.com/