202103 - G検定 学習日記

どころどころ日記つけるのサボって 歯抜けなのはご愛嬌

~2/9: 事前調査

~ 2/9 人工知能は人間を超えるか

  • さくっと読んでみた
  • ディープラーニングの概要理解、はじめの一歩として最適
  • 楽しく、ざっくり理解できた

2/9~2/16: G検定公式本読む

2/17 ディープラーニング手法

  • youtube あさる
  • 改めて公式本を読む 6章 DLの手法
    • 精度をあげるアプローチ
      • 入力データ処理
        • 正規化・標準化・白色化
        • バッチ正規化
      • 学習途中
    • 6-2 学習率の最適化
      • 勾配降下法
        • 概要
          • 目標: モデル予測値と実測値の誤差(誤差関数)をなくすこと
          • (誤差)関数の最小化 => 微分(変数は複数あるので正確には偏微分)
          • 実現方法
            • 入力が多次元 => 解析的に解決は無理
            • アルゴリズムを用いて最適解を探索
            • => 手法: 勾配降下法
          • ニューラルネットの学習
            • 各パラメータに対して勾配降下法を適用して繰り返し計算
        • 問題 と 対策
          • 問題1. 下に凸が2つある関数 => 勾配0が二箇所
            • 探索順序によっては 見せかけの最適解にだまされる
          • 対策1: 学習率を大きくする
            • 一気に余計な山を超える
            • 一方で学習率が大きいままだと 本当の最適解すら超えてしまうかも
            • 適切なタイミングで学習率を小さくすることが大事
          • 問題2: 次元が大きくなると鞍点に惑わされる
          • 対策2: どの方向に沿って勾配を進んでいる時に学習率を増減するかを検討
            • 90's: モーメンタム: 最適化の進行方向に学習を加速
            • Adagrad, Adadelta, RMSprop, Adam
        • 用語
          • エポック(k) : 何回計算(探索)を行ったか
          • 学習率(α): 勾配に沿って一度にどれだけ降りるか
            • 大事な設定値 => 場合によっては最適解が得られないことも
          • 局所最適解: 見せかけの解
          • 大域最適解: 本当の最適解
          • 鞍点: ある次元から見れば極小・別の次元からみると極大
          • プラトー: 鞍点から抜け出せず 停留状態にあること
    • 6-3 さらなるテクニック
      • ドロップアウト: オーバーフィッティング対策
        • エポックごとにランダムでニューロンを除外
        • 形の異なるネットワークを複数学習する
        • => アンサンブル学習
      • early stopping
        • どう頑張っても学習を繰り返していくと 過学習になる
        • テストデータに対する誤差関数が右肩上がりになったら学習打ち切り
        • ヒントン: BEAUTIFUL FREE LUNCH
      • データ正規化・標準化
        • 正規化: 簡単な例: 0~1にスケール揃える
        • 標準化: 平均0、分散1に揃える => 標準正規分布に従わせる
        • 白色化: 各データを無相関にした上で標準化
        • バッチ正規化
          • DLは多層
          • => せっかく正規化しても層を挟むごとに崩れる
          • => 各層ごとにつどつど正規化する
          • 具体的には 各層において活性化関数をかける前に伝搬してきたデータを正規化する

2/18 CNN

  • youtube
  • 公式テキスト 6章 CNN
    • 要点
      • “画像に特化” したニューラルネット
      • 画像は位置情報がある => 入力を2次元で扱えることが特徴
      • アプローチ: 人間の視覚野 S細胞とC細胞 を模倣
      • CNN = 畳み込み層(S細胞) + プーリング層(C細胞)
      • 畳み込み
      • 目的: 画像の特徴を抽出
      • 結果: 移動不変性に貢献、位置のズレに強いモデルにする
      • 手法: カーネル使って特徴マップ生成 = 行列の圧縮
    • 用語
      • CNN: 画像に適したニューラルネット
      • 単純型細胞(S細胞): 人間の視覚野のうち 画像の濃淡を認識する細胞
      • 複雑型細胞(C細胞): 人間の視覚野のうち 位置が変動しても同一物体とみなせる認識する細胞
      • 畳み込み層: 画像から特徴を抽出する層 S細胞を模倣
      • カーネル: 画像から特徴を抽出するフィルタ
      • プーリング層: 行列を圧縮する 以下、詳細
    • 既存ニューラルネットと画像の相性 悪い
      • 例えば画像
      • 画像の特徴: 縦横位置情報2次元、色3次元
      • 通常のニューラルネット: 入力が縦1列 => 位置情報が消失
  • CNN
    • 画像をそのまま2次元で入力に用いることができるモデル
    • アプローチ: 人間が持つ視覚野の神経細胞の2つの働きをモデリング
      • 単純型細胞(S細胞): 画像の濃淡
      • 複雑型細胞(C細胞): 位置が変動しても同一物体とみなせる
    • 初期モデル: ネオコグニトロン 福島さん
      • S細胞層とC細胞層 交互に複数組み合わせ
    • 1998: LeNet: ヤンルカン
      • 畳み込み層(convolution)・プーリング層(サブサンプリング)を交互に組み合わせ
      • バックプロパゲーション
      • 畳み込み: カーネル(=フィルタ) で 画像から特徴を抽出
      • カーネル: 小さな行列
      • 画像の行列とカーネル掛け合わせて、総和、小さな行列に変換(畳み込む) => 特徴マップ
      • どんなカーネルにするか: 重みづけに該当

