自社サービスにAI機能を!「機械学習」の要素を取り入れたJavaScriptライブラリ9選
*「機械学習」に挑戦しよう、と思って最初に多くの人の前に立ちはだかるのは、使用言語の壁でしょう。多くの機械学習モデルは、プログラミング言語に「Python」*を採用しているので、Web開発者には馴染みのないケースが多いようです。
しかし、仮にもし、Web開発者が慣れ親しんでいるJavaScriptで、機械学習の操作ができるとしたらどうでしょうか。実は、機械学習機能を取り入れたJavaScriptライブラリは、日々リリースされています。
そこで今回は、「機械学習」の要素を取り入れたJavaScriptライブラリ9選を紹介します。それぞれに得意や苦手がありますが、ご自身が機械学習で取り組んでみたいことと比べてみて、実現可能に思えるライブラリをぜひ手に取ってみてください。
「機械学習」の要素を取り入れたJavaScriptライブラリ9選
1. TensorFlow.js
TensorFlow.jsは、Googleが開発した機械学習ライブラリ「TensorFlow」(テンソルフロー)をベースに、WebGL技術と組み合わせて機械学習モデルを作成することのできるJavaScriptライブラリです。フレキシブルで直感的なAPIを使うことで、難しそうに感じられる機械学習を、フロントエンドエンジニアでも気軽に扱えるようになっています。
もとはdeeplearn.jsとして開発が進められていたライブラリですが、正式にGoogle傘下での開発が決まり、TensorFlowからのリリースとなりました。導入も数行のコードで簡単に行えるだけでなく、すでに存在する機械学習モデルを再教育することも可能です。npmやyarnを使っている人は、それぞれ直接ダウンロードを行うことができます。
2. Brain.js
Brain.jsは、ニューラルネットワークのライブラリの中でも人気のあるBrainと呼ばれるライブラリを、Node.jsや他のブラウザでも利用可能にしたJavaScriptライブラリです。
Brain.jsのデモサイトでは、ニューラルネットワークを用いた色調の学習モデルが公開されています。このライブラリを使うことで、ユーザーがよく行う動作を学ぶことができ、使えば使うほど賢くなっていきます。
3. Synaptic.js
Synaptic.jsは、Node.jsやブラウザを使って、構造にとらわれることのないニューラルネットワークモデルをJavaScriptを使って簡単に構築することができるライブラリです。ニューラルネットワークの一分類である多層パーセプトロン(MLP)などをビルドインとして組み込んでいるので、他のライブラリでは処理の難しいことも比較的簡単に行うことができます。
Synapticでは、ニューラルネットワークの基礎単位を「ニューロン」として、ニューロン同士をつなげたり、既存のニューロンのコネクションに間に割り込んだりさせることができます。Wikiに詳しい使用方法が書いてあります。
4. WebDNN
WebDNNは、東京大学情報理工学系研究科の原田・牛久研究室が公開している、国産のディープラーニング用フレームワークです。WebDNNとはWebブラウザ上で行うディープニューラルネットワーク(DNN)のことで、各エンドユーザー端末を使って機械学習を行うことで、サーバーの計算負荷を分散させることができます。
ニューラルネットワークは、インプットを行う「学習フェーズ」とアウトプットを行う「推論フェーズ」の2段階に分けることができます。WebDNNでは後者の「推論フェーズ」に特化することで、学習済みモデルを積極的に最適化することができます。
WebGLかWebAssemblyを搭載したWebブラウザか、その代わりとなるasm.jsを読み込んだ環境で実行可能です。すべての演算はWebブラウザ上で行われるので、画像などを外部サーバーに送ることもなく、プライバシー上の配慮もクリアできるライブラリだと言えます。
5. compromise
compromiseは、英文の言語解析に強みを持つ自然言語処理用のJavaScriptライブラリです。決して完璧とは言えないライブラリなので「妥協」(コンプロマイズ)という名前が付いていますが、英語学習アプリや添削アプリなど、英語を使うコンテンツを組み込む際にはあると便利な機能が満載です。
また、こうしたライブラリには珍しく、ファイルサイズは200KB以下と、jQuery本体と同じくらいの非常に小さいファイルサイズです。入力した英文から動詞だけを抜き出したり、インプットした文を疑問文に変えたりという機能が、わずか数行で実装できてしまいます。
6. Naetaptic.js
Neataptic.jsは、人工ニューラルネットワークの学習に遺伝的アルゴリズムを用いる「ニューロエボリューション」、および教師あり学習アルゴリズムのひとつである「誤差逆伝播法(バックプロパゲーション)」という手法をWebブラウザやNode.js上で簡単に実行することができるJavaScriptライブラリです。
LSTMやGRUといった主要なネットワークがビルドインで組み込まれているため、複雑な処理も比較的簡単に取り入れることができます。
7. ConvNet.js
ConvNet.jsは、スタンフォード大学の機械計算学部アンドレイ・カルパシー研究室が公開している、ディープラーニングをWebブラウザ上で実行するためのJavaScriptライブラリです。他のソフトウェアに一切依存せず、GPUの負荷もかからない、処理速度に定評のあるライブラリです。npm経由でも利用できます。
デモサイトには、機械学習で定番の、人が書いた数字を学習してどんな数字かを推論する「MNIST」や、画像を使って「車」や「犬」など写真に写っている一般物体の認識を行う「CIFAR-10」といった機械学習はもちろん、画像から特徴を掴んでペイントを行うような実験的なデモも公開されています。
8. Mind
Mindは、Node.jsとブラウザ上で、様々なインプットに対して推論を提供する、シンプルなJavaScriptライブラリです。できることは非常に限られますが、他のライブラリに比べると初心者にも十分扱える、プラグインのような存在です。すでに「学習済み」のため、すぐに使うことができるのも魅力のひとつです。
インプットに対して推論を提供することができるこのライブラリは、ユーザーの好みを学習することでオススメの商品をリコメンドする「あなたへのオススメ」機能の実装に便利です。もちろん、ユーザーが好みを伝えれば伝えるほど、「あなたへのオススメ」の精度は上がります。
9. Natural
Naturalは、英語だけでなくベトナム語や日本語にまで対応した、自然言語処理に特化したNode.js用のJavaScriptライブラリです。npmでは、「npm install natural」というコマンドで簡単にインストールすることができます。
正直なところ、まだまだ簡単な処理しかできません。2つの文の類似性を数値で表したり、文を文節で区切ったりといったことが可能です。使い方を工夫することで、非常に役立つものとなるでしょう。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- Googleとは、世界最大の検索エンジンであるGoogleを展開する米国の企業です。1998年に創業され急激に成長しました。その検索エンジンであるGoogleは、現在日本でも展開していて、日本のYahoo!Japanにも検索結果のデータを提供するなど、検索市場において圧倒的な地位を築いています。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- Googleとは、世界最大の検索エンジンであるGoogleを展開する米国の企業です。1998年に創業され急激に成長しました。その検索エンジンであるGoogleは、現在日本でも展開していて、日本のYahoo!Japanにも検索結果のデータを提供するなど、検索市場において圧倒的な地位を築いています。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- フレームワーク
- フレームワークとは、アプリケーションソフトを開発する際によく必要をされる汎用的な機能をまとめて提供し、アプリケーションの土台として機能するソフトウェアのことです。 元々は枠組み、下部構想、構造、組織という意味の英単語です。アプリケーションのひな形であり、これを開発に利用することで、大幅な効率の向上が見込めます。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- アプリ
- アプリとは、アプリケーション・ソフトの略で、もとはパソコンの(エクセル・ワード等)作業に必要なソフトウェア全般を指す言葉でした。 スマートフォンの普及により、スマートフォン上に表示されているアイコン(メール・ゲーム・カレンダー等)のことをアプリと呼ぶことが主流になりました。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- ファイルサイズ
- ファイルサイズとは、コンピューターで扱うファイルの容量のことをいいます。 ハードディスクなどにファイルを転送する際などは、この容量をしっかりチェックしておく必要があります。その数値に応じてデータをコンピューターに保存することができます。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- プラグイン
- プラグインは、本来あるソフトウェアに機能を拡張させるために追加するプログラムのことです。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
おすすめ記事
おすすめエントリー
同じカテゴリから記事を探す
カテゴリから記事をさがす
●Webマーケティング手法
- SEO(検索エンジン最適化)
- Web広告・広告効果測定
- SNSマーケティング
- 動画マーケティング
- メールマーケティング
- コンテンツマーケティング
- BtoBマーケティング
- リサーチ・市場調査
- 広報・PR
- アフィリエイト広告・ASP
●ステップ
●ツール・素材
- CMS・サイト制作
- フォーム作成
- LP制作・LPO
- ABテスト・EFO・CRO
- Web接客・チャットボット
- 動画・映像制作
- アクセス解析
- マーケティングオートメーション(MA)
- メールマーケティング
- データ分析・BI
- CRM(顧客管理)
- SFA(商談管理)
- Web会議
- 営業支援
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング
- フォント
- 素材サイト
●目的・施策
- Google広告
- Facebook広告
- Twitter広告
- Instagram広告
- LINE運用
- LINE広告
- YouTube運用
- YouTube広告
- TikTok広告
- テレビCM
- サイト制作・サイトリニューアル
- LP制作・LPO
- UI
- UX
- オウンドメディア運営
- 記事制作・ライティング
- コピーライティング
- ホワイトペーパー制作
- デザイン
- セミナー・展示会
- 動画・映像制作
- データ分析・BI
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング