〇強化学習
エージェント⇒車
環境⇒道路など
状態⇒歩行者、信号など
行動⇒アクセル、ハンドルなど
状態遷移確率⇒自身の運転でどうなるか。確率分布
報酬⇒無事故、所要時間、目的地に着く
〇マルコフ決定過程(MDP)
囲碁とかの勝利という報酬はわかりずらい
⇒即時報酬と置き換える
状態のみだけでなく、行動や報酬についても確率で考える
マルコフ性:直前の状態のみに影響する
〇方策
行動選択の決まり方
割引率、割引累積報酬:未来の報酬を累乗で掛け合わせて足す
累積報酬和
R=r(t)+gr(t+1)+g2r(t+2)・・・
〇目的関数
累積報酬和が最大となる方策を見つける
最適ベルマン方式
価値関数ベース:価値を最大化する行動をする
方策公売ベース:価値を最大化する方策を見つける
〇価値関数⇒行動価値関数の総和
行動と状態遷移の関係が完全にわかっている
⇒YES:価値反復法:最適価値関数を繰り返す
⇒NO、報酬のサンプリング(実際にやってみる)?
⇒⇒1ステップごと:TD法
⇒⇒⇒方策オフ型:Q学習(DQN)
⇒⇒⇒方策オン型:SARSA
⇒⇒エピソディック:モンテカルロ法(最後まで検証する)
〇局所解に対する対応
ε-greedy方策:確率εでランダムに選ばれる
ソフトマックス方策(ボルツマン分布):ソフトマックス関数の確率で学習を行う
量子力学的な考え方
〇Q関数:行動価値関数Qを使う、とりあえず現状で判断
〇Q学習:予測が正確な場合につかえる
〇SARSA:ε-greedyに従って実行
〇方策勾配法:どの方策を確率で選択すべきか
〇RIENFORCEアルゴリズム:実際に得られた報酬の平均を使って近似する
棒立てゲームで倒れるまで繰り返すし、報酬の平均を取る
〇Actor-Critic:状態価値(V)をニューラルネットワークで推定する
〇A3C:非同期なAdvantage(状態の価値を差し引く)を用いたActor-Critic
〇A2C:A3Cの同期型、全部終わるまで待つ、GPUを効率よく使える
〇ACER:A3Cを方策オフにして、Experience Raplay(経験再生)を利用する
〇Experience Raplay:過去の経験、方策オフでないと使えない。Retraceという手法が用いられる
値が収束しやすい
〇UNREAL:A3Cに補助タスクも同時に学習させる、補助タスクを用いることで本タスクの精度も向上
〇事前学習
目的とするモデルをあらかじめ訓練しておく
〇転移学習
学習済のモデルを引き継いで層を追加する
〇ファインチューニング
学習済のモデルの重みを初期値として引き継ぐ
〇ワンショット学習
ラベル付きのデータを1つだけ与える
顔の正面がわかれば向きを変えてもOK
〇ゼロショット学習
ラベルなし、特徴ベクトルを学習する
ベクトル間の距離で学習をする
〇半教師あり学習
一部のデータにラベルを付ける
1、ラベルありを学習
2、1のモデルでラベルなしを学習
3、2お予測結果を用いてラベルなしにラベルをつける
〇自己教師あり学習
教師あり学習と教師信号を使って学習する
基準データをaugmentation(増強)したペアの出力を近づけて、それ以外を離す
〇マルチタスク学習
複数のタスクを同時にこなす
メインのタスクの性能が向上する
〇距離学習
2つ以上のデータの類似性を用いて学習を行うこと
同じようなのは距離を近づける
分類問題と等価
〇Siamese Network
1,2つの入力ペアセットを作る
2,それぞれの出力を得る
3,距離を計算し、損失関数を計算して学習する
4,2-3を繰り返す
〇Triplet Network
3つのセットを作る(アンカー、ポジティブ、ネガティブ)
似ているものは距離を近づける、逆は遠ざける
m(ハイパーパラメーター)を超えると更新しない
丁度よい間違い具合が良い感じに学習できる(Semi-hard-negative)
〇メタ学習
パラメータの初期値や学習率をどう使うか?
MAML:few-shot learning、どんなモデル、タスクにも適用可能