フューチャー技術ブログ

AWS認定 Machine learning specialty 合格記

TIGの伊藤真彦です。

先日もう一人の伊藤さんがTerraform Associate合格記を書いてくれました。この記事に続いて資格の記事を書いてみようと思います。余談ですがこちらの伊藤さんとの区別がつくように自己紹介はフルネームで書いています。

私はAWSの資格を4つほど持っているのですが、今回はAWS認定 機械学習 - 専門知識について紹介します。ちなみに機械学習の資格は実務経験0から2カ月ほど学習して合格しました。

前提知識0の人も対象になるような記事を目指して記載します。

この記事の目的

AWS認定試験で要求される知識、学習法についてまとめます。
大まかな概要、各分野の具体的な内容を記載していきます。

目次

  1. AWS 認定 機械学習 – 専門知識とは
  2. 要求される知識
  3. 学習方法について
  4. まとめ

AWS 認定 機械学習 – 専門知識とは

その名の通り、AI開発、データサイエンスを業務で行う人向けの資格試験です。
AWSの認定試験の中では珍しく、AWSのサービスに特化した試験ではなく機械学習の基礎知識も要求される点が特徴です。

要求される知識

AWS認定の公式サイトには下記のように書いてあります。

認定によって検証される能力

  • 与えられたビジネスの問題に対し、適切な ML アプローチを選び、その理由を説明できる
  • ML ソリューションの実装に適した AWS のサービスを選択する
  • スケーラビリティ、コスト効率、信頼性、安全性に優れた ML ソリューションを設計し、実装する

推奨される知識と経験

  • AWS クラウドでの ML/深層学習ワークロードの開発、設計、実行における、1~2 年の経験
  • 基本的な ML アルゴリズムの基となる考えを表現する能力
  • 基本的なハイパーパラメータ最適化の実践経験
  • ML および深層学習フレームワークの使用経験
  • モデルトレーニングのベストプラクティスを実行する能力
  • デプロイと運用のベストプラクティスを実行する能力

自分の受験経験から要求される知識を下記のカテゴリに分類しました。

  • 目的に対し最適な機械学習アルゴリズムを選定するための知識
  • 作成した機械学習モデルの性能を判定するための知識
  • データエンジニアリングに関する知識
  • 分散処理システムの構築などインフラ寄りの知識
  • 機械学習のAWSマネージドサービスに対する知識
  • サービスの構築、運用に関する知識

目的に対し最適な機械学習アルゴリズムを選定するための知識

機械学習モデルにはさまざまな学習アルゴリズムが存在します。
機械学習を用いて課題を解決するために、目的に対し最適なアルゴリズムの選択を行う知識が要求されます。

例えば画像分類にはCNN(畳み込みニューラルネットワーク)が、時系列データの取り扱いにはRNN(再帰型ニューラルネットワーク)を選定できるような知識です。

言語処理に特化したアルゴリズム、音声処理における最適解など、目的から手段を導き出すためにはこれらのアルゴリズムがどのような分野を得意とするかを学ぶ必要があります。線形学習やロジスティック回帰など基礎的なアルゴリズムや、CNN、RNNの特徴、tf-idfなどの一般的な知識を理解できている事が要求されます。特に、Amazon SageMakerで提供される組み込みアルゴリズムの概要を理解して、各アルゴリズムの特徴を理解する必要があります。

アルゴリズムの種類、概要はAmazon SageMakerのドキュメントに記載されています。

例えば、ニュースの記事と要約のデータセットを学習させ、ニュース記事から要約を自動生成したい、というユースケースが出題され、4択程度のSageMaker組み込みアルゴリズムが選択肢として用意されます。
その中からSequence to Sequenceなどを選べるようになることが目的です。
例題

カスタマーサポートのシステム構築を行っています。
お問い合わせの内容の類似性に基づいて、重複する質問を特定したいと考えています。
この問題の解決にどのSageMakerアルゴリズムが利用できますか。
A: BlazingText
B: Object2Vec
C: K-means
D: DeepAR

正解: B

作成した機械学習モデルの性能を判定するための知識

