0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【簡単AWS MLA】【初心者向け】Day 10:Training とハイパーパラメータチューニングを整理する — Learning Rate / Epoch / Batch Size

0
Posted at

はじめに

前回は、SageMaker Data Wrangler を中心に、
モデル学習前のデータ加工と特徴量作成について整理しました。

今回は、モデルを実際に学習させる工程である Training と、
モデル性能を改善するために重要な ハイパーパラメータチューニング について整理します。

機械学習では、同じデータを使っていても、

  • 学習率をどう設定するか
  • 何回学習させるか
  • どのくらいのデータ単位で学習するか
  • 木の深さをどこまで許すか
  • 正則化をどれくらい効かせるか

によって、モデルの性能が大きく変わることがあります。

本記事では、

  • Training とは何か
  • ハイパーパラメータとは何か
  • よく出るハイパーパラメータ
  • チューニングとは何か
  • Grid Search / Random Search / Bayesian Optimization の違い
  • SageMaker での考え方

を、初心者にも分かりやすく整理します。


🎯 対象読者

  • SageMaker Training Job の基本を整理したい方
  • ハイパーパラメータの意味を理解したい方
  • learning rate、epoch、batch size の違いが曖昧な方
  • チューニングの考え方を基礎から学びたい方
  • AWS の AI / ML 系資格を勉強している方

🧩 まず結論:Training は学習、チューニングは設定探し

最初に大きく整理すると、以下のようになります。

用語 意味
Training データを使ってモデルに規則を学習させること
Hyperparameter 学習前に人やシステムが設定する値
Tuning 複数の設定を試して、より良い組み合わせを探すこと

一言で言うと、

Training = モデルを学習させる
Tuning = モデルが良く学習できる設定を探す

というイメージです。

モデルはデータからパターンを学習しますが、
その学習の進め方を決める設定がハイパーパラメータです。


🏋️ Training とは?

Training とは、
既存のデータを使って、モデルに規則やパターンを学習させること です。

たとえば、過去の顧客データを使って、

この顧客は商品を購入しそうか

を予測するモデルを作る場合、モデルは過去データから以下のような傾向を学びます。

  • 購入回数が多い顧客は、再購入しやすい
  • 登録期間が長い顧客は、購入率が高い
  • 特定の商品ページを見た顧客は、購入しやすい
  • 過去にキャンペーンを利用した顧客は、反応しやすい

このように、データから規則を見つける工程が Training です。


☁️ SageMaker Training Job のイメージ

SageMaker では、モデル学習を Training Job として実行します。

基本的な流れは以下です。

訓練データを S3 に置く
↓
Training Job を起動する
↓
SageMaker が学習用インスタンスを起動する
↓
アルゴリズムや学習コードを実行する
↓
モデル成果物を生成する
↓
モデル成果物を S3 に保存する

Training Job は、モデルを学習するための一時的なジョブです。

学習が終わると、結果としてモデルファイルが作られます。
そのモデルファイルを使って、Endpoint や Batch Transform で予測を行います。


⚙️ ハイパーパラメータとは?

ハイパーパラメータとは、
モデルがデータから学習する値ではなく、学習前に人やシステムが設定する値 です。

英語では Hyperparameter と呼ばれます。

一言で言うと、

ハイパーパラメータ = モデル学習時の設定項目

です。

たとえば、以下のような設定があります。

  • learning rate
  • epoch
  • batch size
  • max depth
  • number of trees
  • regularization

これらは、モデルが自動的にデータから学ぶ値ではありません。
学習を始める前に、ある程度決めておく必要があります。


🧠 パラメータとハイパーパラメータの違い

ここで混乱しやすいのが、
パラメータハイパーパラメータ の違いです。

種類 意味
パラメータ モデルが学習中にデータから獲得する値 重み、係数
ハイパーパラメータ 学習前に設定する値 学習率、epoch、batch size

たとえば、線形回帰モデルでは、各特徴量に対する重みは学習によって決まります。
これはパラメータです。

一方で、学習率や学習回数は、学習前に設定するものなのでハイパーパラメータです。


