統計的手法や可視化手法でデータを調べた後、 モデルのトレーニングが効果的に行えるよう データを変換する必要があります 説明します。正規化の目的は、特徴を変換して類似のスケールにすることです。たとえば、次の 2 つについて考えてみましょう。 機能:
- 特徴
X
の範囲は 154~24,917,482 です。 - 特徴
Y
の範囲は 5 ~ 22 です。
これら 2 つの特徴は範囲が大きく異なります。正規化では、X
と Y
を操作して、0~1 などの同様の範囲に収まるようにします。
正規化には次の利点があります。
- トレーニング中にモデルの収束を早めるのに役立ちます。特徴ごとに異なる範囲がある場合、勾配降下法は 「bounce」収束が遅い場合ですとはいえ、より高度なオプティマイザーは、 アダグラード Adam は、次の方法でこの問題から保護します。 効果的な学習率の変化を示します
- モデルがより優れた予測を推測するのに役立ちます。 さまざまな特徴の範囲が異なる場合、生成されたモデルの予測の有用性が低下する可能性があります。
- 特徴値が非常に高い場合に「NaN トラップ」を回避するのに役立ちます。
NaN は、数値ではないの略です。モデル内の値が浮動小数点の精度上限を超えると、値は数値ではなく
NaN
に設定されます。モデル内の 1 つの数値が NaN になると、 モデルも最終的には NaN になります - モデルが各特徴の適切な重みを学習するのに役立ちます。特徴量のスケーリングを行わないと、モデルは範囲の広い特徴量に過度に注意を払い、範囲の狭い特徴量に十分な注意を払いません。
数値特徴の正規化では、異なる 1 つの特徴を
異なる範囲(年齢、収入など)を分類できます。
幅広い範囲をカバーする単一の数値特徴を正規化することも、
city population.
など
次の 2 つの機能を検討してください。
- 特徴
A
の最小値は -0.5、最大値は +0.5 です。 - 特徴
B
の最小値は -5.0、最大値は +5.0 です。
特徴 A
と特徴 B
のスパンは比較的狭くなっています。ただし、対象物 B
のスパンは対象物 A
のスパンの 10 倍です。そのため、次のようになります。
- トレーニングの開始時に、モデルは特徴
A
が 10 倍であると仮定します。 より「重要」に特徴B
よりも低くなります。 - トレーニングに通常よりも時間がかかります。
- 作成されたモデルが最適でない可能性があります。
正規化しないことによる全体的な被害は比較的小さいただし、 特徴 A と特徴 B を同じ尺度に正規化し おそらく -1.0 から +1.0 です。
次に、範囲の差が大きい 2 つの特徴について考えてみましょう。
- 特徴
C
の最小値は -1、最大値は +1 です。 - 特徴
D
の最小値は +5000、最大値は +1,000,000,000 です。
特徴 C
と特徴 D
を正規化しない場合、モデルは最適ではない可能性があります。さらに、トレーニングが実際に完了するまでには、
完全に収束できないこともあります。
このセクションでは、一般的な 3 つの正規化方法について説明します。
- 線形スケーリング
- Z スコア スケーリング
- 対数目盛
このセクションでは、クリッピングについても説明します。正解ではありませんが、 正規化の手法に加えて、クリッピングは無秩序な数値特徴を より優れたモデルが生成されます。
均等目盛
リニア スケーリング(通常は単にスケーリング)とは、浮動小数点値を自然な範囲から標準範囲(通常は 0~1 または -1~+1)に変換することを意味します。
リニア スケーリングは、次のすべての条件が満たされている場合に適しています。
- データの上限と下限が時間の経過とともにあまり変化しない。
- 特徴に外れ値がほとんどないか、まったくなく、外れ値が極端ではない。
- この特徴は、その範囲全体にほぼ均等に分散されます。 つまり、ヒストグラムでは、ほとんどの値の棒がほぼ均等に表示されます。
人間の age
が特徴であるとします。線形スケーリングは適切な正規化
次の理由で age
の手法を使用します。
- おおよその下限と上限は 0 ~ 100 です。
age
には、比較的少量の外れ値が含まれています。全体の約 0.3% 人口は 100 人を超えています- 特定の年齢層が他の年齢層よりもやや多く含まれる場合もありますが、大規模なデータセットには、すべての年齢層の十分なサンプルが含まれている必要があります。
演習:理解度をチェックする
モデルの特徴であるnet_worth
が保持しているとします。
価値があります。線形スケーリングは適切な正規化
net_worth
の手法は?その理由もお聞かせください。
Z スコアのスケーリング
Z スコアは、値が平均からどの程度離れているかを示す標準偏差の数です。たとえば、平均より 2 標準偏差大きい値の Z スコアは +2.0 です。平均値から 1.5 標準偏差低い値の Z スコアは -1.5 です。
Z スコア スケーリングで特徴を表すということは、その特徴の Z スコアを特徴ベクトルに格納することを意味します。たとえば、次の図は 2 つのヒストグラムを示しています。
- 左の図は古典正規分布です。
- 右側は、Z スコア スケーリングで正規化された同じ分布。
Z スコア スケーリングは、次の図に示すような、漠然とした正規分布のみを持つデータにも適しています。
Z スコアは、データが正規分布または正規分布に近い分布に従っている場合に適しています。
分布の範囲の大部分は正規分布に従っていても、極端な外れ値が含まれている場合があります。たとえば、net_worth
特徴のほとんどの点が 3 標準偏差に収まる可能性がありますが、この特徴のいくつかの例は平均から数百の標準偏差離れている可能性があります。このような状況では、Z スコア スケーリングと別の形式の正規化(通常はクリッピング)を組み合わせて、この状況に対処できます。
演習: 理解度を確認する
モデルが、1,000 万人の女性の大人の身長を保持するheight
という名前の特徴でトレーニングしているとします。Z スコア スケーリングは height
の正規化手法として適切でしょうか?その理由もお聞かせください。
対数目盛
対数スケーリングでは、未加工の値の対数を計算します。理論的には、 対数は任意の底にできます。実際には、対数スケーリングでは通常、 自然対数(ln)
ログスケーリングは、データがべき法則分布に従っている場合に便利です。 簡単に言うと、べき乗法の分布は次のようになります。
X
の値が低い場合、Y
の値は非常に高くなります。X
の値が増加すると、Y
の値は急速に減少します。 そのため、X
の値が高いと、Y
の値が非常に低くなります。
映画のレーティングはべき乗法の分布の好例です。実際に 図で示されていますが、
- 一部の映画には多くのユーザー評価が寄せられています。(
X
の値が小さいと、 (Y
の値)である必要があります。 - ほとんどの映画にはユーザー評価がほとんどありません。(
X
の値が高いと、 (Y
の値)である必要があります。
ログスケーリングにより分布が変化し、より正確な予測を行うモデルをトレーニングできます。
2 つ目の例として、書籍販売はべき乗法の分布に準じます。その理由は次のとおりです。
- ほとんどの出版された書籍は、ごく少数の部数、場合によっては 1 ~ 20 部を販売しています。
- 書籍の中には、数千部の中程度の数の書籍が販売されているものもあります。
- 100 万部以上を販売しているベストセラーはごく一部です。
たとえば、書籍カバーと書籍の売上の関係を見つけるために線形モデルをトレーニングしているとします。元の値でトレーニングする線形モデルでは、100 万部売れた書籍の表紙について、100 部しか売れなかった書籍の表紙よりも 10,000 倍効果的な何かを見つける必要があります。ただし、すべての売上データをログスケーリングすると、タスクがはるかに実行可能になります。たとえば、100 のログは次のようになります。
~4.6 = ln(100)
1,000,000 のログは次のようになります。
~13.8 = ln(1,000,000)
したがって、1,000,000 のログは 100 のログの約 3 倍の大きさになります。ベストセラーの書籍の表紙は、おそらく 3 倍くらい (なんらかの形で)小さな販売本の表紙よりも力強いのです。
クリッピング
クリッピングは、 極端な外れ値の影響を最小限に抑えます。簡単に言うと、クリッピングは通常、 外れ値の値を特定の最大値に減らします。クリッピングは奇妙なアイデアですが、非常に効果的です。
たとえば、roomsPerPerson
という名前の特徴を含むデータセットについて考えてみましょう。
これは部屋の数(合計部屋数で割った値)を
住宅の入居者数などで区別されます。次のグラフは、特徴値の 99% 以上が正規分布(平均 1.8、標準偏差 0.7)に従っていることを示しています。ただし、この特徴にはいくつかの外れ値が含まれており、その中には極端なものもあります。
このような極端な外れ値の影響を最小限に抑えるにはどうすればよいでしょうか。さて、
ヒストグラムは偶数分布、正規分布、べき法則ではありません
分散します単純にパラメータの最大値をキャップまたはクリップし、
roomsPerPerson
を任意の値(4.0 など)に設定します。
特徴値を 4.0 でクリップしても、モデルがすべての 指定することもできます4.0 より大きい値はすべて 4.0 になります。これが 4.0 の異常な上昇の原因です。丘があるにもかかわらず、スケーリングされた特徴セットは元のデータよりも有用です。
ちょっと待ってください。あらゆる外れ値を任意の上限値まで減らすことができるか ?モデルをトレーニングする場合には、そのとおりです。
他の形式の正規化を適用した後に値をクリップすることもできます。たとえば、Z スコアのスケーリングを使用しているが、いくつかの外れ値で 3 よりもはるかに大きい絶対値になりますこの場合は、次のことができます。
- 3 より大きい Z スコアは、3 に切り捨てられます。
- -3 未満の Z スコアは、-3 にクリップされます。
クリッピングにより、重要でないデータに対するモデルの過剰なインデックス化を防ぐことができます。ただし、一部の外れ値は実際には重要であるため、値を慎重にクリップしてください。
正規化手法の概要
正規化手法 | 数式 | 使用場面 |
---|---|---|
均等目盛 | $$ x' = \frac{x - x_{min}}{x_{max} - x_{min}} $$ | 特徴が複数のゾーンにわたって均等に 固定範囲です |
Z スコアのスケーリング | $$ x' = \frac{x - μ}{σ}$$ | 特徴分布に極端な外れ値が含まれていない場合。 |
対数目盛 | $$ x' = log(x)$$ | 対象物が電力の法則に準拠している場合。 |
クリッピング | $x > max$ の場合、$x' = max$ に設定 $x < min$ の場合、$x' = min$ に設定 |
特徴に極端な外れ値が含まれている場合。 |
演習: 理解度をテストする
データセンター内で測定された温度に基づいてデータセンターの生産性を予測するモデルを開発しているとします。データセット内の temperature
値のほとんどは 15~30(摂氏)の範囲内にあります(次の例外を除く)。
- 年に 1 回か 2 回、猛暑の日には、
31 と 45 は
temperature
に記録されます。 temperature
の 1,000 ポイントごとが 1,000 に設定されます 実際の温度ではありません。
temperature
の正規化手法として適切なのはどれですか。
1,000 という値は誤りであり、削除ではなく あります。
31 ~ 45 が正当なデータポイントです。 データセットに、適切な予測を行うためにモデルをトレーニングするのに十分な数のこの温度範囲のサンプルが含まれていない場合、これらの値はクリッピングすることをおすすめします。ただし推論中は したがって、クリップされたモデルでは、 温度 35 を温度 45 にする。