神經網絡:你已經讓它如此簡單

神經網絡是現在的憤怒,現在是越來越多的黑客,學生,研究人員以及所涉及的企業。最後一個複興在80年代以及90年代,當時幾乎沒有萬維網以及少數神經網絡工具。目前的複蘇始於2006年左右。從黑客的角度來看,那麼提供了哪些工具以及其他資源,現在提供了什麼,我們應該對未來的期望是什麼?對自己來說,覆盆子PI上的GPU會很好。

80s以及90s

神經網絡80s / 90s書籍以及MAGS
對於年輕的春,讀這篇文章誰想知道美國老鳥隊在萬維網之前做任何事情,硬拷貝雜誌在讓我們意識到新事物中發揮了重要作用。以及所以它是科學的美國雜誌1992年9月的思想和大腦,介紹了我的神經網絡,都是生物學以及人造的。

然後,您可以選擇從抓取某人的划痕或訂購源代碼的單獨編寫自己的神經網絡,您可以在郵件中的軟盤上收到。我甚至訂購了來自那種科學美國問題的業餘科學家專欄的軟盤。您可能同樣購買一個神經網絡庫,可以為您提供所有低級,複雜的數學。同樣有一個叫做多倫多大學Xerion的自由模擬器。

關注書店科學部分確實會在這個主題上偶爾出現。傳統的是並聯分佈式處理的兩體積探索,由Rumelhart,McClelland等。首選礦山是神經計算以及自組織地圖:如果您對控制機器人臂的神經網絡感興趣,則有用。

同樣有短暫的課程以及您可能會參加的會議。我在1994年出席的研討會是一家免費為期兩天的兩天,然後由多倫多大學的Geoffrey Hinton推出,隨後以及現在是該領域的領導者。當時最好的知名年度研討會是神經信息處理系統會議,今天仍然強勁。

最後,我記得將圖書館梳理出版的論文。我的一疊研討會論文以及節目講義,複印的物品以及那個時期的手寫筆記約為3英寸厚。

然後事情走得比較安靜。雖然神經網絡在少數應用中發現了使用,但他們沒有達到他們的炒作以及從有限的研究界之外的世界的角度來看,他們不再重要。隨著逐步改善的情況下,事情保持安靜,以及一些突破,以及最後約在2006年左右,他們再次在世界上爆發。

目前到達

無論如何,我們將簡要地關注工具,這些突破主要是:

培訓網絡的新技術,即深入三層或四層,現在稱為深神經網絡

使用GPU(圖形處理單元)加快培訓

包含大量樣品的培訓數據的可用性

神經網絡框架

現在有許多神經網絡庫,通常被稱為框架,為免費下載提供各種許可證,其中許多打開源框架。大多數更受歡迎的人都使您能夠在GPU上運行您的神經網絡,並且足以支持大多數網絡的靈活性。

以下是大多數更受歡迎的。除FNN外,它們都有GPU支持。

紋身流

語言:Python,C ++在作品中

Tensorflow是谷歌的最新神經網絡框架。它專為分佈多台機器以及GPU而設計。它可以被認為是一個低級別的一個,不論提供極大的靈活性,同樣是比keras和tflearn等高級別的學習曲線,兩者都在下面討論。但是,他們正在努力製作集成在Tensorflow中的Keras版本。

我們已經在這個錘子的Hackaday上看到了這一個,以及啤酒瓶識別機器人,甚至還有介紹使用Tensorflow。

Theano.

語言:Python.

這是一個開源庫,用於執行涉及多維數組的有效數值計算。它來自蒙特利爾大學,並在Windows,Linux以及OS-X上運行。 Theano已經存在了很長時間,2009年發布了0.1。

咖啡

語言:命令行,python以及matlab

Caffe由伯克利AI研究以及鄰里貢獻者開發。模型可以在純文本數據中定義,然後使用命令行工具處理。同樣有Python以及Matlab接口。例如,您可以在純文本文件中定義您的模型,詳細介紹如何在稱為求解器的第二個純文本數據中訓練它,然後將這些傳遞給CAFFE命令行工具,然後將培訓一個神經網絡。然後,您可以使用Python程序加載此培訓的網絡,並使用它來執行某些內容,例如圖像分類。