📌 よく出るハイパーパラメータ

代表的なハイパーパラメータを整理します。

ハイパーパラメータ 日本語でのイメージ 影響
Learning rate 学習率 モデルが一度にどれくらい更新されるか
Epoch 学習回数 データ全体を何回学習するか
Batch size バッチサイズ 一度に何件のデータで学習するか
Max depth 木の最大深さ 決定木系モデルの複雑さ
Number of trees 木の本数 Random Forest や XGBoost などの木の数
Regularization 正則化 過学習を抑える強さ

それぞれの設定は、モデルの精度、学習速度、過学習のしやすさ、計算コストに影響します。


📉 Learning Rate(学習率)とは?

Learning Rate は、
モデルが学習するときに、どれくらい大きく更新するか を決める値です。

一言で言うと、

Learning rate = 学習時の歩幅

です。

学習率が大きすぎると、最適な位置を飛び越えてしまい、学習が不安定になることがあります。

一方で、学習率が小さすぎると、少しずつしか進まないため、学習に時間がかかります。


🧪 Learning Rate のイメージ

山を下りながら一番低い場所を探すイメージで考えると分かりやすいです。

Learning Rate イメージ 起きやすいこと
大きすぎる 大股で進む 最適点を飛び越えて不安定
小さすぎる 小さく進む 学習が遅い
適切 ちょうどよく進む 安定して学習しやすい

Learning Rate は、多くのモデルで非常に重要なハイパーパラメータです。


🔁 Epoch とは?

Epoch は、
訓練データ全体を何回繰り返して学習するか を表します。

一言で言うと、

Epoch = 訓練データを何周するか

です。

たとえば、訓練データ全体を1回学習したら 1 epoch、
10回繰り返したら 10 epochs です。

Epoch が少なすぎる場合

十分に学習できず、underfitting になる可能性があります。

Epoch が多すぎる場合

訓練データに合わせすぎて、overfitting になる可能性があります。

そのため、epoch は多ければよいというものではありません。


📦 Batch Size とは?

Batch Size は、
1回の更新に使うデータ件数 を表します。

一言で言うと、

Batch size = 一度に何件ずつ学習するか

です。

たとえば、訓練データが10,000件ある場合、

  • batch size = 100 なら、100件ずつ処理する
  • batch size = 1,000 なら、1,000件ずつ処理する

というイメージです。

Batch size は、学習の安定性やメモリ使用量、学習速度に影響します。


🌳 Max Depth とは?

Max Depth は、決定木系モデルでよく出てくるハイパーパラメータです。

木の深さをどこまで許すか を指定します。

木が深くなるほど、データを細かく分けることができます。
しかし、深すぎると訓練データに合わせすぎて overfitting しやすくなります。

Max depth が大きい = モデルが複雑になりやすい
Max depth が小さい = モデルが単純になりやすい

Random Forest や XGBoost のようなモデルでは、よく意識する設定です。


🌲 Number of Trees とは?

Number of Trees は、Random Forest や XGBoost などで使われる、
木の本数 を表すハイパーパラメータです。

木の本数を増やすと、モデルの安定性が上がることがあります。

ただし、本数を増やしすぎると、

  • 学習時間が長くなる
  • 推論時間が長くなる
  • コストが増える

可能性があります。

そのため、精度とコストのバランスを考える必要があります。


🛡 Regularization(正則化)とは?

Regularization は、
モデルが訓練データに合わせすぎないように制約をかける方法 です。

一言で言うと、

Regularization = 過学習を抑えるための仕組み

です。

Day 2 で整理した overfitting への対策として、正則化は非常に重要です。

モデルが複雑になりすぎると、訓練データにはよく合う一方で、
未知のデータに弱くなることがあります。

正則化は、このような過学習を抑えるために使われます。


🔧 チューニングとは?

チューニングとは、
ハイパーパラメータを調整して、モデルの性能を改善する作業 です。

一言で言うと、

Tuning = 良い設定の組み合わせを探す作業

です。

たとえば、最初に作ったモデルの精度が 80% だったとします。

その後、

  • learning rate を変える
  • epoch を変える
  • max depth を変える
  • regularization を変える

といった調整を行うことで、精度が 85% に上がるかもしれません。

このように、モデルの設定を試行錯誤しながら改善するのがチューニングです。


🧪 ハイパーパラメータチューニングの考え方

ハイパーパラメータチューニングでは、1つの設定だけを見るのではなく、
複数の設定の組み合わせを試します。

例えば、以下のような組み合わせです。

Learning Rate Max Depth Regularization
0.01 3 0.1
0.01 5 0.1
0.05 3 0.1
0.05 5 0.5

このように、複数の候補を試して、
validation data で最も良い結果を出した設定を選びます。


🧭 代表的なチューニング方法

ハイパーパラメータチューニングには、いくつか代表的な方法があります。

方法 説明
手動調整 経験や観察結果をもとに人が少しずつ調整する
Grid Search 事前に決めたすべての組み合わせを試す
Random Search ランダムにいくつかの組み合わせを試す
Bayesian Optimization 過去の結果をもとに、次に試す設定を賢く選ぶ

それぞれ特徴が違うため、使いどころも変わります。


✋ 手動調整

手動調整は、
人が経験や結果を見ながらハイパーパラメータを調整する方法です。

たとえば、

学習率が高すぎて不安定そうなので少し下げる
max depth が深すぎて過学習しているので小さくする

といった判断です。

メリット

  • 理解しながら調整できる
  • 小規模な実験では始めやすい

デメリット

  • 経験に依存しやすい
  • 試せる組み合わせが限られる
  • 再現性や網羅性が弱くなりやすい

🧱 Grid Search

Grid Search は、
指定したハイパーパラメータのすべての組み合わせを試す方法 です。

例えば、

learning rate: 0.01, 0.05
max depth: 3, 5

を指定した場合、以下の4通りをすべて試します。

Learning Rate Max Depth
0.01 3
0.01 5
0.05 3
0.05 5

メリット

  • 分かりやすい
  • 指定範囲を網羅的に試せる

デメリット

  • 組み合わせが増えると非常に時間がかかる
  • 重要でないパラメータにも計算コストを使う
  • 大規模モデルではコストが高くなりやすい

Grid Search はシンプルですが、候補が増えると急激に重くなります。


🎲 Random Search

Random Search は、
候補範囲の中からランダムに組み合わせを選んで試す方法 です。

Grid Search のように全組み合わせを試すのではなく、
決められた回数だけランダムに試します。

メリット

  • Grid Search より効率的な場合がある
  • 広い範囲を探索しやすい
  • 計算コストを制御しやすい

デメリット

  • 運に左右される部分がある
  • 最適な組み合わせを必ず見つけるとは限らない

実務では、Grid Search より Random Search の方が現実的な場合も多いです。


🧠 Bayesian Optimization

Bayesian Optimization は、
過去の試行結果をもとに、次に試すハイパーパラメータを賢く選ぶ方法 です。

一言で言うと、

Bayesian Optimization = これまでの結果を見ながら、次に良さそうな設定を選ぶ

というイメージです。

Grid Search や Random Search は、試行同士の結果をあまり深く活用しません。
一方で、Bayesian Optimization は、過去の結果から「次はこのあたりを試すと良さそう」と判断します。

メリット

  • 少ない試行回数で良い設定を見つけやすい
  • 計算コストを抑えやすい
  • 高価な学習ジョブに向いている

デメリット

  • 仕組みは少し複雑
  • 完全に最適解を保証するものではない

大規模なモデルや、1回の学習コストが高い場合には、効率的な選択肢になりやすいです。


☁️ SageMaker でのハイパーパラメータチューニング

SageMaker には、ハイパーパラメータチューニングを支援する仕組みがあります。

イメージとしては、以下のような流れです。

試したいハイパーパラメータ範囲を指定
↓
複数の Training Job を実行
↓
評価指標を見ながら比較
↓
最も良い設定を選ぶ

たとえば、目的を

validation accuracy を最大化する
validation loss を最小化する

のように決めて、複数の学習ジョブを実行します。

