はじめに
機械学習やJavaScriptの勉強がてらに、ブラウザ上で機械学習の手法等をデモできるサイトを作成しています。
このまま埋もれさせるのもどうかと思い、せっかくなので公開しました。
https://ai-on-browser.github.io/
これは何?
- 様々な機械学習をブラウザ上で簡単に試すことができるサイトです
- クライアントサイドのJavaScriptのみで動作します
- 機械学習部分は(行列演算含め)外部ライブラリを一切使用していません
- コードはGithubに公開しています
どうやって使う?
- https://ai-on-browser.github.io/ にアクセスする
- Task(処理)を選択する
- Model(モデル)を選択する
- Modelに応じてボタンなどを操作し、学習を行う
- 必要に応じて、左側のpalletを使ってデータを作成する
何ができる?
-
データ
- 手動で作成する二次元データ
- Iris
など
-
処理
- クラスタリング、分類、回帰、外れ値検出、次元削減、特徴量選択、密度推定、データ生成、補間
- 強化学習
- 平滑化、時系列予測、変化点検知
-
モデル
- 古典的機械学習手法
- ニューラルネットワーク(GANやDQNを含む)
など
最新の一覧はREADME.mdにあります。
その他
- 実装時に参考にさせていただいたサイトは、ソースコードに記載しています。
- Google Chromeの最新版を推奨します。(Safariでは動作しないことを確認しています)
- 行列演算もニューラルネットワーク関連処理も手作りですので、処理速度は遅いと考えてください。
- UIが貧弱です。
- バグがそこかしこに散らばっています。
- いくつか明確に動作していないと思われるモデルが存在します。(VAEなど)
- ソースコードにコメントがほぼ書いていない、eslintでチェックするとおそらく大量に警告される、そんな劣悪なコードです。
- コードの圧縮を行っていません。
- ν-SVMの実装ができていません。なので、SVCは実装しましたが、SVRとOne class SVMは実装できていません。(libsvmの実装を読むのが辛い)
- 趣味でやっていることなので、色々と許してください。
おわりに
車輪の再発明ではありますが、誰かの役に立てば幸いです。
またそのうちに、それぞれの手法を説明していこうと考えています。