10個(gè)基于JavaScript的機(jī)器學(xué)習(xí)案例
在過(guò)去的幾年里,機(jī)器學(xué)習(xí)的開(kāi)發(fā)庫(kù)增長(zhǎng)很快,可用性也變得越來(lái)越可靠,而且沒(méi)有減慢的趨勢(shì)。一直以來(lái)Python作為機(jī)器學(xué)習(xí)的主力語(yǔ)言,現(xiàn)在神經(jīng)網(wǎng)絡(luò)可以應(yīng)用任何語(yǔ)言了,包括JavaScript!
web生態(tài)系統(tǒng)雖然最近一直在取得進(jìn)步,但是在機(jī)器學(xué)習(xí)領(lǐng)域JavaScropt和Node.js相對(duì)Python和Java來(lái)說(shuō)還是稍弱,但是現(xiàn)在它們已經(jīng)有足夠的能力來(lái)處理機(jī)器學(xué)習(xí)方法的問(wèn)題了。Web語(yǔ)言也有一個(gè)優(yōu)勢(shì),就是你所有的JavaScript機(jī)器學(xué)習(xí)工程只需要瀏覽器支持。
現(xiàn)在大部分JavaScript機(jī)器學(xué)習(xí)的庫(kù)都比較新而且有的還一直在開(kāi)發(fā)中,但是已經(jīng)實(shí)現(xiàn)并且可以嘗試使用了。這篇文章我們將一起來(lái)了解這些庫(kù),一些比較酷的AI的web應(yīng)用你也可以上手試試。
1. Brain

Brain是一個(gè)容易創(chuàng)建神經(jīng)網(wǎng)絡(luò)的庫(kù),你可以基于它的輸入/輸出數(shù)據(jù)來(lái)訓(xùn)練。因?yàn)橛?xùn)練需要大量的數(shù)據(jù)資源,雖然有CDN的鏈接可以通過(guò)網(wǎng)絡(luò)直接加載到網(wǎng)頁(yè)上。但還是推薦使用Node.js的環(huán)境來(lái)運(yùn)行這個(gè)庫(kù)。這里是一個(gè) 例子 ,在它們的網(wǎng)站上,被訓(xùn)練來(lái)識(shí)別顏色的對(duì)比。
2. Deep playground

帶有教育性質(zhì)的web應(yīng)用讓你參與神經(jīng)網(wǎng)絡(luò)的世界,并探索它們不同的組件。它有一個(gè)不錯(cuò)的UI, 讓你來(lái)控制數(shù)據(jù)的輸入,神經(jīng)元的數(shù)量,用什么樣的算法,還有其它大量的可調(diào)參數(shù)來(lái)影響最終的結(jié)果。還有大量的可以從應(yīng)用中的場(chǎng)景中學(xué)習(xí)的東西 — 代碼是開(kāi)源的,而且用了一個(gè)可定義的 機(jī)器學(xué)習(xí)庫(kù) , 這個(gè)庫(kù)是基于TypeScript并且有豐富的文檔可查閱。
3. FlappyLearning

FlappyLearning是一個(gè)JavaScript項(xiàng)目,大概僅僅800行未合并壓縮的代碼,創(chuàng)建了一個(gè)機(jī)器學(xué)習(xí)的庫(kù)來(lái)實(shí)現(xiàn)了一個(gè)很好玩的例子來(lái)玩 Flappy Bird 。這個(gè)庫(kù)里用的人工智能技術(shù)叫 Neuroevolution 應(yīng)用了比較自然的一些神經(jīng)系統(tǒng)算法,根據(jù)每次迭代的成功和失敗來(lái)動(dòng)態(tài)的學(xué)習(xí)。這個(gè)例子非常容易運(yùn)行— 用瀏覽器打開(kāi)index.html文件就可以了。
4. Synaptic

可能是這個(gè)列表里最活躍的項(xiàng)目了, Synaptic是一個(gè)Node.js和瀏覽器可用的庫(kù),它是一個(gè)不可知結(jié)構(gòu),允許開(kāi)發(fā)者構(gòu)建任何類(lèi)型的神經(jīng)網(wǎng)絡(luò)。它有一些構(gòu)建好的結(jié)構(gòu),來(lái)讓它可以更快速的測(cè)試和對(duì)比不同的機(jī)器學(xué)習(xí)算法。同樣有比較完善的介紹和文檔,一些練習(xí)的例子,還有很多非常棒的指導(dǎo)來(lái)理解機(jī)器學(xué)習(xí)是怎么工作的。
5. Land Lines

