【せいきか】
正規化(機械学習) とは?
最終更新:
💡 値の尺度を整えて、モデルが扱いやすくする
データの値を決めた尺度や基準へ変換する処理。機械学習では特徴量を0〜1の範囲へ変換する方法や、各入力を長さ1にそろえる方法などがある。必要性と方式はモデルや目的によって異なる。
📌 このページのポイント
- Min-Max変換は特徴量ごとの最小値・最大値を使い、学習データを指定範囲へ写す
- 標準化は平均を引いて標準偏差で割る。0〜1への変換とは違う
- Normalizationは入力ごとの長さをそろえる意味でも使われる。どの処理か確認する
- 必要性はモデルによる。変換の基準を学習データから求め、評価用データにも同じ基準を使う
なんで値の尺度をそろえる必要があるの?
距離や値の大きさを使うモデルでは、年齢と年収のように尺度が違う特徴量が結果に強く影響することがあるよ。尺度をそろえると扱いやすくなる場合がある。ただし、決定木のように通常は尺度をそろえる必要がないモデルもあるんだ。
0〜1にすれば、みんな平等に学習できる?
数値の範囲をそろえる処理であって、重要度まで等しくするものではないよ。Min-Max変換なら学習データの最小値を0、最大値を1にする。範囲外の新しい値は、同じ変換を使うと0未満や1超になることもあるんだ。
標準化とMin-Max変換はどう違うの?
標準化は、特徴量ごとの平均を引いて標準偏差で割る方法だよ。Min-Max変換や、入力ごとの長さを1にする処理とは違う。「Normalization」を広い意味で使う資料もあるので、名前だけで判断せず処理を確認するんだ。
学習用と評価用は別々に変換すればいい?
Min-Maxや標準化では、学習用のデータで求めた基準を評価用にも使うよ。評価用まで含めて最小値や平均を求めると、評価用の情報が学習へ混ざるデータリークになる。評価用だけで別の基準を作るのも、尺度がずれる原因になるんだ。
バッチ正規化も同じ前処理なの?
バッチ正規化はニューラルネットワーク内部の値を調整する層だよ。学習時はバッチの統計量、通常の推論時は学習中に蓄えた統計量を使い、学習する倍率や偏りもある。Layer Normalizationは各入力の指定した軸で統計量を求める。どちらも、入力データを一度0〜1へ変換する前処理とは区別するんだ。
まとめ:ざっくりこれだけ覚えればOK!
「Normalization」って出てきたら「データの値を決めた尺度や基準に変換する処理」と思えばだいたいOK!
📖 おまけ:英語の意味
「Normalization」 = 正規化
💬 同じNormalizationでも、特徴量の範囲をそろえる処理や、入力ベクトルの長さをそろえる処理などを指すよ。使うライブラリや文脈で、変換の基準を確かめよう。