2/19 RNN

  • youtube あさる
  • 公式テキスト 6-5 RNN
    • 導入
      • 世の中のデータの多くは時系列パターン持っている
      • 従来のニューラルネットは入力が一次元 => 時間順序を失う
      • 過去の重みを反映できる仕組みを模索
    • 基本形
      • 通常のNN + 過去の隠れ層
      • 逆伝搬も時刻を遡る => BackPropagation(+ Through Time)
      • 問題点
        • 勾配消失: 時刻を遡る => ネットワークが深くなる ため
        • 入力・出力重み衝突: 時系列 => 今は重要じゃ無いけど あとで重要になる => 今は重み弱く、後で重み強く => 問題解決のためにLSTM(Long Short-Term)
    • LSTM
      • 隠れ層 の構造を工夫
      • LSTMブロック
        • セル: 誤差を内部にとどまらせる
        • ゲート: 入力・出力・忘却
      • 問題点: 計算量が多い => 簡略化: GRU(Gated Recurrent Unit)
    • GRU
      • ゲート: リセット・更新
    • 発展系
      • Bidirectional RNN
        • 途中かけた 時系列データを予測したい
        • => 過去・未来 両方のデータを利用
        • => LSTMを2つ組み合わせる
      • RNN Encoder-Decoder
        • 入力時系列 : 出力時系列
        • Sequence to Sequence
      • Attention
        • 既存のRNN 時間ごとの重みを考慮していない
        • 時間の重みをネットワークに組み込み モデル

2/23 強化学習・深層強化学習

youtube

要点

  • 強化学習
    • 行動・状態・報酬・方策
      • エージェントに対して 方策に基づいた 行動と 行動結果の状態 それに伴う報酬を定義
      • 報酬が最大化するようにエージェントが学習
    • 脳の学習メガニズム: オペラント学習に由来
  • Q学習
    • Qテーブル
      • 状態と行動の行列、値はうまくいく確率(報酬に基づいて算出)
      • 問題点 => 状態が多くなると行列デカくなって計算量増大
  • 深層強化学習
  • cart pole問題
    • カートの上にのったポールを落とさないようにバランスとる
    • 1: 報酬定義
      • 決め: 200フレームキープできたら +1
      • 決め: 45度以上傾いたら -1
    • 2: 状態定義
      • 決め: ポールの角度と角速度を利用。それぞれ12分割=> 144通り
    • 3: 行動定義
      • 今回は取りうる行動は <-, -> の2通り
    • => これで144*2のQテーブルができる

2/24 深層生成モデル

  • やったこと
    • 公式テキスト6-7
  • 概要
    • DLができること
      • 認識・識別タスク
      • 生成タスク
        • 画像、時系列データ etc...
    • 生成の種別
      • データから新しい何かを作りたい
        • 識別の延長
          • 音声生成: WaveNet
      • データそのものを作りたい: サンプリング
        • 生成モデル と呼ばれる
  • 画像生成モデル
    • VAE: 変分オートエンコーダ
    • GAN: 敵対的生成ネットワーク
  • VAE
    • オートエンコーダー活用
      • 従来との違い: not 圧縮、 yes 統計分布 (平均、分散表現)
  • GAN
    • 2種類のネットワーク(generator vs discriminator)を競わせる
      • generator
        • 形式: 入力ベクトル => 出力 画像
        • 目的: discriminatorが間違えるように学習して画像生成
      • discriminator
        • 形式: 入力画像 => 画像の真偽を予想出力
        • 目的: 真偽の精度向上
      • 予想結果をgeneratorにフィードバック

3/3 G検定シラバス

  • 今日から公式テキスト 2順目
  • 問題形式にも慣れていきたいので 問題集 を購入
  • 公式テキストと 問題集の両翼で 知識定着を図る

    シラバスを改めて確認

  • シラバスにあがっている項目のイメージがつくかどうかcheck f:id:keabe:20210303180254p:plain

3/9 試験攻略tips

問題量 多い順

時間・配分

  • 2h、220問
  • 30sec/問

  • わからないものはどんどん後回し

    • 調べてわかりそうなもの => 後から or その場で 回答
    • 調べてもわからない => とにかく後回し

検索ノウハウ

  • 新しいタブでいくつかサイト開いて、ctrl + Fで用語をひっかけていく

事前準備

  • 紙とペン
    • 計算問題

3/9 問題集4.1 ニューラルネットワークとDL

  • 要理解メモ
  • 整理
    • 公式テキスト5-2 DLのアプローチ
      • 事前学習 => オートエンコーダーを順番に学習すること によるDL
        • 最近ではほとんど見受けられない 初期の設計
        • オートエンコーダー by ヒントン 2006
          • 隠れ層・可視層(入力・出力がセット): 可視層 -> 隠れ層 -> 可視層
          • 入出力が同じ => ex. 3を入力したら3を出力
          • 何の意味があるか? => 隠れ層に入力情報が圧縮 (入力層よりも隠れ層の次元を少なくした場合)
          • => 入力した情報を要約し、元に戻す: エンコード、デコード
        • 積層オートエンコーダー
          • オートエンコーダー is not DL => 単層だから => 積み重ねることでdeepに
          • どう積み重ねるか => オートエンコーダーを順番に入力に近い層から学習させ積み重ねていく
        • ファインチューニング
        • 深層信念学習(deep belief networks) by ヒントン、2006
      • 事前学習なしのアプローチ

3/15~ 直前対策