SageMaker の試験対策では、
複数のハイパーパラメータの組み合わせを試し、評価指標に基づいて最適な設定を探す
という考え方を押さえておくとよいです。


📉 チューニングと過学習の関係

チューニングはモデル性能を上げるために重要ですが、
やり方を間違えると過学習につながることがあります。

例えば、validation data に対して何度も設定を調整しすぎると、
その validation data に合いすぎたモデルになる可能性があります。

そのため、最終的な性能確認には test data を使うことが重要です。

train data = 学習
validation data = チューニング
test data = 最終評価

この役割分担は、Day 3 の内容ともつながります。


☁️ AWS 試験での見られ方

AWS の AI / ML 系試験では、Training とハイパーパラメータチューニングは、
以下のような観点で問われる可能性があります。

観点 1:Training Job はモデルを学習する処理

Training Job は予測を返す仕組みではなく、
モデルを作るための処理です。

Training Job = モデルを学習する
Endpoint = リアルタイム推論
Batch Transform = 一括推論

この区別は重要です。


観点 2:ハイパーパラメータは学習前に設定する

ハイパーパラメータは、モデルがデータから自動で学習する値ではありません。

learning rate
epoch
batch size
max depth
regularization

などは、学習前に設定・調整する値です。


観点 3:チューニングは複数の設定を試す

ハイパーパラメータチューニングでは、
複数の設定を試し、評価指標に基づいて最も良いものを選びます。

複数の Training Job
↓
評価指標で比較
↓
最良のハイパーパラメータを選択

👨‍💻 実務目線で見ると

実務では、ハイパーパラメータチューニングは重要ですが、
無制限に試せばよいわけではありません。

なぜなら、チューニングには以下のコストがかかるからです。

  • 学習時間
  • コンピューティングコスト
  • 実験管理の負担
  • 結果分析の手間

特に AWS 上で大きな Training Job を何度も実行すると、コストが増えやすくなります。

そのため、実務では以下のような考え方が大切です。

  • まずは小さく試す
  • 重要なハイパーパラメータから調整する
  • 評価指標を明確に決める
  • 不要に探索範囲を広げすぎない
  • チューニング結果を記録する
  • 最終的には test data で確認する

チューニングは「たくさん試すこと」ではなく、
目的に合った設定を効率よく探すこと が重要です。


🧠 ここは特に覚えたいポイント

覚え方 1

Training = データを使ってモデルを学習する

覚え方 2

Hyperparameter = 学習前に設定する値

覚え方 3

Learning rate = 学習時の歩幅
Epoch = 訓練データを何周するか
Batch size = 一度に何件ずつ学習するか

覚え方 4

Tuning = 複数のハイパーパラメータ設定を試して、良い組み合わせを探す

覚え方 5

Grid Search = 全組み合わせ
Random Search = ランダムに試す
Bayesian Optimization = 過去の結果をもとに賢く選ぶ

✅ まとめ

今回は、Training とハイパーパラメータチューニングについて整理しました。

重要なポイントは以下です。

  • Training は、既存データを使ってモデルに規則を学習させる工程
  • SageMaker では Training Job として学習処理を実行する
  • ハイパーパラメータは、学習前に設定する値
  • learning rate は学習時の更新幅に関係する
  • epoch は訓練データを何回学習するかを表す
  • batch size は一度に何件のデータを使って学習するかを表す
  • max depth や number of trees は木系モデルでよく使われる
  • regularization は過学習を抑えるために使う
  • チューニングは、より良いハイパーパラメータの組み合わせを探す作業
  • Grid Search、Random Search、Bayesian Optimization は代表的なチューニング方法

モデル性能を上げるには、アルゴリズムを選ぶだけでなく、
どのように学習させるか、どの設定で学習させるか を考えることが重要です。


📌 次回予告

次回は、学習済みモデルを実際に使うための

  • SageMaker Endpoint
  • Real-time Endpoint
  • Serverless Endpoint
  • Asynchronous Endpoint
  • Batch Transform

について整理します。

リアルタイム推論とバッチ推論の違いを、実務での使い分けも含めて分かりやすくまとめます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?