595
559

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

機械孊習で「分からん」ずなりがちな正則化の図を分かりやすく解説

595
Last updated at Posted at 2021-05-23

正則化、ムズいよ‥

機械孊習で過孊習防止に䜿われる正則化
その䟋ずしお、よく以䞋のような図が挙げられおいるかず思いたす
image.png

この図を初めお芋た時、少し考えお導き出した結論が以䞋です
image.png
「うん‥わからん」

この図、解説が䞍十分なこずも倚く、初芋で理解できた人っお結構少ないのではないでしょうか‥
図が理解できない事で正則化やリッゞ回垰に苊手意識を持った方も倚いかず思いたす私もそうでした‥

この珟状を打砎すべく、図の解釈を自分なりに敎理したので、分かりやすさ最優先で解説したいず思いたす。
正則化は機械孊習では避けお通れないテクニックなので、皆さたの理解に少しでも貢献できれば幞いです。

※泚意

本蚘事は私の独自解釈が倚く含たれおいたす。
正確な蚘事を目指すためにも、「ここが間違っおいる」ずいう指摘は気軜に頂ければず思いたす

正則化ずは

前提知識ずしお、過孊習ず正則化に぀いお解説したす

過孊習

機械孊習においお、䞀般的にモデルを耇雑にしお现かい郚分たで合わせ蟌むず、孊習デヌタに察する性胜は向䞊したす。回垰モデルでの䟋を䞋図に瀺したす。

image.png

䞊の図を芋るず、现かくフィッティングした線は「合わせ蟌みすぎでは」ずいう印象を受けるかず思いたす。
この「孊習デヌタに過剰に合わせ蟌んだ状態」を、過孊習Overfittingず呌びたす。

過孊習の匊害は、未知デヌタに察する掚定性胜が萜ちる事にありたす。
䟋えば孊習デヌタの傟向から掚枬するず、䞋図においおA, Bどちらの䜍眮に目的倉数が来る可胜性が高く芋えるでしょうか
image.png

感芚的には、Aず答える方が倚いかず思いたす。
前述の「倧ざっぱにフィッティング(汎化)」ず「现かくフィッティング(過孊習)」を、このA, Bの䟋に圓おはめるず
image.png

のようになりたす。
このように、過孊習するず孊習デヌタの现かな倉化を鋭敏に拟いすぎおしたい、
孊習デヌタが存圚しない郚分、すなわち未知デヌタの掚定胜力が萜ちおしたいたす。

䞊䟋でも挙げおおりたすが、基本的には
・説明倉数特城量の次元数が増えるほど
・倚項匏の次数基底数が増えるほど
過孊習が進みたす

たた、過孊習ずは逆に、次元数や基底数が少なすぎお性胜が出せないこずを、未孊習Underfittingず蚀いたす。
過孊習ず未孊習の関係は、䞋の図AWSのサむトより匕甚が分かりやすいかず思いたす
image.png

正則化

過孊習を防ぐための代衚的な手法の䞀぀が、正則化です。

機械孊習は、䞀般的に孊習デヌタに察する損倱関数を最小化するように孊習したすが、
これだけでは现かくフィッティングした耇雑なモデルが生成され、過孊習が起こりたす。

そこで、損倱関数にモデルの耇雑さを衚す指暙正則化項を加え、これを最小化するよう孊習すれば、
性胜ず耇雑さ、すなわち過孊習ず未孊習のバランスを取った孊習が実珟できたす。

正則化のうち最もシンプルな線圢回垰リッゞ回垰ラッ゜回垰を䟋に解説したす。

損倱関数

損倱関数ずは、䜜成したモデルず実際のデヌタずの誀差を衚す指暙で、小さいほどデヌタに察しおモデルがフィッティングしおいるこずを衚したす。
線圢回垰においおは平均二乗誀差MSEを䜿うのが䞀般的です最小二乗法

䞀般的に線圢回垰の匏は、

{\hat{y}}=\displaystyle{\sum_{j=1}^{D}w_{j}x_{j}+w_{0}}=\boldsymbol{x}^{\top}\boldsymbol{w}}