機械学習モデルの性能を示す指標として、正確度(accuracy)、精度(precision)、再現率(recall)といった概念が存在します。少し高度なものではAUC、ROCなどの指標があります。

これらの指標や、指標の測定で用いるパラメータであるTP、FP、TN、FN(真陽性、偽陽性、真陰性、偽陰性)について理解することが求められます。TP、FP、TN、FNがテーブル形式でまとめられた表から精度を計算するような問題も出題されることがあります。(数字としてはその場で電卓を使わずに計算できるようなものです。)

また、構築したいソリューションにおいてどの指標が重要視されるのかを理解する必要があります。例えばスパムメールを検知する機械学習モデルにおいて最も重要視される指標は正確度、精度、再現率のうちどれかを答えるような問題が出題されます。

例題

サブスクリプションサービスを提供するA社では、顧客の解約を防ぐため、顧客が解約する可能性があるかどうかを予測するモデルを2つ構築しました。
モデルAは、100の偽陰性(FN)と40の偽陽性(FP)で92%の精度です。
モデルBは、40のFNと100のFPで92%の精度でした。
2つのモデルのどちらがA社にとってコスト効果が高いでしょうか。

正解: モデルB

機械学習モデルの性能向上に関する知識

機械学習モデルの構築では、期待した性能のモデルを構築できない場合にその原因を推測する必要があります。

  • 機械学習モデルが過学習の状態に陥った際にデータにどのような前処理を施すか。
  • 充分な数の学習データが集まっていない場合にどのような手段で性能の高い機械学習モデルを構築するか

といったトピックに対する問題が出題されます。

正規化、正則化、データの水増し、箱ひげ図の読み取り方、学習率などハイパーパラメータの調整といった機械学習の知識が求められます。

例題

作成した機械学習モデルが、トレーニングデータでは高精度であるが、テストデータに対して低精度であることに気付きました。
この問題の解決が見込める手法はどれでしょうか。
A: データの正則化処理を削除する
B: 使用するトレーニングデータを少なくする
C: データから利用する特徴量を減らす

正解: C

分散処理システムの構築などインフラ寄りの知識

機械学習での分散処理システムに関する知識とは、ApacheHadoop, Hive, Sparkといった分散処理フレームワークに対する理解と換言する事ができます。

AWSのマネージドサービスとしてはAmazon EMRAWS Glueについて理解していることが要求されます。またそれらのサービスと連携するAmazon AthenaAmazon Kinesisについての知識や、データウェアハウスとしてAmazon Redshift、機械学習におけるAmazon S3の使用例が出題範囲に含まれます。

これらのサービスは実体験無しで各サービスの違いや挙動を理解するのがとても難しい分野ですが、出題されたユースケースに対し、どのようなサービスの組み合わせが最適か考えるような問題が出題されます。

例題:

ソーシャルゲームの運用で、JSON形式の利用分析データを取り込むシステムの構築を行います。基盤となるインフラストラクチャを管理することを望んでおらず、データをすぐに利用できるようにしたいと考えています。ソリューションはコスト効率が高く、スケーラブルでなければなりません。どのようなソリューションが推奨されますか。

A:
Kinesis Data Streamsを使用してデータを取り込み、Lambda関数を使用してストリームをS3に保存します。
15分ごとにGlue ETLジョブを起動して、データをJSONからParquet形式に変換します。
AWS Glueクローラーを使用して、データをAthenaテーブルに読み込みます。

B:
S3への書き込み中にデータをParquet形式に変換する設定でKinesis Firehoseを使用してデータを取り込みます。
AWS Glueクローラーを使用して、データをAthenaテーブルに読み込みます。

正解: B

機械学習のAWSマネージドサービスに対する知識

Amazon Sage MakerAmazon EMRなどのマネージドサービスの詳細な利用方法について出題されることもあります。また、機械学習のノウハウがほとんど無い状態からでも機械学習サービスが提供可能になるような、マネージドな側面が極めて高いサービスに関する問題も出題されます。

