Amazon Web Services(AWS)の認定資格は、IT系資格ランキングで1,2を争う人気資格ですよね。先日公開された「Top 8 IT certifications in demand today」でも需要の高い資格として取り上げられています。
今回わたしはAWS認定資格12個あるうちの、「AWS Certified Machine Learning – Specialty(MLS-C01)」を受験しました。
AWS-MLSを取得することで、社内の評価が高まったり、就職・転職活動をする際に有利に働いたりします。AWS-MLSはデータサイエンティストやソフトウェア開発者、クラウドアーキテクトの方向けの認定なので、AWSの機械学習サービスに関する深い理解を持ち、それらを利用して新しいソリューションを開発したいと考えている方におすすめの認定です。
今回の記事ではわたしがAWS-MLS取得のために行った勉強方法や勉強時間、受けた感想を紹介します。
【この記事はこんな方におすすめ】
- MLSになんとしても合格したい方
- MLS試験直前でなんだか心配な方
- そもそもMLSがどんな試験なのか知りたい方
AWS-MLSを受験してみた
勉強方法などを紹介する前に、2023年12月に受けたわたしの受験結果をお伝えします。
なんとか合格することができました。試験中に自信をもって回答できたのが65問中38問でしたので、正直落ちたと思い、試験終了後に問題集をもう一度解き始めちゃいました。
さきに受験者向けに大事なことを3つ伝えておきますね。
- 問題集だけではなく、機械学習関連の用語をしっかり理解しよう
- 用語は日本語・英語ともに覚えておこう
- 配布されるホワイトボードにわからない用語をメモしよう
■AWS-MLSとは
まずは「AWS Certified Machine Learning – Specialty(MLS-C01)」の概要を紹介いたします。
- レベル:Specialty
- 時間:試験完了までに180分
- コスト:300USD
- フォーマット:65 個の質問、複数選択または複数応答のいずれか。
- 対象言語:この試験は、英語、日本語、韓国語、簡体字中国語で提供されています。
- 受験対象者:AWS Certified Machine Learning – Specialty は、開発またはデータサイエンスの担当者で、AWS クラウドでの機械学習 (ML)/深層学習ワークロードの開発、アーキテクチャ設計、実行において 1 年以上の実践経験を持つ個人を対象としています。
さらに詳しく知りたい方はこちらから
●SPECIALTY(スペシャリティ)レベルとは
AWS認定はFOUNDATIONAL・ASSOCIATE・PROFESSIONAL・SPECIALTYの4つのレベルに分かれています。
「AWS Certified Solutions Architect – Professional」はスペシャリティレベルですが、SPECIALTY(スペシャリティ)レベルとはどれくらいのレベルを求められているのでしょうか。
より深く掘り下げ、これらの戦略的領域において、ステークホルダーおよび/または顧客に信頼されるアドバイザーとしての地位を確立してください。推奨される経験については、試験のページで試験ガイドを参照してください。(AWS公式Webサイトより)
スペシャリティレベルは深い知識を問われますね。推奨される経験・知識については、以下の通りです。
●推奨されるIT全般に関する知識と経験
受験対象者には、以下の経験が求められます。
- AWS クラウドでの ML/深層学習ワークロードの開発、設計、実行における、最低 2 年の実務経験
- 基本的な ML アルゴリズムの基となる考えを表現する能力
- 基本的なハイパーパラメータ最適化の実践経験
- ML および深層学習フレームワークの使用経験
- モデルトレーニング、デプロイと運用のベストプラクティスを実行する能力
■AWS-MLS合格のためにやったこと
わたしは2023年12月にAWS-MLS-C01を受験しました。合格にむけて何をやったかを紹介します。
■筆者の知識レベル
前提としまして、わたしのAWS知識・業務レベルに触れておきます。
- AWSに触れて1年4か月
- 保持しているAWS認定資格:CLF、SAA、SOA、DVA、SAP、DOP、SCS
- 設計・構築・運用の役割を担っています
■MLS合格までの勉強時間
AWS-MLSは機械学習サービスの実務経験があっても、"用語"を知らないと問題文でつまづき時間切れになります。
勉強時間をしっかり確保し、用語の暗記をしておきましょう。AWS-MLS-C01を受験するにあたって、わたしが勉強した時間・期間は以下の通りです。
- 勉強時間:20時間(毎日2時間から3時間)
- 勉強期間:7日間
わたしはAWS-SAA,SOA,DVA,SAP,DOP,SCSを取得していて、かつ実務でもAWSに触れております。AWS-MLSの範囲であるAWSサービスの一部、もしくはデータエンジニア領域の業務も行っていますので、比較的短期間で取得できました。
AWS実務未経験で機械学習について知識がない方であれば、勉強時間・期間、さらにサービスに触る時間を合わせて、4倍の時間が必要かもしれません。
■MLSに合格できた勉強方法
わたしがAWS-MLS合格のために行った勉強方法は、“MLS認定の全体像を理解すること”と“問題を解くこと”、"関連用語を覚えること"です。
わたしの勉強方法は、すでにAWSサービスについて基礎的な知識があることが前提になる勉強方法かもしれません。以下のステップで実施してみましょう。
●ステップ1:AWSスキルビルダー
AWSには無料でスキルを身に付けることができる"AWSスキルビルダー"という学習プラットフォームが提供されています。AWSサービスの使い方を丁寧に説明してくれるトレーニング動画や、AWS認定取得のための攻略動画もあります。もちろんAWS-MLSのための動画も用意されていますので、まずはMLS認定試験でどういうことが問われるのか確認しましょう。
- Exam Readiness: AWS Certified Machine Learning – Specialty (Japanese) (Na) 日本語実写版
https://explore.skillbuilder.aws/learn/course/629/exam-readiness-aws-certified-machine-learning-specialty-japanese-na-ri-ben-yu-shi-xie-ban
●ステップ2:ハンズオン
AWS-MLSで問われるAWSサービスは、データサイエンティスト・データエンジニア向けのサービスがほとんどです。サーバの監視や保守をメインにしている場合、業務で触ったことがないAWSサービスばかりかもしれません。
しかし、幸いなことに、AWS-MLSで問われるAWSの機械学習サービスの種類は少ないです。以下の"AWS Hands-on for Beginners"でAWSサービスに触れれば、試験で問われるAWS機械学習サービスは網羅できます。以下は、わたしがMLS対策に実施したハンズオンです。
●ステップ3:問題集
AWSスキルビルダーとハンズオンでインプットしましたら、とにかく問題集でアウトプットしていきましょう。CloudTech|AWS初学者を導く体系的な動画学習問題集にはAWS-MLSの問題が約170問用意されています。
そして、問題集を解くときには、あとで載せる用語集で用語の意味を確認しながら実施してみてください。
問題集に関しては、わたしは170問を4周しました。サイトでも紹介されていますが、10問ずつを2周するパターンで解いていく方法ですね。
【私の問題集マラソンのやり方】
- 問題1から問題10まで解き、再度問題1から問題10まで解く
↓
- 毎日初見問題を20問解く
↓
- 次の日は前日解いた20問を1周分解き、そのあと初見問題20問を2周解く
↓
- 170問完了したら、問題1から問題100、問題101から問題170を1周ずつ解き、この時間違えた問題の番号を控えておく
↓
- 170問からランダムに出題される模擬テスト65問を2回やる、このとき間違えた問題の番号を控えておく
↓
- 試験前日、もしくは当日に直近で間違えた問題をもう一度解く
ここで間違ってほしくないのは、"答えを覚える"のではなく、"各アルゴリズムがどの場面で用いられるかを考えること"です。
今回わたしが試験を受け、問題集と似た、もしくは同じ問題は65問中38問です。確実に合格するには、48問以上正解していることに自信がないといけません。
170問必死にやっても合格ラインに届きませんので、自身の知識や知恵が試されます。
■MLS合格に導く用語集
AWS-MLSの問題で登場するAWSサービスの概要や、各アルゴリズムの意味をまとめました。問題を解きながら、理解の手助けに利用してみください。
-
Amazon Comprehend
自然言語処理(NLP)サービスで、テキストから情報を抽出し、感情分析、キーフレーズの抽出、言語の検出などを行います。 -
AWS Deep Learning AMIs (DLAMI)
ディープラーニングに特化したAmazon Machine Images(AMI)。TensorFlow、PyTorch、Apache MXNetなどのフレームワークがプリインストールされており、素早くディープラーニング環境を構築できます。 -
AWS DeepLens
ディープラーニングを利用したビデオカメラで、画像認識やビデオ分析のプロジェクトに利用されます。 -
Amazon Forecast
時系列データを用いた予測を行うサービスで、デマンド予測や在庫最適化などに利用されます。 -
Amazon Fraud Detector
不正行為やオンライン詐欺の検出を行うサービス。機械学習モデルを用いて、不正なトランザクションを識別します。 -
Amazon Lex
チャットボットや仮想アシスタントを構築するためのサービスで、音声認識と自然言語理解を提供します。 -
Amazon Mechanical Turk
クラウドソーシングを利用して、人間によるタスク(例:データラベリング、短いアンケート)を実行できるプラットフォームです。 -
Amazon Polly
テキストを自然な発話に変換するテキスト読み上げサービス。様々な言語と発音をサポートしています。 -
Amazon Rekognition
画像とビデオの分析を行うサービスで、オブジェクトの検出、顔認識、活動の識別などができます。 -
Amazon SageMaker
機械学習モデルのビルド、トレーニング、デプロイを簡単に行うことができるフルマネージドサービスです。 -
Amazon SageMaker BlazingText
BlazingTextは、Amazon SageMakerが提供する高速なテキスト処理と単語埋め込みの学習を行うためのアルゴリズムです。Word2Vecと類似したアプローチを使用し、大規模なテキストデータセットを高速に処理する能力があります。使用シナリオは、自然言語処理タスクでの単語埋め込みの生成、テキスト分類、感情分析などに利用されます。 -
Amazon SageMaker Neural Topic Model (NTM)
SageMaker NTMは、Amazon SageMakerで利用可能なニューラルネットワークベースのトピックモデルです。伝統的なLDAと異なり、ニューラルネットワークを使用して文書のトピックを学習します。これにより、より複雑な文書構造とトピック関係を捉えることができます。使用シナリオは、文書のトピック分析、テキストクラスタリング、コンテンツ推薦などに使用されます。 -
Amazon Textract
文書やフォームからテキストやデータを抽出するOCR(光学文字認識)サービスです。 -
Amazon Transcribe
音声をテキストに変換する音声認識サービス。複数の言語と方言をサポートしています。 -
Amazon Translate
テキストを異なる言語に翻訳するサービス。ビジネスやウェブサイトの多言語対応などに利用されます。 -
Contact Lens for Amazon Connect
Amazon Web Servicesが提供するクラウドベースのコンタクトセンターソリューション「Amazon Connect」の機能拡張の一つです。このツールは、コンタクトセンターの通話をリアルタイムで分析し、より深い顧客インサイトの獲得とコンタクトセンターの運用効率向上を支援します。 -
Amazon SageMaker Neo
Amazon Web Servicesが提供する機械学習サービスで、様々なハードウェアプラットフォーム上で機械学習モデルを最適化し、実行するためのツールです。このサービスの目的は、モデルをさまざまなデバイスや環境で効率的に実行可能にすることにあります。 -
Tensorflow
Google Brainチームによって開発されました。機械学習とディープラーニングのモデルを設計、訓練、デプロイするためのオープンソースソフトウェアライブラリです。 -
scikit-learn
Pythonプログラミング言語用の無料の機械学習ライブラリです。これは、データ分析とデータマイニングのためのシンプルで効果的なツールとして広く使われています。 -
Linear Learner
線形モデルを使用して分類や回帰を行います。データの特徴が予測ラベルと線形関係にある場合に効果的です。 -
Factorization Machines
スパースなデータセットでの特徴間の相互作用を捉えることができるアルゴリズムです。推薦システムなどでよく使用されます。 -
XGBoost
XGBoost(eXtreme Gradient Boosting)は、勾配ブースティングアルゴリズムを実装した、非常に効果的かつ人気のある機械学習ライブラリです。XGBoostは、決定木をアンサンブルし、逐次的に弱学習器を最適化することで、強力な予測モデルを構築します。高速な計算速度とスケーラビリティが特徴です。使用シナリオは、分類、回帰問題の両方に使用され、競技データサイエンスや実業界の多くの問題に適用されています。 -
Image Classification
画像データを分析して、それが何を表しているかを識別するプロセスです。CNN(畳み込みニューラルネットワーク)などが使用されます。 -
Seq2Seq (Sequence-to-Sequence)
Seq2Seqは、入力シーケンスを出力シーケンスに変換するためのニューラルネットワークモデルです。このモデルは通常、エンコーダとデコーダの二つの部分から構成されています。エンコーダは入力シーケンス(例えば、テキスト)を固定長のベクトル表現に変換し、デコーダはそのベクトルから目的の出力シーケンスを生成します。使用シナリオは、機械翻訳、チャットボット、質問応答システムなど、自然言語処理に関連するさまざまなアプリケーションで使用されます。 -
K-means
k-meansは、非教師あり学習に属するクラスタリングアルゴリズムです。データセットをk個のクラスタに分割し、各クラスタの中心(セントロイド)を見つけます。各データポイントは最も近いセントロイドに割り当てられ、クラスタが形成されます。使用シナリオは、市場セグメンテーション、文書のクラスタリング、画像分割などに利用されます。 -
K-NN (K-Nearest Neighbors)
k-NNは、分類および回帰に使用されるシンプルな教師あり学習アルゴリズムです。あるデータポイントの「最も近いk個の隣接データポイント」に基づいて、そのデータポイントのカテゴリを予測します。分類では、最も多くの隣接データポイントを持つクラスが選ばれます。回帰では、隣接データポイントの平均値が予測値となります。使用シナリオは、簡単な分類問題、基本的な推薦システム、パターン認識などに使用されます。 -
Object2Vec
類似性を学習するためのニューラルネットワークベースのモデル。テキスト、画像、ビデオなどのオブジェクトに適用できます。 -
Semantic Segmentation
画像の各ピクセルを特定のクラスに分類するプロセス。画像内の物体の正確な位置を識別します。 -
PCA (Principal Component Analysis)
データの次元を減らすために使用される手法。データの主要な傾向を把握するのに有用です。特徴量が多き場合の汎化性能向上にも有効。 -
Latent Dirichlet Allocation (LDA)
LDAは、文書のトピックモデリングに使用される確率的生成モデルです。このモデルは文書が複数のトピックから成ると仮定し、それらのトピックと文書内の各単語のトピック割り当てを確率的に学習します。使用シナリオは、テキストデータの自動トピック識別、文書分類、内容要約などに使用されます。 -
Neural Topic Model
ディープラーニングを使用したトピックモデリングの手法。複雑なトピック構造を抽出できます。 -
DeepAR Forecasting
時系列データのための予測モデル。RNN(再帰的ニューラルネットワーク)をベースにしています。 -
BlazingText
テキストデータ処理のための高速なモデル。特に単語埋め込みの生成に有効です。 -
Random Cut Forest
異常検出のためのアルゴリズム。データの異常なパターンを識別するのに使われます。 -
Object Detection
画像やビデオから特定のオブジェクトを検出して識別するプロセス。物体の位置とクラスを同時に識別します。 -
IP Insights
ネットワークトラフィックデータを分析して、不審な行動や異常なアクセスを検出するアルゴリズム。 -
ランダムフォレスト
機械学習の中でも特に人気のあるアンサンブル学習アルゴリズムの一つです。アンサンブル学習とは、複数のモデルを組み合わせて一つの予測を行う手法のことを指します。ランダムフォレストは特に、分類と回帰の両方に効果的に使用できるアルゴリズムです。 -
決定木
機械学習における一般的なアルゴリズムの一つで、分類と回帰の両方に利用されます。このアルゴリズムは、データを分析して一連の質問に基づいて決定を下す木構造を作成します。 -
One-Hot Encoding
カテゴリ変数を扱う際の一般的なデータ前処理手法の一つです。たとえば、「赤」「青」「緑」という3つのカテゴリがある場合、ワンホットエンコーディングでは以下のように変換されます。
赤 → [1, 0, 0]
青 → [0, 1, 0]
緑 → [0, 0, 1] -
正則化(Regularization)
機械学習において過学習を防ぐための重要な手法です。モデルが訓練データに過剰に適合してしまうことを避け、より一般化されたモデルを作成するのが目的です。 -
二値分類(Binary Classification)
二値分類は、最も基本的な分類のタイプで、データポイントを二つのクラス(例えば、はい/いいえ、真/偽、ポジティブ/ネガティブなど)のいずれかに分類するタスクです。メールのスパム判定や病気の診断など、多くの実用的な問題が二値分類の範疇に入ります。 -
ストリーミング分類(Streaming Classification)
ストリーミング分類は、リアルタイムで継続的に到着するデータストリームに対して分類を行うタスクです。このタイプの分類では、データが常に変化しているため、モデルは逐次的に更新される必要があります。例としては、リアルタイムのトランザクション監視やソーシャルメディアのトレンド分析があります。 -
多カテゴリ分類(Multi-class Classification)
多カテゴリ分類では、データポイントを二つ以上のクラスの中から一つに分類します。例えば、動物の画像を犬、猫、鳥などの特定の種類に分類する場合などがこれに該当します。各データポイントは複数のクラスに属することはありません(複数のクラスに属する場合は多ラベル分類と呼ばれます)。 -
回帰分類
「回帰分類」という用語は少し誤解を招くかもしれません。通常、分類タスクと回帰タスクは異なります。分類はデータポイントを特定のカテゴリに割り当てるのに対し、回帰は連続値(例えば価格や温度など)を予測するために使用されます。ただし、回帰アルゴリズムを使用して確率を出力し、その確率に基づいてカテゴリを割り当てるという方法で、回帰手法を分類タスクに適用することは可能です。この場合、「回帰による分類」と表現することがあります。 -
因数分解マシン(Factorization Machines, FM)アルゴリズム
特にスパースなデータセット(多くのエントリがゼロのデータセット)での予測タスクに適した機械学習アルゴリズムです。このアルゴリズムは、特徴間の全てのペアワイズ(二項間)の相互作用を考慮することができます。 -
ARIMA(自己回帰和分移動平均)モデル
時系列データの分析と予測に広く用いられる統計モデルです。このモデルは特に、時間的なデータのパターンを識別し、未来のポイントを予測するのに適しています。 -
ヒートマップによる相関プロット
ヒートマップは、データセット内の異なる特徴間の相関関係を視覚的に表現する方法です。使用法は、色の濃淡や異なる色を使って、特徴間の相関係数を表示します。これにより、特徴間の関係を素早く理解することができます。 -
データのビニング
ビニング(またはバケット化)は、連続値を一定の範囲(ビン)に分類するプロセスです。データのバリエーションを減らし、モデルの過学習を防ぐのに役立ちます。また、カテゴリ変数として扱うことができます。 -
一変量選択 (Univariate Selection)
一変量選択は、統計的テストを使用して、各特徴が目的変数とどの程度関連しているかを判断し、重要な特徴を選択する手法です。単変量統計テスト(例:カイ二乗テスト、ANOVA)を使用して、各特徴が目的変数と独立かどうかを評価し、特徴選択を行います。使用シナリオは、特徴選択のための前処理ステップとして、特に分類や回帰モデルの性能向上に役立ちます。 -
ツリーベース分類器による特徴の重要性
ツリーベース分類器(例:決定木、ランダムフォレスト)は、特徴の重要性を計算し、それに基づいて特徴選択を行うことができます。モデルの構築過程で、各特徴がどの程度分類や回帰タスクに寄与しているかを評価し、重要な特徴を特定します。使用シナリオは、特徴選択やモデル解釈において有用です。特に、ランダムフォレストなどのアンサンブル学習手法を用いた特徴選択に効果的です。 -
データの補強 (Data Augmentation)
データの補強は、既存のデータセットを修正または拡張して新しいデータポイントを生成する手法です。既存のデータに変更を加えることで、データセットの多様性を高め、モデルの一般化能力を向上させます。画像では回転、反転、拡大縮小など、テキストデータでは同義語置換や文の書き換えなどが行われます。使用シナリオは、データセットのサイズが小さい場合や過学習を防ぐために使用されます。特に、画像認識や自然言語処理の分野で広く利用されています。 -
t-SNEアルゴリズム (t-Distributed Stochastic Neighbor Embedding)
t-SNEは、高次元のデータを低次元(通常は2次元または3次元)にマッピングするための機械学習アルゴリズムです。特に、データの可視化に有用です。 -
ユークリッド距離 (Euclidean Distance)
ユークリッド距離は、最も一般的な距離測定方法の一つで、通常の「直線距離」を指します。 -
Elbow Method (エルボー法)
エルボー法は、クラスタリングにおいて最適なクラスタ数を決定するための一つの方法です。 -
一様分布 (Uniform Distribution)
一様分布は、ある範囲内のすべての値が等しい確率で発生する分布です。離散的な一様分布と連続的な一様分布の二種類があります。この分布では、定義された範囲内のすべての値は等しい確率で発生します。例えば、公平なサイコロを振ったときの各面の出る確率です。使用シナリオは、ランダムなサンプリング、シミュレーション、公平な確率のモデル化に使用されます。 -
正規分布 (Normal Distribution)
正規分布、またはガウス分布は、自然界や社会科学でよく見られる確率分布です。この分布は、平均値(中央値)を中心に左右対称のベル形の曲線を描きます。データの多くが平均値の周辺に集中し、平均から離れるにつれてその頻度は減少します。使用シナリオは、身長や体重、テストのスコア、測定誤差など、自然現象や社会現象の多くで見られます。 -
二項分布 (Binomial Distribution)
二項分布は、固定された回数の独立した試行で、ある事象が発生する回数を表す確率分布です。各試行は「成功」または「失敗」のいずれかの結果を持ち、成功する確率はすべての試行で同じです。使用シナリオは、コイン投げ、品質管理(不良品の数)、医学的試験(治療の成功回数)などに適用されます。 -
ポアソン分布 (Poisson Distribution)
ポアソン分布は、一定の時間または空間内で発生する離散的な事象の数を表す確率分布です。事象がランダムかつ独立に、一定の平均率で発生する場合に適用されます。事象の発生回数は非負の整数です。使用シナリオは、電話のコール数、交通事故の発生回数、ある時間内のウェブサイトへのアクセス数などのモデル化に使用されます。 -
長短期記憶 (Long Short-Term Memory, LSTM)
LSTMは、リカレントニューラルネットワーク(RNN)の一種で、時系列データやシーケンスデータを処理するのに適しています。LSTMは、通常のRNNが抱える「勾配消失」の問題を克服するために設計されています。これにより、長期間にわたる依存関係を学習する能力が向上します。使用シナリオは、テキスト生成、音声認識、機械翻訳など、シーケンスデータが関連するタスクに使用されます。 -
GRUs (Gated Recurrent Units)
GRUもまた、RNNの一種で、特にシーケンスデータの処理に適しています。GRUはLSTMよりも構造が単純で、計算コストが低いですが、同様に長期間の依存関係を効果的に捉えることができます。使用シナリオは、シーケンスデータの分類、時系列データの予測、テキストデータの解析などに用いられます。 -
Word2Vec Embeddings
Word2Vecは、単語を密なベクトル(埋め込み)に変換するモデルです。これにより、単語間の意味的な関係を捉えることができます。Word2Vecには主に「Skip-Gramモデル」と「CBOWモデル」の二種類があります。単語の埋め込みを通じて、単語間の意味的な類似性をモデル化できます。使用シナリオは、自然言語処理の様々なタスク、特にテキスト分類、感情分析、機械翻訳などに使用されます。 -
クロスバリデーション(交差検証)
機械学習においてモデルの性能を評価するための一般的な手法です。この戦略では、データセットを複数の小さなセットに分割し、その一部を訓練データとして、残りをテストデータとして使用します。クロスバリデーションにはいくつかの異なる戦略がありますが、共通の目的は、モデルの汎化能力をより正確に評価することです。 -
k-分割交差検証 (k-Fold Cross-Validation)
データセットをk個のサブセット(「フォールド」と呼ばれる)に分割します。モデルはk回訓練され、毎回異なるフォールドがテストセットとして使用され、残りのk-1個のフォールドが訓練セットとして使用されます。 -
層化k-分割交差検証 (Stratified k-Fold Cross-Validation)
k-分割交差検証のバリエーションで、各フォールド内のクラスの比率が元のデータセット全体のクラス比率と同じになるようにします。特に分類問題において有用です。 -
リーブワンアウト交差検証 (Leave-One-Out Cross-Validation, LOOCV)
データセット内の各データポイントを一度に一つずつテストセットとして使用し、残りを訓練セットとして使用します。これは、データセットが非常に小さい場合に有用ですが、計算コストが高いです。 -
再帰的特徴除去 (Recursive Feature Elimination, RFE)
再帰的特徴除去(RFE)は、機械学習において最も重要な特徴(変数)を選択するための手法です。RFEはまず全ての特徴を使用してモデルを訓練し、最も重要度が低い特徴を一つずつ取り除きながら再びモデルを訓練します。このプロセスを繰り返し、特定の数の特徴が残るまで続けます。使用シナリオは、特徴の数が多いデータセットに対して、より効果的な特徴のサブセットを選択するのに役立ちます。これにより、モデルの解釈性を向上させ、計算コストを削減できます。 -
多層パーセプトロン (Multilayer Perceptron, MLP)
多層パーセプトロンは、フィードフォワード型の人工ニューラルネットワークです。通常、入力層、一つ以上の隠れ層、および出力層から構成されます。MLPは非線形活性化関数を使用し、複雑なパターンや関係を学習する能力を持ちます。主に分類や回帰タスクに使用されます。使用シナリオは、画像認識、音声認識、テキスト分類など、さまざまな機械学習タスクに適用されます。 -
損失関数 (Loss Function)
損失関数は、機械学習モデルの予測がどの程度実際のデータから逸脱しているかを定量化する関数です。損失関数は、モデルの学習過程において最小化される目標値を提供します。例えば、平均二乗誤差やクロスエントロピーなどがあります。使用シナリオは、回帰タスクでは平均二乗誤差、分類タスクではクロスエントロピーなど、タスクに応じて適切な損失関数が選択されます。 -
線形判別分析 (Linear Discriminant Analysis, LDA)
線形判別分析は、監督学習における次元削減の手法です。特に、クラス分類問題において効果的です。LDAはクラス間の分散を最大化し、クラス内の分散を最小化するような方法でデータを低次元に射影します。このプロセスは、クラス分離を最適化する特徴空間を作成することを目指します。使用シナリオは、LDAは、特徴量が多いがサンプル数が少ない場合や、データの可視化、分類器の前処理ステップとして使用されます。 -
Scikit-learn Multi-dimensional Scaling (MDS)
多次元尺度構成法(MDS)は、高次元データを低次元空間に視覚化するための手法です。高次元空間におけるデータポイント間の距離を保持しながら、それを低次元空間に射影します。これにより、データの構造や関係性を視覚的に解析できます。使用シナリオは、複雑なデータセットの探索的データ分析、データの可視化、類似性の検証などに使用されます。 -
リグレッサー(Regressor)
リグレッサーは、連続値を出力する教師あり学習モデルです。回帰問題に使用されます。与えられた入力(特徴)に基づいて、ある連続値(例えば、価格、温度など)を予測します。使用シナリオは、住宅価格の予測、株価の分析、気温予測など、多様な領域での数値予測に適用されます。 -
単純ベイズモデル (Naive Bayes Model)
単純ベイズモデルは、ベイズの定理に基づく教師あり学習アルゴリズムの一種で、特に分類問題に用いられます。このモデルは、特徴間の独立性を仮定します。つまり、ある特徴が結果に与える影響は他の特徴から独立していると考えます(「単純」という名前の由来)。使用シナリオは、テキスト分類(例えば、スパムメールの検出)、疾患の診断、感情分析などに有効です。 -
完全なベイジアンネットワーク (Fully Bayesian Network)
完全なベイジアンネットワークは、変数間の確率的関係をモデル化するためのグラフィカルモデルです。このネットワークはノード(変数)とエッジ(ノード間の関係)で構成され、変数間の条件付き依存性を表現します。ネットワークは、共起関係や因果関係を捉えるのに使われます。使用シナリオは、リスク分析、診断システム、予測モデリングなどに使用されます。 -
ピアソン相関係数 (Pearson Correlation Coefficient)
ピアソン相関係数は、二つの変数間の線形関係の強さと方向を測定するための統計指標です。この係数の値は -1 から +1 までの範囲を取り、+1 は完全な正の線形関係、-1 は完全な負の線形関係、0 は無相関を示します。使用シナリオは、データの特徴間の関連性を調べる、予測モデルの特徴選択、データの探索的分析などに使用されます。 -
ResNet(Residual Networks)
ResNetは、深層学習におけるコンボリューショナルニューラルネットワーク(CNN)の一種です。2015年に発表され、その時点での画像認識のベンチマークを大幅に改善しました。ResNetの主な革新は「残差接続(residual connections)」です。これは、レイヤーの出力にそのレイヤーの入力を加算することで、より深いネットワークを効果的に訓練することを可能にします。これにより、勾配消失や勾配爆発といった問題を抑制し、数百層の深いネットワークを訓練することができます。使用シナリオは、画像分類、物体検出、セグメンテーションなど、多くのコンピュータビジョンのタスクで広く使用されています。 -
Inception
Inceptionモジュールは、Googleが開発した深層学習におけるCNNのアーキテクチャです。最もよく知られているバリエーションは「Inception v3」と「Inception-ResNet」です。Inceptionネットワークの主な特徴は、さまざまなサイズのフィルタ(例えば、1×1、3×3、5×5)を同時に適用し、それらの結果を組み合わせることです。これにより、異なるスケールの特徴を効率的に捉えることができます。Inceptionネットワークはまた、計算リソースの使用を最適化し、より深くて精度の高いモデルの構築を可能にします。使用シナリオは、画像分類、物体検出など、複雑なコンピュータビジョンの問題に適用されます。 -
畳み込みニューラルネットワーク (Convolutional Neural Network, CNN)
CNNは、主に画像認識やコンピュータビジョンタスクで使用される深層学習のモデルです。CNNは、畳み込み層(局所的なパターンを検出するためのフィルタを適用する層)、プーリング層(画像の次元を縮小し、重要な特徴を抽出する層)、全結合層(最終的な分類や回帰を行う層)で構成されます。使用シナリオは、物体認識、顔認識、画像分類など、画像に関連する多様なタスクに適用されます。 -
指数平滑化 (Exponential Smoothing)
指数平滑化は、時系列データを平滑化する手法の一つです。最近の観測値に大きな重みを置きながら、過去のすべての観測値に減少する重みを適用します。簡単な指数平滑化からホルトの線形トレンド法、ホルト-ウィンターズ季節調整法など、複数のバリエーションがあります。使用シナリオは、短期の予測、トレンドや季節性のあるデータの分析、在庫管理などに使用されます。 -
Prophet
Prophetは、Facebookによって開発された時系列予測ツールです。Prophetは、成分モデルに基づいており、トレンド、季節性、休日効果などの複数の成分を考慮して時系列データをモデル化します。使いやすさと柔軟性が特徴で、多くのデフォルトパラメータが自動的に設定されます。使用シナリオは、販売予測、在庫需要予測、製品の需要予測など、ビジネスデータの時系列予測に広く使用されています。 -
対数変換
データの変数を対数スケールに変換する数学的操作です。これは、特に統計学やデータ分析で広く使用される技術です。歪んだ(skewed)データ分布をより正規分布に近づける。これにより、統計的モデルや機械学習アルゴリズムがデータをより効果的に処理できるようになります。 -
指数変換 (Exponential Transformation)
指数変換は、データを指数関数の形に変換する数学的操作です。これは、変数の値を指数関数eのx乗、または他の底の指数関数に置き換えることを意味します。主に、データの分布を正規化するか、非線形関係を線形関係に変換するために使用されます。また、データに対数変換を適用した後に逆変換する場合にも使用されます。使用シナリオは、経済データや生物学的データなど、成長率が指数的に表される場合に適用されます。 -
多項式変換 (Polynomial Transformation)
多項式変換は、データの特徴を高次の多項式形式に変換するプロセスです。この変換により、元のデータの特徴を2次、3次などの高次の形式に拡張し、より複雑な非線形関係をモデル化できます。使用シナリオは、回帰分析や分類問題で、非線形関係を扱う必要がある場合に有効です。例えば、曲線的なトレンドを持つデータセットの分析など。 -
正弦波変換 (Sinusoidal Transformation)
正弦波変換は、データを正弦波関数(サイン関数)を用いて変換する操作です。この変換は、周期的なパターンや波形を持つデータを扱う際に有用です。データの周期性や振動をモデル化するのに適しています。使用シナリオは、時系列分析での季節性のモデリング、音声信号の処理、周期的な現象の解析などに使用されます。 -
協調フィルタリング (Collaborative Filtering)
協調フィルタリングは、推薦システムにおいて使用される手法の一つで、ユーザー間またはアイテム間の関連性を分析することに基づいています。この手法は、ユーザーの過去の行動(例えば、購入履歴、評価、閲覧履歴)やアイテム間の類似性を利用して、ユーザーが興味を持ちそうなアイテムを推薦します。 -
組み合わせ型フィルタリング (Hybrid Filtering)
組み合わせ型フィルタリングは、協調フィルタリングと内容ベースフィルタリング(Content-Based Filtering)の手法を組み合わせた推薦システムです。このアプローチでは、ユーザーの行動データだけでなく、アイテムの内容や特性も考慮に入れます。これにより、より精度の高いパーソナライズされた推薦が可能になります。
利点は、単一の手法ではカバーできない弱点を補い合い、新規ユーザーや新規アイテムの問題(コールドスタート問題)に対処しやすくなります。 -
RecordIO形式
RecordIO形式は、大量のデータセットを効率的に扱うためのファイル形式です。この形式は特に、Apache MXNetなどの機械学習フレームワークで使用されます。RecordIO形式は、データセット(特に画像やビデオ)を単一のファイルに連続して格納します。これにより、データの読み込みやアクセスが高速化され、大規模なデータセットの処理が容易になります。使用シナリオは、大量の画像やビデオファイルを含むデータセットを機械学習モデルで使用する際に、効率的なデータ読み込みとアクセスを実現するために用いられます。 -
Single-Shot MultiBox Detector (SSD)
Single-Shot MultiBox Detector(SSD)は、物体検出タスクに用いられる深層学習ベースのアルゴリズムです。SSDは物体検出のための一つの深層ニューラルネットワークを使用し、一回のフォワードパスで物体の位置とクラスを同時に予測します。これにより、高速かつ高精度な物体検出が可能になります。使用シナリオは、リアルタイムビデオ処理、監視カメラシステム、自動運転車など、リアルタイムでの物体検出が必要なアプリケーションに適しています。 -
リコール (Recall)
リコールは、分類問題における性能指標の一つで、正のクラスを正しく識別できた割合を示します。計算方法は、リコールは「真陽性/(真陽性 + 偽陰性)」で計算されます。ここで、真陽性は正しく正のクラスと識別されたケース、偽陰性は誤って陰性クラスと判断された正のケースです。使用シナリオは、特に、正のクラスの識別が重要な場合(例えば、病気の診断)に重視されます。 -
誤分類率 (Error Rate)
誤分類率は、分類器が不正確に予測した割合を示します。計算方法は、「(偽陽性 + 偽陰性)/(全サンプル数)」で計算され、全データの中で間違って分類されたデータの割合を示します。使用シナリオは、分類器の全体的な誤りの割合を評価するのに使用されます。 -
平均絶対誤差 (Mean Absolute Error, MAE)
MAEは、回帰モデルにおける予測誤差の大きさを測る指標です。計算方法は、実際の値と予測値の差の絶対値の平均で計算されます。公式は「Σ|予測値 – 実際の値|/n」です。使用シナリオは、回帰モデルの性能評価に使われ、予測値の誤差がどれくらいあるかを表します。 -
ROC曲線下面積 (Area Under the ROC Curve, AUC)
AUCは、受信者操作特性(ROC)曲線下の面積を示し、分類器の性能を評価する指標です。ROC曲線は、偽陽性率(x軸)と真陽性率(y軸)をプロットしたもので、AUCはこの曲線下の面積を表します。AUCの値は0から1までの範囲で、1に近いほど良い性能を示します。使用シナリオは、分類器の性能を偏りのない方法で評価するのに使用され、特に不均衡なデータセットにおいて有効です。 -
リカレントニューラルネットワーク (Recurrent Neural Network, RNN)
RNNは、シーケンスデータ(例えば、時系列データやテキストなど)に特化したニューラルネットワークの一種です。RNNは、前のステップの出力を次のステップの入力に使用することにより、時間的な情報を保持します。この「記憶」機能により、シーケンス内のデータ間の依存関係を捉えることができます。使用シナリオは、テキスト生成、音声認識、機械翻訳など、シーケンスデータが関連する多くのタスクに使用されます。 -
マルチプルインピュテーション (Multiple Imputation)
マルチプルインピュテーションは、欠損データの問題に対処するための統計的手法です。欠損データを予測モデルに基づいて複数回補完し、各補完データセットについて解析を行った後、その結果を統合します。これにより、欠損データの不確実性を考慮した分析が可能になります。使用シナリオは、医療研究、社会科学、経済学など、欠損データが問題となるさまざまな研究分野で使用されます。 -
リストワイズ削除 (Listwise Deletion)
リストワイズ削除は、欠損値を含むデータの行全体を削除する手法です。このアプローチは最も単純で、欠損データを含む観測値を分析から完全に除外します。欠点は、データの量が減少し、欠損がランダムでない場合にはバイアスが生じる可能性があります。 -
Last Observation Carried Forward (LOCF)
LOCFは、欠損値を直前の観測値で補完する手法です。時系列データや縦断研究において、欠損した時点の直前のデータを使用して欠損値を補完します。欠点は、時間的なトレンドや変化を無視する可能性があり、データの偏りを引き起こすことがあります。 -
平均値補完法 (Mean Imputation)
平均値補完法は、欠損値をその変数の平均値で補完する手法です。単純で実装が容易ですが、変数の分散を低く見積もる傾向があります。使用シナリオは、データの欠損が完全にランダムであり、欠損値が少ない場合に限られます。 -
プルーニング (Pruning)
プルーニングは、機械学習特に決定木やニューラルネットワークにおいて、モデルの複雑さを減らすための手法です。決定木では、木の成長を制限したり、不要な枝を剪定(カット)することでモデルを単純化し、過学習を防ぎます。ニューラルネットワークでは、不要なニューロンや接続を削除します。使用シナリオは、モデルの一般化能力を向上させ、計算効率を高めるために使用されます。 -
勾配 (Gradient)
勾配は、多次元空間において、ある関数の最大増加率を示すベクトルです。機械学習では、勾配はコスト関数(損失関数)の各パラメータに対する導関数を含むベクトルとして表され、モデルの学習において重要な役割を果たします。使用シナリオは、勾配降下法などの最適化アルゴリズムで、コスト関数を最小化するパラメータを見つけるために使用されます。 -
Softmax活性化関数 (Softmax Activation Function)
Softmax活性化関数は、ニューラルネットワークの出力層で使用され、出力を確率分布に変換します。各クラスに対する確率を計算し、その合計が1になるようにします。特に、多クラス分類問題で使用されます。使用シナリオは、画像分類、テキスト分類など、複数のクラスに分類するタスクで利用されます。 -
回帰決定木 (Regression Decision Tree)
回帰決定木は、回帰問題(連続値の予測)に使用される決定木モデルです。木構造を使用してデータを分割し、各リーフノードで連続値を予測します。使用シナリオは、住宅価格の予測、温度予測など、連続的な値を予測する問題に適用されます。 -
分位ビニング (Quantile Binning)
分位ビニングは、データを分位数に基づいてビン(区間)に分割する方法です。データは同じ数の観測値を含むビンに分けられます。この方法は、データの外れ値の影響を減らし、データの分布を均等にするのに役立ちます。使用シナリオは、データの前処理、特にモデルの入力として使用される特徴量のスケーリングや正規化に使用されます。 -
デカルト積変換 (Cartesian Product Transformation)
デカルト積変換は、二つ以上の集合から全ての可能な組み合わせを生成する数学的操作です。この操作は、複数の特徴量の組み合わせを生成するのに使用され、新しい複合特徴量を作成します。使用シナリオは、データの特徴工学、特にカテゴリカルデータを扱う場合や、異なる特徴量の相互作用をモデル化する際に使用されます。 -
直行スパースビグラム (Orthogonal Sparse Bigram)
直行スパースビグラムは、テキストデータの特徴抽出手法の一つで、隣接する単語ペア(ビグラム)を利用して、高次元のテキストデータを低次元で表現します。この手法は、各ビグラムの出現頻度を用いて文書を表現し、直行性とスパース性を保ちながらデータの次元を減少させます。使用シナリオは、自然言語処理におけるテキスト分類やトピックモデリングなどに使用されます。 -
ドロップアウト (Dropout)
ドロップアウトは、ニューラルネットワークの訓練中にランダムにノード(ニューロン)を無効化する手法です。過学習を防ぎ、ネットワークの一般化能力を向上させるために使用されます。
使用シナリオは、特に深いネットワークを訓練する際に有効で、異なるネットワークのサブセットを訓練することで、モデルの堅牢性を向上させます。 -
エポック数 (Number of Epochs)
エポック数は、ニューラルネットワークが全訓練データセットを通過する回数を指します。適切なエポック数は、モデルの訓練が十分であり、かつ過学習を防ぐために重要です。使用シナリオは、モデルの性能と計算コストのバランスを取るために、エポック数を調整します。 -
ドリフト (Drift)
ドリフトは、時間の経過とともにデータの分布が変化する現象を指します。モデルの性能が時間とともに低下する原因となり得ます。定期的な再学習やモデルの更新が必要です。 -
決定境界 (Decision Boundary)
決定境界は、分類問題において異なるクラスを分離する境界線です。決定境界は、モデルがデータをどのように分類するかを示し、線形や非線形の形状を取ることがあります。使用シナリオは、モデルの解釈性を向上させるために、決定境界を視覚化します。 -
ロジスティック回帰 (Logistic Regression)
ロジスティック回帰は、二値分類問題に広く使用される統計的手法です。確率を出力し、特定の閾値に基づいてクラスに分類します。使用シナリオは、メールがスパムかどうかの分類、疾患の発症予測などに使用されます。
※AWS-MLSは以下の概念・サービスを理解することも重要です。
- 取り込み/収集
- 処理/ETL
- データ分析/可視化
- モデルトレーニング
- モデルのデプロイ/推論
- 機械学習の運用化
- AWS 機械学習アプリケーションサービス
- 機械学習に関連する言語 (Python、Java、Scala、R、SQL など)
- ノートブックおよび統合開発環境 (IDE)
上記の概念はまんべんなく問われますので、徹底的に勉強しましょう。
■AWS-MLS認定試験の感想
AWS-MLSを受験してみた感想を載せておきます。
- 用語を覚えていてよかった
問題集を解きながら、上記の簡単な用語集を作成しました。そのおかげでどういった場面でどのアルゴリズムを使うのかが理解でき、問題を解くうえで役立ちました。ぜひ関連用語、頻出ワードの内容を暗記しましょう。
- 用語は日本語・英語ともに覚えておこう
試験の機械翻訳が悪いわけではないのですが、各アルゴリズムが英語で表記されている場合と、無理やり日本語になっている場合があります。実は知っているアルゴリズムなのに、片方の読みしか知らずに点を落とすのはもったいないです。ぜひ両方で覚えておきましょう。
- 配布されるホワイトボードにわからない用語をメモしよう
試験合格のためというより、今後のための勉強ということで、本試験の問題で出てきた知らない用語は配布されるホワイトボードにメモして、試験後に調べられるようにしましょう。
まとめ:AWS-MLSに合格できた勉強方法と勉強時間をご紹介
Amazon Web Services(AWS)の認定資格は近年、価値が高まってきています。わたしの周りではエンジニア職の方だけではなく、営業職や事務職に就いている方もAWS認定資格を取得しているんですよね。
「AWS Certified Machine Learning – Specialty(MLS-C01)」を取得できた方はぜひ、ネクストステップとして「AWS Certified Database – Specialty」にトライしてみてほしいです。
参考サイトリンク:AWS認定
↓ほかの協栄情報メンバーの勉強方法も公開しています。ぜひ参考にしてみてください。
■未経験から約2年半でAWS認定12冠取得したことについて(INAMURA)
https://cloud5.jp/roadtoaws12/
■アソシエイト3冠+SAP+CLFを取ったので振り返ってみる(dapeng)
https://cloud5.jp/aws-exam-z/
■SAAを3年ぶりに再受験(資格更新)した話(ebiharatomoko)
https://cloud5.jp/saa-recertification/
■AWS DVA(Certified Developer – Associate)の教材まとめ(Y.TANAKA)
https://cloud5.jp/summary-of-teaching-materials-for-aws-dva-certified-developer-associate/
■AWS SAA-C02認定の学習経験(lujian)
https://cloud5.jp/aws-saa-c02-learning/
■ソリューションアーキテクト – アソシエイト合格雑記(TERAO)
https://cloud5.jp/saa-pass-note/