讃岐小僧のEngineering×Techメモ

未経験から挑戦中のプログラミングや、趣味の野球や狩猟について、その他、ビジネスやテクノロジーをテーマに様々なことをつぶやく場所です。

G検定落ちていたのでもう一度やり直す ~part1~

はじめに

以前に一般社団法人日本ディープラーニング協会のG検定試験を受検するまでの記事を書いていました。

恥ずかしながら落ちていましたので改めて勉強し受検しなおそうというもの。

というのも仕事で実際にAIを作るプロジェクトに参加中とうかリードさせてもらえているので、勉強せざるを得なくなったというのが事実。

ということで、改めて丁寧に勉強しなおしていきます。

では早速メモ。

教師あり学習の代表的手法について

線形回帰(Linear Regression)

データセットに対して、そのデータセットに最も当てはまる直線を考える。
データセットに対してそのデータセットに最も当てはまる≠損失関数が最も小さい直線を求める

次元が大きくても問題ないがどの次元を扱うかで手法が変わります。

正則化(Regularization)

学習の際に用いる式に項を追加することによって取りうる重みの値の範囲を制限し、過度に重みが訓練データに対してのみ調整されることを防ぐ。

え?項が追加されたら何で過学習を防げるの?
よく分からんな~

ということでWikipediaを調べることとする

Wikiより引用
機械学習過学習を防いだり、逆問題での不良設定問題を解くために、追加の項を導入する手法である。モデルの複雑さに罰則を科すために導入され、なめらかでないことに罰則をかけたり、パラメータのノルムの大きさに罰則をかけたりする。

結局分からないな。。。

他のサイトを探す、、、、

お、ここなら分かるな。

L1、L2正則化を用いた機械学習モデルは損失関数とパラメータの値の和を最小にするパラメータを学習します。パラメータの和を評価することでパラメータが大きくなるのを防ぎます。このようにしてモデルが過学習しないようにしています。

なるほど、追加した項というのはこの損失関数とパラメータの最小にするパラメータのことだったのか。

このあたり正確に理解していなかったな。

正則化のコントロールは大事

上記のように過学習を防ぐための仕組みとして正則化があった、しかし正則化の度合いも調整することが大事で例えば、正則化をしてない場合は過学習してしまう可能性があるが、あまりにし過ぎたら予測性能が下がるかもしれない。

L1正則化

一部のパラメータの値を0にすることで、特徴量選択を行うことができる

うん。パラメータの値を0にする=特徴量選択が行える、というのがまったく自分の頭の中でつながらないので調べます。

またここ

f:id:keisuke8925gdk:20190703165544p:plain

上記の通り、L1正則化では損失関数と説明変数の和をパラメータとしていました。

またL1正則化は余分なパラメータを省く(次元圧縮)することを目的とした手法でした。L1正則化を用いた学習ではパラメータwiが0になりやすいためです。パラメータwiが0とされた説明変数は目的変数に対して無関係であることを意味します。

とても分かりやすい。

L1正則化項を追加した線形回帰のことをラッソ回帰(Lassso Regression)と呼ぶ。

L2正則化

パラメータの大きさに応じてゼロに近づけることで、汎化された滑らかなモデルを得ることができる

先ほどのL1正則化の説明を見てきたばかりなのでなんとなく分かりますね。
L1正則化が関係ないパラメータを0にしてしまってたのに対して、L2正則化はゼロにはせず緩やかに利用している。

f:id:keisuke8925gdk:20190703173052p:plain

上記の通り、L2正則化ではパラメータは損失関数に説明変数の二乗和を正則化項として追加しています。

なんでもL2正則化の方が精度が高い傾向にあるとのこと。
実際に動かしてみないと分かりませんがモデルでもL1正息化とL2正則化の二つを試すほうがよさそうだ。。

L2正則化項を追加した線形回帰のことをリッジ回帰(Ridge Regression)と呼ぶ。

ちなみに、L1正則化とL2正則化の折衷案のことをElastic Netと呼ぶ。

参照

【to-kei.net 全人類が分かる統計学】正則化の種類と目的 L1正則化 L2正則化について

いったんここまで