CNTK.

語言:Python,C ++,C#

這是Microsoft認知工具包(CNTK)以及在Windows和Linux上運行。他們目前正在研究要與Keras一起使用的版本。

凱拉斯

語言:Python.

Keras在Python寫入Python,在下面使用Tensorflow或Theano,使得更容易使用這些框架。同樣計劃支持CNTK。正在進行的工作來將克拉斯集成到Tensorflow中,導致keras的單獨的tensorflow版本。

TF學習

語言:Python.

像Keras一樣,這是一個基於Tensorflow頂部的高級庫。

語言:支持超過15種語言,沒有GPU支持

這是一種用C的高級開源庫。它限制為完全連接以及稀疏連接的神經網絡。但是,多年來一直很受歡迎,並且甚至甚至被列入了Linux發行版。它最近在Hackaday上顯示了一個機器人,該機器人學會了使用強化學習,這是一種經常利用神經網絡的機器學習技術。

火炬

語言:Lua.

在C.中寫的開源庫有趣的是,他們在他們網站的首頁上說,火炬是嵌入的,端口到iOS,Andoid和FPGA後果。

Pytorch.

語言:Python.

Pytorch相對較新,他們的網站說它在早期釋放的Beta中,然而似乎對此有很多興趣。它在Linux和OS-X上運行,並在下面使用火炬。

我錯過了其他人。如果您有一個特殊的首選,那麼在這裡,請在評論中告知我們。

你應該使用哪一個?除非編程語言或操作系統是一個問題,否則更多的因素是您的技能水平。如果您對數學感到不舒服或不想深入地深入挖掘神經網絡的細微差別,則選擇高級。在這種情況下,遠離Tensorflow,在那裡您必須了解有關API的更多信息,而不是Kera,Tflearn或其他高級級別。突出顯示其數學功能的框架通常要求您完成更多工作來生產網絡。另一個因素是你是否正在進行基礎研究。高級框架可能無法使您能夠訪問足夠的內部,以開始製作瘋狂網絡,或許具有跨越多個層或層內的連接,以及在所有方向上流動的數據。

在線服務

您是否希望添加一個神經網絡將提供給您的黑客的東西,但不想花時間學習神經網絡的複雜性?為此,通過將黑客連接到互聯網提供的服務。

我們看到了無數的例子,利用亞馬遜的Alexa進行語音識別。谷歌同樣具有其云機器學習服務,包括願景以及演講。它的願景服務在這裡使用覆盆子PI來顯示糖果分類以及閱讀人類的情緒。 Wekinator旨在藝術家以及我們看到的音樂家,我們已經看到習慣於訓練神經網絡,以應對各種手勢,以便在房子周圍脫離東西,以及製作虛擬世界最微小的小提琴。不容遺漏,微軟同樣具有其認知服務API,包括:願景,語音,語言以及其他人。

GPU以及TPU

通過神經網絡迭代
培訓一個神經網絡需要通過神經網絡迭代,然後向前迭代,然後每次都提高網絡的準確性。最多一點,你可以做的迭代越多,最終的準確性就會好得多就是停止。迭代的數量可能是數百甚至數千人。在20世紀80年代以及20世紀90年代的計算機上,實現足夠的迭代可能需要一個不可接受的時間。根據這篇文章,神經網絡深度學習:概述,2004年,使用GPU實現完全連接的神經網絡的GPU增加了20倍的增加。 2006年,為卷積神經網絡實現了4倍。到2010年,在比較CPU與GPU上的培訓時,增加的增加了50倍。結果,精度高得多。

