BETA

【勉強ログ】PythonとKerasによるディープラーニング3章後半+4章

投稿日:2019-10-15
最終更新:2019-10-15

画像

3.6 回帰

回帰は、データの入力から連続した出力値を求める問題である。
連続した出力値のため、出力層はDense(1)を使用し、活性化関数は使用しない。
ただし、0-1の出力ならばSigmoidを使用する。

必ず正規化をしよう
これによって

・計算時間がへる(重みも小さく済むので)
・各パラメータの重要度の差が減る

4 機械学習

ディープラーニングの大元である機械学習の内容を振り返ろうというもの。

4.1 種類

機械学習は大きく分けて4つある。

教師あり、なし、強化学習、自己学習である。
自己学習だけ初めてで、自己学習はデータからデータを親として学習をする。
つまり、データは用意するが、学習自体はデータ自身でするため人間がいらない、というものである。

4.3 前処理

前処理では主に3つを行う。

まずベクトル化を行う。
これによって、Numpyで扱えるようになる。

また、正規化を行う。

そして、特徴量エンジニアリングをする。
これはなにかというと、もし人が問題を解くための特徴量の予想がつくならばそちらを利用したほうが良い。
データ量も少なく済むし、計算時間も早くなる。
ただし、その予想があっていなければ精度はでないので一長一短。
データが少ないときに考えよう。

4.4過学習

過学習してしまうともともとの目的の汎化から遠ざかってしまう。
そのため、汎化を目指した学習をすべきである。

まず、モデルのサイズは第一に考えよう。
あまり大きいとパラメータが大きくなるので当然過学習する。
また、L1/L2正規化をしよう。これは重みパラメータが大きくなればなるほど損失関数の値が大きくなるように設定するものであり、これによってパラメータの発散を防げる。
また、ドロップアウトでノードを動的に取り消し、たくさんのモデルがあるように見せかけよう。

これらによって、汎化性能が簡単にアップする。

4.5 フロー

どのようにディープラーニングするかだが、おおよその流れは決まっている。

  1. 問題を定義し、どういうデータがいるかどういう評価をするべきか?を洗い出す。
  2. 問題が分かったため、目指す指標を決める。精度や再現率など
  3. 次に学習には検証がいるため、その評価方法を決める
  4. データを準備する、時間がかかる(面倒) 正規化もしよう
  5. 簡単なモデルで試して、予想があってそうかチェックし、だめなら1からやり直す
  6. 過学習させる。これによって、汎化と学習の境目が見える
  7. 汎化に近づける。正規化・ドロップアウトなど多くためそう
  8. 完成、予測をして使ってみる、うれしいね

このフローを守って、学習させていくことが大事

感想

やはりわかりやすい、ちょいちょい日本語訳が怪しいので、やはり英語原著を読んだほうが良いんだろうなぁ(疲れるので可能であれば避けてぇ・・・)

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

雑多まとめ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!