• 簡(jiǎn)單線(xiàn)性回歸
• 多變量線(xiàn)性回歸
• 邏輯回歸
• 樸素貝葉斯(Naive Bayesian)
• K最近鄰算法(K-nearest neighbor,KNN)
• K-Means算法
• 支持向量機(Support vector machine,SVM)
• 隨機森林
• 決策樹(shù)
• 前饋神經(jīng)網(wǎng)絡(luò )(Feedforward neural network)
• 深度學(xué)習網(wǎng)絡(luò )
在本文中,您將分別概覽到用于機器學(xué)習的不同JavaScript框架。它們分別是:
1.DeepLearn.js
Deeplearn.js是Google開(kāi)發(fā)的、開(kāi)源的機器學(xué)習JavaScript庫。它可以被用于不同的目的,包括訓練瀏覽器中的神經(jīng)網(wǎng)絡(luò )、理解機器學(xué)習(ML)模型、以及被用作教育目的等。您可以在推理模式中運行各種預訓練的模型。開(kāi)發(fā)者可以在Typescript(ES6 JavaScript)或ES5 JavaScript中編寫(xiě)代碼。如想快速入門(mén),您可以通過(guò)在HTML文件的head標簽中包含以下的代碼,并編寫(xiě)用于構建模型的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庫,它為科學(xué)計算提供了一個(gè)支持GPU的、類(lèi)似numpy(譯者注:它是Python的一種開(kāi)源的數值計算擴展)的基礎架構。它可以被使用在NodeJS的各種應用以及瀏覽器中。
以下是為瀏覽器設置的代碼:
<script src="https://unpkg.com/propel@3.1.0"></script>
而下面則是被用到NodeJS應用的代碼:
npm install propel 2.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)境中,提供了機器學(xué)習的多個(gè)工具。ML JS工具可以通過(guò)如下的代碼進(jìn)行設置:
<script src="https://www.lactame.com/lib/ml/2.2.0/ml.min.js"></script>
它能夠支持以下的機器學(xué)習算法:
• 無(wú)監督學(xué)習
• 主成分分析(Principal component analysis,PCA)
• K-Means聚類(lèi)
• 監督學(xué)習
• 簡(jiǎn)單線(xiàn)性回歸
• 多變量線(xiàn)性回歸
• 支持向量機(SVM)
• 樸素貝葉斯
• K最近鄰算法(KNN)
• 偏最小二乘(Partial least squares,PLS)
• 決策樹(shù):CART
• 隨機森林
• 邏輯回歸
• 人工神經(jīng)網(wǎng)絡(luò )
• 前饋神經(jīng)網(wǎng)絡(luò )
4.ConvNetJS
ConvNetJS是一個(gè)JavaScript庫,它可以被用于在您的瀏覽器中,完全地訓練各種深度學(xué)習的模型(神經(jīng)網(wǎng)絡(luò ))。這個(gè)庫也能夠被用在NodeJS的各種應用之中。
您可以從下載鏈接--http://cs.stanford.edu/people/karpathy/convnetjs/build/convnet-min.js 來(lái)獲取ConvNetJS的縮減庫,從而上手這個(gè)縮小版本的ConvNetJS。它的GitHub頁(yè)面為https://github.com/karpathy/convnetjs/releases。如下是其對應的加載代碼:
<script src="convnet-min.js"></script>
我們進(jìn)一步給出一些重要的參考頁(yè)面的地址:
• ConvNetJS的NPM軟件包:https://www.npmjs.com/package/convnetjs
• 入門(mén)文檔: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頁(yè)面為https://github.com/transcranial/keras-js。以下是可以在瀏覽器中運行的所有Keras的模型列表:
• MNIST的基本轉換(譯者注:MNIST是一個(gè)入門(mén)級的計算機視覺(jué)數據集)
• 經(jīng)MNIST訓練的卷積變分自編碼器
• 基于MNIST的輔助分類(lèi)器生成對抗網(wǎng)絡(luò )(AC-GAN)
• 經(jīng)ImageNet訓練的50層殘差網(wǎng)絡(luò )(residual network)
• 經(jīng)ImageNet訓練的Inception v3模型
• 經(jīng)ImageNet訓練的DenseNet-121(極深網(wǎng)絡(luò ))模型
• 經(jīng)ImageNet訓練的SqueezeNet v1.1模型
• 基于IMDB情感分類(lèi)的雙向長(cháng)短期記憶網(wǎng)絡(luò )(LSTM)
6.STDLib
STDLib是一個(gè)JavaScript庫,它能夠被用于構建高級的統計模型和各種機器學(xué)習庫。它也可以被用于數據可視化與探索性數據分析的繪制和圖形功能。
以下是與機器學(xué)習(ML)有關(guān)的各種相關(guān)庫的列表:
• 通過(guò)隨機梯度下降的線(xiàn)性回歸(@stdlib/ml/online-sgd-regression)
• 通過(guò)隨機梯度下降的二元分類(lèi)(@stdlib/ml/online-binary-classification)
• 自然語(yǔ)言處理(@stdlib/nlp)
7.Limdu.js
Limdu.js是一個(gè)針對Node.js的機器學(xué)習框架。它支持以下方面:
• 二進(jìn)制分類(lèi)
• 多標簽分類(lèi)
• 特征工程(Feature engineering)
• 支持向量機(SVM)
開(kāi)發(fā)者可以使用如下的命令來(lái)安裝limdu.js:
npm install limdu
8.Brain.js
Brain.js是一套用于訓練神經(jīng)網(wǎng)絡(luò )和樸素貝葉斯分類(lèi)器的JavaScript庫。您可以使用如下命令來(lái)設置Brain.js:
npm install brain.js
開(kāi)發(fā)者也可以使用以下代碼,在瀏覽器中包含該庫:
<script src="https://raw.githubusercontent.com/harthur-org/brain.js/master/browser.js"></script>
如下的命令可以被用于安裝樸素貝葉斯分類(lèi)器:
npm install classifier