JavaScript中的10個機器學習示例
隨著時間的推移,機器學習庫變得更快也更易于使用,其發展速度絲毫沒有放緩的跡象。雖然一直以來 Python 都是機器學習的重要語言,但目前的神經網絡可以在任何語言中運行,包括 JavaScript!
最近一段時間,Web 生態系統發展迅速,雖然 JavaScript 和 Node.js 在性能上仍然不及 Python 和 Java,但它們也已經強大到足以處理許多機器學習的問題。Web 開發語言非常易用,它們在這一點上受益匪淺——你只需要在 Web 瀏覽器運行一個 JavaScript ML 項目即可。
大多數 JavaScript 機器學習庫都還很年輕,仍然處理發展中,但是它們已經存在于此,你可以大膽的試著用用。通過本文,我們會了解到這些庫及其大量的很酷的示例。
1.Brain
Brain 是一個可以讓你輕松創建神經網絡的庫,然后你可以通過輸入/輸出數據對神經網絡進行訓練。雖然它可以通過 CDN 瀏覽器版本直接在 Web頁面中加載,但由于訓練會占用大量資源,所以***是在 Node.js 環境下進行。它們的網站上有一個小小的演示,它被訓練來識別色彩的對比度。
2. Deep playground
這是一個用于教育目的的 Web 應用程序,你可以在上面把玩神經網絡并且探索其各種組件。 它有一個很好的 UI 界面,允許您控制輸入數據、神經元數量、使用哪種算法以及想要在最終結果中反映的各種其他指標。你還可以從場景背后的應用那里學習到許多東西 —— 代碼是開放源代碼的,使用了一個用 TypeScript 編寫的定制的機器學習庫,并且擁有友好的文檔。
3. FlappyLearning
FlappyLearning 是一個 JavaScript 項目,大約有 800 行未簡化的代碼在管理著一個機器學習庫的創建,并且在一個有趣的演示中對它進行了場景化的實現,內容就是像一個演奏家那樣玩 Flappy Bird。 在這個庫中所使用的 AI 技術被稱為神經演化(Neuroevolution),并且應用了從自然界的神經系統中吸收到靈感而發現的神經系統的算法,從每次迭代的成功或失敗中進行動態學習。 演示非常容易運行起來 —— 只需要在瀏覽器中打開 index.html 即可。
4. Synaptic
Synaptic 是一個與架構無關的 Node.js 和瀏覽器庫,它有可能是這個列表中最活躍的項目,允許開發人員構建出他們想要的任何類型的神經網絡。 它內置了幾種架構,可以用來對不同的機器學習算法進行快速的測試和比較。它還擁有一個很好的對神經網絡的書面介紹、一些實例演示,以及其他一些用來揭示機器學習如何工作的很棒的教程。
5. Land Lines
Land Lines 是一個有趣的 Chrome Web 實驗,可以用來發現地球的衛星圖像,類似于用戶制作的涂鴉。 該應用程序不會有對服務器端的調用:它完全在瀏覽器中工作,并且得益于其對機器學習以及 WebGL 的巧妙運用,在移動設備上也能有出色的性能。 您可以在 GitHub 上查看它的源代碼,或者在此處查閱完整的學習案例。
6. ConvNetJS
ConvNetJS 雖然不再積極地進行維護了,但它仍然是***進的基于 JavaScript 的深入學習庫之一。 ConvNetJS 最初是在斯坦福大學開發出來的,隨后在 GitHub 上變得非常受歡迎,進而產生了許多社區驅動的功能和教程。 它可以直接在瀏覽器中跑起來,支持多種學習技術,而且相當底層,所以適合于對神經網絡具有較多經驗的人來使用。
7. Thing Translator
Thing Translator 是一項 Web 實驗,可以讓你的手機識別出現實生活中的物體對象,并用不同的語言對它們進行命名。該應用程序完全基于 Web 技術,并利用了 Google 的兩個機器學習 API —— Cloud Vision 來進行圖像識別而 Translate API 則進行自然語言的翻譯。
8. Neurojs
這是一個基于增強學習來建立人工智能系統的框架。可悲的是,它做為開源項目并沒有適當的文檔,不過有一個 Demo,是一個自動駕駛實驗,對構成神經網絡的不同部分進行了很好的描述。這個庫是純 JavaScript 的,使用了像 webpack 和 babel 這樣的現代工具。
9. Machine_learning
這是另外一個能讓我們 JavaScript 來設置和訓練神經網絡的庫。 在 Node.js 和客戶端中,它都非常容易進行安裝,并且具有非常干凈的 API,對于所有具備熟練技能級別的開發人員來說都是很合適的。 該庫提供了許多實現了流行算法的示例,以幫助你了解核心的機器學習原理。
10. DeepForge
DeepForge 是一個對用戶友好的開發環境,用來進行深度學習。 它能讓你使用簡單的圖形界面來設計出神經網絡,支持在遠程機器上進行模型培訓,并且內置了版本控制。 該項目在瀏覽器中能運行起來,基于 Node.js 和 MongoDB,大多數的 Web 開發人員對于其安裝過程都是非常熟悉的。
結語
雖然 JavaScript 機器學習的生態系統尚未完全開發,但你可以使用此列表中的資源來開啟學習 ML 之路,并獲得對核心技術的體驗。正如文章中的示例所示,你僅使用瀏覽器和一些熟悉的 JavaScript 代碼就能獲得大量有趣的東西。