はじめに
- 筑波大学オープンコースウェアの機械学習を視聴させていただいたときのメモです。
視聴メモ
機械学習から深層学習へ
- これまで機械学習は線形モデルwxをベースにしていた
- 深層学習は、「どうすればよい特徴量が得られるか」を学習ベースで獲得するための試み
- データ -> 特徴設計 -> モデル学習
- 特徴設計 -> モデル学習をまとめて学習ベースで。
深層学習
- 入力はベクトルxで、それに重みwがかかって、出力は1次元のベクトル、というのは変わらない
- -> u = w1x1 + ... + b
- -> z = f(u) 活性化関数をかませる
- 例えば、ロジスティック回帰ではシグモイド。ReLuもあり。(+はそのまま。-は反応しない。)
- ソフトマックス回帰が、NNの基本的な形
- 多層ニューラルネットワーク
- 従来の特徴量と多層NNの違い
- 従来: 特徴次元数を高次元化することで複雑さを表現。縦に。
- DNN: 層を積み重ねることで複雑さを表現。横に。
- 予測と目標の差(誤差、損失)を取って、最小化するwを出す、は変わらない。(性能と損失は違う。性能はrecallとか。)
- モメンタム
- モチベーション: 横に広い楕円系だと、横に行きたいのに、勾配を見ると縦にいきがち
- -> パラメータ更新量に、前回の更新量の成分を少しブレンド
- 正則化/重み減衰
- 正則化の考え方はこれまでのモデルと同じ
- だが、重み減衰(weight decay)と呼ぶ
- 重みの大きな変化を抑制する効果があるから
- AdaGrad
- ステップサイズパラメータの調整
- 出力層側のパラメータの方が、入力層側より更新されにくい問題
- 過去の勾配の総和で大きさを調整。これまで更新が少なかったパラメータに大きな学習率を与える。層ごとに学習の進捗が異なるNNの最適化に向いている。
- 逆誤差伝播法