新智元2019新年寄語
2018年人工智能成為重塑世界格局的關鍵。谷歌BERT模型刷新多項自然語言處理紀錄,DeepMind則用星際爭霸II對局再次引爆機器智能無限可能。阿里與華為分別推出AI芯片,作為底層支撐的計算體系結構也將邁入黃金十年發展期。
新智元2018年實現全球超過50萬核心產業用戶互聯。2019新春,中國人工智能將迎來全新的競爭挑戰與生態建設契機,新智元邀你與全球人工智能學術、產業精英一起,以開放的胸懷和堅毅的決心,成就AI新世界!
——新智元創始人兼CEO 楊靜
新智元報道
來源:medium
作者:Lex Fridman 編輯:肖琴
我們不久前介紹了 MIT 的深度學習基礎系列課程,由 MIT 學術研究員 Lex Fridman 開講,將介紹使用神經網絡解決計算機視覺、自然語言處理、游戲、自動駕駛、機器人等領域問題的基礎知識。
更多閱讀:
【免費資源】MIT《深度學習基礎》第一課 68 分鐘視頻 + 69 頁 PPT
作為講座的一部分,Lex Fridman 撰文概述了 7 種架構范例的深度學習,每個范例都提供了 TensorFlow 教程的鏈接。以下是麻省理工學院課程 6.S094 的深度學習基礎課程第一課的視頻:
深度學習是表示學習 (representation learning):從數據中自動形成有用的表示。我們如何表示世界,可以讓復雜的東西對我們人類和我們構建的機器學習模型來說都顯得更簡單。
對于前者,我最喜歡的例子是哥白尼于 1543 年發表的日心說,日心說認為太陽是宇宙的中心,完全推翻了之前把地球放在中心的地心說。在最好的情況下,深度學習可以讓我們自動完成這一步,從 “特征工程” 過程中去掉哥白尼 (即,去掉人類專家)。
日心說 (1543) vs 地心說 (6th century BC)
在高級別上,神經網絡可以是編碼器,可以是解碼器,也可以是兩者的組合:
編碼器在原始數據中找到模式,以形成緊湊、有用的表示 (representations)。
解碼器從這些表示中生成高分辨率數據。生成的數據可以是新的示例,也可以是描述性知識。
其余的則是一些聰明的方法,可以幫助我們有效地處理視覺信息、語言、音頻 (第 1–6項),甚至可以在一個基于這些信息和偶爾的獎勵的世界中采取行動 (第 7 項)。下面是一個總體的圖示:
在下面的部分中,我將簡要描述這 7 種架構范例,并提供每個范例的演示性TensorFlow 教程的鏈接。請參閱最后的 “基礎拓展” 部分,該部分討論了深度學習的一些令人興奮的領域,不完全屬于這七個類別。
TensorFlow 教程地址:
https://github.com/lexfridman/mit-deep-learning/blob/master/tutorial_deep_learning_basics/deep_learning_basics.ipynb
前饋神經網絡 (Feed Forward Neural Networks, FFNNs) 的歷史可以追溯到 20 世紀 40年代,這是一種沒有任何循環的網絡。數據以單次傳遞的方式從輸入傳遞到輸出,而沒有任何以前的 “狀態記憶”。從技術上講,深度學習中的大多數網絡都可以被認為是FFNNs,但通常 “FFNN” 指的是其最簡單的變體:密集連接的多層感知器 (MLP)。
密集編碼器用于將輸入上已經很緊湊的一組數字映射到預測:分類 (離散) 或回歸 (連續)。
TensorFlow 教程:請參閱我們的深度學習基礎教程的第 1 部分,其中有一個用于波士頓房價預測的 FFNNs 示例,它是一個回歸問題:
網絡學習時在訓練集和驗證集上的誤差
CNN(又名 ConvNets) 是一種前饋神經網絡,它使用一種空間不變性技巧來有效地學習圖像中的局部模式,這種方法在圖像中最為常見。空間不變性 (Spatial-invariance ) 是指,比如說,一張貓臉的圖像上,左上角的貓耳與圖像右下角的貓耳具有相同的特征。CNN 跨空間共享權重,使貓耳以及其他模式的檢測更加高效。
CNN 不是只使用密集連接的層,而是使用卷積層 (卷積編碼器)。這些網絡用于圖像分類、目標檢測、視頻動作識別以及任何在結構上具有一定空間不變性的數據 (如語音音頻)。
TensorFlow 教程:請參閱我們的深度學習基礎教程的第 2 部分,了解用于對 MNIST 數據集中的手寫數字進行分類的一個 CNN 示例。
分類預測 (右),生成的手寫數字 (左)。
RNN 是具有循環的網絡,因此具有 “狀態記憶”。它們可以及時展開,成為權重共享的前饋網絡。正如 CNN 在 “空間” 上共享權重一樣,RNN 在 “時間” 上共享權重。這使得它們能夠處理并有效地表示序列數據中的模式。
RNN 模塊有許多變體,包括 LSTM 和 GRU,以幫助學習更長的序列中的模式。它的應用包括自然語言建模、語音識別、語音生成等。
TensorFlow 教程:訓練循環神經網絡是很有挑戰性的,但同時也允許我們對序列數據進行一些有趣而強大的建模。使用 TensorFlow 生成文本的教程是我最喜歡的教程之一,因為它用很少的幾行代碼就完成了一些了不起的事情:在字符基礎上生成合理的文本:
使用 TensorFlow 生產文本
使用 TensorFlow 生產文本教程:
https://www.tensorflow.org/tutorials/sequences/text_generation
前 3 節中介紹的 FFNN、CNN 和 RNN 都只是分別使用密集編碼器、卷積編碼器或循環編碼器進行預測的網絡。這些編碼器可以組合或切換,取決于我們試圖形成有用表示的原始數據類型?!癊ncoder-Decoder” 架構是一種更高級的概念,通過對壓縮表示進行上采樣的解碼步驟來生成高維輸出,而不是進行預測。
請注意,編碼器和解碼器可以彼此非常不同。例如, image captioning 網絡可能有卷積編碼器 (用于圖像輸入) 和循環解碼器 (用于自然語言輸出)。Encoder-Decoder 架構的應用包括語義分割、機器翻譯等。
TensorFlow 教程:請參閱駕駛場景分割的教程,該教程演示了針對自主車輛感知問題的最先進的分割網絡:
使用 TensorFlow 的駕駛場景分割
地址:
https://github.com/lexfridman/mit-deep-learning/blob/master/tutorial_driving_scene_segmentation/tutorial_driving_scene_segmentation.ipynb
自動編碼器 (Autoencoder) 是一種采用 encoder-decoder 架構的更簡單的 “無監督學習” 形式,并學習生成輸入數據的精確副本。由于編碼的表示比輸入數據小得多,網絡被迫學習如何形成最有意義的表示。
由于 ground truth 數據來自輸入數據,所以不需要人工操作。換句話說,它是自我監督的。自動編碼器的應用包括無監督嵌入、圖像去噪等。最重要的是,它的 “表示學習” 的基本思想是下一節的生成模型和所有深度學習的核心。
TensorFlow 教程:在這個 TensorFlow Keras 教程中,你可以探索自動編碼器對 (1) 輸入數據去噪和 (2) 在 MNIST 數據集進行嵌入的能力。
地址:
https://www.kaggle.com/vikramtiwari/autoencoders-using-tf-keras-mnist
GAN 是一種用于訓練網絡的框架,GAN 網絡經過優化,可以從特定的表示中生成新的逼真樣本。最簡單的形式是,訓練過程涉及兩個網絡。其中一個網絡稱為生成器(generator),它生成新的數據實例,試圖欺騙另一個網絡,即鑒別器 (discriminator),后者將圖像分類為真實圖像和假圖像。
在過去的幾年里,GAN 出現了許多變體和改進,包括從特定類別生成圖像的能力、從一個域映射到另一個域的能力,以及生成圖像的真實性的驚人提高。例如,BigGAN (https://arxiv.org/abs/1809.11096) 從單一類別 (毒蠅傘) 中生成的三個樣本:
BigGAN 生成的圖像
TensorFlow 教程:有關 GAN 變體的示例,請參閱關于 conditional GAN 和 DCGAN 的教程。隨著課程的進展,我們將在 GitHub 上發布一個關于 GAN 的最新教程。
conditional GAN:
https://github.com/tensorflow/tensorflow/blob/r1.13/tensorflow/contrib/eager/python/examples/pix2pix/pix2pix_eager.ipynb
DCGAN:
https://github.com/tensorflow/tensorflow/blob/r1.11/tensorflow/contrib/eager/python/examples/generative_examples/dcgan.ipynb
強化學習 (RL) 是一個框架,用于教一個 agent 如何以一種最大化回報的方式行動。當學習由神經網絡完成時,我們稱之為深度強化學習 (Deep Reinforcement learning, Deep RL)。
RL 框架有三種類型:基于策略的 (policy-based)、基于價值 (value-based) 的和基于模型的 (model-based)。區別在于神經網絡的任務是學習。詳細解讀請參見本系列課程的第 6 講。
Deep RL 允許我們在需要做出一系列決策時,在模擬或現實環境中應用神經網絡。包括游戲、機器人、神經架構搜索等等。
教程:我們的 DeepTraffic 環境提供了一個教程和代碼示例,可以快速地在瀏覽器中探索、訓練和評估深度 RL 智能體,我們將很快在 GitHub 上發布一個支持 GPU 訓練的TensorFlow 教程。
MIT DeepTraffic: Deep Reinforcement Learning Competition
MIT DeepTraffic:
https://selfdrivingcars.mit.edu/deeptraffic-documentation/
https://github.com/lexfridman/deeptraffic
在深度學習中有幾個重要的概念并不是由上述架構直接表示的,包括變分自編碼器(VAE)、LSTM/GRU 或神經圖靈機中的 “記憶” 概念、膠囊網絡,以及注意力機制、遷移學習、元學習概念,以及 RL 中基于模型、基于價值、基于策略的方法和 actor-critic 方法的區別。
最后,許多深度學習系統將這些結構以復雜的方式組合起來,共同從多模態數據中學習,或者共同學習解決多個任務。這些概念在本系列課程的其他課程中都有涉及,更多的概念將在接下來的課程中介紹:
加入社群
新智元AI技術+產業社群招募中,歡迎對AI技術+產業落地感興趣的同學,加小助手微信 aiera2015_2 入群;通過審核后我們將邀請進群,加入社群后請修改群備注(姓名-公司-職位;專業群審核較嚴,敬請諒解)
加入新智元社群,成就AI新世界!