【新智元導讀】本文從開發者的角度,總結了GAN、AutoML、語音識別、NLP等已經可以用於實際產品的技術,以及值得關注的新趨勢。作者認為,有ONNX這類的統一格式,Caffe Zoo等模型庫,以及AutoML等自動化工具,製作基於AI的應用已經變得非常容易。
GAN與造假
雖然生成對抗網絡幾年前就出現了,我對它是相當懷疑的。幾年過去了,即使看到GAN在生成64x64解析度的圖像方面取得了巨大的進步,我對它仍是懷疑的。在閱讀了一些數學文章之後,我更加懷疑了,因為這些文章說GAN並沒有真正了解分布。但在2017年,事情有所改變。首先,一些新的有趣的架構(例如CycleGAN)和數學上改進的架構(例如Wasserstein GAN)讓我實踐了一些GAN網絡,它們的表現一般,但在完成這兩個程序之後,我確信我們可以,並且應該使用GAN來生成東西。
首先,我非常喜歡NVIDIA的一篇關於生成全高清圖像的研究論文,生成的圖像看起來非常真實(與一年前的64x64解析度的令人毛骨悚然的人臉相比):
還有很多GAN在遊戲行業的應用,例如用GAN生成遊戲場景,英雄乃至整個世界。而且我認為我們必須意識到全新的造假水平正在出現,例如網上的完全虛假的人物(也許很快也會出現在線下)?
神經網絡的唯一格式
現代發展的問題之一(不僅僅在AI領域)是,做同樣的事情有幾十個不同的框架可選。當前,每家做機器學習的大公司都必須擁有自己的框架:谷歌,Facebook,亞馬遜,微軟,英特爾,甚至索尼和Uber都有自己的機器學習框,以及其他許多開源解決方案。在一個AI應用程式中,我們希望使用不同的框架,例如計算機視覺方面用Caffe2,NLP用PyTorch於一些推薦系統用Tensorflow / Keras。但是將這些應用合併起來需要花費大量的開發時間。
解決方案是開發一個唯一的神經網絡格式,它可以很容易地從任何框架中獲得,而且必須讓開發者可以輕鬆部署,讓科學家可以輕鬆使用。這就是ONNX:
事實上,ONNX只是一個非循環計算圖表的簡單格式,但在實踐中它讓我們得以部署複雜的AI解決方案,而且我個人認為它非常有吸引力——人們可以在PyTorch這樣的框架中開發神經網絡,它沒有強大的部署工具,而且不依賴Tensorflow生態系統。
Zoo大爆炸
三年前,人工智慧領域最讓人興奮的是Caffe Zoo。當時我正在做計算機視覺方面的工作,我嘗試了所有模型,檢查它們如何工作以及它們能做什麼。然後,我將這些模型用於遷移學習或特徵提取器。最近我使用了兩種不同的開源模型,只是作為一個大型計算機視覺流程的一部分。這意味著什麼呢?意味著開發者實際上沒有必要自己訓練網絡,例如,訓練ImageNet的對象識別或位置識別網絡,這些基本的東西都可以下載然後插入到你的系統即可。除了Caffe Zoo之外,其他框架也有這樣的Zoo,但是讓我非常驚訝的是,你可以在計算機視覺,NLP甚至是iPhone的加速度計信號處理插入模型。
我認為這類Zoo只會越來越多,並且由於ONNX這樣的生態系統的出現,它們會更加集中(也會使用ML區塊鏈應用來去中心化)。
AutoML替代pipeline
設計一個神經網絡的體系結構是一件痛苦的事情,有時侯只是堆疊一些卷積層就能得到相當好的結果,但是大多數時候,你需要利用直覺和超參數搜索方法(例如隨機搜索或貝葉斯優化)非常仔細地設計寬度,深度和超參數。如果不是計算機視覺方面的工作會尤其難,計算機視覺的話你可以微調在ImageNet上訓練的DenseNet,但是一些3D數據分類或者多變量時間序列應用就很難。
使用另一個神經網絡從頭開始創建神經網絡架構的方法有很多,但對我來說最友好、最清潔的是Google Research最新開發的AutoML:
用AutoML生成的計算機視覺模型比人類設計的網絡工作得更好、更快!我相信很快就會出現很多關於這個話題的論文和開原始碼。我認為我們會看到更多的博客文章或創業公司,說「我們的AI創造了學習其他AI的AI...」,而不是「我們已經開發了一個AI ...」。
形式化 intelligence stack
對於這個概念,我在Anatoly Levenchuk的博客上看了很多。在下面的圖片中,你可以看到一個可以稱為「AI stack」的例子:
它不僅僅包括機器學習算法和你喜歡的框架,而且它的層更深,每個層都有自己的發展和研究。
我認為AI開發行業已經足夠成熟,有許多不同領域的專家。你的團隊中只有一名數據科學家是遠遠不夠的——你需要不同的人員做硬體優化,神經網絡研究,AI編譯器,解決方案優化,生產實施等等。在他們之上必須有不同的團隊領導,有軟體架構師(必須分別為每個問題設計上面的stack)和管理者。
基於語音的應用
如果把準確度設為95%以上,AI可以解決的問題就很少:識別1000個類別的圖像,識別文本是積極還是消極情緒,以及圍繞圖像識別和文本識別的更複雜的一些事情。我認為還有一個領域,即語音識別和生成。事實上,一年前DeepMind發布的WaveNet的表現相當不錯,而且現在還有百度的DeepVoice 3,以及最近谷歌開發的Tacotron2:
這一技術很快會開源(或者被一些聰明人複製),並且每個人都能夠以非常高的精度識別語音以及生成語音。那麼等待我們的是什麼呢?是更聰明的私人助理,自動閱讀器和自動轉錄工具,以及,假冒的聲音。
更聰明的bot
今天的所有bot都有一個很大的問題:99%根本不是AI,只是硬編碼。因為我們沒法簡單地用數百萬次對話數據來訓練一個encoder-decoder LSTM,然後就得到智能系統了。這就是為什麼Facebook Messenger或Telegram中的大多數bot都只有硬編碼的命令的原因,或者最多還有一些基於LSTM和word2vec的句子分類神經網絡。但現在最先進的NLP技術已經超出這個水平。例如Salesforce已經做了一些有趣的研究,他們構建了NLP和資料庫的接口,克服現代 encoder-decoder 自回歸模型的局限,不僅為文字或句子訓練嵌入,而且包括字符(characters)。
我相信伴隨著這些發展,我們至少可以用更智能的信息檢索和命名實體識別來增強bot的能力,以及在一些封閉的領域開發完全深度學習驅動的bot。
時間序列分析
前不久,Uber AI Lab發表了一篇博客,展示了他們的時間序列預測方法。 這是將統計特徵和深度學習表示相結合的好例子:
例如使用34-layer 1D ResNet診斷心律失常的模型。它最酷的部分是性能:不僅比常見的統計模型更好,甚至診斷準確率優於專業心臟病專家!
內嵌函數之外的優化
如何訓練神經網絡?說實話,我們大多數人只是使用一些「Adam()」和標準的學習率。更聰明的人會選擇最合適的優化器,並調整學習率。我們總是低估優化,因為我們只需按下「train」按鈕,然後等待網絡收斂。但是在計算能力,內存和開解決方案方面,我們都擁有或多或少的平等機會,優勝者是那些能夠用最短時間獲得最佳性能的——這一切都來源於優化。
炒作放緩
來源:cdn.aiindex.org/2017-report.pdf
上圖說明了什麼呢?考慮到已經發布的開源工具和算法有多少,開發一些新的有價值的東西並且為之獲得大量資金並不容易。我認為2018年對於創業公司來說不是最好的一年——競爭對手會更多,把開源的網絡作為行動應用程式來部署,也可以稱之為創業公司。
結論
有幾種技術已經可以用於實際產品:時間序列分析,GAN,語音識別,以及NLP的一些進步。我們不需要自己設計分類或回歸的基本體系結構,因為AutoML能夠幫我們做這些事情了。我希望通過一些優化改進,AutoML能夠更快。加上ONNX和Model Zoo,只需兩行代碼就能為我們的app加入基本的模型。我認為至少在目前最先進的水平上,製作基於AI的應用程式已經變得非常容易,這對整個行業來說都是好事!
原文:https://medium.com/swlh/ai-in-2018-for-developers-2f01250d17c