テキスト分析に用いるAMAZON COMPREHEND、音声を文字起こしできるAMAZON TRANSCRIBE、時系列データの予測を行うAMAZON FORECAST…といった類のサービスです。aws公式サイト「AWS での機械学習」のAI サービス一覧で紹介されています。
各サービスの概要、ユースケースを把握し、適切に選択できるように、また存在しないサービスがブラフとして選択肢に出現しても騙されないようしっかりと理解しておく必要があります。

概要レベルではなく、例えばAmazon Transcribeが対応している言語を把握しておき、非対応の言語の場合Amazon Translateで翻訳してからAmazon Transcribeにデータを受け渡すようなサービス構築が正解となるような深い理解が要求される問題も出題されます。
これらのサービスは日々新しいものが増え、既存のサービスも機能が追加されます、入念なキャッチアップが必要なジャンルです。

例題:

顔写真から有名人を検出できるアプリを作成したいと考えています。
最小限の労力でこれをセットアップするのに役立つAWSサービスはどれですか。
A: Amazon Predict
B: Amazon Rekognition
C: Amazon Polly
D: Amazon Comprehend

正解: B

サービスの構築、運用に関する知識

機械学習に直結する知識ではありませんが、ビジネスレベルでアプリケーションの構築を行う上でのAWSサービスの知識も問われることがあります。

具体的にはIAMの設定など、運用面で設定する必要のある項目について出題されます。

例題

デフォルトのIAMロールを使用してSageMakerノートブックインスタンスを作成しました。S3のデータへのアクセスはどのように管理されますか?
A: デフォルトで使用可能なバケットはありません
B: 名前に「sagemaker」が含まれるバケットは、デフォルトの役割でアクセスできます
C: パブリックアクセスが有効なバケットは、デフォルトの役割でアクセスできます

正解: B

学習方法について

ざっくりと内容を説明しましたが、合格への筋道は見えてきましたでしょうか。
ソリューションアーキテクト-アソシエイトクラウドプラクティショナーなど、AWSの資格を持っていない方が最初に受ける傾向が高い試験は1冊読んでおけば合格できるような質の高い書籍が存在します。

しかし機械学習-専門知識は知識が広範かつAWSに特化した内容ではない部分も多く、まだ必要な知識を体系的にまとめた書籍が存在しません。
そういった意味でも厳しい試験ですが、参考までに自分が学習に利用した書籍、サービスを紹介します。

そもそもAIに対する知識が無い人向け

AIに興味はあるものの実際にAIに触れたことがない、という方もいると思います。その状態から試験問題に特化した知識を詰め込み教育的手法で学ぶのは限界があります。急がば回れ、ということでまずは機械学習の概要から学んでいくと良いと思います。

AWSの試験に合格するには、Pythonの各種フレームワークを用いたコーディングレベルの知識や、具体的なアルゴリズムの数式についての知識は必要なく、概念的な部分を押さえておけばOKです。回帰、分類、線形分離といった概念から各種アルゴリズムを概念的に大まかに把握しておく程度の学習で、試験に必要な知識を学ぶ上で役に立つと思います。

前提知識を学ぶために機械学習初心者向けの本を1冊読んでおく事をお勧めします。
私は好奇心からPython 機械学習プログラミング 達人データサイエンティストによる理論と実践という書籍を購入しました。

試験に対しては過剰なほど詳細に機械学習の概要が書いてあります、正直読むだけで一苦労でした。

AWSに関する知識を学ぶ方法

現状機械学習関連のサービスが書籍の形式でまとまっているものはありません。正攻法の手段としては下記のような流れで学習を進めていきます。

愚直に学習する時間の捻出が難しい場合、合格する自信が持てず副教材が必要な場合はudemyなどの学習サイトでカリキュラムや試験問題を購入することをお勧めします。

まとめ

この記事が試験勉強の補助となれば、また試験を受けてみようと思っていただけるきっかけになれば幸いです。

学習のハードルは高めなので、ソリューションアーキテクトのように1冊の本にまとまる日が来てほしいですね。

類似の記事としてフューチャー技術ブログの合格記Machine Learningタグの記事も是非ご覧ください。