#1.概要
AIをプロダクトに組み込もうとした時に、障壁になるのがプラットフォームの違いがあります。
.NetベースのツールやWebに組み込むのにLinuxで開発したモジュールを組み込むのが簡単にできないという現状があります。
MicroSoftから機械学習フレームワークのML.NETが公開されていますので、ドキュメントを読んでその仕組みを理解していこうと思います。
2020/4/17追記:
ML.NETは統計データから予測を行う機械学習のアルゴリズムを提供していますが、
ディープラーニングで行われている画像や音声を学習するアルゴリズムや仕組みは現在ありません。
画像や音声などの学習済みモデルを利用することが可能となっています。
#2.学習モデルについて
詳しく読んでいく前に、事前に調べたことや、試して分かったことを以下に挙げます。
-
モデル作成はVisualStudio上でモデルビルダーから作成するか、AutoMLによるコマンドラインから作成することになる。また、これらのツールは、ツールにより読み込まれたデータからモデルアルゴリズムを自動で選定し、モデルを作成するためのソースコードが自動で生成される。
-
ツールにより自動生成されたソースコードをコンソールやWindowsFormに組み込んでトレーニング済みモデルを再生成することや、トレーニング済みモデルを使用することができる。
-
トレーニング済みモデルをAzureやWeb上にデプロイして、作成したトレーニング済みモデルを使用することも可能。
-
chainerやtensorflowなど、ディープラーニングのフレームワークはほとんどがGPUを使用できるが、ML.NETは現状CPUのみとなっている。将来GPU対応予定らしい。
→ ディープラーニングと機械学習が混同しているため取り消しました。(2020/4/17)
#3.ドキュメントについて
MicroSoftのドキュメントは昔は読みにくかったですが、最近は他のサイトで調べるよりも本家を見た方が知りたいものが出てくることがよくあります。
ただ、本ではないためどこから見たらよいか初見ではわかりませんでした。
全体をみた結果、以下の順で読み進めることにしました。
- ML.NET の基礎
- 10 分で開始する
- モデルビルダー&CLI
- 概念
- 応用
- 実践
- ツールを使う(モデルビルダー&CLI)
- ツールを使わずに一から作る
※ドキュメントが定期的に追加されているようですので2020/4/16時点の内容になります。
#4.まとめ
読んで理解するにはなかなかのボリュームですが全体を流し読みした感じだと、機械学習に必要なエッセンスはすべて含まれている感じでした。
ただし、ML.NETに用意されていない独自のアルゴリズムのモデルを作りたいという方はお勧めできないと思います。
やりたいことがチュートリアルの内容と近い場合は、すぐに実践できそうです。
また、フレームワーク間でモデルを相互運用できるONNX(オニキス)をサポートしていたり、tensorflowで学習したモデルを使用できたりしますので、AIのフロントエンドとしてML.NETが使えるのではないでしょうか?
次回からは、実際に動かしつつ仕組みを理解していこうと思います。
→ML.NETドキュメントリーディング#2