实战 | 深度学习轻松学:如何用可视化界面来部署深度学习模型 转载 2017年12月27日 00:00:00 109 翻译 | AI科技大本营 参与 | 王赫 上个月,我有幸结识了 DeepCogn
實戰 | 深度學習輕松學:如何用可視化界面來部署深度學習模型
轉載 2017年12月27日 00:00:00
翻譯 | AI科技大本營
參與 | 王赫
上個月,我有幸結識了?DeepCognition.ai?的創始人。
Deep Cognition (深度認知) 建立的深度學習工作室,為很多準備部署深度學習框架和采用人工智能技術的機構打破了諸多難以逾越的障礙。
究竟什么是深度學習?
在我們說明Deep Cognition是如何簡化深度學習和人工智能之前,先讓我們定義一些深度學習的主要概念。
深度學習,它的核心是用連續"層狀"結構來逐級遞進的學習有意義的特征表示,其作為機器學習的一個特定的子研究領域,現已成為了一種新的從數據中抽取可學習特征表示的方法。
在深度學習中,由多個處理層構成的計算模塊可以學習到具有多重抽象級別的數據特征。
這些層狀的特征表示正是通過一個稱為”神經網絡”的模型來學習的,其結構依次層疊在一起。
實際上,我們在深度學習中使用的是一種稱為人工神經網絡(ANN)的東西。這個網絡是受到生物神經網絡的啟發,用于估計或近似地趨近于一個依賴于海量未知輸入變量的函數。
雖然,深度學習在機器學習中是一個相當古老的領域,但其在2010年初才開始漸漸顯露鋒芒。在此之后的幾年里,深度學習取得了很大的成就。Francois Collet 在下面列出了其中的主要成就:
-
接近人類水平的圖像分類技術。
-
接近人類水平的語音識別技術。
-
接近人類水平的手寫筆跡轉錄技術。
-
經過改良的機器翻譯技術。
-
經過改良的文本到語音轉換技術。
-
數字助理,如Google Now或Amazon Alexa。
-
接近人類水平的自動駕駛技術。
-
經過改良的廣告精準投放,如Google,百度和Bing所使用的。
-
經過改良的搜索引擎結果。
-
對自然語言問題解答。
-
遠超人類能力的游戲,如Go。
為什么深度學習如此的牛逼?
正如 Fran?ois Collet 在他的書中所說的那樣,直到21世紀后期,我們仍然沒有可以訓練非常深的神經網絡的可靠方法。因此,當時的神經網絡仍然很淺,只能用一到兩層來表示,所以它們還不能挖掘出像SVMs或隨機森林那樣更加精細的淺層特征。
但在近十年以來,隨著幾個簡單但又重要的算法的改進與發展、硬件(主要是GPU)的進步以及大數據的指數級積累,在現今深度學習的幫助下,你也可以在自家的筆記本電腦(或云端)上運行一個小型深度學習模型。
究竟該如何深度學習呢?
來看看我們通常是如何做深度學習的。
盡管這不是一個新的領域,但我們可以通過一種全新的方式與計算機進行交互來深度學習。而這個領域最重要的一個事件就是TensorFlow的創建。
TensorFlow是一個使用數據流圖進行數值計算的開源軟件庫。數據流圖中的節點表示數學運算,而圖中的邊表示在它們之間交流的多維數據陣列(張量)。
?什么是張量?
根據數學的定義,張量是由數字或函數構成的簡單數組,它們按照一定的規則進行坐標變換。
但是從這個角度而言,張量可以是向量和矩陣向更高維度的泛化推廣。 在TensorFlow的內部,張量被表示為基本數據類型的n維數組。
我們需要使用張量的原因是因為 NumPy(在Python里進行科學計算的基礎軟件包)缺乏創建張量的能力。 我們可以將張量與NumPy之間互相轉換。 由于其構造早已明確的被定義為數組/矩陣,所以這是完全可能的。
通過結合了諸多優化編譯技術的計算代數程序,TensorFlow使得運行許多難以計算的數學表達式變得非常簡單。
Keras
雖然這不是一個關于TensorFlow的博客,何況網上有很多優質的TensorFlow資源帖子。但在本文中介紹一下Keras依然是很有必要的。
Keras是一個高級的神經網絡API,它用Python編寫,并且能夠在TensorFlow,CNTK或Theano之上運行。 它的開發重點就是能夠快速構建實驗模型。 要知道,能夠做好研究的關鍵就是能夠盡可能快的從想法點子到最終實驗結果。
這就是Fran?ois Collet所構建該框架的初衷,也是為了讓大眾在深度學習面前能勇敢的邁出第一步。
TensorFlow本來有一個不復雜的Python API,但Keras可以更容易讓很多人進入到深度學習領域中。 還應該提及的是,Keras現在已經正式成為Tensorflow的一部分:https://www.tensorflow.org/api_docs/python/tf/contrib/keras
深度學習框架
我對深度學習框架進行了比較。
Keras現在在流行度上優勝于其他框架,顯而易見的可以看到人們更喜歡其簡單的界面和可用性。
如果你想了解更多關于keras的信息,請訪問我在LinkedIn上發布的帖子:https://www.linkedin.com/feed/update/urn:li:activity:6344255087057211393
Deep Cognition
因此,通常我們會進行深度學習編程,然后學習新的API。其中有些API要更復雜一些,也有一些是非常容易的,比如Keras。但是如何通過點擊幾個按鈕就可以輕松創建和部署深度學習框架呢?
這就是Deep Cognition所許諾要達到的目標。
正如他們所說,Deep Cognition平臺是為了“民主化AI”而建立的。
人工智能為世界的經濟已經創造了巨大的價值。然而,AI企業在準備部署人工智能技術時所面臨的巨大障礙也正是他們的(巨大)短板。 這就是Deep Cognition所正在解決的問題。
Deep Cognition的深度學習工作室平臺可以采用云解決方案,也可以是在你的機器中運行的桌面解決方案(http://deepcognition.ai/desktop/)或者是企業解決方案(私有云或內部解決方案)。
桌面版本允許人們使用他們自己的電腦,并且無需為GPU付費。
為此,我們將使用Deep Learning Studio的云端版本,并使用單用戶解決方案來創建和部署AI。簡單的界面拖放就可以幫助您輕松設計深度學習模型。
預訓練的模型以及使用內置的輔助功能可以簡化和加速模型開發。 您可以導入模型代碼并使用可視化界面來編輯模型。 當您迭代和調整超參數以提高性能時,平臺會自動的保存每個模型版本。 您還可以通過比較不同版本的性能以找到最佳模型設計。
在 MNIST 數據集上使用 Deep Cognition 和 AutoML
Deep Learning Studio可以自動地為您自定義的數據集設計深度學習模型,這要歸功于我們先進的AutoML功能。 您只需在幾分鐘內就可以啟動并運行得到一個良好的模型結果。
沒錯!AutoML就是能隨時實現你所想的,專門為深度學習而設計的自動化機器學習系統。它可以為你創建一個從原始數據到預測結果完整的流水線。
作為深度學習工作室的一個小教程,我們來研究一下經典的MNIST數據集。
MNIST是一個簡單的計算機視覺數據集。 它由這樣的手寫數字圖像組成:
它還包括每個圖像的標簽,這樣就可以告訴我們它對應的是哪個數字。
運用Deep Cognition的云端工作室和AutoML功能,我們來訓練一個可以查看圖像并預測圖像數字的模型。
如果你已經有一個帳戶,你就只需要進入http://deepcognition.ai網頁,然后點擊啟動云應用程序。
然后,你進入到用戶界面,以及可以選擇一些示例項目:
現在要做的是創建一個新的項目:
接下來的頁面,您可以選擇訓練集-驗證集-測試集的比率,加載數據集或使用已上傳的數據集,指定數據的類型等等。
"模型"選項卡可以讓您使用很多先進的深度學習功能以及不同類型的神經網絡層來創建自己的模型,但是為了讓Deep Cognition能處理所有的建模,我們將使用AutoML功能:
我們選擇了Image,因為這是我們正要試圖預測的數據類型。
在您點擊"設計"之后,您就擁有了您的第一個深度學習模型,在此基礎上可以進一步來自定義和分析:
模型看起來像這樣:
所以,你可以看到在這個非常棒的平臺下,深度學習所有復雜的建模過程和編程代碼得到了顯著的簡化。
你也可以在平臺內的Jupyter Notevook中進行編程,其中已經預安裝了所有必要的程序軟件:
配置神經網絡非常困難的主要原因在于神經網絡中有很多超參數需要設置。與任何其他機器學習算法相比,超參數的調參過程是神經網絡中是最難的一部分。
但是在Deep Cognition中,調參可以非常簡單且非常靈活的實現。在”超參數“選項卡中,您可以在幾個Loss函數和優化器中進行選擇來調整參數。
接下來是很有趣的一部分:訓練模型。 在“訓練”選項卡中,您可以從不同類型的實例(包括CPU和GPU)中進行選擇。 它也將幫助您監控您的整個訓練過程,并為您創建一個損失和準確率的圖:
上面的gif小圖就是訓練過程
您可以在"結果"選項卡中查看到您所有的訓練結果
最后,您得到了一個訓練好的神經網絡模型,它參考了測試集和驗證集(或其他您已上傳的)來訓練的。您可以立刻使用這個模型并預測圖像中的數字以查看它的表現如何。
黑盒問題
有時候在你會這樣想:好吧,我正在深入學習,但我不知道它是如何做到的。
由于您實際上可以下載能夠預測結果的模型代碼,您將會看到它是用Keras編寫的。然后您可以上傳該代碼并使用系統提供的notebook進行測試。
AutoML功能具有Keras和其他深度學習框架中的優秀功能,而且它的好處在于:只需輕輕一點,它就為您自動選擇了最佳的深度學習框架實例,如果您對選擇不滿意,您還可以很輕松在圖像界面下修改或者在notebook中交互式的更改。
這個系統平臺建立的初衷是人人都可以輕松使用AI。為了構造一個復雜的模型,你并不需要一定是一個AI專家。但我的建議是,你需要對自己在做什么有了一個清晰的認識。你可以通過閱讀TensorFlow或Keras文檔,觀看一些視頻和關注相關資訊。如果你是這相關領域的專家,那就太棒了!這將使您的生活更加簡單輕松,并且在構建模型時仍然可以運用您的專業知識。
請點擊(閱讀)下面的參考資料,以獲取有關Deep Learning和AI的更多信息。
關于Favio Vázquez
物理學家和計算機工程師。 他擁有墨西哥國立自治大學物理科學碩士學位,現正在從事大數據,數據科學,機器學習和計算宇宙學等相關領域的工作。 自2015年以來,他一直是Apache Spark與Core和MLlib庫的合作者。
他是Iron公司的首席數據科學家,主要負責執行分布式處理,數據分析,機器學習和指導數據項目。 此外,他在BBVA Data & Analytics擔任數據科學家,工作范圍包括機器學習,數據分析,以及使用Apache Spark維護項目和模型的生命周期。
參考文獻
TensorFlow 101: Understanding Tensors and Graphs to get you started in Deep Learning?*Introduction TensorFlow is one of the most popular libraries in Deep Learning. When I started with TensorFlow it felt
Deep Learning with Python?The clearest explanation of deep learning I have come across...it was a joy to read.
leriomaggio/deep-learning-keras-tensorflowdeep-learning-keras-tensorflow - Introduction to Deep Neural Networks with Keras and Tensorflow
MNIST For ML Beginners | TensorFlowWe know that every image in MNIST is of a handwritten digit between zero and nine. So there are only ten possible…
Tutorial: Optimizing Neural Networks using Keras (with Image recognition case study)?Introduction In my previous article, I discussed the implementation of neural networks using TensorFlow. Continuing the…
PacktPublishing/Deep-Learning-with-Keras?Deep-Learning-with-Keras - Code repository for Deep Learning with Keras published by Packt
Latest Deep Learning OCR with Keras and Supervisely in 15 minutes?Tutorial on how to build your own state-of-the art text recognition system
關鍵詞:Machine Learning,Deep Cognition,Deep Learning,Artificial Intelligence
?
原文
https://medium.com/@favio.vazquezp/deep-learning-made-easy-with-deep-cognition-403fbe445351
總結
以上是生活随笔為你收集整理的实战 | 深度学习轻松学:如何用可视化界面来部署深度学习模型 转载 2017年12月27日 00:00:00 109 翻译 | AI科技大本营 参与 | 王赫 上个月,我有幸结识了 DeepCogn的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贾跃亭融资计划书曝光:看他如何靠两份PP
- 下一篇: Philip S. Yu 讲的广度学习到