AWS認定試験の合格に必要な知識を確認します。
本稿では下記の略語を使用します。
略称 | 原語 |
---|---|
AZ | Availability zones |
I/O | Input/Output |
ACL | Access control list |
GW | Gateway |
IGW | Internet Gateway |
FW | Firewall |
IPS | Intrusion prevention system |
RI | Reserved instances |
SSO | Single sign-on |
SG | Security group |
SF | Step Functions |
AD | Active Directory |
GSI | Global Secondary Index |
LSI | Local Secondary Index |
前提
本稿では,専門知識レベルの機械学習スペシャリティ(MLS:AWS Certified Machine Learning Specialty)に関する直前対策を行います。MLSは現在C01とよばれる形式の試験が実施されています。
データエンジニアリング
カメラからリアルタイムで動画を取り込むためのサービスは何か。
AWS Panorama
S3のcsvをParquetに変換する方法を説明せよ。
Glueのジョブでファイル形式を変換するためのスクリプトを実行する。GlueクローラーはGlue Data Catalogテーブルを作成するための機能なので不適切。
ラベル付けを行うためのサービスを説明せよ。
ラベル付けはSageMaker Ground Truthで行う。ラベルを付与するワーカーは下記から選択する。
- Mechanical Trunk
- 外部ベンダ
- プライベートチーム
Mechanical Trunkはクラウドサービスなので,プライベートな目的の使用は推奨されない。また,プライベートチームはCognitoと連携することができる。
Kinesis Data Streamsの読み取り・書き込みのレートを述べよ。
1シャードあたり下記の値になる。
- 読み取り:2MB/s
- 書き込み:1MB/s
例えば,100KBのJSON blobを毎秒最大100トランザクション/sで取り込むという要件に対しては,毎秒10MBのデータを書き込むという要件であるため,最低でも10シャードが必要になる。
各データセットの類似レコードを識別できるサービスは何か。
GlueのFindMatches変換
探索的データ分析
データのビニングとは何か。
複数のデータを処理しやすいようにまとめること。
モデリング
自己回帰和分移動平均モデルとDeepAR+を比較せよ。
- 自己回帰和分移動平均モデル:比較的短い時系列に対して用いる古典的な手法
- DeepAR+:RNNベースの手法
Random Cut Forestのユースケースは何か。
異常検知。SageMakerで利用可能な組み込みアルゴリズム。
ベイズモデリングとベイジアンネットワークのどちらを利用するかの判断ポイントを説明せよ。
- ベイズモデリング:特徴量が独立である場合(独立ならば無相関なので無相関である場合も)
- ベイジアンネットワーク:一部に相関がみられる場合
SageMaker Experimentsはどのようなサービスか。
学習・推論の実験を一元的に管理して最適なモデルを構築するためのプラットフォームを提供するサービス。
Apache Flinkとはどのようなソフトウェアか。
分散ストリーム処理およびバッチ処理のプラットフォーム。
機械学習の実装とその運用
SageMakerがS3上のデータから学習するプロセスを高速化する方法を述べよ。
SageMakerのパイプモードを使用する。
GlueとEMRはどちらの方が運用コストが低いか。
Glue
精度・再現率・F値・真陽性率・偽陽性率・真陰性率・偽陰性率の定義を述べよ。
指標 | 定義 |
---|---|
精度(全データのうち正しい予測の割合) | (TP+TN)/(TP+TN+FP+FN) |
適合率(陽性と判断したデータのうち陽性だった割合) ※ PrecisionのPと表記される | TP/(TP+FP) |
再現率(陽性のデータのうち陽性と判断した割合) ※ RecallのRと表記される | TP/(TP+FN) |
F値 | 2PR/(P+R) |
真陽性率・感度(陽性を陽性と判断した割合) | TP/(TP+FN) |
偽陽性率(陰性を陽性と判断した割合) | FP/(FP+TN) |
真陰性率・特異度(陰性を陰性と判断した割合) | TN/(TN+FP) |
偽陰性率(陽性を陰性と判断した割合) | FN/(FN+TP) |
Amazon Comprehendは会話トピックごとにグループ化できるか。
できる。
Evidentlyを用いないでA/Bを実現する方法を説明せよ。
SageMakerで単一のエンドポイントを作成し,その裏で複数のモデルをデプロイしてトラフィックを重み付けする。ALBを使う必要はない。
SageMakerで画像分類はデフォルトで実現可能か。
デフォルトで実現可能。
既存データのEMRクラスターへの分類にはどのサービスが有効か。
Glueの再帰的なパーティション分割。Apach Fliskはストリーミング処理やバッチ処理で使われるサービスであるため適していない。
Docker上でSageMakerによる学習を行う方法を説明せよ。
ENTRYPOINTで学習用のスクリプト名を指定する。デフォルトではtrainというスクリプトが指定される。具体的には,ユーザは/opt/program/train
にスクリプトを用意する。
SageMaker Neoはどのようなサービスか。
クラウド上のインスタンスとエッジデバイス間で推論モデルを最適化するサービス。
SageMakerにおける学習データの転送モードを説明せよ。
- ファイルモード:EBSにフルロードする
- パイプモード:ストリーミングされる
IPアドレスに関する異常検知を行うサービス・機能は何か。
SageMakerのIP Insights。異常検知なので教師なし学習。
SageMakerとGlueの関係を説明せよ。
Glueの開発エンドポイントでSageMakerノートブックを作成するという関係性になる。SageMakerにエンドポイントというリソースは存在するが,開発エンドポイントというリソースは存在しないため注意する。
Rekognitionで学習データをオプトアウトする方法を説明せよ。
AWSサポートチケット経由で依頼する。
学習モデルの説明責任を負ってくれるサービスは何か。
SageMaker Debuggerにデフォルトで組み込まれているSHapley Additive exPlanations。
SageMakerのカスタムイメージでNVIDIAを使う方法を説明せよ。
イメージにCUDAツールキットを含め,コンテナをnvidia-docker互換にする。NVIDIAドライバーをイメージにバンドルしてはいけない。
Proehetの概要とユースケースを説明せよ。
Meta(旧Facebook社)によって開発された時系列解析用のライブラリで,非線形トレンド・周期性・休日効果を加味した加法回帰モデルである。欠損データやトレンドのずれに対してロバストで,強い季節効果のある時系列に適している。
Multiple Imputationとは何か。
統計的に妥当な値で欠損値を複数回埋めることで,欠損値による影響の分散を小さく抑える手法。欠損値補完方法には,欠損したデータを含む行を全て削除するリストワイズ削除,欠損したデータを直前の値で埋めるLast observation carried forward(LOCF),平均値で埋める平均値補完法が挙げられますが,これらの中ではMultiple Imputationが推奨される手法です。Imputationは代入という意味なので,「複数代入することで統計的に妥当な欠損値を補完する」といった意味合いの手法。
その他(ひっかけポイント)
Kinesis Data Streamsはlambdaを呼び出せるか。
呼び出せる
「インターネット接続が必ずしも保証されていない」を克服できるサービスは何か。
IoT Greengrass。学習したモデルで推論する場所を提供するイメージ。
Amazon Elastic Inferenceとは何か。
EC2・SageMaker・ECSタスクでGPU上の推論を可能にさせる高速コンピューティングサービス。
データセットリポジトリに最適なサービスは何か。
前提次第。コスト要件が明示されているのであればS3。
ステミングとは
英単語を原形に変換すること。
Amazon Augmented AIとは何か。
人によるレビューに必要なワークフローを簡単に構築できる機械学習サービス。
SageMakerで学習データの置き場指定は必須か。
必須ではない。学習スクリプト中で学習データを引っ張ってきている場合は,SageMakerのデータチャネルを使う必要はないため。一方,学習したモデルの出力先は指定必須であるため注意する。
Rekognition Imageはストリーミングデータに適しているか。
適していない。Rekognition Videoを利用する。
Textractはデータベース処理をサポートしているか。
していない。既存のDBからcsvファイルを作成するというユースケースには適していない。
Comprehendで感情分析は可能か。
可能。
Contact Lens for Amazon Connectでは何ができるか。
- 音声通話の書き起こし
- 通話の分類
- 問題(異常)検出
- 感情分析
上記ユースケースはTranscribeとComprehendを組み合わせても実現可能であるが,Contact Lensを使った方がシンプルになる。
線形学習器に対して非線形の次元削減手法は組み合わせられるか。
組み合わせない方がよい。線形は線形の世界,非線形は非線形の世界で完結させるべき。線形の世界で完結させる場合はPCA等で次元削減を行い,非線形の世界で完結させる場合はNNを利用する。
GlueジョブのソースにKinesis Data Firehoseは対応しているか。
対応していない。
- Data Streams → Firehose(lambda) → S3
といった構造が一般的。
Kinesis Data Analyticsはリアルタイムという要件に合致しているか。
合致している。
SageMakerとCloudTrailを統合した場合,S3への保存はデフォルトでサーポートしているか。
サポートしている。lambdaによる実装は不要。
SageMakerの同一エンドポイント上でモデルを更新した場合,同一設定で監視を続けることは可能か。
可能ではない。新しいモデルの学習データでベースラインジョブを再実行し,新しいベースラインを使用するようにModel Monitorを設定する必要がある。
Comprehendのマルチクラスモードとマルチラベルモードを説明せよ。
- マルチクラスモード:ドキュメントごとに1つのクラスに割り当て
- マルチラベルモード:ドキュメントごとに複数のラベルに割り当て
Redshift SpectrumはS3に直接データを書き込むことはできるか。
できない。
SageMakerとRDS/DynamoDB/ElastiCacheは連携できるか。
連携できない。S3と連携する。
SageMakerノートブックにロールはアタッチできるか。
ノートブックインスタンスにアタッチする。
SMOTEは何を行うための手法か。
オーバーサンプリング。Synthetic Minority Over-sampling Techniqueの略称であることから理解する。
ETLジョブでPySparkは使えるか。
使える。
Amazon Personalizeの代表的なレシピを二つ説明せよ。
- USER_PERSONALIZATION:「あなたへのおすすめ」を実現可能
- PERSONALIZED_RANKING:特定のアイテムリストをランク付けする
XGBoostのmin_child_weightを小さくすると決定技の複雑性はどうなるか。
より複雑になり,モデルの表現力が高くなる。各ノードを子ノードに分割する前に,そのノードの重みの合計がmin_child_weight
未満の場合には分割を行わなくなる。つまり,min_child_weightを大きくすると分割が進みにくくなりモデルが単純になり,min_child_weightを小さくすると分割が進みやすくなりモデルが複雑になる。
SageMakerVariantInvocationsPerInstanceの計算方法を説明せよ。
(MAX_RPS * SAFETY_FACTOR) * 60
で計算される。例えば、最大30RPSを見込んだSageMakerインスタンスに対して,0.5の安全係数を考える場合は,(30 * 0.5) * 60 = 900となる。
csvのソースを受け取りS3にparquetを出力する最小コストの構成は何か。
Kinesis Data Streamでcsvを取り込みGlueでparquetに変換する。Kinesis Data Firehoseを利用すると,parquetへの変換をlambdaで実装する必要があるため不適切。
HDFSとは何か。
Hadoop Distributed File Systemで,例えばEMRで用いられるファイルシステムのこと。
SageMakerの組み込みモデルのRCFでリアルタイム異常検知を行う方法は適しているか。
適していない。リアルタイムデータを使ったモデルの更新を伴う場合にはKinesis Data AnalyticsでRCF SQLエクステンションを使用し,固定モデルもしくは大規模データにはSageMakerの組み込みモデルを使用する。固定モデルであればSageMakerの組み込みモデルを利用することができるため,リアルタイムだからといって思考停止でKinesis Data Analyticsを選ばないように注意する。
SageMakerとCloudHSMは統合されているか。
統合されていない。
インタフェース型VPCエンドポイントのアクセス制御方式は何か。
SG
SageMakerのモードを簡単にまとめよ
- データの読み込みに関して:FILEモード/PIPEモード
- 学習スクリプトの実行方式に関して:スクリプトモード
SageMaker Data WranglerはRedshiftからS3へのエクスポートは可能か。
可能。SageMaker Studio上で動作する前処理が可能なサービスであるため,Exportの他にもImport機能やデータの変換機能,データの解析機能を有している。
numpy.ndarrayよりも学習効率の高いデータ形式は何か。
RecordIO protobuf
SageMakerはデータソースとして何を選べるか。
S3/EFS/FSx
SageMakerの推論時間を減らす方法の一例を挙げよ。
SageMakerDebuggerの情報に基づいてフィルタランクを計算し,低ランクフィルタを削除する。
XGBoostは多クラス分類に適しているか。
適している。目的パラメータをmulti:softmaxとする。
回帰決定木は分類に用いるべきか。
用いるべきではない。
SageMakerのウォームスタートハイパラチューニングを説明せよ。
以前の学習履歴を用いてハイパラチューニングを行うこと。
コメント