讓我們一起來學習CNTK吧

2014年,在微軟研究院,黃學東博士和他的團隊正在致力於對計算機能夠理解語音的能力進行更快的改進,但當時使用的工具顯然拖慢了他們的進度。於是,一組由志願者組成的開發團隊構想設計了他們自己的解決方案,他們的內部工具成為了目前廣為認知的認知工具集(CNTK)的基礎。2015年8月,微軟公司在CodePlex上宣布了CNTK將開源。5個月後,2016年1月25日,微軟公司在他們的GitHub倉庫上宣布開源了由微軟研究院開發的計算網路工具集CNTK……

本文最後更新於:2017年11月06日,最近一次更新包含了語法修復,以及較小的錯誤修復和改進。

大家好,我是本專欄的作者王萬霖。微軟認知工具集(Microsoft Cognitive Toolkit,CNTK),自從2016年1月微軟公司在GitHub上開源自家的認知工具集CNTK之後,在這一年多的時間裡,經過開發者和開源社區的不斷努力,已經取得了巨大的進步:從支持C#/.NET語言介面、通用Windows平台(UWP),到發布了工具集的2.2版本……CNTK工具正在在社區的推動下快速地發展著。

CNTK是什麼

根據微軟官方的介紹,CNTK 是一個統一的計算網路框架,它將深層神經網路描述為一系列通過有向圖的計算步驟。在有向圖中,每個節點代表一個輸入值或一個網路參數,每個邊表示在其中的一個矩陣運算。CNTK 提供了實現前向計算和梯度計算的演算法。CNTK中預定義了很多主流的計算網路結構,用戶可以輕鬆地在開源許可證下擴展節點類型。社區可以利用它來更方便地來推進關於人工智慧的研究。

CNTK擁有高度優化的內建模型,以及有著良好的多GPU支持,相信已經有不少同學已經使用或者有意向使用CNTK進行機器認知方面的開發了,同時有很多同學已經在他們的博客或者網站分享了他們使用CNTK的經歷。

微軟官方公布的,CNTK與其他工具集相比執行特定任務的效率對比。可以看到,在同樣4GPU的配置下,針對特定的學習任務,CNTK有速度上的優勢

CNTK目前的情況

自 CNTK 的首次亮相以來,針對CNTK的開發已大大提高了微軟內部實驗室的機器學習效率。通過CNTK和Azure GPU實驗室的結合,讓微軟公司能夠建立和訓練針對深神經網路的Cortana語音識別任務,而且比他們以前的深學習系統快10倍。CNTK 同樣可以用來執行其他任務,如ImageNet 分類和深層結構化語義模型。微軟公司表示,希望社區能夠充分利用 CNTK 的優勢,通過和開源社區的交流和代碼分享,更快地分享彼此的想法。

在計算性能和靈活性之間有許多設計考慮因素,每個工具包都有其獨特的優點。TensorFlow 提供了一個用戶友好且易於使用的Python介面;Theano 由其代表性的操作深入人心;Torch使用 Lua 編程語言;Caffe其高效的性能而受到計算機視覺研究者的青睞;而CNTK在自家的Azure GPU實驗室中表現出了最高效的分散式計算性能。

在必應搜索引擎關於一些機器學習框架的搜索結果

從另一方面看到,由於CNTK在最近幾年才被推出,在網上有關於CNTK的資料還是很有限的,並且很多新的資料均為英文版。我們缺乏本土的,有關CNTK框架的教學內容。在搜索引擎進行相關的搜索,排名靠前的結果均是介紹使用BrainScript來使用CNTK框架的文章。

相比BrainScript的編寫,使用Python進行機器認知、機器學習相關的開發更加普遍且易於交流。本專欄希望能夠通過更多的文章和優質資料,讓大家更好地了解CNTK框架及其應用。歡迎大家多多關注,歡迎有興趣的同學一起投入到寫作中來。

未來的寫作方向

截止到2017年11月,本專欄以翻譯官方的CNTK入門(指引)文章為主。

在未來的更多時間裡,我們將有興趣針對CNTK的內部實現,以及它的相關應用進行更深入的探討。

參考資料:

  • Microsoft releases CNTK, its open source deep learning toolkit, on GitHub - Next at Microsoft
  • An Introduction to Computational Networks and the Computational Network Toolkit - Microsoft Research
  • Microsoft/CNTK
  • Microsoft Computational Network Toolkit offers most efficient distributed deep learning computational performance - Microsoft Research
  • Speak, hear, talk: The long quest for technology that understands speech as well as a human - News Center
  • First Release of CNTK · Microsoft/CNTK@6169450
  • Xuedong Huang, Microsoft speech NLP AI
  • cntk.ai/Tutorials/CVPR2

推薦閱讀:

TAG:cntk | 機器學習 | 微軟Microsoft |