【AWS認定資格】AIFで出題された機械学習の基礎知識まとめ
目次
こんにちは、クラウドビルダーズのkuramochiです。
本記事は、クラウドビルダーズ Advent Calendar 2024の20日目の記事となります!
先日、AI Practitioner(AIF)を受験して無事合格できました。問題の傾向として、AWSのサービスを問うというよりも、機械学習の基礎知識に関する問題が多い印象でした。対策として、機械学習の各手法が大まかにどんなもので、分類的には何か(教師ありorなし)などを抑えておくと捗ると思います。
そこで本記事では、AIF受験前に作成した機械学習の基礎知識メモ(G検定の参考書や各種ブログなどから作成しました)をベースに、実際の試験で出題された機械学習の基礎をまとめてみました。AWSサービスに関しては書いていないですし、完全に網羅しているとも言えないので、「この記事の内容だけで合格」とはいきませんが、AIF受験予定の方にお役に立てる内容になっていると思います!
大まかな学習の種類
教師あり学習
- 学習データに正解を与えた状態で学習させる。与えられたデータ(入力)がどんなパターン(出力)になるかを識別・予測する
- 回帰問題(連続値を予測、過去の傾向に基づく売上予測など)や分類問題(離散値を予測、動物の識別など)に向いている
教師なし学習
- 学習データに正解を与えない状態で学習させる。与えられたデータ(入力)の構造、特徴を学習する。出力データ(教師)はない
- 売上データから顧客層を認識、入力データの項目間の関係性を把握などに向いている
強化学習
- エージェント(AI)が環境と相互作用しながら最適な行動を学習する方法。目的とするスコア(報酬)を最大化するための行動を学習していく
- 自動運転技術等に活用される。ある環境下での、車(エージェント)の行動をスコアで評価しフィードバックする。車は環境に応じてなるべく高いスコアが獲得できる方法を学んでいく
教師あり学習の代表的手法
線形回帰
データの分布があったとき、そのデータに最も当てはまる直線を考える手法。回帰問題(連続値を予測、過去の傾向に基づく売上予測など)に用いる。
ロジスティック回帰
線形回帰と異なり、分類問題(離散値を予測、動物の識別など)に用いる手法。シグモイド関数を用いてモデルを出力する。
シグモイド関数は0から1の間に写像する。写像された値(出力値)を特定の値(例えば0.5)で分け、出力値が0.5以上なら正例、0.5未満なら負例とする。これによってデータを分類する。
ランダムフォレスト
決定木(場合分けを図式化したもの)を用いる手法。特徴量(学習結果に大きな影響を与える特徴。土地価格を予想する上での土地の広さが特徴量にあたる)をランダムに選んで決定木を複数作成する。予測結果は決定木毎に異なるので、それぞれの結果で多数決をとって最終的なモデルの出力とする。
ブースティング
特定のデータからモデルを作成し、そのモデルをテストして誤認識を修正するよう学習させるループを繰り返し、最終的なモデルを作成する。
ランダムフォレスト同様決定木を用いるが、逐次的に学習するので精度が高い反面、並列処理はできず学習に時間がかかる。
サポートベクターマシン
異なるクラスの各データ点との距離が最大となるような境界線を求めることでパターン分類を行う手法。
ニューラルネットワーク
- 単純パーセプトロン:入力層と出力層からなるシンプルなネットワーク。入力層と出力層の間に重みがあり、どれだけ値を伝えるか調整する
- 多層パーセプトロン:単純パーセプトロンに層を追加したモデル
- 誤差逆伝播法:予測値と実際の値の誤差をネットワークにフィードバックスし精度を上げる手法
- オートエンコーダ:データを圧縮(エンコード)し、元のデータを再構築(デコード)するモデル
- 変分オートエンコーダ (VAE):オートエンコーダをベースにした生成モデルの一種で、入力データの確率分布を学習し、データを生成できる
- 敵対的生成ネットワーク(GAN):生成器(Generator、データを生成する)と識別機(Discriminator、データが本物か識別する)という2 つのニューラルネットワークで、互いに競わせ精度を引き上げる
教師なし学習の代表的手法
階層なしクラスタリング(k-means法)
以下の手順で、データをk個に分ける手法。kは事前に人間が決定。
- 各データにクラスタをランダムに割り振る
- 各クラスタの重心を計算
- 各データに関して最も近い重心のクラスタを再度割り振る
- 重心を再計算。
- 重心が動かなくなるまで3と4を繰り返す
階層ありクラスタリング(ウォード法)
最も距離が近い2つのデータクラス(クラスタ)を選び、それらを1つのクラスタにまとめる処理を繰り返す。
ウォード法を使うと、樹形図(デンドログラム)で階層構造を示せる。
主成分分析
データの特徴量間の関係(相関)を分析し、データの構造をつかむ手法。特に特徴量が多いときに用い、相関を持つ多数の特徴量から相関の少ない少数の特徴量へと次元削減することを目的とする。次元削減で学習時間を減らしたり、データを可視化できる。
イメージとしては、国語、数学、社会、理科のテストの点数に高い相関がある場合に、総合学力という特徴量にまとめてしまう感じ。
協調フィルタリング
ECサイトのおすすめなどレコメンデーションに用いられる手法。ユーザー間の類似度を定義し、類似度の高いユーザーが購入済みの商品を推薦する。
事前にある程度データがないと推薦できない(コールドスタート問題)が、コンテンツベースフィルタリング(ユーザーではなく商品側に特徴量を付与し、それにあうユーザーに推薦)で回避可能。
トピックモデル
複数のクラスタにデータを分類する。文書間の類似度を測るなどで使用する。ECサイトのレコメンドにも使用可能。
モデルの評価
評価指標
犬(positive)と狼(negative)を見分けるモデルを考えた場合の、分類(positive/negative)と予測が当たったかどうか(True/False)の混同行列を考える。
実際の値\予測値 | 犬(positive) | 狼(negative) |
---|---|---|
犬(positive) | 真陽性:犬の予測が当たった (True Positive: TP) | 偽陰性:狼の予測が外れた (False Negative: FN) |
狼(negative) | 偽陽性:犬の予測が外れた (False Positive: FP) | 真陰性:狼の予測が当たった (True Negative: TN) |
- 正解率(accuracy):全データ中どれだけ予測が当たったか
- TP+TN / TP+TN+FP+FN
- 適合率(precision):予測が正の中で実際に正であったもの
- TP / TP+FP
- 再現率(recall):実際に正であるものの中で、正だと予測できた割合
- TP / TP+FN
- (誤検出を極力避けたい場合は適合率を重視し、見逃しを避けたい場合は再現率を重視)
- F値:適合率と再現率の調和平均。適合率だけ、再現率だけで判断すると予測が偏っているときも値が高くなるので、F値を用いる場合も多い
- 2×precision×recall / (precision+recall)
- オーバーフィッティング(過学習):訓練データで正解率が高いが、テストデータでの正解率が低い状態。学習し過ぎで訓練データにのみ最適化されてしまっている
- 正規化:モデルの複雑さを抑えることで、オーバーフィッティングを防ぐ
ROC曲線とAUC
ロジスティック回帰では、基本的に0.5を閾値としてモデルの出力を正例と負例に分類するが、閾値を0.3や0.7などに変化させることで予測結果が変化する。
ROC曲線は、閾値を0から1に変化させた場合に予測の当たり外れがどう変化するかを表したもの。
ROC曲線では、混同行列を使って以下の通りTPR、FPRを定義する。
- TPR = TP / (TP+FN) (再現率と同じ)
- FPR = FP / (FP+TN)
AUCはROC曲線下の面積で、面積が広い(1に近い)ほど精度が高いモデルということになる。