2019年10月2日水曜日

【20時間】機械学習を使えるようにする(AWS SageMaker)スキル分解編



前回からの続きです。

やりたいこと、得たいスキルを分解しなければいけません。

でもイメージがわかない。

こちらで日本語訳がありましたので、参考にさせていただきます。

1つ目は、スキルを分解することです。何が出来るようになりたいかを正確に見極めて、そのスキルを検討し、小さい部分に分解するのです。私たちが一つのスキルと考えているものは、実際は大きなスキルのかたまりで、それには実に様々な要素が含まれます。
スキルをバラバラに分解すればするほど、実際に自分のしたいことを実現するのに役立つのはスキルのどの部分なのか、を見極められるようになるのです。それをまず練習するのです。もっとも大事なことから練習すれば、必要最小限度の時間で成績を伸ばすことができるようになるでしょう。

なるほど。特にSageMakerは大きなスキルのかたまりで、それには実に様々な要素が含まれていそうです。

今回の私のケースでやってみよう。機械学習で必要なスキルは、、、
・SageMaker
・まるばつゲーム

、、、全然分解できてません!

まあ、まるばつゲームは自明なので、SageMakerをどう使うかを調べてみます。 

amazonの本サイトからが間違いないでしょう。

完全マネージド型の機械学習サービス?
Jupyterオーサリングノートブックインスタンス?
よくわからない用語が出てくるが仕方がない。
いずれ分かると考え次へ。

1 サンプルデータを用意
2 モデルをトレーニング
3 モデルをデプロイする

サンプルデータってどうやって用意する?
まるばつゲームであれば、対戦中のまるばつの位置?

データセットをモデルのトレーニングに使用する前に、データ科学者は通常、それを確認して前処理します。
この辺りからから分からなくなってくるな、、、。
一般的に利用されている手書き番号のデータセットである MNIST データセットをモデルのトレーニングのために使用します。
MNISTデータセット、、、
ムニスト?

少し脱線して、MNISTデータセットについて調べる

これが分かりやすかった。
0から9までを機械学習させる元データか。

今作りたいのはまるばつゲームなので、MNISTは使わないんだけどな。。。


トレーニングジョブが大事そう。

トレーニングジョブを作成すると、Amazon SageMaker は ML コンピューティングインスタンスを起動し、トレーニングコードとトレーニングデータセットを使用してモデルをトレーニングします
図が出てきたので全体の流れをこれでつかんでみる。


もうトレーニングの話が終わってしまった。。。
トレーニングし終わったデータをつかって、デプロイすると予測ができる。。のかな


デプロイメントは、3 つのステップを踏むらしい。
1.Amazon SageMaker でモデルを作成する
2.HTTPS エンドポイントのエンドポイント構成を作成する
3.HTTPS エンドポイントの作成
頭に入らなくなってきた。。。。
一旦気にせず次へ。。。

なるほど
S3にあるデータセットをagentに入れると、Modelに入れて、その結果が返ってくるので、それをS3にアップする。

機械学習モデルを検証する
「機械学習モデル」は様々なものを作り、一番良い物は何かを考えるのか。
・・・・「機械学習モデル」がわかるようでわからない。。。
機械学習のモデル
教師あり学習
教師無し学習
強化学習
の3つのことか!
IBMのサイトは見やすい。良い発見だった。

オフラインテストとオンラインテストがあるみたいですが、よくわからないな。。。
一旦飛ばそう。

Amazon SageMaker プログラミングモデル
pythonで書くのかと思っていたら、コンソールやJupyterノートブックのサンプルを使い、コードを書かなくてもやれるらしい。
凝ったことをやるとpythonだろうが、それまではコーディング無しで進めて
スピードを重視したい。

これくらいで1時間かな。
まだドキュメントはありそうだ。
分解結構大変だぞ。カウフマンさん!