【探究】八種支持機器學習模型訓練的JavaScript框架
譯文【51CTO.com快譯】JavaScript開發人員大多傾向于尋找一些基于不同的機器學習算法、并可用于訓練機器學習模型的JavaScript框架。我們在下面所羅列出的各種機器學習算法,都適用于本文將為您展示的八種可用于模型訓練的JavaScript框架。
- 簡單線性回歸
- 多變量線性回歸
- 邏輯回歸
- 樸素貝葉斯(Naive Bayesian)
- K最近鄰算法(K-nearest neighbor,KNN)
- K-Means算法
- 支持向量機(Support vector machine,SVM)
- 隨機森林
- 決策樹
- 前饋神經網絡(Feedforward neural network)
- 深度學習網絡
在本文中,您將分別概覽到用于機器學習的不同JavaScript框架。它們分別是:
1.DeepLearn.js
Deeplearn.js是Google開發的、開源的機器學習JavaScript庫。它可以被用于不同的目的,包括訓練瀏覽器中的神經網絡、理解機器學習(ML)模型、以及被用作教育目的等。您可以在推理模式中運行各種預訓練的模型。開發者可以在Typescript(ES6 JavaScript)或ES5 JavaScript中編寫代碼。如想快速入門,您可以通過在HTML文件的head標簽中包含以下的代碼,并編寫用于構建模型的JS程序。
- <script src="https://cdn.jsdelivr.net/npm/deeplearn@latest"></script>
- <!-- or -->
- <script src="https://unpkg.com/deeplearn@latest"></script>
2.PropelJS
Propel是一個JavaScript庫,它為科學計算提供了一個支持GPU的、類似numpy(譯者注:它是Python的一種開源的數值計算擴展)的基礎架構。它可以被使用在NodeJS的各種應用以及瀏覽器中。
以下是為瀏覽器設置的代碼:
- <script src="https://unpkg.com/propel@3.1.0"></script>
而下面則是被用到NodeJS應用的代碼:
- npm install propel
- import { grad } from "propel";
PropelJS的文檔鏈接是:http://propelml.org/docs/。它的GitHub頁面為https://github.com/propelml/propel。
3.ML-JS
ML-JS為工作在NodeJS和各個瀏覽器環境中,提供了機器學習的多個工具。ML JS工具可以通過如下的代碼進行設置:
- <script src="https://www.lactame.com/lib/ml/2.2.0/ml.min.js"></script>
它能夠支持以下的機器學習算法:
- 無監督學習
- 主成分分析(Principal component analysis,PCA)
- K-Means聚類
- 監督學習
- 簡單線性回歸
- 多變量線性回歸
- 支持向量機(SVM)
- 樸素貝葉斯
- K最近鄰算法(KNN)
- 偏最小二乘(Partial least squares,PLS)
- 決策樹:CART
- 隨機森林
- 邏輯回歸
- 人工神經網絡
- 前饋神經網絡
4.ConvNetJS
ConvNetJS是一個JavaScript庫,它可以被用于在您的瀏覽器中,完全地訓練各種深度學習的模型(神經網絡)。這個庫也能夠被用在NodeJS的各種應用之中。
您可以從下載鏈接--http://cs.stanford.edu/people/karpathy/convnetjs/build/convnet-min.js 來獲取ConvNetJS的縮減庫,從而上手這個縮小版本的ConvNetJS。它的GitHub頁面為https://github.com/karpathy/convnetjs/releases。如下是其對應的加載代碼:
- <script src="convnet-min.js"></script>
我們進一步給出一些重要的參考頁面的地址:
- ConvNetJS的NPM軟件包:https://www.npmjs.com/package/convnetjs
- 入門文檔:https://cs.stanford.edu/people/karpathy/convnetjs/started.html
- 參考文檔:https://cs.stanford.edu/people/karpathy/convnetjs/docs.html
5.KerasJS
使用KerasJS和支持GPU的WebGL,您可以在瀏覽器中運行Keras的模型。除了CPU模式,該模型也可以在Node.js中運行。Keras的GitHub頁面為https://github.com/transcranial/keras-js。以下是可以在瀏覽器中運行的所有Keras的模型列表:
- MNIST的基本轉換(譯者注:MNIST是一個入門級的計算機視覺數據集)
- 經MNIST訓練的卷積變分自編碼器
- 基于MNIST的輔助分類器生成對抗網絡(AC-GAN)
- 經ImageNet訓練的50層殘差網絡(residual network)
- 經ImageNet訓練的Inception v3模型
- 經ImageNet訓練的DenseNet-121(極深網絡)模型
- 經ImageNet訓練的SqueezeNet v1.1模型
- 基于IMDB情感分類的雙向長短期記憶網絡(LSTM)
6.STDLib
STDLib是一個JavaScript庫,它能夠被用于構建高級的統計模型和各種機器學習庫。它也可以被用于數據可視化與探索性數據分析的繪制和圖形功能。
以下是與機器學習(ML)有關的各種相關庫的列表:
- 通過隨機梯度下降的線性回歸(@stdlib/ml/online-sgd-regression)
- 通過隨機梯度下降的二元分類(@stdlib/ml/online-binary-classification)
- 自然語言處理(@stdlib/nlp)
7.Limdu.js
Limdu.js是一個針對Node.js的機器學習框架。它支持以下方面:
- 二進制分類
- 多標簽分類
- 特征工程(Feature engineering)
- 支持向量機(SVM)
開發者可以使用如下的命令來安裝limdu.js:
- npm install limdu
8.Brain.js
Brain.js是一套用于訓練神經網絡和樸素貝葉斯分類器的JavaScript庫。您可以使用如下命令來設置Brain.js:
- npm install brain.js
開發者也可以使用以下代碼,在瀏覽器中包含該庫:
- <script src="https://raw.githubusercontent.com/harthur-org/brain.js/master/browser.js"></script>
如下的命令可以被用于安裝樸素貝葉斯分類器:
- npm install classifier
總結
在本文中,您了解到了可用于在瀏覽器、以及Node.js應用中訓練機器學習模型的不同JavaScript庫。如果您有興趣了解更多有關機器學習的文檔,我們建議您去查看我們的機器學習文檔集-- https://vitalflux.com/category/machine-learning/。
如果您覺得本文對您有所幫助,或者您對本文所提及的機器學習JavaScript框架有任何的疑問與建議,歡迎您在此留下評論或提出問題。
原文標題:8 Machine Learning JavaScript Frameworks to Explore,作者:Ajitesh Kumar
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】