Upgrade to Pro — share decks privately, control downloads, hide ads and more …

外れ値とHuber(フーバー)損失

K_DM
October 08, 2021
840

 外れ値とHuber(フーバー)損失

最小二乗法を用いてモデルを作成した時、外れ値が含まれているとどのような挙動になるかを確認します。またHuber(フーバー)損失について説明します。
動画での説明→https://youtu.be/CrN5Si0379g

K_DM

October 08, 2021
Tweet

Transcript

  1. やりたいこと=直線・平面を決めるための係数を決める 最小二乗法 = 残差平方和が最小になるような線・平面を引くこと y x1 y = β1 x1

    + β0 ΣN i=1 (yi − (β1 xi,1 + β0 ))2 が最小になるようにa1, a2を決定すること 最小二乗法 前回までのあらすじ
  2. Ridge回帰の発想 余計な係数には罰則を設ける y = β0 + β1 x1 + β2

    x2 1 + β3 x3 + β4 x4 1 … βridge = argminβ {ΣN i=1 (yi − β0 − Σp j=1 xi,j βj )2 + λΣp j=1 β2 j } が大きいほど大きくなる項 βj 残差平方和 右の値を最小にするような を求めたい β はハイパーパラメータであり、大きいほど係数を小さくする方向に働く λ 過学習を抑えるような制約をつけること=正則化 前回までのあらすじ
  3. もしも外れ値があったら直線のフィットはどうなる? 外れ値とは、他の値から大きく外れた値のことを指しています y x1 ΣN i=1 (yi − (β1 xi,1

    + β0 ))2 が最小になるようにa1, a2を決定すること 最小二乗法 外れ値 二乗誤差は極端に大きくなる
  4. 外れ値によって、線がおおきくずれる 外れ値の二乗誤差が大きく、それを減らすように線をずらす必要があるため y x1 ΣN i=1 (yi − (β1 xi,1

    + β0 ))2 が最小になるようにa1, a2を決定すること 最小二乗法 外れ値 ↑ このような、最小化することで何かを最適化することを目的と している関数を損失関数(コスト関数, Loss function)と呼ぶ
  5. ロバストさ(頑健性) ”入力されるデータが理想的な状態からやや乖離していても,理想的であったときと同等の出力ができる性質”[1] y x1 ΣN i=1 (yi − (β1 xi,1

    + β0 ))2 が最小になるようにa1, a2を決定すること 最小二乗法 外れ値 ↑ このような、最小化することで何かを最適化することを目的と している関数を損失関数(コスト関数, Loss function)と呼ぶ http://ibisforest.org/index.php?%E9%A0%91%E5%81%A5%E6%80%A7 [1] ग࡝ͷైWikiʢͱ͖ͷ΋Γ ͏͖͌ʣ 今回の場合『少数の外れ値がデータに含まれていたとしても、 最終的な直線がそこまで大きくずらされなかった』ならば、 それは頑健性があると言えます。
  6. Huber損失 = 閾値によって損失の付け方が変化する 基準以上の損失は線形に増加して、二乗のペースで増加しない loss = (error)2  ( が 以下の場合)

    (errorが 以上の場合) loss = 1 2 error2 |error| k loss = k(|error| − 1 2 k) k 誤差が大きくても 損失がそこまで大きくない ࢀߟจݙɿhttps://en.wikipedia.org/wiki/Huber_loss 正解との誤差 損失 閾値 よりも誤差が小さいときは 誤差を二乗誤差に近い形で評価する k
  7. 実際にロバストかどうか確認してみる 外れ値を一つだけ仕込みます x1 y 正解は であるようなデータ点です y = 5x1 +

    10x2 + ϵ フーバー損失を用いた回帰は、 外れ値の影響をあまり受けずに直線をフィットできている