技術共有

ディープラーニングDeepLearning 重線形回帰の研究ノート

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

多次元の特徴

変数と用語

列属性 x属性の数 n x ⃗ vec{x}バツ (私)行ベクトル特定の値 x ⃗ ji vec{x}_j^iバツ 上下
平均μ標準化標準偏差 σシグマ(σ)

w ⃗ vec{w} = [w123 …]
x ⃗ vec{x}バツ = [x1 バツ2 バツ3 …]

fw ⃗ , b ( x ⃗ ) = w ⃗ ∗ x ⃗ + b = w 1 x 1 + w 2 x 2 + … + wnxn + b f_{vec{w},b} (vec{x}) = vec{w} * vec{x} + b = w_1x_1 + w_2x_2 + … + w _nx_n + b ,b(バツ )= バツ +b=1バツ1+2バツ2++バツ+b

重回帰

import numpy
f = np.dot(w, x) + b
  • 1
  • 2

注: n が大きい場合 (並列処理)、非常に高速です。

正規方程式法

  1. 1000を超えると効率が悪い
  2. ロジスティック回帰、ニューラル ネットワークなどの他のアルゴリズムに一般化することはできません。
  3. 反復なし

wn = wn − α 1 m ∑ i = 1 mfw ⃗ , b ( x ⃗ ( i ) − y ( i ) ) xn ( i ) w_n = w_n - αdfrac{1}{m} sumlimits_{i=1}^mf_{vec{w},b}(vec{x}^{(i)}-y^{(i)})x_n^{(i)}=αメートル1=1メートル ,b(バツ ()ええ())バツ()

b = b − α 1 m ∑ i = 1 m ( fw ⃗ 、 b ( x ⃗ ( i ) − y ( i ) ) b = b - α{dfrac{1}{m}}sumlimits_{i=1}^m(f_{vec{w},b}(vec{x}^{(i)}-y^{(i)})b=bαメートル1=1メートル( ,b(バツ ()ええ())

より大きな範囲の独立変数に対応する重みは小さくなる傾向があり、より小さな範囲の独立変数に対応する重みはより大きくなる傾向があります。

平均正規化

範囲の最大値で割って、独立変数の [0, 1] に対する重みを求めます。

横軸: x 1 = x 1 − μ 1 2000 − 300 x_1 = dfrac{x_1-μ_1}{2000-300}バツ1=2000300バツ1μ1 Y軸: x 2 = x 2 − μ 2 5 − 0 x_2 = dfrac{x_2 - μ_2}{5-0}バツ2=50バツ2μ2

− 0.18 ≤ x 1 ≤ 0.82 -0.18le x_1le0.820.18バツ10.82 − 0.46 ≤ x 2 ≤ 0.54 -0.46le x_2le0.540.46バツ20.54

Zスコア正規化

300 ≤ x 1 ≤ 2000 300le x_1le2000300バツ12000 0 ≤ x 2 ≤ 5 0le x_2le50バツ25

x 1 = x 1 − μ 1 σ 1 x1 = dfrac{x_1-μ_1}{σ_1}バツ1=σ1バツ1μ1 − 0.67 ≤ x 1 ≤ 3.1 -0.67le x_1le3.10.67バツ13.1

予測値に対する変更の影響が (-3,3) に近づくように、スケーリングを通じてすべての特徴の値を同様の範囲内に保つようにしてください。

コスト関数 J が大きくなった場合は、ステップ サイズ (学習率) が不適切であるか、コードが間違っていることを意味します。

ここに画像の説明を挿入します

注: 反復回数はマシンによって異なります。

曲線を描いて反復点を決定するだけでなく、自動収束テストも使用できます。
ε を等しいものとする 1 0 − 3 10^{-3} 103、J の減少がこの小さな数よりも小さい場合、収束していると見なされます。

適切な学習率を設定する

  1. テストするときは、非常に小さな値を設定して、J が減少するかどうかを確認できます。
  2. 反復中の学習率は大きすぎても小さすぎてもいけません。
  3. テスト中は毎回*3、できるだけ大きい学習率、または妥当な値よりわずかに小さい学習率を選択します。

特徴エンジニアリング

変換または組み合わせを通じて特徴量エンジニアリングを構築し、より多くのオプションを提供します

fw ⃗ 、 b ( x ⃗ ) = w 1 x 1 + w 2 x 2 + w 3 x 3 + b f_{vec{w}、b}(vec{x}) = w_1x_1+w_2x_2+w_3x_3+b ,b(バツ )=1バツ1+2バツ2+3バツ3+b

注: 多項式回帰は線形および非線形フィッティングに使用できます。