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