2019年11個值得研究的Javascript機(jī)器學(xué)習(xí)庫
雖然大部分機(jī)器學(xué)習(xí)都是用Python這樣的語言完成的,但在Javascript生態(tài)系統(tǒng)中,其前端和后端社區(qū)都很棒。這個有趣的交集促使我們探索并嘗試了一起使用Javascript和機(jī)器學(xué)習(xí)的奇怪可能性。這里分享有一些有趣的庫,它們將Javascript,機(jī)器學(xué)習(xí),DNN甚至NLP結(jié)合在一起。
1. Brain.js
Brain.js是神經(jīng)網(wǎng)絡(luò)的Javascript庫,取代了(現(xiàn)已棄用的)“ 大腦 ”庫,可以與Node.js一起使用或在瀏覽器中使用(筆記計(jì)算),并為不同的任務(wù)提供不同類型的網(wǎng)絡(luò)。
Github地址:https://github.com/BrainJS/brain.js
這是一個訓(xùn)練網(wǎng)絡(luò)識別顏色對比的演示。
2. Synaptic
Synaptic是一個用于node.js和瀏覽器的Javascript神經(jīng)網(wǎng)絡(luò)庫,它使您能夠訓(xùn)練第一級甚至二級神經(jīng)網(wǎng)絡(luò)架構(gòu)。該項(xiàng)目包括一些內(nèi)置架構(gòu),如多層感知器,多層長短期記憶網(wǎng)絡(luò),液體狀態(tài)機(jī)和能夠訓(xùn)練真實(shí)網(wǎng)絡(luò)的培訓(xùn)師。
Github地址:https://github.com/cazala/synaptic
3. Neataptic
該庫為瀏覽器和Node.js提供快速神經(jīng)進(jìn)化和反向傳播,其中包括一些內(nèi)置網(wǎng)絡(luò),包括感知器,LSTM,GRU,Nark等。這是一個簡單培訓(xùn)的新手教程。
Github地址:https://github.com/wagenaartje/neataptic
4. ConvNetJS
由斯坦福大學(xué)博士開發(fā),這個受歡迎的圖書館在過去的4年里一直沒有得到維護(hù),但絕對是名單上最有趣的項(xiàng)目之一。它是神經(jīng)網(wǎng)絡(luò)的Javascript實(shí)現(xiàn),支持通用模塊,分類,回歸,實(shí)驗(yàn)強(qiáng)化學(xué)習(xí)模塊,甚至能夠訓(xùn)練處理圖像的卷積網(wǎng)絡(luò)。
Github地址:https://github.com/karpathy/convnetjs
它目前支持:
- 常見的神經(jīng)網(wǎng)絡(luò)模塊(完全連接的層,非線性)
- 分類(SVM / Softmax)和回歸(L2)成本函數(shù)
- 能夠指定和訓(xùn)練處理圖像的卷積網(wǎng)絡(luò)
- 基于Deep Q Learning 的實(shí)驗(yàn)性強(qiáng)化學(xué)習(xí)模塊
5. WebDNN
這個日本制造的JavaScript庫是為了在瀏覽器上快速運(yùn)行深度神經(jīng)網(wǎng)絡(luò)預(yù)訓(xùn)練模型而構(gòu)建的。由于在瀏覽器上執(zhí)行DNN會消耗大量計(jì)算資源,因此該框架優(yōu)化了DNN模型以壓縮模型數(shù)據(jù)并通過JavaScript API(如WebAssembly和WebGPU)加速執(zhí)行。
利用WebDNN做神經(jīng)網(wǎng)絡(luò)風(fēng)格轉(zhuǎn)移的例子:
6. Deeplearnjs
這個流行的庫允許您在瀏覽器中訓(xùn)練神經(jīng)網(wǎng)絡(luò)或在推理模式下運(yùn)行預(yù)先訓(xùn)練的模型,甚至聲稱它可以用作網(wǎng)絡(luò)的NumPy。通過易于獲取的API,該庫可用于實(shí)用的有用應(yīng)用程序,并且可以進(jìn)行主動維護(hù)。
Github地址:https://github.com/tensorflow/tfjs-core
作為TensorFlow.js生態(tài)系統(tǒng)的一部分,它如今托管在@tensorflow/tfjs-core了,是TensorFlow.js核心API,它提供低級,硬件加速的線性代數(shù)運(yùn)算和用于自動區(qū)分的急切API。
7. Tensorflow Deep Playground
Tensorflow Deep Playground是神經(jīng)網(wǎng)絡(luò)的交互式可視化,使用d3.js和TypeScript編寫。雖然這個項(xiàng)目基本上包含了一個非常基本的張量流動操場,但它可以用于不同的手段或者用作不同目的的非常令人印象深刻的教育功能。
Github地址:https://github.com/tensorflow/playground
8. Compromise
這個非常受歡迎的庫提供“javascript中適度的自然語言處理”。這是非常基本和直接的,甚至可以編譯成一個小文件。出于某種原因,其適度的“足夠好”的方法使其成為幾乎任何需要基本NLP的應(yīng)用程序的主要候選者。
Github地址:https://github.com/spencermountain/compromise
9. Neuro.js
這個漂亮的項(xiàng)目是一個深度學(xué)習(xí)和強(qiáng)化學(xué)習(xí)Javascript庫框架的瀏覽器。實(shí)現(xiàn)基于完整堆棧神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)框架以及擴(kuò)展的強(qiáng)化學(xué)習(xí)支持,一些人認(rèn)為該項(xiàng)目是convnetjs的繼承者。
Github地址:https://github.com/janhuenermann/neurojs
10. ml.js
一組存儲庫,為mljs組織開發(fā)的Javascript提供機(jī)器學(xué)習(xí)工具,包括監(jiān)督和無監(jiān)督學(xué)習(xí),人工神經(jīng)網(wǎng)絡(luò),回歸算法和統(tǒng)計(jì),數(shù)學(xué)等支持庫。這是一個簡短的演練。
Github地址:https://github.com/mljs
11. Mind
Node.js和瀏覽器的靈活神經(jīng)網(wǎng)絡(luò)庫,基本上學(xué)習(xí)如何進(jìn)行預(yù)測,使用矩陣實(shí)現(xiàn)來處理訓(xùn)練數(shù)據(jù)并啟用可配置的網(wǎng)絡(luò)拓?fù)洹D€可以即插即用已經(jīng)學(xué)過的“思想”,這對您的應(yīng)用程序非常有用。
Github地址:https://github.com/stevenmiller888/mind