LoginSignup
0
1

More than 3 years have passed since last update.

DNN_後編2 (要点)

Posted at

Section1:TensorFlowの実装演習

実務では、numpyを使ってフルスクラッチでNNを組むような事は少なく、TensorFlowなどを利用する事が多い。
TensorFlowはGoogleが開発したフレームワークもので、世界中でユーザ数が最も多い。
TensorFlowを使う事で、簡単にディープラーニングの実装を行う事が出来る。
numpyなどと作法が違うところがあるので、tensorFlowの作法は、演習を通して覚える必要がある。

Keras:
TensorFlowのラッパーのライブラリ。
TensorFlowをそのまま使うよりも、CNNなどは簡単にコーディングする事が出来るようになっている。
初心者にはすごく使いやすいディープラーニングのライブラリになっている。

但し、簡単に書ける分、複雑な構造を書きたい場合は、TensorFlowで書く必要がある。

Section2:強化学習

Section2-1:強化学習とは

長期的に、報酬を最大化出来るように、環境の中で、行動を選択出来るエージェントを作る事を目標とする機械学習の一分野。
行動の結果として、与えられる利益(報酬)をもとに、行動を決定する原理を改善していく仕組み。

これまで見てきた、教師あり学習/教師なし学習とは違った、新しい分野。
image.png

Section2-2:強化学習の応用例

【マーケティングの場合】

環境:
 会社の販売促進部
エージェント:
 プロフィールと購入履歴に基づいて、キャンペーンメールを送る顧客を決めるソフト
行動:
 顧客ごとに送信、非送信の2つの行動を選ぶ
報酬:
 キャンペーンのコストという負の報酬と
 キャンペーンで生み出されると推測される売り上げという正の報酬を受ける

【囲碁の場合】

環境:
 対戦相手のモデル
エージェント:
 盤面に応じて、次の一手を考えるソフト
行動:
 手を打つ
報酬:
 勝敗

Section2-3:検索と利用のトレードオフ

強化学習については、事前に完璧な知識があるという前提ではなく、
不完全な知識をもとに行動しながら、データを収集して、最適な行動を身についていく事になる。

そこで、過去のデータの中で、ベストだった行動ばかりを常に取り続けると、他の可能性を見つける事が出来ない(他にもっといい行動があるかもしれない)。

逆に、過去のデータにない、未知の行動ばかりを取り続ければ、過去の経験を生かせない、全く学習しない行動ばかりになってしまう。

強化学習では、過去のベストな行動と、未知の行動とのトレードオフを調整する事が重要になる。

Section2-4:強化学習のイメージ

image.png
①(行動)エージェントが、環境に対して、方策πを実施する。
②環境が、状態sになる。
③状態sをエージェントが観測する。
④状態sにおける報酬価値vを、エージェントが受け取る
という①~④が一連の強化学習の流れになる。

Section2-5:強化学習の差分

これまでやってきた、教師あり/なし学習と、強化学習との違いは、
教師あり/なしでは、データに含まれるパターンを見つけ出して、データから分類や回帰を予測する事が目標だったが、
強化学習では、優れた方策を見つける事が目標になる。

Section2-6:行動価値関数(Q関数)

行動価値関数:
価値を表す関数は、状態価値関数と行動価値関数の2種類ある。

状態価値関数:ある状態に注目する場合
行動価値関数:状態と価値を組み合わせた価値に注目する場合

Q学習は、行動のたびに、行動価値関数を更新する学習を行う。

Section2-7:方策関数

方策関数:
方策ベースの強化学習において、
ある状態で、どのような行動をとるのかの確率を与える関数。

例)
状態aであれば、行動Aをとる確率が80%、行動Bをとる確率が20%
状態bであれば、行動Aをとる確率が20%、行動Bをとる確率が80%
というように、同じ行動でも状態によって、確率が変わってくる。

Section2-8:方策勾配法

方策勾配法とは、方策を再帰的に更新していくようなモデル。
数式は次の通り:

$\theta^{(t+1)} = \theta^{(t)} + \epsilon \nabla J(\theta) $

勾配降下法の時と同じような数式になっていて、
次の方策の時に、$\epsilon \nabla J(\theta) $を加えるような形になっている。

ここで$J(\theta)$は、方策の良さを表しているもので、これについては、いくつか定義方法がある(何をもって良いと判断するかの基準)。
次のような定義方法がある:
・平均報酬:行動をとった時に生まれる、価値全部の平均をとったもの。
・割引報酬和:報酬を足し合わせる時に、行動した時間に対して、未来の報酬ほど価値を減衰させる方法(一番時間の近い価値を重要視する)。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1