🤖

機械学習素人が一週間でAWS MLS を取得するまで

2023/10/22に公開

はじめに

この度 AWS Certified Machine Learning - Specialty(MLS) に合格できました。

タイトルの通り、機械学習に関して知識も経験もない私が一週間の学習期間(2023/10/14~2023/10/21)で合格までこぎつけることができたので、自分のやったことをまとめたいと思います。
結構乱暴なやり方なので必ずしもおすすめはしませんが、何かの役に立てばと思います。

学習開始時点の状態

  • エンジニア5年目
  • AWS、インフラの実務経験は4ヶ月程でWebアプリ開発のキャリアがメイン
  • CFL, SAA, DVA, SOA, SAP, DOP, DBS, DAS を取得済み
  • DASを取得した直後に学習を開始
  • 機械学習は業務経験も自主学習もしたことがなく、MLSのサンプル問題を読んでも意味不明の状態

学習方法

  1. 問題を読む
  2. 問題文が理解できるようになるまで、分からない用語をChatGPT4に質問する
  3. 分からない用語をAnkiに記録する
  4. 問題を解く
  5. 解説を読む
  6. 解説で覚えるべき用語や知識をAnkiに記録する

という順番で学習を進めていきました。
MLSはAWS認定の中でも異色な試験で、機械学習の知識だけを問う問題が頻繁に出てきます。そのため問題文、選択肢に機械学習の用語が大量に出てくるので、それらを一つ一つAIに質問して潰していきます。
質問する時は、「機械学習初心者にも分かりやすく」などの条件をつけるべきです。でないと、機械学習の用語説明に機械学習の用語が使われるので理解できないと思います。
条件をつけると身近な例を用いて説明をしてくれるので、直感的にもわかりやすい解説を提示してくれます。

あなたは機械学習のスペシャリストです。
機械学習初心者にもわかりやすい説明を心がけてください。
t-SNE をわかりやすく説明してください。
---
もちろん、t-SNEをわかりやすく説明します。

**t-SNEとは?**
t-SNE(t-Distributed Stochastic Neighbor Embedding)は、高次元のデータを低次元(特に2次元や3次元)に圧縮するための手法です。この手法は、特に高次元データの可視化に役立ちます。

**基本的な考え方**:
t-SNEは、高次元のデータの点同士の「近さ」や「遠さ」を保持しながら、それを低次元にマッピングすることを目的としています。

**具体的な手順**:
1. 高次元空間での各点のペアに対して、その2つの点が「どれくらい近いか」を表す確率分布を計算します。
2. 低次元空間での各点のペアに対しても同様に、「どれくらい近いか」を表す確率分布を計算します。
3. 低次元の確率分布が、高次元のものとできるだけ似るように、低次元の点の位置を調整します。

**わかりやすい例**:
想像してみてください、あなたが星空の写真を持っていて、それを地上に敷かれた紙にプロジェクトするとしましょう。星々の間の距離や関係性をできるだけ保持しながら、3Dの宇宙空間を2Dの紙の上に映し出すのが目標です。

**t-SNEの特徴**:
- 高次元の複雑な構造やクラスタを、低次元で非常にうまく表現できます。
- t-SNEは確率的なアルゴリズムであり、実行するたびに異なる結果が出る可能性があります。
- 主成分分析 (PCA) などの他の次元削減手法と比べて、よりクラスタの形状や構造を保持する傾向がありますが、計算には時間がかかることがあります。

この説明はt-SNEの基本的な概要です。具体的な数学的な部分や詳しい動作原理を知りたい場合は、さらに詳しく説明することもできます。

ChatGPTの解説の中で分からない用語が出てきたら、更にそれも追加で質問します。
質問をして理解した知識はAnkiというアプリを使って暗記カードを作成し、覚えました。これは別のアプリを使ったり、ノートに単語をまとめたりするなど、各々のやり方で良いですが、一発で覚える人は基本いないと思いますので、用語の復習方法は持っておくべきでしょう。

上記の作業を、問題文が理解できるようになるまで繰り返し、ようやく問題を解きます。最初のうちは用語を調べてばかりになると思いますが、致し方ないでしょう。意味の分からない問題文を読んで勘で回答しても得るものはありません。
何問か進めると徐々に用語がわかるようになりペースが上がりますのでご心配なく。結構同じ用語ばかり出てきます。

