質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1116閲覧

強化学習を用いる場合の記述方法

Kudryavka

総合スコア5

強化学習

強化学習とは、ある環境下のエージェントが現状を推測し行動を決定することで報酬を獲得するという見解から、その報酬を最大限に得る方策を学ぶ機械学習のことを指します。問題解決時に得る報酬が選択結果によって変化することで、より良い行動を選択しようと学習する点が特徴です。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/02/17 12:54

プログラミング初学者です。

概要

照明配置レイアウトの自動化に応用するため、以下(実現したいこと)に記載するような強化学習を作ろうとしています。
その上で、実践を交えつつ強化学習を学ぶような文献やサイトを複数参照してみたものの、Gymを用いたCartPole問題等を扱ったものが多く、自分が実現したい学習に本質的に近いコードが見つからず躓いています。
1から強化学習を実装するときに、環境や状態、報酬といったパラメータを設定しなければならないと思いますが、そういった設定の記述が分かりやすく説明された、文献やサイトなど、ご存じの方がいらっしゃいましたらご教授いただければと思います。
強化学習どころか、プログラミングすら知識がままならず、曖昧とした質問になってしまい、申し訳ありません。

実現したいこと

現状、自分の頭の中のイメージとしては以下のような強化学習を実装できればと考えています。
黒背景の画像中における任意の点(x,y)をエージェントに選択させ、選択した点を中心とした円(白)を配置する。以上の動作を複数回繰り返した後に得られる下の画像のような結果の輝度を取得し、輝度に応じた報酬を与える。
行動:任意の点(x,y)、円の個数(n)の選択
報酬:画像の輝度が明るいほどプラス、円の個数が多いほどマイナス

イメージ

ひとまず、こちらが指定した個数の点で学習するようなプログラムを組んでみて、最終的には適切な個数もエージェント側が決定するようなものが実現できればと考えています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

teefpc

2020/02/17 13:50

これは最小数の円で白の面積を最大化する問題ですか? だとすれば、円が重ならないようにプロットできればいいということでしょうか。
Kudryavka

2020/02/17 18:39

最終的な目標としては、エージェントが選択した点に発光素子を配置→レンダリング→輝度を取得し評価、といった流れで、照明配置レイアウトの自動化しようと考えています。なので、本質的には"最小数の円で白の面積を最大化する問題"とは異なる問題かと思います。
guest

回答1

0

ベストアンサー

黒背景の画像中における任意の点(x,y)をエージェントに選択させ、選択した点を中心とした円(白)を配置する。以上の動作を複数回繰り返した後に得られる下の画像のような結果の輝度を取得し、輝度に応じた報酬を与える。
行動:任意の点(x,y)、円の個数(n)の選択
報酬:画像の輝度が明るいほどプラス、円の個数が多いほどマイナス

環境 (強化学習の用語) の部分を自分で作って、強化学習のアルゴリズムの部分は既存の ATARI のゲームなど画像を入力としたタスクを解いてる CNN の強化学習モデルをそのまま流用すればいいのではないでしょうか。
質問者さんが作らなければいけない部分は、強化学習のアルゴリズムというよりは、それを実行する環境だと思います。

自作の環境を作るやり方の記載がある以下の記事が参考になると思います。

OpenAI GYMでPathPlanning用のオリジナル環境構築 - Qiita

質問の課題だと、例えば、以下のような作りになるでしょうか。

python

1import gym 2 3class MyEnv(gym.Env): 4 metadata = {'render.modes' : ['human', 'rgb_array']} 5 6 def __init__(self): 7 初期化処理 8 9 def step(self, action): 10 エージェントが選んだ点を中心に画像に円を描画して、報酬を返す。 11 12 def reset(self): 13 画像をクリアして、返す。 14 15 def render(self, mode='human', close=False): 16 画像を可視化する。 17 18 def close(self): 19 環境を閉じる

たぶん、以下のキーワードで検索すると情報を集められると思います。

  • 「OpenAIGym 環境 自作」
  • 「OpenAIGym custom environment」

投稿2020/02/17 16:16

編集2020/02/17 16:18
tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問