この記事の概要
2023/01/08
AWS認定機械学習 - 専門知識
(AWS Certified Machine Learning - Specialty(MLS-C01))
を受験したので、その時の記録
復習用ノートとして、また後で見返して今後の資格試験受験時の参考にしたり仕事で使いたくなったとき思い出せるようにまとめます。
試験の概要
SPECIALTYカテゴリの試験で、この試験では「AWS データレイクと分析サービスを利用して、データからインサイトを得るための専門知識を認定します。」とのこと。
AWS公式より引用:引用元
◼︎ 試験要項
問題数 :65問(うち15問は採点対象外)
試験時間 :180分
受験料 :¥30,000(税別)※公式サイトでは「300USD」の表記ですが、為替レートに関わらず税別¥30,000です。
合格ライン:100~1000点中750点※問題の難易度により配点が異なるスケールスコア
受験資格 :なし
有効期限 :3年
◼︎ 出題範囲
分野 | 出題割合 |
---|---|
第 1 分野: データエンジニアリング | 20% |
第 2 分野: 探索的データ分析 | 24% |
第 3 分野: モデリング | 36% |
第 4 分野: 機械学習の実装とその運用 | 20% |
2023/01時点の最新バージョン(Ver.2.0) のものです。
バージョンアップで範囲等は変更されるので、受験時は公式サイトの「試験ガイド」を確認してください。
AWS Certified Machine Learning - Specialty 認定
勉強開始前の状態
AWSで動いているアプリの保守開発/運用の業務を5年程度、現在も継続中。機械学習の経験はゼロ。
AWS認定はこれまで10個取得済み。
- AWS認定ソリューションアーキテクトを受験した時の話
- AWS認定デベロッパーアソシエイトを受験した時の話
- AWS認定SysOpsアドミニストレーターアソシエイトを受験した時の話
- AWS認定ソリューションアーキテクトプロフェッショナルを受験した時の話
- AWS認定DevOpsエンジニアプロフェッショナルを受験した時の話
- AWS認定セキュリティ - 専門知識を受験した時の話
- AWS認定データベース - 専門知識を受験した時の話
- AWS認定アドバンストネットワーキング - 専門知識を受験した時の話
- AWS認定データ分析 - 専門知識を受験した時の話
勉強に使ったもの
1. AWS公式模擬試験(AWS Certified Machine Learning - Specialty Official Practice Question Set (MLS-C01 - Japanese))
AWS Skill Builderで無料で提供されている20問の模擬試験。何度でも実施できるのではじめに実施します。
2. AWS公式E-learning(Exam Readiness: AWS Certified Machine Learning - Specialty (Japanese) 日本語実写版)
AWS Skill Builderで無料で提供されている試験対策の公式E-learning、試験範囲についてサンプル問題をはさみながら教えてくれます。試験範囲の要点について知ることができるので、受講する価値はあると思います。
3. オンライン問題集(非公式)
AWS認定受験時に毎回購入している「Whizlabs」
DASのコースは最新のバージョンの問題が 271問(65問×3パターン+セクション問題が61問+お試し問題が15問) 用意されています。
今回は11月のBlack Fridayセールのときに購入しておいたので18.95USDからで50%offで9.47USD(日本円で¥1,350ぐらい) でした。
いつもどおり、Google翻訳で翻訳して利用。
この試験の対策のための書籍や公式以外のE-learningは見つかりませんでした。(2023/01時点で)
勉強(試験準備)の流れ
1. 試験ガイドを読む
はじめに、公式サイトの「試験ガイド」を読みます。
2. サンプル問題と模試を実施する
次に、公式のサンプル問題と模試をやってみます。
無料なので気軽に実施できます。これで問題のレベル感と自分のレベル感、そのギャップを確認します。
もちろんここでわからなかった部分はメモしておいて後で調べます。覚えたほうが良さそうな部分はノートに書き出します。
サンプル問題では、AWSに関係のない「機械学習」の問題が多く、知らない単語だらけで全く解けませんでした。
「機械学習」についての経験が0なのもありますが、これまで受験してきたSpecialty系の試験の中で一番「専門知識」を問われる印象です。
模試も同様に機械学習アルゴリズムの特徴や目標メトリクスなどAWSにベンダーロックされていない内容が多かったです。
3. Exam Readinessを受講する
公式E-Learningはためになることが多いので、受講しておきます。
出題範囲の要点を説明してくれますが、「1年以上の経験を有するMLの専門家向け」と前置きしていて登場する要素の詳細は結構省かれているので、各モジュールで出てくるキーワードについて自分で調べる必要があります。
機械学習の書籍を1冊買って読むぐらいでちょうどよかったかもしれません。
4. 練習問題を解く
ここまでで機械学習の基礎をある程度学習できたので、あとは練習問題で知識を深めていきます。
今回の試験は練習問題を解き始めるまでの基礎の学習に一番時間がかかりました。(ここまでですでに30時間ぐらい)
全問解いてから回答の確認をしていると問題文を2回ずつ読むことになって効率が悪いので、practice modeでその場で回答を確認し、間違っていた場合メモしたりすぐに調べるようにしています。
5. 復習する
「機械学習」に関しては座学のみで実戦経験がないので、理解が浅い部分も多く、ノートを見返しながら疑問に思ったところを調べて知識を追加しつつ、暗記要素は反復して刷り込んでいきました。
勉強時間
約60時間
受験後
結果はスコア821で合格。
全問解き終わった時点で残り60分程度、残り時間は先頭からしっかり見直しして、終了5分前に提出。
さすがに60時間勉強しただけあって、それなりに手応えを感じました。
AWS認定も残りあと1つ!
最後の「SAP on AWS」は今年度追加された試験で、「SAP」についても未知の状態ですが、2月あたりに受験予定です!
とりあえず「SAP」の本を読むところから、ぼちぼちやっていこうと思います。
勉強ノート
試験のために勉強しながらまとめたノート
※ここに書いてあることは、あくまで私が理解が足りないと感じ、覚えたかったことだけです。試験範囲を網羅はしていません。
機械学習基礎
機械学習(ML:Machine Learning)
コンピューター(機械)に大量のデータを入力し、データに潜むパターンやルールを発見/記憶することを反復(学習)させる技術。
機械学習はAI(Artificial Intelligence/人工知能)と呼ばれる技術の一部である。
機械学習は以下のプロセスにより成り立つ。
- データの収集
- データのクレンジング
- 特徴量エンジニアリングの実行
- モデルの定義
- モデルのトレーニング(学習)
- テストの実行
- 結果の予測(推論)
深層学習(Deep Learning)
ニューラルネットワークを利用した機械学習の1種。
学習に多くの時間とデータ、高いマシンスペックを要するが、より複雑な処理が可能。
モデル
機械学習における「モデル」は入力データに対して結果(出力)を推論するための、仕組み(ロジック)を指す。
※入力→モデル→出力の形になる。
アルゴリズム
機械学習における「アルゴリズム」は学習(トレーニング)によって「モデル」を生成するための、学習手法を指す。
機械学習は「学習」プロセスと「推論」プロセスに分けることができ、「学習」プロセスで「アルゴリズム」によって「モデル」を作り、「推論」プロセスで「モデル」によって推論を行う。
教師あり/教師なし
アルゴリズムは大きく分けて「教師あり」「教師なし」「強化学習」に分けられる。
- 教師あり: 各データと「解答(のラベル)」のセットを入力とする。
- 教師なし: データセットのみを入力とし、特徴に基づき分類する。
- 強化学習: 機械自身が試行錯誤し、より高い「報酬(スコア)」を得られる結果を探す。
分類/回帰
教師あり学習はさらに「分類」と「回帰」に分けられる。
- 分類: データが属するクラスを予測する。結果が2値(合否など)の場合「2値分類」、3値以上の場合「多クラス分類」という。
- 回帰: 連続する数値から、今後の数値の変化を予測する。
※クラスを 離散値(discrete) 、連続する値を 定量的(quantitative) という言う方もする。このいずれかの単語が出てきたら「分類/回帰」を指していると考える。
クラスタリング/次元削除
教師なし学習は「クラスタリング」と「次元削除」に分けられる。
- クラスタリング: データを特徴によってグループ化する。
- 次元削減: 多次元のデータに対し、分析に不要な情報や冗長な情報を削除し圧縮する。これにより高速化やグラフによる可視化を可能にする。(次元数が多いと平面で図示できない)
分類とクラスタリングが紛らわしいが、違いは「分類は教師あり」「クラスタリングは教師なし」と覚える。
自然言語処理(NLP: Natural Language Processing)
人間の言語(自然言語)を機械で処理し、内容を抽出すること。
NLPの代表的なアルゴリズムとして以下がある。
- OSB(直行スパースダイアグラム)
- TF-IDF
- Bag-of-Words
- N-Gram
コーパス
AIが自然言語を扱う際に使う文章を構造化し、データベース化したもの。
トピックモデル
機械学習における「トピック」とはNLPにおいて文章の主題(=トピック)を指す。
各文章に対して、その主題が何かを抽出するためのモデルが「トピックモデル」で、トピックによるグループ化や次元削減に用いられる。
この「トピックモデル」の代表的な手法が3つある。
- LSI(Latent Semantic Index/潜在的意味解析): 同じ意味を持つ単語をグルーピングして、トピックを抽出する。
- PLSI(Probabilistic Latent Semantic Indexing): LSIを確率生成モデルとして考え直したもの。
- LDA(Latent Dirichlet Allocation): PLSIをベイズ化したもの。
バイアスとバリアンス
バイアス
機械学習において「実際値と予測値の差」を「バイアス」という。
この差が小さいほど精度が高く、正確に予測できているということになる。
誤差が大きい状態を「高バイアス」と呼び、精度が低いことになる。
バリアンス
機械学習において「予測値が散らばっている度合い(予測値の最小と最大の差の大きさ)」を「バリアンス」という。
散らばり度合いが高い状態を「高バリアンス」と呼び、精度が低いことになる。
高バリアンスは「過学習」が原因である。訓練を重ねることにより、結果は多く得られるが、大きく外れた予測値も増えてしまう。
バイアスとバリアンスはトレードオフの関係であり、訓練が足りないと高バイアスになりやすく、訓練をしすぎると高バリアンスになりやすい。
アンサンブル
複数のモデルによる予測を組み合わせる(多数決を取る)ことで、予測の精度を上げる手法。
アンサンブルは大きく以下の3つの手法にわけられる。
手法 | 特徴 | アルゴリズム例 |
---|---|---|
ブースティング(Boosting) | 前回誤っていた部分を重点的に再学習させることを繰り返すことで精度を上げていく。並列処理ができないため時間がかかる。 | ・GBDT ・XGboost |
バギング(Bagging) | 学習データの一部のみを利用し、並列で計算した複数の結果を最後に結合する。データを一部しか使わないことで過学習を防ぐ。 | ランダムフォレスト |
スタッキング(Stacking) | 複数の手法のモデルを組み合わせて学習モデルを作る。 | - |
ハイパーパラメータ
機械学習アルゴリズムの挙動を設定するパラメータ。
エポック数、学習率、閾値、ミニバッチサイズ、層の数、一層あたりのニューロン数、などがあり、精度を上げるためにチューニングしていく。
学習率
機械学習の最適化において、重みパラメータを一度にどの程度変化させるかを表す調整パラメータ。機械学習では反復的に重みパラメータを変更していくが、学習率の値が高いほど一度に変更する重みパラメータの大きさが大きくなるので学習のスピードは上がり、反対に低ければ学習のスピードは下がる。
学習率を高く設定し過ぎると、一部の偏ったデータから学習しすぎてしまい、正確性が下がる可能性がある。
オーバーフィッティング
オーバーフィッティング(または過学習/過剰適合)とは、回帰分析や機械学習で、学習データに対してあまりに忠実に適合しすぎて本来データが示唆する傾向から大きく外れてしまう現象。
トレーニング対象のデータに対しては高い精度が出るのに対し、未知のデータに対しては期待する精度が出ない状態になってしまう。
データエンジニアリングの中で、オーバーフィッティングが起きていた場合、対策として、次元削減、正則化、ドロップアウトなどを行う。
正則化
正則化(regularization)とは、不良設定問題を解いたり過学習を防いだりするために、情報を追加する手法。
重みの絶対値の値が大きくなると、誤差関数の値が大きくなるようなペナルティーをかけるなどする。
ドロップアウト(Dropout)
ニューラルネットワークにおいて過学習を防止する手法の一つ。
損失関数(loss function)
損失関数とは機械学習モデルが算出した予測値と実際の正解値のズレを「損失(loss)」と言い。損失を計算するための関数が「損失関数」。
その結果出力される「損失」は、実際の正解値と予測値の距離や差、違いの総量や平均とみなすことができる。
Bag-of-Words
NLPのアルゴリズムの一つ。
文章内の単語の出現回数から分類/評価を行う。
TF-IDF(Term Frequency-Inverse Document Frequency)
NLPにおいて、各文書(document)中に含まれる各単語(term)が「その文書内でどれくらい重要か」を表す統計的尺度の一つ。
「ある文書内」で「ある単語」が「どれくらい多い頻度で出現するか」を表すtf(term frequency:単語頻度)値と、「全文書中」で「ある単語を含む文書」が「(逆に)どれくらい少ない頻度で存在するか」を表すidf(inverse document frequency:逆文書頻度)値を掛け合わせた値。
N-gram
NLPのアルゴリズムの一つ。文字列に対する前処理などに利用される。(「N文字インデックス法」「Nグラム法」などとも言う。)
N-gram=連続するn個の単語や文字のまとまり、これを検索する手法も「N-gram」。
1-gram、2-gram、3-gramのことをunigram(ユニグラム)、bigram(バイグラム)、trigram(トライグラム)と呼ぶ。
Please call the number below
の文章にN-gramを適用すると
Please
, call
, the
, number
, below
の5個のユニグラム
Please call
, call the
, the number
, number below
の4個のバイグラム
になる。
Bag-of-Wordsと違い、連続する複数単語を組み合わせるため、**単語のつながり(文脈)**による分析ができる。
直行スパースバイグラム(OSB:Orthogonal Sparse Bigram)
NLPのアルゴリズムの一つ。文字列に対する前処理などに利用される。
単語のグループから「先頭の単語+その他の単語のペア」を複数作る。
The quick brown fox
の文章にOSBを適用すると
The_quick
, The__brown
, The___fox
の3つのペアができる。
(単語の間には単語間の別の単語の数に応じた_
(アンダースコア)が入る)
ストップワード
NLPにおいて、一般的で予測の役に立たないなどの理由で処理対象としないワード。(「of」「the」「です」「ます」など)
予め辞書として定義しておくか、出現頻度が極端に多い、などで判定し、除去する。
欠損値の補完
データセット内のデータポイントに欠損があると、エラーが起きたり、正確に予測できない可能性がある。
そのため、データの事前準備として欠損値を補完する処理を行う。補完の方法により、適したデータタイプや特性が異なる。
データポイントの生成方法 | データタイプ | 特性 |
---|---|---|
平均値/中央値 | 数値 | 処理が軽量で簡潔、正確性は高くない |
0(固定値) | カテゴリ | 処理が軽量で簡潔、正確性は高くない |
k-NN | 数値 | 処理に時間がかかる、正確 |
深層学習 | カテゴリ | 処理に時間がかかる、正確 |
連鎖方程式(MICE)による多変量代入 | 数値/カテゴリ | 処理に時間がかかる、正確 |
偽陽性/偽陰性
二値分類(二項分類/バイナリ分類)の結果は正解値(実際の値)と予測値の関係により以下の4つに分けられる。
正しい予測
- 真陽性(TP:True Positive)
- 真陰性(TN:True Negative)
誤った予測
- 偽陽性(FP:False Positive)※誤って陽性と予測=誤検出
- 偽陰性(FN:False Negative)※誤って陰性と予測=検出漏れ
行列で表すと以下のようになる。
正解値\予測値 | 陽性 | 陰性 |
---|---|---|
陽性 | 真陽性(TP) | 偽陰性(FN) |
陰性 | 偽陽性(FP) | 新陰性(TN) |
この行列を混合行列という。
偽陽性=予測値が"陽性"で不正解なので"偽"、本当は陽性ではない"偽の陽性"と覚える。(陰性も同様)
ここで言う陽性=Positiveは必ずしも「正しい方(良い結果)」とは限らない、モデルにより検出したい方を陽性とする場合が多いため、異常検出の場合「異常=陽性」となる。
これを逆で考えてしまうと、誤った回答を選択してしまうことになるので注意。
評価指標(メトリクス)
機械学習ではモデルに対して予測の正誤率を測る「評価指標」がある。
そのうちの1つ、再現率(Recall)を例に取る。
「再現率(Recall)」とは、二値分類(二項分類/バイナリ分類)の評価指標の一つで、正解値が「陽性(Positive)」であるデータ全体のうち、機械学習モデルによる予測値も「陽性」で正解だった確率。0.0(=0%)~1.0(=100%)の範囲の値になり、1.0に近づくほどより良い。真陽性率とも呼ぶ。
※AWS公式のサンプル問題では「リコール率」という呼び方をされていた。
「 $ Recall = {TP \over TP+FN} $ 」 の式で求められる。
この他にも以下の評価指標がある。※これらは「分類問題」の評価指標
名称 | 計算式 | 説明 |
---|---|---|
Recall (TPR/再現率/真陽性率) |
$ Recall = {TP \over TP+FN} $ | 正解が陽性に対する陽性予測の割合 |
Specificity (TNR/特異度/真陰性率) |
$ Specificity = {TN \over TN+FP} $ | 正解が陰性に対する陰性予測の割合 |
FPR (偽陽性率/誤検出率) |
$ FPR = {FP \over FP+TN} $ | 正解が陰性に対する陽性予測の割合 |
Accuracy (ACC/正解率) |
$ Accuracy = {TP+TN \over TP+FP+FN+TN} $ | 正しい予測の割合(全体に対する真陽性と真陰性の割合) |
Precision (適合率/精度) |
$ Precision = {TP \over TP+FP} $ | 陽性予測に対する正解が陽性の割合 |
F-measure (F値/F1値) |
$ F-measure = {2 \times Precision \times Recall \over Precision+Recall} $ | PrecisionとRecallの調和平均 (この2つがトレードオフになるため、バランスを取る) |
AUC(ROC or PR) | - | 「Precision,Recall」または「FPR,Recall」の2つの指標をあわせたもの ※詳細は少し下に別途記載 |
模試やサンプル問題を見る限り、評価指標の名称に対する意味は暗記必須
(意味を覚えていないと目的に対しどの指標が適切か考えられない)
「Accuracy」と「Precision」は機械翻訳だとどちらも「精度」になってしまうため、日本語が怪しいAWS認定試験の対策としては英語で覚えておくのが安全。
※AWS認定試験は試験中に原文と日本語訳の表示切り替えができる。
AUC(Area Under the Curve)
「ROC曲線」または「PR曲線」の「下面積」のこと。連続する複数の閾値で結果を計測し、その結果をプロットした曲線の「下面積」が広くなるほど精度が高いと判断する。
※RecallやPrecisionなどは1つの閾値での結果から計算する。
どちらの曲線かで意味が異なる。そのため、それぞれ「AUC/ROC」「AUC-PR」「ROC曲線」「PR曲線」など、どちらの曲線かわかる呼び方をされるか、どちらでも正解(または不正解)になるような出題のされ方になることが予想される。
- ROC曲線: Recall(TPR)とFPRをプロットした図。
- PR(Precision-Recall)曲線: PrecisionとRecallをプロットした図。
陽性が極端に少ない場合など、不均衡(負または正が極端に少ない偏ったデータ)データの場合、PR曲線のほうが適している。
RMSE(Root Mean Squared Error)
評価指標として利用できる関数の一つ、二乗平均平方根誤差。
値が小さいほど、誤差が小さい。「予測モデルが安定して小さい誤差で予測をしているか」を表す指標。
分類ではなく、数値で予測する回帰モデルの評価に利用する。類似の関数で「MSE」もある
MAE(Mean Absolute Error)
これも回帰問題の評価指標として利用できる関数の一つ、平均絶対誤差。
データセットに外れ値が含まれており、外れ値が結果に大きな影響を与えてしまう場合に適している。
その他にも「ランキング」や「CV」、「NLP」などに適した評価指標もあるらしい(出題されるかは不明)
目的に応じた評価指標の選択
モデル作成の際は、分析の目的に応じ、目標とする評価指標を選択する。
例えば、自動運転AIで自動ブレーキのための追突検知は誤検知をしてしまうと危険なため、検知漏れは許容し、誤検知の割合を減らす。など。
- 偽陽性(誤検知)を減らす: Precision
- 偽陰性(検出漏れ)を減らす: Recall
- 偽陽性or偽陰性(誤り)を減らす: Accuracy
誤検知を減らそうとすると「検出漏れ」が増え、検出漏れを減らそうとすると「誤検知」が増えることになりやすい。
また、不均衡データの場合、「正解率」が高くなりやすい。
こういった短所を補うため、これらを組み合わせた「F-measure」と「AUC」がある。
の記事が非常にわかりやすかった。
オーバーサンプリングとアンダーサンプリング
予測モデルのもとになるデータが不均衡データ(負または正が極端に少ない偏ったデータ)の場合、データ数をいずれかに合わせる(均衡化する)ことで予測精度を上げる。
SMOTE(Synthetic Minority Over-sampling TEchnique)
オーバーサンプリングの手法の一つ。少ない方のデータをただ単にコピーするのではなく、k-NNアルゴリズムにより近傍にあるデータを用いる。
GAN(Generative Adversarial Network)
2つのニューラルネットワークを互いに競わせて入力データの学習を深めていく手法。
入力データの特徴を学習し、擬似的なデータを生成する事ができる。敵対的生成ネットワークとも呼ぶ。
不均衡データに対するオーバーサンプリングにも利用できる。
ブートストラップサンプリング
学習にすべてのデータを利用するのではなく、ランダムに一分のデータを取り出して学習する手法。
OneHotエンコーディング
カテゴリ列を0/1の数値を値に持つ複数の列に変換する。
表形式データとしては冗長になるが、機械学習は数学的計算により予測を行うため、数値(バイナリ)のほうが都合がいい。
ただし、カテゴリ列の数やカテゴリの数が数十ある場合は大量の特徴ができてしまうため、適さない。この場合、「平均エンコーディング(mean encoding)」などを利用する。
id | plan |
---|---|
1 | standard |
2 | bussiness |
3 | enterprise |
こうなる
id | plan_standard | plan_bussiness | plan_enterprise |
---|---|---|---|
1 | 1 | 0 | 0 |
2 | 0 | 1 | 0 |
3 | 0 | 0 | 1 |
テスト用データの分割
データセットはトレーニングにすべて利用するのではなく、検証(ハイパーパラメータのチューニング)、テスト(精度の確認)にも利用するため、
予め3つに分割する。通常は「80%:10%:10%」または「70%:15%:15%」の割合で分割する。
時系列予測の場合は「シーケンシャル分割」(順序を保ったまま分割)、そうでない場合「ランダム分割」を行う。
その他にも、「K分割交差検証」に代表される「交差検証」によって、分割なしですべてのデータをトレーニングと検証に利用する手法もある。
K分割交差検証
データセットを分割し複数個のモデルで複数回検証することでトレーニングと検証にすべてのデータを利用する「交差検証」手法の一つ。
以下の手順でトレーニングと検証を行う。
- データセットをk個のサブセットに分割する
- それぞれのk-1個のサブセットでトレーニングを行い、k個のモデルを生成する
- それぞれのモデルにトレーニングに利用していない残り1個のサブセットで検証を行う
相関
相関(correlation)とは、一方が変化すれば他方も変化するように相互に関係し合うこと。
散布図にすると以下の形になる。
出典元(Wikipedia):https://ja.wikipedia.org/wiki/%E7%9B%B8%E9%96%A2
相関係数
相関係数とは、2変数間の相関を示す尺度。
単に「相関係数」と言った場合、通常「ピアソンの積率相関係数」を指す。
ピアソンの積率相関係数(PCC)は、2つのデータの"線形関係"の強さの尺度であり、-1.0~1.0の範囲の値を取り、絶対値が大きいほど相関関係が強い。
スピアマンの相関係数
スピアマンの相関係数は順位相関の尺度。2つの"ランク付けされた"変数間の関連の強さと方向を測る。
2変数間に"直線的な"相関関係がない(非ガウス分布)の場合に利用する。
正規分布(ガウス分布)
正規分布とは、"通常の"確率分布であり、データが平均値の付近に集積した左右対称な山なりの形になる。
出典元(Wikipedia):https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E5%88%86%E5%B8%83
リッジ回帰/ラッソ回帰
モデルの係数にペナルティを付けることでモデルが過学習しないように工夫した線形回帰モデル。
リッジ(L2)回帰はモデルの係数を減らすが0にはならない。
ラッソ(L1)回帰は一部のパラメータが0になる。複雑なモデルの過剰適合対策に適している。
Horovod
TensorFlow、Keras、PyTorch、ApacheMXNetを使用した"分散型"ディープラーニングトレーニング用のOSSフレームワーク。
既存のトレーニング処理をHorovodを利用した環境へ移行することで分散処理によるパフォーマンス向上ができる。
分析結果の視覚化
機械学習で予測した結果は用途に応じてグラフなどで視覚化する場合が多い。
AWSの場合、QuickSightやKibanaなどを利用して視覚化することになる。
QuickSightで利用できるビジュアルタイプ一覧
データエンジニアリング
機械学習では収集したデータをそのままモデルの入力とすることはない。
モデルによる推論に適した形に事前変換を行う。この変換処理前のデータを「rawデータ(生データ)」という。
生データを分析のためのデータに変換するジョブや、蓄積するDWH(データウェアハウス)などの構築/管理などデータ分析基盤を整えることを「データエンジニアリング」という。
最適化アルゴリズム(Optimizer)
トレーニングの中で損失を減らすために最適化アルゴリズム(Optimizer)を利用する。
AWSの機械学習関連サービス
AWSで機械学習を利用するための手段は大きく3つに分けられる。
- AIサービス: 機械学習のためのほとんどのプロセスがすでに完了している状態、予測(推論)をすぐに行える。(SaaS)
- MLサービス: 独自の機械学習モデルなどを作成するためのプラットフォームが用意された状態。(PaaS)
- MLフレームワーク・インストラクチャ: インフラとしてAWSを利用し、機械学習のプラットフォームはユーザが構築する。(IaaS)
Amazon SageMaker
機械学習のためのフルマネージドサービス。
機械学習用の一連のパイプラインを制御する機能や大量データのバッチ処理での推論、リアルタイム推論のためのHTTPSエンドポイントを提供するホスティング機能など様々な機能があり、データの前処理やモデルのトレーニングから推論のための環境(APIやバッチ)のデプロイまでの一連の構築/管理を行うことができる。
ストレージ
データセットのロード元としてS3やEBS、EFS、FSxと統合されている。
FSxが最もロード時間が速くなる。
組み込みアルゴリズム
SageMakerにはいくつかの組み込みアルゴリズムが用意されており、トレーニングジョブの作成時にアルゴリズムを選択する。
※組み込みアルゴリズム以外(サードパーティのサブスクリプションや独自アルゴリズム)も利用できる。
組み込みアルゴリズム一覧
アルゴリズム | 特徴 | 説明 |
---|---|---|
AutoGluon-表形式分類 | ・教師あり ・分類and回帰 ・アンサンブル ・表形式 |
表形式のデータセットから複数のモデルをアンサンブルするOSS |
CatBoost | ・教師あり ・分類and回帰 ・GBDT |
「勾配降下法(Gradient)」と「アンサンブル学習(Boosting)」、「決定木(Decision Tree)」の3つの手法を組み合わせた「勾配ブースティング決定木(Gradient Boosting Decision Tree: GBDT)」を実装したOSS |
因数分解機 | ・教師あり ・分類and回帰 ・Factorization Machine(FM) ・表形式 |
分類タスクと回帰タスクの両方に使用できる汎用の教師あり学習アルゴリズム。クリック予測やレコメンデーションに適している。 |
K最近傍(k-NN) | ・教師あり ・分類and回帰 ・K近傍法 ・表形式 |
予測データに近いk個の多数決によってクラスを推測する。クラス分類/回帰分析に利用できる。類似したアイテムを見つけるのに適している。 |
LightGBM | ・教師あり ・分類and回帰 ・GBDT |
|
線形学習(Linear Learner) | ・教師あり ・分類and回帰 ・表形式 |
線形回帰または線形分類 |
TabTransformer | ・教師あり ・分類and回帰 |
|
XGBoost(eXtreme Gradient Boosting) | ・教師あり ・分類and回帰 ・GBDT ・表形式 |
GBDTを実装したOSS。回帰、分類 (バイナリとマルチクラス)、ランキングの問題に使用できる。 |
Object2Vec | ・教師あり ・分類and埋め込み ・表形式 |
単語に対するWord2Vec埋め込み手法を、文や段落などのより複雑なオブジェクトに対しても使用できるよう、汎用化したもの。 |
DeepAR予測 | ・教師あり ・時系列予測 |
再帰型ニューラルネットワーク (RNN) を使用してスカラー (1 次元) 時系列を予測する |
主成分分析法(PCA) | ・教師なし ・次元削減 |
データポイントを最初のいくつかの主成分に射影することにより、できるだけ情報を保持しつつデータセット内の次元(特徴の数)を縮退させる。回帰問題の次元削減に利用する。 |
K-Means | ・教師なし ・クラスタリング |
類似のデータをグループ化する。k-NNに似ているが、こちらは教師なしのクラスタリング。 |
IP Insights | ・教師なし ・クラスタリング ・異常検出 |
IPv4アドレスとIDなどの関連付けを学習し、異常なアクセスなどを予測する。 |
ランダムカットフォレスト(RCF) | ・教師なし ・アンサンブル ・異常検出 |
突然のスパイク、周期性の中断など、データセット内の異常なデータポイントを検出する。 |
BlazingText | ・テキスト分析 ・分類and埋め込み |
BlazingTextは単語ベクトルを生成する手法であるWord2Vecの実装。感情分析、名前付きエンティティ認識、機械翻訳など、多くの下流の自然言語処理(NLP)に利用できる。 |
Sequence to Sequence(seq2seq) | ・教師あり ・テキスト分析(オーディオの入力可) ・ニューラルネットワーク |
機械翻訳、テキスト要約、speech-to-textに利用できる。 |
潜在的ディリクレ配分(LDA) | ・教師なし ・テキスト分類 ・次元削減 ・トピックモデル |
文書のトピック分類やマルチクラス分類問題の次元削減に利用できる。 |
ニューラルトピックモデル(NTM) | ・教師なし ・テキスト分類 ・トピックモデル |
トピック抽出によるグルーピングや要約に利用する。 |
イメージ分類-MXNet | ・教師あり ・画像処理 |
入力として画像を受け取り、ラベル付けを行う。 |
イメージ分類-TensorFlow | ・教師あり ・画像処理 |
画像に対し、ラベルごとの確率を出力する。 |
セマンティックセグメンテーション | ・教師あり ・画像処理 |
イメージ内のすべてのピクセルに、事前定義された一連のクラスのクラスラベルを付ける。 |
オブジェクトの検出 | ・教師あり ・画像処理 |
画像内のオブジェクトを検出及び分類する。 |
その他の一般的なアルゴリズムも出題されそうなので一覧にしておく
アルゴリズム | 特徴 | 説明 |
---|---|---|
ランダムフォレスト(RF) | ・教師あり ・分類and回帰 |
ランダム化された決定木を複数使うバギングアルゴリズム。過学習になりづらく精度が高い。 |
ロジスティック回帰 | ・教師あり ・回帰 |
線形回帰に似ているが、0~1のバイナリ出力を生成する。 |
Word2Vec | ・教師あり ・テキスト分類 |
テキストに対する感情分析や単語同士の足し引きができる。 |
ナイーブベイズ | ・教師あり ・分類 |
「ベイズの定理」によって確率を求め、確率の最も高いものを結果として分類する。複数の独立変数に基づき分類を行うのに適している。 ・多項ナイーブベイズ:特定の単語の頻度 ・ベルヌーイナイーブベイズ:特定の単語が現れるかどうかを検出 ・ガウスナイーブベイズ:連続値を処理する |
多変量回帰(Multivariate Regression Models) | ・回帰 | 多数の独立変数に基づいた相互関係を分析する |
インスタンスセグメンテーション | ・教師あり ・画像処理 |
セマンティックセグメンテーションと似ているが、物体検出の「個体ごと」の位置検出ができる。(セマンティックセグメンテーションではピクセル単位のため、各物体の個体性が失われる)画像内に複数の個体がある場合にそれぞれを検出できる。 |
再帰型ニューラルネットワーク(RNN) | ・教師なし | |
畳み込みニューラルネットワーク(CNN) | ・教師なし | 物体や顔、シーンを認識するために画像の中からパターンを見つけるのに特に有効。音声、時系列、信号データなど、画像以外のデータを分類にも利用できる。 |
LSTM(Long Short-Term Memory/長・短期記憶) | ・教師なし | RNNの拡張。一連の話し言葉で機能し、文章など順序付けられた出力を生成する。 |
多層パーセプトロン(MLP) | ・教師なし ・分類and回帰 ・表形式 |
古典的なニューラルネットワーク。1つまたは複数のニューロン層で構成される。 |
T-SNE | ・教師なし ・次元削減 |
高次元のデータを2次元や3次元に変換する。 |
サポートベクターマシン(SVM) | ・教師あり ・分類and回帰 ・外れ値検出 |
分類、回帰、外れ値の検出に使用される一連の教師あり学習アルゴリズム。 |
自己回帰和分移動平均(ARIMA) | ・教師あり ・時系列 |
1つの時系列を使用してモデルをトレーニングする。(DeepARは複数の時系列を使用できる) |
パイプラインモード
ファイルモードではトレーニング開始前にEBSにデータをダウンロードするが、パイプラインモードを利用するとデータがアルゴリズムコンテナに直接ストリーミングされるため、トレーニングジョブが短縮される。また、使用するディスク容量も大幅に減る。
RecordIO形式
トレーニングデータの形式にRecordIO形式を利用することでパフォーマンスを向上できる。
モデルの更新
稼働中のSageMakerエンドポイントに対し、モデルの更新を行う場合、デプロイ時と同様CreateEndpoint API
を利用する。
このとき、ProductionVariant
(複数のバージョンを識別するもの)を新たに定義する。この際、VariantWeight
を各モデルに割り当てることで、ルーティングするトラフィック量の重み付けを行うことができる。
InvokeEndpoint API
呼び出し時のパラメータとしてTargetVariant
を指定することで、VariantWeight
を無視して特定のバージョンを呼び出すこともできる。
アクセス管理
SageMakerへのアクセス管理にはアイデンティティベースのポリシーを利用する。(IAMユーザやグループに権限を付与する)
リソースベースのポリシー(エンドポイント側で制限)を設定する機能はない。
SageMaker Autopilot
自動機械学習(AutoML)プロセスの主要タスクを自動化する機能。データを探索し、問題タイプに関連するアルゴリズムを選択して、モデルのトレーニングとチューニングを容易にするようにデータを準備する。
ハイパーパラメータによる回帰と分類の指定
組み込みアルゴリズムの中で回帰/分類両方に対応しているアルゴリズムはハイパーパラメータによりいずれかのタイプを指定する。
アルゴリズム | パラメータ名 | 値 |
---|---|---|
因数分類機 | predictor_type | ・binary_classifier :二項分類・ regressor :回帰※指定必須 |
K最近傍(k-NN) | predictor_type | ・classifier :分類・ regressor :回帰※指定必須 |
線形学習 | predictor_type | ・binary_classifier :二項分類・ multiclass_classifier :複数クラス分類・ regressor :回帰※指定必須 |
XGBoost | objective | ・reg:logistic :二項分類・ multi:softmax :複数クラス分類・ reg:squarederror :回帰※デフォルトは reg:squarederror ※その他は公式README参照 |
データ内のラベル数に基づきタイプを自動的に決定するものもある。
評価指標もタイプに基づき決定されるが、以下のパラメータによって指定もできる。
アルゴリズム | パラメータ名 | 値 |
---|---|---|
AutoGluon-表形式 | eval_metric | ・root_mean_squared_error :回帰用・ roc_auc :バイナリ分類用・ accuracy :複数クラス分類用※デフォルトは auto
|
CatBoost | eval_metric | ・RMSE :回帰用・ AUC :二項分類用・ MultiClass :複数クラス分類用※デフォルトは auto ※その他は公式リファレンス参照 |
LightGBM | metric | ・rmse 回帰用・ binary_logloss 二項分類用・ multi_logloss 複数クラス分類用※デフォルトは auto
|
XGBoost | eval_metric | ・rmse 回帰用・ error 分類用・ map ランク付け用※デフォルトはタイプによって自動決定 ※その他は公式README参照 |
ハイパーパラメータチューニング
モデルのハイパーパラメータとしてさまざまなバリエーションを試すことで、予測精度をあげる。
SageMakerではチューニング手法として以下を利用できる。
手法 | 特徴 |
---|---|
ランダム検索 | パフォーマンスに影響を与えず最大数のトレーニングジョブを同時実行できる。 |
ベイズ最適化 | 反復的にトレーニングジョブを実行する。ランダム検索より時間がかかるが、調整ジョブの実行はランダム検索より少なくなる。 |
Amazon SageMaker Ground Truth
データセットに対しラベル付けするための機能。
「Ground Truth」は「現地調査で得た真実(Truth)の地上(Ground)検証データ」から転じて、「正解データ」を指す。
自社の従業員など特定のチームへラベル付けワークフローを提供するか、Mechanical Turkによってラベル付け作業の依頼を公開する事ができる。
手動付与されたラベルから、アクティブラーニングにより一部のラベルを自動で付与する「自動データラベリング」もできる。
SageMaker Elastic Inference(EI)
深層学習モデルからのリアルタイム推論取得を高速化できる。
SageMaker Processing
データの前処理や後処理、モデルの評価といったワークロードをフルマネージドなインフラストラクチャの上で簡単に実行する機能。
PySparkProcessor
, SparkJarProcessor
, SKLearnProcessor
のいずれかを利用し、Pythonで処理を記述する。
SageMaker Data Wrangler
データの前処理と特徴量エンジニアリングを簡単に行うための機能。
データの変換や特徴の視覚化などができる。
次元削減や欠損値の補完などの組み込みの変換や、PySpark
, Pandas
, PySpark SQL
を利用したカスタム変換ができる。
SageMaker Feature Store
機械学習アルゴリズムのトレーニングのために、rawデータを特徴に変換するのに必要な、反復的なデータ処理とキュレート作業を削減することで、このプロセスを高速化する。
SageMakerとQuickSightの統合
QuickSightのデータソースとして、直接SageMakerを利用することはできない。
SageMaker統合機能(Augment with SageMaker)を利用し、データセットをMLモデルで拡張することができる。
この機能を利用するためには、「QuickSight Enterprise Edition」を利用していることとスキーマを定義するJSONファイルの準備が必要となる。
QuickSight ML Insights
QuickSightには機械学習を使用して、データ内の隠されたインサイトや傾向をダッシュボードに反映する機能がある。
機械学習インサイトは以下の3つの主要機能を持つ。
- MLを使用した異常検出: データを継続的に分析し異常 (外れ値) を検出
- MLを使用した予測: 内蔵の機械学習Random Cut Forestアルゴリズムにより、外れ値を除く季節性や傾向の検出、欠損値の入力など、複雑な現実のシナリオを自動的に処理し変化を予測する。
- 自動ナラティブ(説明文): ダッシュボードに自動的に生成した説明文を追加してくれる。
Scikit-learn
Scikit-learn(サイキット・ラーン)はPythonのOSS機械学習ライブラリ。
データの前処理などに利用する。
SageMakerではScikit-learnの実行環境となるコンテナが用意されている。
特徴量のスケーリング
特徴量間でスケールの差があるとうまく学習できなかったり、パフォーマンス低下につながる。
そのため、前処理としてスケール変換を行う。
Scikit-learnの場合、以下のクラスを利用する。
- MinMaxScaler: 正規化(normalization)を行う。値の範囲を0~1または-1~1の範囲に収める。k-NNやニューラルネットワークなどに利用する。
- StandardScaler: 標準化(standardization)を行う。平均を0、分散を1にする。外れ値に対しても平均化するため、外れ値への対処などに利用する。
特徴量のエンコーディング
文字として登録されているカテゴリ列は前処理で数値に変換する必要がある。
Scikit-learnの場合、以下のクラスを利用する。
- OneHotEncoder: カテゴリを複数のバイナリ(0/1)列に変換する
- OrdinalEncoder: 順序性のあるカテゴリ(L>M>Sなど)を数値に変換する
- LabelBinarizer: Y/NやT/Fなどの二値のラベルを1列のバイナリ(0/1)に変換する※3つ以上の値がある場合、OneHotと同じように複数列になるが用途としては二値の列に利用するほうがおそらく正しい
欠損値の補完
Scikit-learnで欠損値を補完する場合、以下のクラスを利用する。
- SimpleImputer: 平均値/中央値/最頻値/固定値など簡単な方法で補完する
- KNNImputer: k-NNにより欠損値を補完する
その他のクラスについては公式リファレンス参照
Spark ML
SparkにはMLlibという機械学習ライブラリが付属している。
また、MLeapという機械学習パイプライン用のOSSがある。
SageMakerではこのMLeapの実行環境となるコンテナが用意されている。
Amazon Kinesis Data Analytics
ストリーミングデータに対して、SQLやPythonやJavaなどのアプリケーションによるリアルタイムの分析やデータ変換を行える。
問題文で「リアルタイムで~」というワードが出てきたらKinesisが正解になる可能性が高い。
SQL実行用の「Kinesis Data Analytics for SQL Applications」と「Apache Flink」(ストリーミングデータ処理用のOSSフレームワーク)を利用したアプリケーション実行用の「Kinesis Data Analytics for Apache Flink」の2種類ある。
「for SQL」では、以下の組み込み関数を利用して機械学習クエリを実行することもできる。
- データ異常の検出 (RANDOM_CUT_FOREST 関数)
- データ異常の検出と説明の取得 (RANDOM_CUT_FOREST_WITH_EXPLATION 関数)
- ホットスポットの検出 (HOTSPOTS 関数)
Kinesisストリームに対する処理を行うためのサービスのため、入力元と出力先は「Kinesis Data Stream」もしくは「Kinesis Data Firehose」になる。
※「for Flink」ではS3へAvroまたはParquetファイルの出力もできる。
EMRによるApache Spark Streaming
リアルタイムのデータ処理に利用できるKinesis Data Analytics以外の方法として、「Apache Spark Streaming」がある。
Kinesis Data Analyticsに比べると、構築/管理のコストが掛かる代わりに、大規模データセットに対する分散処理によるハイパフォーマンスなリアルタイム処理を実現できる。
AWS Glue
サーバーレスデータ統合サービス、ETLやクローラなどデータ統合のための複数の機能を持つ。
Glueの主な機能
機能 | 説明 |
---|---|
ETLジョブ | フォーマット変換、データ結合などを行いながらDBやストレージ間でデータのコピーを行う |
データカタログ | データソースにどのようなデータが入っているか(データのスキーマなど)をカタログ化する |
クローラ | データレイクをクローリングし、スキーマデータを自動で判断し、データカタログにメタデータを作成する |
ワークフロー | ETLジョブ、クローラ、データカタログなどの一連の処理を自動化する |
Glue Studio | ETL ジョブの作成、実行、監視を容易にする視覚的なインターフェース |
Glue DataBrew | 分析および機械学習のためのビジュアライズツール TB〜PBクラスのデータに対して、クレンジングと正規化を直接実行 |
Glue Elastic Views | 複数のデータソースにまたがるマテリアライズドビューを作成(プレビュー中のため試験範囲外) |
Glue Data Quality | ルールに従いデータの品質を解析、検知する(プレビュー中のため試験範囲外) |
※その他にもGlue Interactive Sessions
、Glue for Ray
、Glue Flex
などあるがおそらく試験範囲外
クローラー
データレイクからDWH(データウェアハウス)やDM(データマート)を構築するにあたり、クローラーを利用してスキーマを自動定義できる。
クロールできる対象データストアは以下。
- S3
- DynamoDB
- Delta Lake
- MySQL(RDS、Redshit、その他RDB)
- MongoDB(DocumentDB、その他MongDB)
クローラーは
- データの分類
- テーブルまたはパーティションにグループ化
- メタデータをデータカタログに書き込み
の順で処理を行う。
クローラーの分類子
クローラーは、まずはじめにデータを「分類」する。
クローラーには事前に対象データのフォーマットを識別するための定義「分類子」を追加できる。複数の分類子を指定すると優先順位順にデータを認識可能か試行してくれる。
組み込みの分類子として「Avro」「Parquet」「JSON」「XML」「CSV」などが指定できる他、「Grok」と呼ばれる正規表現による解析なども指定できる。
分類子はcertainty(確実性)
という0.0
~1.0
の値を返す。certainty=1.0
は正しいスキーマを100%確実に作成できることを指すため、この値が帰った時点でその分類子の出力を利用する。
1.0
を返す分類子がなかった場合、最もcertainty
が高い分類子の出力を利用する。どの分類子からも0.0
以上が返されない場合、UNKNOWN
のデフォルト分類文字列を返す。
クローラーの包含パターンと除外パターン
クローラーのプロパティとしてクロール対象に含める、または除外するパスを指定できる。
包含(インクルード)パスとして、DBの場合「DB名/テーブル名」S3の場合「バケット名/キープレフィックス」を指定する。
除外(エクスクルード)パスは包含(インクルード)パスに対する相対指定(インクルード→エクスクルードの順に判定)となる。
除外(エクスクルード)パスにはglob
パターンを指定できる。
-
*
: ワイルドカード(0文字以上、フォルダの境界を超えない) -
**
: ワイルドカード(0文字以上、フォルダの境界を超える) -
?
: ワイルドカード(1文字) -
\
: エスケープ -
[]
: 含める文字列、先頭に!
で否定(例:[a-z]
でアルファベット小文字すべて、[!ace]
でa
,c
,e
以外すべての文字列) -
{}
: サブパターン(例:*.{csv,avro}
で.csv
または.avro
で終わるオブジェクト)
ETL
複数のデータストア間でデータの変換や抽出を行うことができる。
データストアとしては、DynamoDB、S3、RDB、Kinesisなどを指定できる。
入出力できるデータ形式は以下※出力はできないものもある
形式 | 入力 | 出力 |
---|---|---|
CSV | ◯ | ◯ |
Parquet | ◯ | ◯ |
Avro | ◯ | ◯ |
ORC | ◯ | ◯ |
XML | ◯ | ✕ |
grolLog | ◯ | ✕ |
Ion | ◯ | ✕ |
JSON | ◯ | ✕ |
FindMatches
GlueのETLにはFindMatches
という機械学習によるカスタム変換機能がある。
完全一致しないレコード(少しのスペルの違いなど)もファジーマッチングによる重複削除や突合などができる。
Amazon Machine Learning
Amazonの機械学習プラットフォームサービス、廃止予定のサービスのため現在は更新が終了しており、SageMakerへの移行が推奨されている。(その割に公式模試の解説ではAmazon MLのドキュメントへのリンクがあったりする)
AWS Panorama
既存のカメラデバイスでコンピュータビジョン(CV)アプリケーションを実行できるようにする。
※CV=画像や動画から物体や人物を識別するなどの処理
SageMakerやサードパーティの機械学習モデルを利用できる。
専用のデバイスや互換デバイス上でSDKを実行する事により、メトリクスなどをAWSへ送信する。
AWS IoT Greengrass
AWS IoTの機能をエッジデバイスで実行できる。
通信状況の悪い環境での利用や、通信量の節約に利用できる。
AWS IoT Analytics
IoTから収集したデータに対する分析を行うためのサービス。
収集したデータに対するSQLによるアドホッククエリ、Jupyter Notebookによるスクリプト実行、S3への出力などができる。QuickSightとも統合されており、分析結果を簡単に視覚化できる。
AWS IoT SiteWise
産業用機器からデータを大規模に収集、モデル化、分析、視覚化することができるマネージドサービス。
Amazon Rekognition
深層学習を用いた画像/動画分析を行うためのAIサービス。
Amazon Comprehend
機械学習を利用した自然言語処理(NLP)により、テキストからキーフレーズの検出や感情の判定などを行うAIサービス。
シンプルなテキスト分析の場合、SageMakerを利用するよりも簡単に実行できる。
Amazon Translate
深層学習を用いたニューラル機械翻訳サービス。
テキストファイルに対するバッチ翻訳とテキストデータに対するリアルタイム翻訳ができる。
Amazon Transcribe
機械学習モデルを用いた音声からの文字起こし(STT:Speech-To-Text)サービス、S3の音声ファイルからテキストを出力したり、WebSocketによるストリーミングでの文字起こしができる。
「音声からの文字起こし(Transcript)」をしてくれる「書記(Scribe)」で「Transcribe」??
Amazon Polly
深層学習を用いたテキスト読み上げ(TTS:Text-To-Speech)サービス。
「Polly」はオウムによくつけられる名前。おしゃべりするAIなので「Polly」。
Amazon Textract
画像ファイルからの文字起こしを行うAIサービス。
画像から「文章(Text)」を「抽出(Extract)」するので「Textract」??
2023/01時点では東京リージョン未対応。
Amazon Forecast
機械学習による時系列予測を提供するAIサービス。そのまんま「Forecast」=「予測」
Amazon Personalize
パーソナライズ(=個人に最適化)されたレコメンデーション(=おすすめ)を提供するためのAIサービス。
Amazon Lex
音声とテキストを使用して、会話型インターフェイスを任意のアプリケーションに構築するためのサービス。自然言語チャットボットの開発に利用できる。
Alexaに利用されているものと同様のAI技術が利用されている。「Alexa」のまんなか(中身)をとって「Lex」??
Amazon Sumerian
ブラウザベースの 3D、拡張現実 (AR)、仮想現実 (VR) アプリケーションを簡単に作成し実行するためのサービス。
現在は Babylon.js + AWS Amplifyへの移行を推奨しており、新規のリソース作成はできない。
Amazon Kendra
機械学習を利用した、自然言語によるドキュメント検索サービス。
取り込んだドキュメントに対し、質問形式で検索を行うことができる。
以下のファイル(またはテキスト)に対応している。
- CSV形式の「よくある質問と回答」
- HTMLファイル
- Microsoft PowerPointプレゼンテーション
- Microsoft Wordドキュメント
- プレーンテキストドキュメント
- PDFファイル
※1ファイルから抽出されるテキストは5MBまでの制限がある。
「Kendra」は女性の名前、文書を見つけてくれる「ケンドラ」さん。
2023/01現在は東京リージョンには対応していない。(日本語には対応している)
Amazon Fraud Detector
機械学習により不正行為の可能性をオンラインで検出する完全マネージド型の不正検出サービス。
オンライン支払い詐欺や偽アカウントの作成など、不正の可能性があるオンラインアクティビティを簡単に識別できるようにする。
「詐欺(Fraud)」を「検出(Detect)」する。
2023/01現在は東京リージョンには対応していない。
Amazon Augmented AI(A2I)
機械学習の予測結果を人の目でチェックするワークフローを構築/管理できる。
Gound Truthと同じく、自社内のワーカーや「Mechanical Turk」によるチェックプロセスを設定できる。
その他
なんとなく紛らわしいやつ
- センチメント(sentiment): 感情
- センテンス(sentence): 文章
- セマンティック(semantic): 意味