NVIDIA Titan XP顯卡。圖像信用:nvidia
GPU如何幫助?一個神經網絡的巨大部分訓練涉及做矩陣乘法,這在GPU上比在CPU上更快。 NVIDIA是製作圖形卡和GPU的領導者,創建了一個名為CUDA的API,該API被神經網絡軟件用於利用GPU。我們指出了這一點,因為你會看到CUDA一詞很多。隨著深度學習的傳播,NVIDIA增加了更多的API,包括CUDNN(CUDA為深神經網絡),一個精細調整的神經網絡原語庫,以及你會看到的一個。

NVI.直觀方式同樣有自己的單板電腦,Jetson TX2,設計為自動駕駛汽車的大腦,自拍捕捉無人機,以及等等。然而,正如我們的[Brian Benchoff]所指出的,價格點對於典型的黑客有點高。

谷歌同樣在其張量處理單元(TPU)的類型中同樣正在致力於自己的硬件加速度。您可能已經註意到谷歌框架名稱的相似性Tensorflow。 TensoRflow致力於張力的濃度(在軟件中思考單個以及多維數組)。根據Google的紙張,它是設計用於神經網絡的推理階段的TPU。推論是指不培訓神經網絡,而是在培訓後使用神經網絡。我們還沒有看到任何類型的框架使用,但這是要記住的事情。

使用其他人的硬件

您有一個神經網絡,需要花費很長時間訓練,但沒有支持的GPU,還是不想捆綁您的資源?在這種情況下,您可以在互聯網上可訪問的其他機器上使用硬件。一個這樣的弗洛爾圖,其中,對於個人來說,每小時只需每小時花費每小時即可。還有一個是亞馬遜EC2。

數據集

用標記數據培訓神經網絡
我們說神經網絡中的一個突破是培訓包含大量樣品的培訓數據,即成千上萬。使用監督培訓算法訓練神經網絡涉及在其輸入中將數據交給網絡,同樣告訴它應該是預期的輸出應該是什麼。在這種情況下,必須標記數據同樣的數據。如果您向網絡的輸入提供了一匹馬的形象,並且其輸出說它看起來像獵豹,那麼它需要知道錯誤很大,並且需要更多的培訓。預期輸出稱為標籤,以及數據是“標記數據”。

許多這樣的數據集在線提供以進行培訓目的。 mnist是手寫字符識別的一個。 ImageNet和CiFar是標記圖像的兩個不同數據集。此維基百科頁面上列出了更多。上面列出的許多框架都有包括必要的數據集的教程。

這並不是說你絕對需要一個大型數據集來獲得可敬的準確性。我們之前提到過使用FNN框架的行走機器人使用伺服電機位置作為其訓練數據。

其他資源

與80年代和90年代不同,雖然您仍然可以購買關於神經網絡的硬拷貝書,但在線有很多。我享受的兩個在線書籍是由麻省理工學院的新聞和神經網絡和深度學習的深刻學習。上面列出的框架都有教程來幫助開始。然後有無數的其他網站以及您搜索的任何類型主題上的YouTube視頻。我發現錄製講座的YouTube視頻以及研討會談話非常有用。

未來

覆盆子pi 7與gpu
無疑將會看到更多的框架來了。

我們已經看到了專門的神經芯片以及市場上的董事會,但沒有人曾經發現過巨大的市場,甚至在90年代回來。然而,這些不是專門為每個人都在努力的真正增長區域而設計的。 GPU確實為該市場提供服務。作為具有數百萬個圖像的神經網絡以及語音處理,語言,以及更小的以及更小的消費者設備,需要對該軟件量身定制的更多GPU或處理器的需求將有望導致某些東西最終可以成為覆盆子PI或Arduino板上的新元素。雖然有可能仍然是在線服務。編輯:結果覆盆子pi上有一個gpu – 請參閱下面的評論。這並不意味著所有上述框架都將利用它。例如,Tensorflow僅支持NVIDIA CUDA卡。但是,您仍然可以使用GPU進行您自己的自定義神經網絡代碼。各種鏈接也在評論中。

從ASICS這樣的GPU競爭就像TPU一樣,我們可能會看到更多的那些,可能完全從神經網絡中爭奪GPU。

至於我們的新電腦

Leave a Reply

Your email address will not be published. Required fields are marked *