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

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

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

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

機械学習

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

Python

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

Q&A

解決済

1回答

1175閲覧

どの機械学習アルゴリズムを用いるのが適切かわからない

yuuuuuuuuma

総合スコア11

強化学習

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

機械学習

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

Python

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

0グッド

2クリップ

投稿2019/06/27 01:48

編集2019/06/27 01:49

プログラミングの学習を始めて3か月程度の初心者です。

前提・実現したいこと

計算問題正答数の多い時の温湿度環境の把握

使用するデータ

温度(データ型:行列)
湿度(データ型:行列)
風量(データ型:行列)
※一定時間に測定された複数の値を1つのデータとしている

問題正答数(データ型:ベクトル)

現状

現在、tensorflowを用いた強化学習によって学習を進めています。
以下のようなパラメータ設定で学習させようと本質的に似ているプログラムコードを探している段階です。

状態:温湿度と風量
行動:風量の変更
報酬:問題正答数

しかし、どのようなコードを使用すればいいのかの判断ができずに困っています。
そもそも、強化学習でこの目的が果たせるのかの確証もなく、不安が募っています。
上記目的を達成する方法として適切なのはどのような機械学習アルゴリズムなのでしょうか?

知識不足であいまいな質問となってしまい申し訳ございませんが、ご意見よろしくお願い致します。

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

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

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

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

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

amahara_waya

2019/06/28 00:25

質問にある「問題」というのは具体的にどのような問題か教えてもらえると幸いです。 例えば、温湿度と風量から「暑い」「快適」「寒い」などのラベルを予測する問題とか、温湿度に合った風量を求める問題だとか。
yuuuuuuuuma

2019/07/01 04:23

ご質問ありがとうございます。 問題正答数というのは、単純に計算問題の正答数のことです。 この計算問題正答数を報酬とすることで、計算問題をするのに最適な温湿度環境を求めるのがこのプログラムの一番の目的です。
amahara_waya

2019/07/01 12:50

計算問題と書いてありましたね…よく見てませんでした。 その計算問題について、もう少し詳しく説明できないでしょうか(専門用語が入っても構わない、むしろイメージがつきやすくありがたい)。温湿度を使ってなにか別の値を計算するということでしょうか。
yuuuuuuuuma

2019/07/01 14:52

説明不足で申し訳ございません。 計算問題は、四則演算を想定しております。そのため、温湿度との関係性はない独立したデータとなっています。 イメージとしては、10分間の温湿度測定値と同時間の計算問題正答数(実際に人に解いてもらう)を比較して、その人に合った温湿度はどの程度なのかを明らかにするようなプログラムを作ろうと考えています。 また、即時効果だけでなく長期的な効果も学習させたいと考えているため、強化学習を使用して思考錯誤している段階であります。
guest

回答1

0

ベストアンサー

※プログラミングに直接関する回答ではないので、あくまで一意見となります。
※問題設定についてはこの記事をイメージとした個人的な推測になります。間違ってたらすみません。

結論から言うと、再帰ニューラルネットワーク(RNN)が一番あっているんじゃないかと思います。

強化学習の妥当性について

強化学習は、報酬が得られるように行動の最適化を行うのですが、この**「報酬」とは「最終的な結果に対する報酬」であり、各時点で貰える報酬は考慮されません**。

強化学習で有名な将棋の場合、勝負の途中で得られる駒は考慮されず、最終的な勝敗のみが報酬となります(飛車や角を持ってても詰まされたら意味がありません)。

詳しくは、以下の記事を御覧ください。

強化学習入門 ~これから強化学習を学びたい人のための基礎知識~

質問者さんの場合、各時点における計算問題正答数も見ていることから、10分後の問題正答数だけ最大化したいわけではなく、1分後、2分後…の問題正答数も増やしたいかと思われます。そうすると、最終的な結果しか考慮しない強化学習は向いてないかと思います。

RNNについて

自然言語処理(翻訳とか)で有名なRNNですが、本来は時系列データ(1時間ごとの東京都の降水量など時間がセットとなるデータ)全般に有効な機械学習アルゴリズムです。

入力と出力の関係を推測する点は一般的なニューラルネットワークと変わらないのですが、ある時点のデータが、それ以降に発生するデータに影響を及ぼすように設計できるのが特徴です。

ネットワークの構造など詳細については、以下の記事をご覧ください。

再帰型ニューラルネットワークの「基礎の基礎」を理解する ~ディープラーニング入門|第3回

温湿度・風量を入力、次の温湿度(次のネットワークの入力に用いる)・問題正答数(ラベル扱いにするかは要検討)を出力とし、用意したデータ(教師データ)と比較・学習させることで、温湿度・風量と問題正答数の関係をモデル化できるかと思います。

ネットワークの出力を最大化する入力の作成

RNN(機械学習)で実現できるのは、入出力の関連をモデル化し、あくまで入力が用意された場合の出力を予測することです。

対して、質問者さんが実現したいのは、各時点の計算問題正答数を最大化する温湿度・風量を知ることだと思います。

そのためには、機械学習によるモデル化に加えて、ネットワークの出力を最大化する入力の作成が必要になります。

ただし、これに関する情報は日本語だと全く見つかりません。海外でもあるかどうかわからないレベルです。

線形計画法(最適化問題)の応用でいけるかもしれませんが、線形計画法も機械学習と同様に沼の如く深い分野です。少なくとも、私の手に負える分野ではありません。

研究かなにかだと思いますが、無理せず頑張ってください。

投稿2019/07/02 14:03

amahara_waya

総合スコア1029

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

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

yuuuuuuuuma

2019/07/03 00:26

丁寧なご回答ありがとうございます。非常に助かりました。 結論として、計算問題正答数を最大化する物理環境を学習することはかなり高度なプログラムを構築することが必要であることがわかりました。 また、RNNの特徴も多少理解できたので、今一度前提条件から再考して、学習を進めていきたいと思います。 非常にわかりやすい説明ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問