Land Lines是一個(gè)非常有趣的Chrome Web嘗試,來(lái)找到地球的衛(wèi)星圖片。類(lèi)似讓用戶(hù)來(lái)涂鴉。這個(gè)應(yīng)用沒(méi)有任何的服務(wù)端請(qǐng)求:它整個(gè)都運(yùn)行在瀏覽器,要多虧?rùn)C(jī)器學(xué)習(xí)的聰明使用,和WebGL的非常棒的性能表現(xiàn),甚至在移動(dòng)設(shè)備上。你可以在這里找到源碼 GitHub 或閱讀整個(gè) 案例 。
6. ConvNetJS

雖然不再積極的被維護(hù)了,ConvNetJS是最深入的JavaScript學(xué)習(xí)庫(kù)。最初在斯坦福大學(xué)里被開(kāi)發(fā),ConvNetJS在GitHub上變得非常流行,許多社區(qū)開(kāi)始驅(qū)動(dòng)新的特性和指導(dǎo)手冊(cè)。它直接在瀏覽器運(yùn)行,支持多個(gè)學(xué)習(xí)技術(shù),并且它非常的初級(jí),更適合人們更多的體驗(yàn)神經(jīng)網(wǎng)絡(luò)。
7. Thing Translator

Thing Translator是一個(gè)網(wǎng)頁(yè)實(shí)驗(yàn),讓你的手機(jī)用不同的語(yǔ)言來(lái)識(shí)別現(xiàn)實(shí)對(duì)象。這個(gè)應(yīng)用完全應(yīng)用web技術(shù)并且整合了Google的兩個(gè)機(jī)器學(xué)習(xí)的API - Cloud Vision 來(lái)做圖片識(shí)別, Translate API 來(lái)做 神經(jīng)語(yǔ)言翻譯。
8. Neurojs

構(gòu)建AI系統(tǒng)基于強(qiáng)化學(xué)習(xí)的框架。可惜的是,這個(gè)開(kāi)源項(xiàng)目并沒(méi)有合適的文檔。但是其中的例子,一個(gè)汽車(chē)自動(dòng)駕駛的實(shí)驗(yàn),有對(duì)構(gòu)造神經(jīng)網(wǎng)絡(luò)的不同部分的詳細(xì)描述。這個(gè)庫(kù)是純JavaScript語(yǔ)言并且應(yīng)用了webpack和babel。
9. Machine Learning
另外的一個(gè)可以只用JavaScript來(lái)構(gòu)建并訓(xùn)練神經(jīng)網(wǎng)絡(luò)的庫(kù)。非常容易的安裝,需要Nodejs和客戶(hù)端,對(duì)于開(kāi)發(fā)人員非常容易上手的API調(diào)用。這個(gè)庫(kù)提供了大量的 示例 來(lái)實(shí)現(xiàn)了當(dāng)下流行的算法,幫助來(lái)理解核心的機(jī)器學(xué)習(xí)的原則。
10. DeepForge

DeepForge是一個(gè)用戶(hù)友好的開(kāi)發(fā)環(huán)境來(lái)使用深度學(xué)習(xí)。允許自己用一些圖形接口來(lái)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò),支持遠(yuǎn)程機(jī)器的訓(xùn)練模型,并有版本控制。項(xiàng)目運(yùn)行在瀏覽器,并基于Node.js和MongoDB,安裝過(guò)程對(duì)于web開(kāi)發(fā)人員非常熟悉。
非常優(yōu)秀的博客文章,由Burank Kanber撰寫(xiě),主要是關(guān)于機(jī)器學(xué)習(xí)的基礎(chǔ)原理。非常適合JavaScript開(kāi)發(fā)人員的閱讀和學(xué)習(xí)。如果你想深入了解機(jī)器學(xué)習(xí),這是一個(gè)非常棒的資源,推薦給大家。
總結(jié) 雖然基于JavaScript的機(jī)器學(xué)習(xí)生態(tài)并沒(méi)有充分的開(kāi)發(fā)出來(lái),我們推薦這些是你開(kāi)始了解機(jī)器學(xué)習(xí)和核心技術(shù)的的非常好的資源。文中列出的試驗(yàn)性的項(xiàng)目,你可以?xún)H使用瀏覽器或者一些JavaScript代碼,就能探索出非常多好玩的東西。
來(lái)自:http://www.iteye.com/news/32380
相關(guān)文章:
1. idea重置默認(rèn)配置的方法步驟2. idea給項(xiàng)目打war包的方法步驟3. IntelliJ IDEA設(shè)置自動(dòng)提示功能快捷鍵的方法4. IntelliJ IDEA安裝插件的方法步驟5. IntelliJ IDEA設(shè)置背景圖片的方法步驟6. idea 打包的jar運(yùn)行報(bào) "XXX中沒(méi)有主清單屬性"7. Docker 部署 Prometheus的安裝詳細(xì)教程8. idea打開(kāi)多個(gè)窗口的操作方法9. IntelliJ IDEA調(diào)整字體大小的方法10. IntelliJ IDEA刪除類(lèi)的方法步驟

網(wǎng)公網(wǎng)安備