らんだむな記憶

blogというものを体験してみようか!的なー

ga138(深層学習)まとめ(1)

gacco 深層学習 - らんだむな記憶がわりと良かったので興味があるところだけ備忘録。

Week 1

  • ! だけでなく %%bash でもシェルスクリプトを実行できる
  • AlphaGo: ランダムな手を打つところからの自動対戦のみでの学習でもプロ棋士の過去の棋譜からの学習相当にまで強くなった
  • low-level API と Keras
  • Placeholder: トレーニング対象のデータを代入する変数($X$)
  • Variable: 最適化したいチューニングしたいパラメータ($W$)
  • sess.run のタイミングでパラメータが初期化される
  • クロスエントロピーを最小化 ←→ 最尤推定法 (ロジスティック回帰だと計算結果がクロスエントロピーになる)

Week 2

  • 線形多項式分類機: データの種類がN個あるなら1次関数をN個用意する(→ N個のノード)
  • softmax で確率を求めて最尤推定する
  • MNIST に対する 92% の正解率は大したことはない
  • 縦長に書いた 6ピクセルデータ的には 1 に近いとも思える。 → “トポロジカル”な情報が必要 → 畳み込み
  • 勾配降下法で真の最小値に到達するかは重要ではなく(最悪 over-fitting する)、必要な精度が出るか。出たらそこで学習を打ち切ってもいい (early stopping)
  • 論理回路としてのニューラルネットワーク → “XOR”は1つのノードでは表現できない
  • ReLU は勾配ベクトルが常に 0 よりは十分大きい値で残って学習が進む & 出力が 0 になるノードがそこそこ出てくるのでシンプルなモデルになりやすい
  • “特徴を取り出す”←→判別に不要な情報を消し去る
    • フィルターの結果を見ると、局所的に活性化されていることがある。その局所的な情報だけあればサンプルを分類するのに十分ということ→逆に利用すれば、ニューラルネットワークを騙せる。(活性化している部分だけのデータを与えると誤認する)
  • GPUの速さ←→「畳み込み計算=単純計算を繰り返す画像処理の計算」が高速にできる
  • 畳み込みフィルターを何段階にも重ねると精度が上がるかもしれない→事実として実際に精度が上がった
  • ドロップアウト
    • よくある説明: ドロップアウト層を入れることでランダム性が上がり学習しにくくなるので過学習が防がれる
    • 別の解釈: 出力を上半分と下半分にドロップさせることを交互にする→モデルが2つに別れる→predictionで統合する=平均値をとる→2つのモデルでアンサンブル学習をしている、という見方もできる
  • アンサンブル学習は個々のモデルの弱い部分をカバーし合える
  • オートエンコーダーは入力と出力ができるだけ同じになるように学習させる。
    • エンコーダーで情報量をとても減らして抽象化する(特徴量)
    • 入力として学習データにないパターンを入力すると、抽象化されてデコーダによって何かしら近そうなサンプルに“復元”される
    • サンプルと異なるデータに対してもサンプルのどれかを“復元”するのでサンプルのどれとも近くないなら、サンプルの系統のデータではないという形で異常値検出ができる。
  • DC-GAN: エンコーダーデコーダーを個別に学習させる