ksnt / book-reading

0 stars 0 forks source link

現場で使える!Python深層強化学習入門 #33

Open ksnt opened 4 years ago

ksnt commented 4 years ago

面白そうなので読み始めた。強化学習、よく知らないので楽しみ。

ksnt commented 4 years ago

Appendix 191116 F

Dockerを使って環境構築する必要があるが、まだやっていない。

GPUを使う必要がある箇所があるらしいが、Colaboratoryを使えばおkらしい。

ksnt commented 4 years ago

第1章 191116 F

イントロ。教師あり学習と教師なし学習と強化学習の違いの説明。

ksnt commented 4 years ago

2.1節 強化学習の基本概念 191118 F

強化学習の仕組みと表現方法(ベルマン方程式で記述)について学習。イントロ的な節なので詳細にはつっこまず。

ksnt commented 4 years ago

3.1節 深層学習 191118 F ・ディープラーニングは活性化関数の非線形性を利用して万能な関数近似を実現 ・勾配消失問題の解消のためにはReLU関数を用いる ・本書ではモデル構築にはKerasを使い、必要な箇所でTensorFlowを用いた実装を行う ・Kerasを使うと簡単にNNが構築できることを見た

ksnt commented 4 years ago

3.2節 畳み込みニューラルネットワーク(CNN)191119 F ・一般にCNNは畳み込み層とプーリング層から構成されている ・畳込み、プーリングによって入力画像の特徴的な表現を圧縮して中間層で表現することができる ・つまり、画像から圧縮した特徴表現がほしいときに用いることができる ・畳み込み層 └畳み込み層は画像にカーネル(フィルタ)を適用することで画像の特徴量を抽出する役目を担う └MLPと違って画像サイズが大きくなってもパラメタ数は増大しない └畳み込み計算はカーネルとの要素積を計算して和をとっていく ・プーリング層 └プーリング層では、画像の小さな位置の変化に対してより頑健なモデルを構築するために、前の層から代表値を抽出してくる ・Tensorflow Object Detection APIを使えば簡単に物体検出ができる

ksnt commented 4 years ago

第5章の「連続制御問題への応用」と第6章の「組合わせ最適化への応用」はあまり関心がないので読まない予定。第7章の「系列データ生成への応用」は読む。

よって、残りは

2.2節、2.3節、2.4節、3.3節、第4章、第7章

となる。

ksnt commented 4 years ago

3.3節 再帰型ニューラルネットワーク(RNN) 191119 F

RNNとは

・文章やセンサーデータのような時系列のデータに対してはRNNが適している。 └時系列データは要素が意味をもった順序に並んでいる

・RNNも簡単なモデルであればKerasで簡単に実装出来るが、少し複雑なモデルになるとKerasでの実装は難しくなるのでTensorFlowの低レベルAPIを組み合わせながら実装することが多いらしい。

LSTMとは

・LSTMは従来のRNNでは難しいとされていた系列内の長期的な依存関係を含めて学習するために考案されたアーキテクチャ

・LSTMもKerasで簡単に実装可能 └先のコードのSimpleRNNをLSTMに置き換えるだけ

RNNの応用

・対話文生成、機械翻訳、文章生成などがある

ksnt commented 4 years ago

残りは

2.2節、2.3節、2.4節、第4章、第7章

・パターン1 2.2節-2.4節まで読んでから4章に行き、7章を読む

・パターン2 4章を読んで、2章に戻って、7章を読む

・パターン3 7章を読んで、4章か2章に戻る

ksnt commented 4 years ago

第7章 系列データ生成への応用 191123 F

とりあえず読んだ。詳しいメモはなし。

SeqGANやU-Netの話題。

ksnt commented 4 years ago

残りは

2.2節、2.3節、2.4節、第4章

ある程度の理解が出来たら実際に使う場面を作って使ってみながら学んだ方が良いのではないかという気がしている。試行錯誤しないと身につきそうにない感じがしている。

本書は強化学習全体の理解のために読めば私にとっては十分かもしれない。

ksnt commented 4 years ago

4 深層強化学習の実装

4.1 深層強化学習の発展

・2015年DQNが登場 └深層学習と強化学習を組み合わせ

・強化学習で利用するシミュレータ ・OpenAI Gymの環境を利用してDQNを実装する

import gym
env = gym.make('Pendulum-v0')
env.reset()
for i in range(3):
    action = env.action_space.sample()
    state, reward, done, info = env.step(action)
    print("action:{}, state:{}, reward:{}".format(action, state, reward))
ksnt commented 4 years ago

4.2 行動価値関数のネットワーク表現

4.2.1 DQNアルゴリズム

・DQNアルゴリズムはQ学習をベースにして行動価値関数に深層ニューラルネットワークを適用したアルゴリズム

4.2.2. DQNアルゴリズムの実装

実装を眺めた。真面目には読んでいない。

4.3 方策関数のネットワーク表現

Actor-Criticモデルによる倒立振制御について眺めた。真面目には読んでいない。

ksnt commented 4 years ago

残りは

2.2節、2.3節、2.4節

の強化学習の理論部分。 この本に関しては、軽く読めばよしとすることにする。必要になったときにまた戻ってくることもできるし。