整理 | 包包
3個月前,公司AI團隊給我們分享了關于如何利用機器學習幫助我們分析圖片、視頻中的明星以及地標等。作為一名Web的前端開發者,我很好奇機器學習是如何工作的。我并沒計劃要系統學習關于機器學習(ML)、神經網絡、NLP自然語言處理之類的知識,不過光看到這些概念就覺得很有意思,簡直是打開了一個新的世界。
大多數玩機器學習的同事在工作中都是用 Python 這樣的語言完成的,但既然身處在 JavaScript 這個生態中,為什么不試試一起使用JavaScript玩機器學習呢?而且使用 JavaScript 還允許運行在瀏覽器和服務器端、甚至是桌面程序上。通過做一些Search和研究發現,這里的確有一些簡潔的庫,可以將JavaScript、機器學習、DNN甚至NLP結合在一起,而且在瀏覽器端大多庫會調用WebGL來做機器學習的計算。
1.TensorFlow.js (https://js.tensorflow.org/)
TensorFlow.js是一個開源的基于硬件加速的 JavaScript 的庫,支持在瀏覽器或者 NodeJs 中來運行深度學習,并且能支持現有的Tensorflow 模型,由Google出品。可以說是前端深度學習框架Deeplearn.js的繼任者。它提供一系列簡潔和通俗易懂的API,用于訓練、部署模型。而且因為可以運行在瀏覽器,所以可以直接通過URL就能分享你的程序:
通過攝像頭來控制的吃豆人游戲
2. Brain.js (https://brain.js.org/)
Brain.js是同樣可以運行在瀏覽器和 NodeJs 服務器端、能為不同的任務提供不同類型的訓練網絡。特點是讓定義、訓練以及執行神經網絡變得特別簡單。個人覺得這個庫比較適合入門。比如以下短短幾行代碼已涵蓋創建、訓練和執行神經網絡,一目了然:
Brain.js 的色彩識別器
3. Synaptic.js (http://caza.la/synaptic)
Synaptic可以運行在瀏覽器和 NodeJs 服務器端的神經網絡庫,你能夠用它訓練一層甚至是二層神經網絡結構。該庫包括一些內置的體系結構,如多層感知機(MLP)、長短時記憶網絡、液體狀態機和能夠訓練真實網絡的訓練器。
Synaptic image-filter perceptron
4. Machine learning tools (https://github.com/mljs/ml)
Machine Learning tools是由 mljs 組織開發的一組庫,可以為 JavaScript 提供機器學習工具,包括監督和非監督學習、人工神經網絡 (ANN)、回歸算法,用于統計、數學等的支持庫,類似于 Python 中的scikit-learn。
5. compromise (http://compromise.cool/)
基本上是NLP自然語言處理庫 - 前端 JavaScript 實現的首選,這個庫加上自己的資料庫壓縮成min.js后文件大小可達到300k以下,這樣運行在瀏覽器和 NodeJs 服務器端都問題不大,具體可以做的東西是訓練自定義語義庫:劃分出分詞,獲取句子的各個詞性,可以把句子變積極消極、分詞等,比如以下例子:
JavaScript 雖然不是機器學習的最佳編程語言,不過隨著Web生態和人工智能技術近年來的不斷發展完善,越來越多這樣的機器學習工具庫被研發和發布。對于一名Web的前端開發者而言,用 JavaScript 作為入門機器學習的橋梁是個不錯的選擇,它同樣能幫助你開啟機器學習之旅。
參考資料:
《A Web Developer’s Guide to Machine Learning in JavaScript》
-
開源
+關注
關注
3文章
3524瀏覽量
43235 -
javascript
+關注
關注
0文章
525瀏覽量
54325 -
機器學習
+關注
關注
66文章
8477瀏覽量
133782
發布評論請先 登錄
相關推薦
SciChart—高性能的JavaScript圖表和圖形庫

Spire.XLS for JavaScript——多功能JavaScript電子表格庫(一)

javascript:void(0) 的作用是什么
如何選擇云原生機器學習平臺
什么是機器學習?通過機器學習方法能解決哪些問題?

NPU與機器學習算法的關系
人工智能、機器學習和深度學習存在什么區別

評論