人工知能に関する断創録スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。Learning、Kerasに関する記事が多いです。II)(2015/8/26)のつづき。IIの動画の5.1節の内容を簡単にまとめた。書いてたら長くなったので5.1節だけ。Models回帰のための線形モデルの詳細が取り上げられている。線形回帰は過学習(Overfitting)に弱い。過学習を回避するために正則化を導入したリッジ回帰、Lasso、ElasticNetの使い方が事例をもとに説明されている。線形分類器の正則化の例としてSVMとロジスティック回帰のパラメータCが説明されている。線形回帰まずは、単純な線形回帰から。線形回帰は、特徴量の線形結合で表されるモデル。ここで、が係数(coef_)でが切片(intercept_)と呼ばれる。係数と切片を学習するのが目的。線形回帰は特徴量に比べてサンプル数が少ないと過学習しやすく、精度が大幅に悪化するという欠点がある。横軸にサンプル数、縦軸に精度が来る学習曲線を描いてみるとよくわかる。訓練データ数が特徴量の数(50)より少ないとき、訓練データのスコア(点線)に比べてテストデータのスコア(実線)が非常に低く、明らかに過学習していることがわかる。訓練データ数が十分あればテストスコアはどんどん改善して過学習は解消されていることもわかる。訓練データ数が少なくて過学習するときは以下に述べる様々な正則化(regularization)テクニックが使える。regularization)を加えたのがリッジ回帰。線形回帰のコスト関数に係数の2乗和の項が加わることで係数が小さくなるようなバイアスがかかる。正則化の強さは複雑度パラメータalphaで変えられる。Validationで求められる。これを自動的にやってくれるRidgeCVが用意されている。先と同様に学習曲線を描いてみる。y)とりあえずテストスコアだけ見てみる。訓練データ数が少ないところでは線形回帰(LinearRegression)に比べてリッジ回帰(Ridge)の精度がずっとよいことがわかる。Validationで最適なalphaを求めたRidgeCVはさらにスコアがよくなっている。regularization)を加えたのがLasso。線形回帰のコスト関数に係数の絶対値の和の項が加わる。Lassoは多くの係数が0になる疎な解が得られやすいという特徴がある。本当にそうなるのかやったことなかったので試してみよう。]上がリッジ回帰の係数で下がLassoの係数。確かにLassoを使うと多くの係数が0になることがわかる。ValidationまでやってくれるLassoCVが用意されている。テストスコアを比べるとリッジ回帰よりLassoの方がよりスコアが高くなることがわかる。何回か試すとスコアが逆転することもある。リッジ回帰とLassoはどうやって使い分ければよいのだろう?ElasticNet最後にリッジ回帰とLassoの中間に位置するElasticNet。コスト関数にL1正則化とL2正則化の項を重みづけして加えただけの手法。ElasticNetはl1_ratioというパラメータを取る。0.0にするとL2ペナルティのみになりRidgeと等価になる。1.0にするとL1ペナルティのみになりLassoと等価になる。Validationできる。最適化されるパラメータはl1_ratioではなくalphaのようだ。Validationを回す必要がありそう。y)上の例ではl1_ratioを0.6で固定している。スコアもRidgeとLassoの中間くらいになる。RidgeとかLassoとかElasticNetって名前わかりにくい感じがした。名前を見てもどんな手法かまったく想像がつかない・・・ElasticNetはニューラルネットの仲間かと思ってたし。名前の由来は何だろうね?余談だけどビッグデータ時代でもこういう正則化テクニックはまだ重要なのだろうか?先にも書いたけど訓練データが山ほどあれば正則化を使わなくても過学習は解消される。大量のデータがあっても教師あり学習のラベル付けの手間はかかるからまだこういう技術が必要なのだろうか。線形回帰ではなく、線形分類器の正則化の例としてSVMとロジスティック回帰が取り上げられている。これらのアルゴリズムでは、パラメータCによって正則化を調整できる。y_train)Cを変えたときの分類境界を描画すると下のようになる。Cが小さいほど正則化が強まり、過学習が解消され、汎化性能が高まる。逆にCを大きくすると正則化が弱まり、過学習気味になっていく。上の例では左上の赤丸の扱いがわかりやすい。Cを大きくしていくとこの赤丸を無理やり分類しようとする様子が見て取れる。すべての訓練データをきちんと分類する傾向が高まるため過学習気味と判断できる(過学習の特徴は訓練データの精度が高く、テストデータの精度が低くなる)。線形SVMだとあまり面白くないが、5.2節でカーネルを使った非線形SVMが取り上げられている。非線形SVMだとパラメータCによる正則化の効果が非常によくわかる。ロジスティック回帰も正則化を制御するのにCパラメータがある。共役勾配法によるロジスティック回帰のパラメータ推定(2014/4/15)でやった。このときはパラメータCと呼んでなかったが、正則化項の重みがCにあたる。ロジスティック回帰の最適なCをグリッドサーチで探索してみよう。最適なCは0.01でそのときの分類精度は96.7%になる。(Part...»プロフィールid:aidiary人工知能とその関連分野に興味があります。Blog|ブログを報告する。