最適化と学習プロセスは、用語の理解不足が命取り
前処理とEDAを越えると、
次に牙をむいてくるのが「学習の中身」です。
勾配降下法、エポック、ミニバッチ。
単語は簡単なのに、
「この状況でどれを調整するか?」
を聞かれると一気に難しくなります。
確率的勾配降下法(SGD)は“雑だけど速い”
SGDは、
全データを使わず、一部のデータで勾配を更新する方法です。
メリット
・計算が速い
・大規模データに向く
デメリット
・収束が不安定
・振動しやすい
自分が間違えやすかったのは、
「SGD=精度が悪い」という短絡的な理解。
実際は、
スピードと引き換えに安定性を捨てている
というトレードオフの話です。
モメンタムは「勢いを持たせる」だけの話
モメンタムはSGDの改良版としてよく出てきます。
直感的には、
「前回までの更新方向を少し残す」
という考え方。
これにより、
・局所的な揺れを抑える
・谷方向に一気に進む
ことができます。
ここで重要なのは、
「学習率を変える話ではない」
という点。
試験では、
収束が遅い
振動が激しい
といった状況説明のあとに、
モメンタムが選択肢に出てきます。
エポックとミニバッチサイズは必ずセットで考える
エポックは
「データ全体を何周学習するか」。
ミニバッチサイズは
「一度に何件ずつ学習するか」。
自分が混乱したのは、
この2つを独立して覚えていたことでした。
実際には、
・ミニバッチが小さい
→ 更新回数が多い
→ ノイズは多いが汎化しやすい
・ミニバッチが大きい
→ 更新回数が少ない
→ 安定するが局所解にハマる可能性
と、セットで効いてきます。
「学習が不安定」「時間がかかる」
という問題文では、
どちらを調整すべきかを考える癖が必要です。
ハイパーパラメータ探索は“人力卒業”の話
MLSでは、
ハイパーパラメータ探索手法がまとめて出てきます。
・グリッド検索
・ランダム検索
・ベイズ最適化
・ハイパーバンド
ここでの整理軸はシンプルです。
グリッド検索
→ 全探索。確実だが高コスト
ランダム検索
→ 重要なパラメータに当たる確率が高い
ベイズ最適化
→ 過去結果を使って賢く探索
ハイパーバンド
→ 早めにダメなモデルを切る
自分がやらかしたのは、
「一番賢そう=ベイズ最適化」
で選び続けていたこと。
実際は、
計算コストや探索空間の大きさ
が前提条件になります。
ブートストラップは「評価の安定性」を見るため
ブートストラップは、
学習手法というより評価寄りの話です。
データを復元抽出して
何度も評価することで、
指標のばらつきを見る。
ここで重要なのは、
精度を上げるための手法ではない
という点。
「モデルが安定しているか?」
を確認するための方法です。
ARIMAは“時系列専用”と割り切る
ARIMAは
自己回帰+移動平均の時系列モデル。
MLSでは、
「時系列ならDeepARかARIMAか」
という文脈で出てきます。
ARIMAは
・単一系列
・比較的シンプル
なケース向き。
大量の系列や
外部特徴量を使うなら
DeepARに軍配が上がります。
バイアス指標は“公平性の話”
ここは知識問題に近いですが、
整理しないと混乱します。
・KS(分布の差)
・DPL(ラベル比率の差)
・CI(クラス不均衡)
・CDD(条件付きの差)
ポイントは、
「何と何を比べているか」。
名前よりも
比較対象を意識した方が解きやすいです。
このあたりから、
MLSは「暗記」では太刀打ちできなくなります。
選択肢を読んで、
「あ、この状況はこれだ」
と反射的に結びつくかどうか。
理解が浅いと、
全部それっぽく見えて詰みます。
詰まったら、
一度ちゃんと図解されている教材で整理すると、
頭の中がかなりスッキリします。
次回は、
SageMaker系サービス(Data Wrangler / Autopilot / Clarify / DeepAR など)と
アルゴリズム領域に入る予定です。
「サービス名は知ってるけど、
どの場面で使うか説明できない」
を潰していきます。
コメントを残す