0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

JavaScript也能玩機(jī)器學(xué)習(xí)—— 5個(gè)開(kāi)源 JavaScript 機(jī)器學(xué)習(xí)框架

張康康 ? 2018-10-10 13:43 ? 次閱讀

作者 | 極鏈科技Video++技術(shù)中心前端Team

整理 | 包包

3個(gè)月前,公司AI團(tuán)隊(duì)給我們分享了關(guān)于如何利用機(jī)器學(xué)習(xí)幫助我們分析圖片、視頻中的明星以及地標(biāo)等。作為一名Web的前端開(kāi)發(fā)者,我很好奇機(jī)器學(xué)習(xí)是如何工作的。我并沒(méi)計(jì)劃要系統(tǒng)學(xué)習(xí)關(guān)于機(jī)器學(xué)習(xí)(ML)、神經(jīng)網(wǎng)絡(luò)、NLP自然語(yǔ)言處理之類的知識(shí),不過(guò)光看到這些概念就覺(jué)得很有意思,簡(jiǎn)直是打開(kāi)了一個(gè)新的世界。

大多數(shù)玩機(jī)器學(xué)習(xí)的同事在工作中都是用 Python 這樣的語(yǔ)言完成的,但既然身處在 JavaScript 這個(gè)生態(tài)中,為什么不試試一起使用JavaScript機(jī)器學(xué)習(xí)呢?而且使用 JavaScript 還允許運(yùn)行在瀏覽器和服務(wù)器端、甚至是桌面程序上。通過(guò)做一些Search和研究發(fā)現(xiàn),這里的確有一些簡(jiǎn)潔的庫(kù),可以將JavaScript、機(jī)器學(xué)習(xí)、DNN甚至NLP結(jié)合在一起,而且在瀏覽器端大多庫(kù)會(huì)調(diào)用WebGL來(lái)做機(jī)器學(xué)習(xí)的計(jì)算。


1.TensorFlow.js (https://js.tensorflow.org/)

TensorFlow.js是一個(gè)開(kāi)源的基于硬件加速的 JavaScript 的庫(kù),支持在瀏覽器或者 NodeJs 中來(lái)運(yùn)行深度學(xué)習(xí),并且能支持現(xiàn)有的Tensorflow 模型,由Google出品??梢哉f(shuō)是前端深度學(xué)習(xí)框架Deeplearn.js的繼任者。它提供一系列簡(jiǎn)潔和通俗易懂的API,用于訓(xùn)練、部署模型。而且因?yàn)榭梢赃\(yùn)行在瀏覽器,所以可以直接通過(guò)URL就能分享你的程序:


通過(guò)攝像頭來(lái)控制的吃豆人游戲