問題を解いた後は他の試験と同じで、解説を読んで解答の根拠を理解します。分からない用語や新たな知識が解説の中で出てくると思いますので、それらもAnkiに追加します。

機械学習以外に、当然ながらAWSに関する問題が出題されます。
内容は主に下記の2種類です。

  1. データ収集、ETL関係のサービス
  2. 機械学習系のサービス

1については、AWS Certified Data Analytics - Specialty (DAS)に近い内容で、Kinesisシリーズ、Athena, Glue, Redshiftなどがよく出てきます。EMRについても出題されますが、大抵の場合、フルマネージドサービスを組み合わせるアーキテクチャが解答となるので、ユーザー側の責任が大きいEMRは最終手段に近いです。
DASと比較すると大分難易度は落ちるので、DASを先に取得しておくとMLSのAWS分野の学習はほぼ不要になりますが、そうでない場合はある程度時間を取ってBlackBeltなどを活用しながら各サービスの学習を進めた方が良いと思います。別資格の学習中の話ではありますが、個人的にKinesisシリーズの使い分けや、Glue、EMRのサービスの理解などは中々大変でした。
最近DASについては対策本が発売されたのでこちらも活用できます。

https://www.amazon.co.jp/要点整理から攻略する『AWS認定-データ分析-専門知識』-Compass-Booksシリーズ-NRIネットコム株式会社-ebook/dp/B0C23C64TF/ref=sr_1_2?__mk_ja_JP=カタカナ&crid=2WNCC9MKTO76&keywords=AWS+DAS&qid=1697961333&sprefix=aws+das%2Caps%2C263&sr=8-2

2についてはSageMakerを中心に、Transcribe, Textract, Comprehend などのサービスがよく出てきます。ですが、あまり深掘りされることはなく、各サービスの概要を知っていれば答えられるケースが多かったので、問題演習の中で出てきた際に少し調べるだけでも対応できると思います。設定内容に関する問題も機械学習寄りの知識で答えられる場合が多かったので、サービス自体の学習の重要度は高くないと思いました。

ChatGPTの精度は問題ないのか?

少しでも精度を上げるため質問は必ずGPT4を使って行いました。
念のため下記のG検定のテキストも購入し、ChatGPTの解答と照らし合わせましたが、概ね内容は合っていたように思います。MLSに出てくる用語は機械学習全体では基本的なもので、参考情報も多分にある分精度が高いのだと思います。
実際いい加減な解答が多かった場合、問題の正答率自体が上がらないと思いますので、少なくともMLSに合格するには問題ないくらいの精度は出せていたのでしょう。

https://www.amazon.co.jp/深層学習教科書-ディープラーニング-G検定-ジェネラリスト-公式テキスト/dp/4798165948/ref=sr_1_2_sspa?adgrpid=107191891852&hvadid=658646922453&hvdev=c&hvlocphy=1009318&hvnetw=g&hvqmt=e&hvrand=323735389059549124&hvtargid=kwd-836055191020&hydadcr=5121_13327239&jp-ad-ap=0&keywords=g検定+本&qid=1697958388&sr=8-2-spons&sp_csd=d2lkZ2V0TmFtZT1zcF9hdGY&psc=1

教材

こちらの問題集とサンプル問題、公式問題集を使いました。使い方はどれも同じです。

https://www.amazon.co.jp/AWS認定-機械学習-模擬問題集-2セット)-クラウド認定試験模擬問題集シリーズ-ebook/dp/B09Q2ZHDYQ/ref=sr_1_2?__mk_ja_JP=カタカナ&crid=2RYBFG74NY57M&keywords=AWS+MLS&qid=1697957002&sprefix=aws+mls%2Caps%2C171&sr=8-2

サンプル問題

https://d1.awsstatic.com/ja_JP/training-and-certification/docs-ml/AWS-Certified-Machine-Learning-Specialty_Sample-Questions.pdf

公式問題集

https://explore.skillbuilder.aws/learn/course/external/view/elearning/12525/aws-certified-machine-learning-specialty-practice-question-set-mls-c01-japanese?ml=sec&sec=prep

ご参考までに。

Discussion