• 日本語
    • English (英語)
Avinton JapanAvinton JapanAvinton JapanAvinton Japan
  • サービス
    • Avinton Data Platform
    • エッジAIカメラ
      • 自動車ナンバープレート自動認識システム
    • プライベートクラウド
    • AIサービス開発
    • AIカメラ/画像解析無料体験版
  • 最新情報
    • ニュースリリース&イベント情報
    • 技術ブログ&インタビュー
  • アカデミー
    • Avintonアカデミー
    • Academy on Campus
    • Academy with Platform
  • 採用情報
    • Avintonジャパン 採用ページ
    • 求人一覧
    • よくある質問
    • 新卒採用
  • 企業情報
    • 会社概要
    • 代表からご挨拶
    • SDGsへの貢献
  • お問い合わせ

【機械学習入門】 深層強化学習の基礎

    Home 技術解説 【機械学習入門】 深層強化学習の基礎
    【機械学習入門】 深層強化学習の基礎

    【機械学習入門】 深層強化学習の基礎

    By James Cauchi | 技術解説, 技術ブログ&インタビュー | Comments are Closed | 24 10月, 2017 | 1

    機械学習の中でも、教師あり学習に分類されるニューラルネットワーク(Deep Learning)、そして強化学習、
    さらに強化学習内に分類されるQ学習について触れていきます。

     

    機械学習

    教師あり学習
    ・クラス分類
    ・ニューラルネットワーク(deep Learning)
    ・回帰分類

    教師なし学習
    ・クラスタリング
    ・k-means

    強化学習
    ・Q学習

    強化学習とは

    強化学習とは、ある環境下に置かれたエージェントが環境に対して行動をし、得られる報酬が最大化されるような方策(Policy)を求める機械学習アルゴリズムのひとつです。

    エージェントが環境に対して行動を起こし、環境が状態の更新と行動の評価を行い、状態と報酬をエージェントに知らせるというサイクルを回して学習が進みます。得られる報酬の合計が最大化されるように、行動価値関数と方策を学習によって最適化していきます。

    強化学習は、以下の手順を繰り返し行います。

    • 1. エージェントが環境に対して行動を起こす。
    • 2. 環境がエージェントに更新された状態と報酬を与える。
    • 3. エージェントは報酬をもとに行動の方策を修正し、1に戻る。

    強化学習のイメージ図

    図1: 強化学習のイメージ図

    強化学習で出てくる用語

     

    用語 意味
    エージェント(Agent) 環境に対して行動を起こす学習者のような立場です。強化学習ではこのエージェントが環境に対して様々な試行を繰り返し、状態ごとに行動を最適化していきます。
    環境(Enviroment) エージェントの行動に対して状態の更新と報酬の付与を行う、観測者のような立場です。
    行動(Action) エージェントがある状態sにおいて取ることができる行動のことです。
    状態(State) 環境が保持する環境の様子です。エージェントが起こす行動に応じて更新されます。
    報酬(Reward) エージェントの行動に対する環境からの報酬です。この報酬はエージェントが環境に対して望ましい結果を作用させた時に与えられます。
    方策(Policy) エージェントが行動する際の指標となるルールです。後記するQ学習では、行動価値関数において最も価値の高い行動が選択されます。
    行動価値関数
    (Value Function)
    ある状態での行動の評価値を定める関数です。状態数が少ない時にはテーブル(表)で表記できます。主な手法に、Q学習におけるQ関数などがあります。

    Q学習

    強化学習の手法の一つにQ学習(Q-Learning)があります。Q学習での行動価値関数(Q関数)の更新式は

    [math] Q(s_t,\, a_t) ← Q(s_t,\,a_t)\,+\,α\,[r_{t+1}\,+\,γ\,\displaystyle\max_{\substack{a_{t+1}\,ε\,A(s_{t+1})}}\,Q(s_{t+1},\,a_{t+1})\,-\,Q(s_t,\,a_t)] [/math]

    となります。

    [math] Q [/math] : 状態 [math] s [/math] での行動 [math] a [/math] の評価を格納するテーブル(関数)
    [math] s_t [/math] : 時刻 [math] t [/math] での状態
    [math]a_t[/math] : 状態 [math] s_t [/math] でとることのできる行動
    [math]α[/math] : 学習率 [math](0 < α < 1)[/math]
    [math]γ[/math] : 割引率 [math](0 < γ < 1)[/math]

    学習率 [math] α [/math] は、Q関数の値の修正量を調整するパラメータです。

    割引率 [math] γ [/math] は、Q関数を更新する際に、次状態の評価の期待値をどれだけ考慮するかを定めるパラメータです。

    Q学習では、[math] r_{t+1}\,+\,γ\,\displaystyle\max_{\substack{a_{t+1}\,ε\,A(s_{t+1})}}\,Q(s_{t+1},\,a_{t+1})\,-\,Q(s_t,\,a_t) [/math] が0になるように、

    つまりQ関数の値 [math] Q(s,a) [/math] が、報酬 [math] (r_{t+1}) [/math] と、次状態 [math] S_{t+1} [/math] で可能な行動の中で

    最大の価値 [math] (γ\,\displaystyle\max_{\substack{a_{t+1}\,ε\,A(s’)}}\,Q(s_{t+1},\,a_{t+1})) [/math] の和になるように行動価値数を更新していきます。

    報酬の期待値と現在の行動価値の誤差を0に近づけるようにQ関数を更新します。

    [math] (γ\,\displaystyle\max_{\substack{a_{t+1}\,ε\,A(s’)}}\,Q(s_{t+1},\,a_{t+1})) [/math] の値は、現在の [math] Q(s_t,\,a_t) [/math] の値と、 [math] a_t [/math] 実行後の状態 [math] S_{t+1} [/math] で実行可能な行動の中で得られる最大の評価値に依存して修正されます。つまり、エージェントが環境に対して、なんらかの望ましい結果を作用させたときの報酬が、その結果を起こす前の行動へと順番に伝搬されていくイメージです。

    行動1 行動2 行動3 行動4
    状態1 7 0 0 0
    状態2 8 0 0 0
    状態3 0 0.3 9 0
    状態4 0 0 0 0.6

    表1: Q関数テーブル表記

    Q関数は、ある状態 [math] s [/math] の時に取ることのできる行動 [math] a [/math] を取ったときの評価値を返す、表1のテーブルのように表すことができます。しかし、このようなテーブル状で行動価値関数を管理するとなると、保持できる状態と行動の数に限界が生じてきます。

    Q学習における方策は、この行動価値関数(Q関数)の状態 [math] s [/math] において最大の価値が期待される行動 [math] a [/math] です。

    これを式の形で表すと [math] \displaystyle\arg\,\displaystyle\max\,Q(s,a) [/math] となります。しかし、期待される価値が最大の行動のみをとり続けて学習を進めると、一度報酬の期待値に差が出ると、未だ経験したことがない状態に遷移することがなくなってしまいます。学習時の行動選択の手法として、ε-greedy法が存在します。

    ε-greedy法は、確率 [math] ε [/math] で全ての行動から1つ選び(探索)、確率 [math] 1-ε [/math] で行動価値が最大の行動を選ぶ(利用)行動選択の手法です。

    深層強化学習とは

    深層強化学習とは強化学習と深層学習の手法を組み合わせた物で、代表的な手法に、Deep-Q-Network(DQN)があります。DQNは、Q学習における行動価値関数(Q関数)を、畳み込みニューラルネットワークに置き換えて近似したものです。

    ただ単純にQ関数を畳み込みニューラルネットワークを置き換えても、学習がうまくいくわけではないので、学習を収束させるための工夫がなされています。

    深層強化学習の出現背景

    Q学習では、状態数 [math] s [/math] × 行動数 [math] a [/math] のテーブルを更新することによってQ関数を更新していましたが、状態数が大きくなってくると、テーブルによってQ関数を表すことが現実的ではなくなってきます。これを解決するために、Q関数を畳み込みニューラルネットワークで表現するアプローチをとり、学習が収束するための工夫をしたものがDeep Q Networkです。

    deep-q-network構造図

    図2: Deep-Q-Networkの構造図

    (引用元:Human-level control through deep reinforcement learning(2015/02))

    DQN

    Deep-Q-Networkの略称で、前述の強化学習における行動価値関数の部分を、畳み込みニューラルネットワーク(CNN)で近似した手法。学習を収束させるための工夫がなされています(Experience Replay と Target Network)。

    CNN(概要)

    DQNでは行動価値関数を畳み込みニューラルネットワーク(Convolutional Neural Network, CNN)で近似しています。CNNは入力値に画像などの行列をとり、畳み込み層のフィルターとプーリング層で入力の特徴量を処理していき、出力に画像のクラス分類予測などの確率を出力します。

    DQNでは、リサイズされた84×84グレースケールの4時刻分のゲーム画面を入力にとり、ゲーム環境での行動を出力します。

    Experience Replay

    DQNの学習を収束させるための工夫として、Experience Replayがあります。Experience Replayは、エージェントが経験した過去の体験をreplay memolyに一定期間保存して置き、過去の経験をランダムにサンプリングして学習を行う手法です。データ間に強い相関があると学習が収束しなくなってしまうことを防ぐために、学習に使用するデータの偏りを無くすのが目的です。

    Target Network

    深層強化学習では、Q関数の更新が1時刻前([math] t-1 [/math])のニューラルネットワークのパラメータ(重み・バイアス)に依存しています。パラメータは学習ごとに更新されるので、目標とする評価関数が安定しなくなり、学習が収束しにくくなってしまいます。

    そこで学習を安定させるために、Q関数の更新の際に参照するネットワークを固定します(過去のネットワークで固定して、更新の際に参照するQ関数のパラメータを固定します)。この固定された過去のQ関数は、一定周期ごとに新しいQ関数に置き換えられます。

    DQNの使用例

    Atari2600

    DQN使用例の写真

    2013年に発表された論文https://arxiv.org/abs/1312.5602で用いられたVideo Gameの自動操作の題材としてとりあげられたゲームです。入力に84×84にリサイズしたグレースケール画像をとり、行動価値関数の評価値を出力します。

    ブロック崩しなどの一部のゲームで人間よりも高いスコアを記録しました。以降、DQNの性能評価の指標として用いられる事が多いです。

    deep-learning-scores

    (引用元:Playing Atari with Deep Reinforcement Learning(2013/12))

    AlphaGO(囲碁)

    AlphaGoは深層強化学習の技術を用いた囲碁のAIです。2015年10月にヨーロッパ王者のプロ2段の棋士に19路盤でのハンデ無し戦で勝利し、2016年3月にはLee Sedol(9段)に4-1で勝利しました。

    囲碁の盤面を19 × 19の画像として扱うことによって、方策・価値ネットワークへの入力としています。AlphaGOはモンテカルロ木探索と複数のネットワークが使用されており、その一部にDQNの技術が使用されています

    まとめ

    今年のサマーインターンアカデミーで機械学習について解説、また、TensrFlowを用いてAvintonエンジニアが開発した画像分類アプリケーションDog Face Classificationの解説も行いました。サマーインターン参加者の感想集もぜひご覧ください。

    関連記事

    【機械学習入門】教師あり学習と教師なし学習
    【機械学習入門】クラスタリング
    未経験エンジニアのためのプログラミング学習コンテンツ Avintonアカデミー
    機械学習を用いた画像分類体験
    機械学習入門者向け ChainerRLでブロック崩しの学習
    機械学習入門者向け ランダムフォレストによるTitanic生存者予測
    Avintonが提供する6つの機械学習サービス事例

    あなたも、Avintonでこのような最先端技術を習得し活用してみませんか?

    社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?

    採用情報
    深層学習, 技術, DQN, 強化学習

    Related Post

    • G検定合格体験記

      G検定合格体験記

      By Avinton rk | Comments are Closed

      Read more

    • Kubernetes入門:初心者からプロフェッショナルへ – 学び方とおすすめリソース

      Kubernetes入門:初心者からプロフェッショナルへ – 学び方とおすすめリソース

      By Avinton rk | Comments are Closed

      Read more

    • deploying-postgresql-operator-in-Kubernetes

      PostgreSQL Operator on Kubernetes

      By Avinton rk | Comments are Closed

      Read more

    • AIモデルの最適化

      AIモデルの最適化

      By Avinton rk | Comments are Closed

      Read more

    • Pytorch Datasets & DataLoaders

      PyTorch – Datasets & DataLoaders

      By Avinton rk | Comments are Closed

      Read more

    採用情報

    採用情報

    Categories

    • 相互学習
    • 採用
    • 社員インタビュー
    • 学習&資格取得
    • 技術解説
    • イベント告知
    • 学内説明会&講義
    • 産学連携
    • 就職活動
    • イベントレポート
    • その他
    • 技術ブログ&インタビュー
    • mainpage
    • New Graduates Interviews
    • 中途エンジニア
    • カテゴリーなし
    • ニュースリリース&イベント

    Avinton SDGs

    SDGsへの貢献

    Search

    タグ

    AIエンジニア AI導入 Apatch AvintonAcademy CKA DevOps KiX Kubernetes Notion PM&PMO PyTorch SDGs Innnovation Hub UI YOLOv5 アカウントマネージャー インタビュー インフラエンジニア エッジAIカメラ セキュリティエンジニア ソフトスキル ツール開発 データサイエンティスト ネットワークエンジニア フルスタックエンジニア フロントエンド ベテランエンジニア ボランティア マイクロサービス モーフィング ローカルイベント 中瀬幸子、サーバークラスター 中途採用 人材育成 協働パートナー 国際自動制御連盟 地域創生 基本情報技術者 強化学習 技術 新卒、キャリア 新卒採用 田中研之輔 社会貢献 経団連 顔認証
    © 2023 Avinton | All Rights Reserved | プライバシーポリシー
    • サービス
      • Avinton Data Platform
      • エッジAIカメラ
        • 自動車ナンバープレート自動認識システム
      • プライベートクラウド
      • AIサービス開発
      • AIカメラ/画像解析無料体験版
    • 最新情報
      • ニュースリリース&イベント情報
      • 技術ブログ&インタビュー
    • アカデミー
      • Avintonアカデミー
      • Academy on Campus
      • Academy with Platform
    • 採用情報
      • Avintonジャパン 採用ページ
      • 求人一覧
      • よくある質問
      • 新卒採用
    • 企業情報
      • 会社概要
      • 代表からご挨拶
      • SDGsへの貢献
    • お問い合わせ
    • 日本語
      • English (英語)
    Avinton Japan