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