2. Brain.js (https://brain.js.org/)

Brain.js是同樣可以運(yùn)行在瀏覽器和 NodeJs 服務(wù)器端、能為不同的任務(wù)提供不同類型的訓(xùn)練網(wǎng)絡(luò)。特點(diǎn)是讓定義、訓(xùn)練以及執(zhí)行神經(jīng)網(wǎng)絡(luò)變得特別簡(jiǎn)單。個(gè)人覺(jué)得這個(gè)庫(kù)比較適合入門(mén)。比如以下短短幾行代碼已涵蓋創(chuàng)建、訓(xùn)練和執(zhí)行神經(jīng)網(wǎng)絡(luò),一目了然:



Brain.js 的色彩識(shí)別器

3. Synaptic.js (http://caza.la/synaptic)

Synaptic可以運(yùn)行在瀏覽器和 NodeJs 服務(wù)器端的神經(jīng)網(wǎng)絡(luò)庫(kù),你能夠用它訓(xùn)練一層甚至是二層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。該庫(kù)包括一些內(nèi)置的體系結(jié)構(gòu),如多層感知機(jī)(MLP)、長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)、液體狀態(tài)機(jī)和能夠訓(xùn)練真實(shí)網(wǎng)絡(luò)的訓(xùn)練器。


Synaptic image-filter perceptron

4. Machine learning tools (https://github.com/mljs/ml)

Machine Learning tools是由 mljs 組織開(kāi)發(fā)的一組庫(kù),可以為 JavaScript 提供機(jī)器學(xué)習(xí)工具,包括監(jiān)督和非監(jiān)督學(xué)習(xí)、人工神經(jīng)網(wǎng)絡(luò) (ANN)回歸算法,用于統(tǒng)計(jì)、數(shù)學(xué)等的支持庫(kù),類似于 Python 中的scikit-learn。


5. compromise (http://compromise.cool/)

基本上是NLP自然語(yǔ)言處理庫(kù) - 前端 JavaScript 實(shí)現(xiàn)的首選,這個(gè)庫(kù)加上自己的資料庫(kù)壓縮成min.js后文件大小可達(dá)到300k以下,這樣運(yùn)行在瀏覽器和 NodeJs 服務(wù)器端都問(wèn)題不大,具體可以做的東西是訓(xùn)練自定義語(yǔ)義庫(kù):劃分出分詞,獲取句子的各個(gè)詞性,可以把句子變積極消極、分詞等,比如以下例子:


JavaScript 雖然不是機(jī)器學(xué)習(xí)的最佳編程語(yǔ)言,不過(guò)隨著Web生態(tài)人工智能技術(shù)近年來(lái)的不斷發(fā)展完善,越來(lái)越多這樣的機(jī)器學(xué)習(xí)工具庫(kù)被研發(fā)和發(fā)布。對(duì)于一名Web的前端開(kāi)發(fā)者而言,用 JavaScript 作為入門(mén)機(jī)器學(xué)習(xí)的橋梁是個(gè)不錯(cuò)的選擇,它同樣能幫助你開(kāi)啟機(jī)器學(xué)習(xí)之旅。

參考資料

《A Web Developer’s Guide to Machine Learning in JavaScript》


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 開(kāi)源
    +關(guān)注

    關(guān)注

    3

    文章

    3368

    瀏覽量

    42567
  • javascript
    +關(guān)注

    關(guān)注

    0

    文章

    519

    瀏覽量

    53889
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8424

    瀏覽量

    132764
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    javascript:void(0) 的作用是什么

    javascript:void(0) 在 HTML 和 JavaScript 中是一個(gè)常見(jiàn)的表達(dá)式,主要用來(lái)創(chuàng)建一個(gè)無(wú)操作的鏈接(通常是 標(biāo)簽)或者阻止默認(rèn)事件處理。具體來(lái)說(shuō),它的作用
    的頭像 發(fā)表于 12-31 15:55 ?197次閱讀

    傳統(tǒng)機(jī)器學(xué)習(xí)方法和應(yīng)用指導(dǎo)

    用于開(kāi)發(fā)生物學(xué)數(shù)據(jù)的機(jī)器學(xué)習(xí)方法。盡管深度學(xué)習(xí)(一般指神經(jīng)網(wǎng)絡(luò)算法)是一個(gè)強(qiáng)大的工具,目前非常流行,但它的應(yīng)用領(lǐng)域仍然有限。與深度
    的頭像 發(fā)表于 12-30 09:16 ?249次閱讀
    傳統(tǒng)<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>方法和應(yīng)用指導(dǎo)

    如何選擇云原生機(jī)器學(xué)習(xí)平臺(tái)

    當(dāng)今,云原生機(jī)器學(xué)習(xí)平臺(tái)因其彈性擴(kuò)展、高效部署、低成本運(yùn)營(yíng)等優(yōu)勢(shì),逐漸成為企業(yè)構(gòu)建和部署機(jī)器學(xué)習(xí)應(yīng)用的首選。然而,市場(chǎng)上的云原生機(jī)器
    的頭像 發(fā)表于 12-25 11:54 ?122次閱讀

    什么是機(jī)器學(xué)習(xí)?通過(guò)機(jī)器學(xué)習(xí)方法能解決哪些問(wèn)題?

    來(lái)源:Master編程樹(shù)“機(jī)器學(xué)習(xí)”最初的研究動(dòng)機(jī)是讓計(jì)算機(jī)系統(tǒng)具有人的學(xué)習(xí)能力以便實(shí)現(xiàn)人工智能。因?yàn)闆](méi)有學(xué)習(xí)能力的系統(tǒng)很難被認(rèn)為是具有智能的。目前被廣泛采用的
    的頭像 發(fā)表于 11-16 01:07 ?447次閱讀
    什么是<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>?通過(guò)<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>方法能解決哪些問(wèn)題?

    NPU與機(jī)器學(xué)習(xí)算法的關(guān)系

    在人工智能領(lǐng)域,機(jī)器學(xué)習(xí)算法是實(shí)現(xiàn)智能系統(tǒng)的核心。隨著數(shù)據(jù)量的激增和算法復(fù)雜度的提升,對(duì)計(jì)算資源的需求在不斷增長(zhǎng)。NPU作為一種專門(mén)為深度學(xué)習(xí)機(jī)
    的頭像 發(fā)表于 11-15 09:19 ?511次閱讀

    RISC-V如何支持不同的AI和機(jī)器學(xué)習(xí)框架和庫(kù)?

    RISC-V如何支持不同的AI和機(jī)器學(xué)習(xí)框架和庫(kù)?還請(qǐng)壇友們多多指教一下。
    發(fā)表于 10-10 22:24

    【「時(shí)間序列與機(jī)器學(xué)習(xí)」閱讀體驗(yàn)】+ 簡(jiǎn)單建議

    這本書(shū)以其系統(tǒng)性的框架和深入淺出的講解,為讀者繪制了一幅時(shí)間序列分析與機(jī)器學(xué)習(xí)融合應(yīng)用的宏偉藍(lán)圖。作者不僅扎實(shí)地構(gòu)建了時(shí)間序列分析的基礎(chǔ)知識(shí),更巧妙地展示了機(jī)器
    發(fā)表于 08-12 11:21

    如何理解機(jī)器學(xué)習(xí)中的訓(xùn)練集、驗(yàn)證集和測(cè)試集

    理解機(jī)器學(xué)習(xí)中的訓(xùn)練集、驗(yàn)證集和測(cè)試集,是掌握機(jī)器學(xué)習(xí)核心概念和流程的重要一步。這三者不僅構(gòu)成了模型學(xué)習(xí)與評(píng)估的基礎(chǔ)
    的頭像 發(fā)表于 07-10 15:45 ?4341次閱讀

    機(jī)器學(xué)習(xí)算法原理詳解

    機(jī)器學(xué)習(xí)作為人工智能的一個(gè)重要分支,其目標(biāo)是通過(guò)讓計(jì)算機(jī)自動(dòng)從數(shù)據(jù)中學(xué)習(xí)并改進(jìn)其性能,而無(wú)需進(jìn)行明確的編程。本文將深入解讀幾種常見(jiàn)的機(jī)器
    的頭像 發(fā)表于 07-02 11:25 ?1132次閱讀

    深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)的對(duì)比

    在人工智能的浪潮中,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)無(wú)疑是兩大核心驅(qū)動(dòng)力。它們各自以其獨(dú)特的方式推動(dòng)著技術(shù)的進(jìn)步,為眾多領(lǐng)域帶來(lái)了革命性的變化。然而,盡管它們都屬于機(jī)器
    的頭像 發(fā)表于 07-01 11:40 ?1429次閱讀

    機(jī)器學(xué)習(xí)的經(jīng)典算法與應(yīng)用

    關(guān)于數(shù)據(jù)機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找一種相應(yīng)的關(guān)系。Iris鳶尾花數(shù)據(jù)集是一個(gè)經(jīng)典數(shù)據(jù)集,在統(tǒng)計(jì)學(xué)習(xí)機(jī)器
    的頭像 發(fā)表于 06-27 08:27 ?1678次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的經(jīng)典算法與應(yīng)用

    機(jī)器學(xué)習(xí)8大調(diào)參技巧

    今天給大家一篇關(guān)于機(jī)器學(xué)習(xí)調(diào)參技巧的文章。超參數(shù)調(diào)優(yōu)是機(jī)器學(xué)習(xí)例程中的基本步驟之一。該方法稱為超參數(shù)優(yōu)化,需要搜索超參數(shù)的最佳配置以實(shí)現(xiàn)最
    的頭像 發(fā)表于 03-23 08:26 ?641次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>8大調(diào)參技巧

    微軟推出ONNX Runtime Web,利用WebGPU優(yōu)化瀏覽器機(jī)器學(xué)習(xí)性能

    作為微軟的 JavaScript 庫(kù),ONNX Runtime Web 使得網(wǎng)絡(luò)開(kāi)發(fā)者能在瀏覽器環(huán)境下部署機(jī)器學(xué)習(xí)模型,并提供多種硬件加速的后端支持。
    的頭像 發(fā)表于 03-05 14:23 ?1152次閱讀

    谷歌模型框架是什么軟件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌開(kāi)發(fā)的用于機(jī)器學(xué)習(xí)和人工智能的軟件框架,其中最著名的是TensorFlow。TensorFlow是一個(gè)
    的頭像 發(fā)表于 03-01 16:25 ?903次閱讀

    人工智能和機(jī)器學(xué)習(xí)的頂級(jí)開(kāi)發(fā)板有哪些?

    設(shè)備不必再依賴遠(yuǎn)程服務(wù)器或云來(lái)洞察傳感器數(shù)據(jù)或用戶輸入。像TinyML這樣的軟件框架正在發(fā)展成為微控制器專用的機(jī)器學(xué)習(xí)解決方案,而傳統(tǒng)的深度學(xué)習(xí)框架
    的頭像 發(fā)表于 02-29 18:59 ?851次閱讀
    人工智能和<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的頂級(jí)開(kāi)發(fā)板有哪些?