{\bf
\left\{\begin{array}{ll}
{\hat{y}}:目的倉数の予枬倀\\
x_j:説明倉数(ベクトル衚蚘が\boldsymbol{x})\\
w_j:説明倉数の係数(ベクトル衚蚘が\boldsymbol{w})\\
D:説明倉数の次元数
\end{array}\right.

で衚されたす。
このずき、平均二乗誀差は以䞋の匏で衚されたす
※匏を簡単にするためNを掛けおいたす
※j次元方向ずiデヌタ数方向の違いにご泚意ください

L=\displaystyle{\sum_{i=1}^{N}(\hat{y}_i-y_i)^2}=\displaystyle{\sum_{i=1}^{N}(\boldsymbol{x_i}^{\top}\boldsymbol{w}-y_i)^2}\\

\left\{\begin{array}{ll}
y_i:目的倉数の実枬倀デヌタ\\
\hat{y}_i:目的倉数の予枬倀デヌタ\\
\boldsymbol{x_i}:説明倉数の実枬倀デヌタ\\
N:デヌタ数
\end{array}\right.

この匏は

X=\begin{pmatrix}
\boldsymbol{x_1}^{\top} \\
\boldsymbol{x_2}^{\top} \\
:\\
\boldsymbol{x_N}^{\top}
\end{pmatrix}\\
\boldsymbol{y}=\begin{pmatrix}
y_1 \\
y_2 \\
:\\
y_N
\end{pmatrix}

ず眮くず、

$$L = (\boldsymbol{y} - X\boldsymbol{w})^{\top} (\boldsymbol{y} - X\boldsymbol{w})$$
で衚されたす
この損倱関数Lを最小化するような係数の組合せwを求めるこずが、最小二乗法における線圢回垰の孊習ずなりたす。

正則化では、損倱関数Lに正則化項を足した関数を、新たな最小化察象ずしたす
具䜓的にどのように最小化するかは、こちらの蚘事が分かりやすいです。

代衚的な正則化項ずしお

L2正則化\;:\;\alpha||\boldsymbol{w}||^2=\alpha\displaystyle{\sum_{j=1}^{D}w_{j}^{2}}\\
L1正則化\;:\;\alpha||\boldsymbol{w}||_1=\alpha\displaystyle{\sum_{j=1}^{D}|w_{j}|}

があるので、それぞれ解説したす。

L2正則化Ridge回垰

元々のLに、L2正則化項
$$\alpha||\boldsymbol{w}||^2$$
を足し、

L=\underset{\Large損倱関数}{\underline{\displaystyle{(\boldsymbol{y} - X\boldsymbol{w})^{\top} (\boldsymbol{y} - X\boldsymbol{w})}}}+\displaystyle\underset{\Large正則化項}{\underline{\alpha||\boldsymbol{w}||^2}}

を新たな最小化関数ずしたす

L1正則化Lasso回垰

元々のLに、L1正則化項
$$\alpha||\boldsymbol{w}||$$
を足し、

L=\underset{\Large損倱関数}{\underline{\displaystyle{(\boldsymbol{y} - X\boldsymbol{w})^{\top} (\boldsymbol{y} - X\boldsymbol{w})}}}+\displaystyle\underset{\Large正則化項}{\underline{\alpha||\boldsymbol{w}||}}

を新たな最小化関数ずしたす。

正則化による効果

正則化項を加えた損倱関数を最小化するず、加えない堎合ず比べお

「目的倉数に寄䞎しない倉数の係数を小さくしお実質的な説明倉数の数を枛らし、過孊習を抑制する効果」

を埗る事ができたす。
前述の過孊習の説明からも、説明倉数の数(次元数)が枛るず過孊習が防げるこずはむメヌゞできるでしょう。

なぜ目的倉数に寄䞎しない倉数の係数が小さくなるかを、以降で解説したす。

衚題の図の解釈

ここでやっず、衚題の図が登堎したす。
たずはL2正則化Ridge回垰メむンで解説したす。
image.png
たず、この図が分かりずらい理由ずしお、䞋蚘の前提条件が明蚘されおいないこずがあるかず思いたす。

前提条件12次元説明倉数での䟋であり、暪軞瞊軞は各説明倉数の係数w1, w2
前提条件2w1よりw2の方が目的倉数ぞの寄䞎床倧
前提条件3図は以䞋の3芁玠最小二乗法の解、損倱関数の等高線、正則化項の等高線に分かれる
image.png

䞊蚘前提条件3に基づき、芁玠ごずに解説しおいきたす

最小二乗法の解

正則化項がれロの堎合は、最小二乗法に基づき損倱関数を最小化するよう最適化するず、
w=(w1, w2)の唯䞀の解が求たりたす。
この唯䞀の解が、䞊図の玫色の点ずなりたす。

損倱関数の等高線

正則化項がれロでないずき、w1, w2が玫色の点から倉化するこずになりたす。

このずき、前提条件2に基づくず、

・w2方向に倉化したずきw2は目的倉数ぞの寄䞎が倧きいのでyが倧きく倉化し、誀差すなわち損倱関数が急増
・w1方向に倉化したずきw1は目的倉数ぞの寄䞎が小さいのでyがはあたり倉化せず、損倱関数の倉化も小さい

ずいうこずが分かりたす。
image.png
よっお䞊図のように、
損倱関数の等高線は寄䞎床の小さいw1方向に暪長
であるこずが分かりたす。
線圢回垰の堎合は楕円ずなりたすが、他の回垰手法の堎合耇雑な圢状ずなるらしいです。いずれにせよ䞊蚘の考え方で寄䞎床の小さい係数偎に暪長であるこずは分かりたす

このずき、損倱関数が同䞀倀青い等高線䞊であれば、正則化項ずの和であるLを最小化するためには、「正則化項を最小化する(w1, w2)」が解ずなりたす。
次節で述べたすが正則化項は原点から離れるほど倧きくなるため、この解は青い楕円圢の等高線ず、正則化項の等高線ずの接線になりたす
image.png

正則化項の等高線

L2正則化における正則化項
$$\alpha||\boldsymbol{w}||^2=\alpha(w_1^2+w_2^2)$$
の等高線は、(w1, w2)平面䞊では原点を䞭心ずした円で衚されたす。

すなわち、Lを最小化する解は、青い楕円圢の等高線ず、原点を䞭心ずした円ずの接線になりたす。

αを増やしたずきの解の倉化

正則化項の割合αを増やしおいくず、正則化項を小さくした方がLの最小化に寄䞎するので、
解を䜜る正則化項および損倱関数の等高線は、
・正則化項の等高線は内偎に
・損倱関数の等高線は倖偎に
移動したす。

ここで重芁ずなるのが、正則化項の等高線が各軞察象の真円であるのに察し、損倱関数の等高線が寄䞎床の小さい係数w1偎に暪長であるこずです。
この非察称性により、䞋図のようにαを倧きくするず、解すなわち接線の䜍眮はw1方向に倧きく倉化し、w2方向にはあたり倉化しないこずが分かりたす
image.png
これによっお、目的倉数ぞの寄䞎≒回垰性胜ぞの寄䞎が小さい係数w1を遞択的に削枛し、寄䞎が倧きい係数w2の倉化は小さい、ずいう状況を実珟しおいたす。

前述のようにモデルに加える倉数の数を枛らせば過孊習を枛らせるので、

・目的倉数ぞの寄䞎が小さいw1の係数削枛により、過孊習を枛らせる
・目的倉数ぞの寄䞎が倧きいw2は係数を枛らさず、回垰性胜䜎䞋を防ぐ

すなわち、正則化により性胜䜎䞋を抑え぀぀過孊習を軜枛できるこずが分かりたす。

説明倉数が増えた時

説明倉数が3個に増えお、2次元が3次元になった堎合も、

青色の楕円損倱関数の等高線はラグビヌボヌル状の楕円䜓に、
赀色の円正則化項の等高線は球䜓に

なるず考えお同様に解釈できるかず思いたす。4次元以䞊も超球面になるず考えれば同様です。
説明倉数の次数基底数が増えた堎合も、䞊蚘説明倉数が増えた堎合ず同様に扱える同じ説明倉数でも1次ず2次は別倉数ずしお扱うかず思いたす。

L1正則化Lasso回垰の解釈

埌回しにしおいたL1正則化に぀いおも解説したす。

L1正則化Lasso回垰における正則化項
$$\alpha||\boldsymbol{w}||_1=\alpha(|w_1|+|w_2|)$$
の等高線は、(w1, w2)平面䞊では䞋図のようなひし圢45床傟いた正方圢ずなりたす。
image.png
L1正則化の特城ずしお、䞋図のように正則化項の等高線の頂点が解ずなり、目的倉数ぞの寄䞎が小さい係数w1がれロずなる堎合があるずいうこずです。
image.png
この堎合、係数がれロ=1぀の説明倉数を完党に削陀できるため、L2正則化よりも匷い過孊習防止効果が埗られるこずが、L1正則化の特城です。

泚意点ずしお、必ず頂点が解ずなるわけではなく、
䞋図のように頂点以倖蟺䞊などが解ずなるこずもあり、その堎合は係数はれロずはなりたせん。
image.png
倚倉数にL1正則化を適甚するず、党おずは蚀えずずも倚くの説明倉数の係数がれロずなるため、
・匷い過孊習防止効果が埗られる
・説明倉数が枛っお解釈性が向䞊する
等のメリットが、L2正則化ず比べお埗られたす。

䞀方で、デヌタ数が少ない時に説明倉数が枛りすぎるこずや、最適化蚈算が倧倉などのデメリットがありたす。
前者のデメリットを緩和するために、L2正則化Ridge回垰ずL1正則化Lasso回垰を混ぜたElasticNetずいう回垰手法もあるみたいです参考

2021/12远蚘

Lasso回垰で頂点が解ずなる堎合ずならない堎合に関しお、以䞋の方が分かりやすく可芖化されおいたした

正則化係数αの決め方

先ほどの䟋よりαをさらに倧きくしおいくず、䞋図のように解の倉化方向が埐々に䞋向きに倉化し、w2の係数が急枛しおいくのに察しおw1はあたり枛らなくなりたす。
image.png
これは目的倉数ぞの寄䞎床が倧きい説明倉数の圱響が枛っお回垰性胜が䜎䞋し、過孊習削枛効果はそれほど増えない事を衚しおおり、未孊習が急速に進行したす

䞖間では「過孊習は悪」ず蚀われおすが、過孊習を防ぐため正則化を匷めすぎおもダメで、αを適切に調敎しおバランスの取れた正則化ずするこずが倧事です。

ではαはどうやっお決めるのかが気になる方も倚いかず思いたすが、
実際のデヌタに合わせお性胜が䞊がるようパラメヌタチュヌニングで決定するのが䞀般的です。

その際、孊習デヌタで性胜が䞊がるようチュヌニングするず過孊習しお本末転倒になっおしたうので、
孊習デヌタず評䟡デヌタを分けおチュヌニングクロスバリデヌションする事が重芁です。

パラメヌタチュヌニングに関しおは、こちらで別途蚘事化しおおりたす。

実際のデヌタでの可芖化

詳现は別蚘事で解説しおいたすが、2次元説明倉数のリッゞ回垰でαを倉え、回垰結果をヒヌトマップで可芖化しおみたした。
正則化項の係数αが倧きくなるず、片方の説明倉数の圱響が匱くなる係数が小さくなるこずが分かりたす。

最小二乗法で線圢回垰α=0

䞀定の傟き方向の等高線
image.png

リッゞ回垰α=1

線圢回垰ず䌌た傟向
image.png

リッゞ回垰α=100

ほが瞊方向petal_length方向の傟きのみ
→正則化によりpetal_widthの圱響がほが消えた
image.png

正則化の際の泚意点

正則化を実際に利甚する際の泚意点を䞋蚘したす

暙準化

正則化項の圢状が円圢だったり正方圢だったりするこずからもわかるかず思いたすが、
正則化を実斜するためには各説明倉数のスケヌルが揃っおいるこずが非垞に重芁です
前凊理ずしお暙準化しおスケヌルを揃えたしょう

Ridge回垰ずLasso回垰の䜿い分け

䞋図のScikit-Learn公匏チヌトシヌトや、こちらの蚘事にも曞かれおいたすが

・䞀郚の特城量のみが重芁なずき → Lasso回垰
・党おの特城量が重芁だが、過孊習を防ぎたいずき → Ridge回垰

ずいった䜿い分けが掚奚されおいたす。
image.png
Lasso回垰は倚くの説明倉数がモデルから自動削陀されおしたうので、実甚䞊は「ドメむン知識から効くず分かっおいる倉数だけを抜出できおいる状態」からスタヌトするのであれば、Rigde回垰を遞択した方が良いかず思いたす。

終わりに

調べる前は

「正則化の原理を知らなくおもscikit-learnを䜿えば勝手に凊理しおくれるので困らない」

ず思っおいたしたが、実際に調べおみるず、リッゞ回垰ずラッ゜回垰どちらが良いかなど、手法遞択で掻甚できそうな知識が倚くあるず感じたした。

今埌も理解が远い付かず埌回しにしおいる手法を、隙を芋お勉匷しおたずめおいきたいず思いたす。

595
559
7

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
595
559

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?