いい感じの選択を選べるものにしていきたい。ここで、「いい感じ」というものをどう定義するか。それには「報酬」という概念を用います。\(r\)が大きくなる行動」とします。質は大幅に変化します。優れていても、その土台となる報酬が良いものでなければどうにもなりません。作れる」という状況を作るには、報酬の設計が重要となります。ように勝ち負けといった非常にわかりやすい指標があれば楽なのですが、実社会での応用ではそうはいきません。強化学習実応用で難しいポイントいろいろな報酬を試すことができればよいですが、社会実装においてはそうはいかない場面が多いです。使っていただいたお客様に大きな損失を与えることになります。これまでの売り上げをもとに行動を評価するため、一度試してからその報酬設計の評価を行うまでに時間がかかります。他の社会実装分野にもタスク特有の難しさがあります。用いた場合、高価な精密機械が損傷するリスクがあります。物損や金銭的損失ならまだいい方で、自動運転分野だと人を撥ねてしまう可能性があります。もたらす悪影響は計り知れません。そのため、徹底した実情調査と、場合によっては機械学習の知見がなくとも、応用したい分野の専門家の協力なども経て、綿密に報酬設計を行っていく必要があります。報酬を大きくしたい、と聞いて、勘のいい方の一部は疑問に思ったかもしれません。「今の報酬が少なくても、あとから良くなるような行動はいい行動なんじゃないの」と。事実、経営などでも、一時的な損失を受け入れても、長い目で見れば得するような行動は良い行動ですよね。それを考慮するために、累積報酬和という概念を導入します。以上で1より小さい定数です。これは、お金で例えると「同じ金額をもらえるなら、来年もらうより今貰ったほうが嬉しい」というもので、ミクロ経済学や金融論でいう「割引現在価値」に該当します。\(\gamma\)倍されていきます。よってランダムに\(x_1\)が決まって、それに対してまた\(\pi\)で\(a_1\)が決まり......、という形で無限に続けていくことができます。この\(\pi\)については、「\(\pi\)に対する累積報酬和の期待値」という数学的概念で評価します。x_t,a_t)\)というのは、数学的には「遷移確率と即時報酬を表す確率測度」で、強化学習においては一般にはこれを推定する必要はありません。「裏で固定されている」と考えてください。方策を評価するのは分かったけど、じゃあその未来の情報を必要とする累積期待報酬和はどうやって求めるの?」と思われた方もおられるかもしれません。これは、現在「\(Q\)関数」と呼ばれる手法を用いて行います。a\)の組の価値を推定します。(s,a)\)という値を適当に決めてしまいます。そこから、次の更新式で値を更新していきます。a)\right]\]ただし、\(s′\)は\(s,a\)に対する次の状態です。これを無限に繰り返すと、一定の条件下で100%の確率で\(Q\)は正しい値に収束してくれます。(4)しかし、この方策を置くやり方には問題があります。良さを評価するのに無限時間かかったらダメじゃん」ということです。これを解決するために、一般には後述の方策オフ型と呼ばれる手法を使います。\end{equation}これはgreedy(貪欲)法と呼ばれる手法です。対応する\(Q\)関数(これを最適\(Q\)関数と呼び、\(Q^\ast\)と表記します)に100%収束します。関数には一つ大きなメリットがあります。関数の値が最大になる\(a\)を選ぶ」という戦略は、最適方策になるという点です。関数の各出力\(Q(s,a)\)は(これを\(s,a\)に対する\(Q\)値と呼びます)、\(Q^\ast(s,a)\)の推定値であり近似値であると考えられます。これが最大になるような\(a\)を選ぶという行為は、最適方策\(\pi^\ast\)に従う行動をことに近いことが期待されます。ここまで、強化学習とは何かを説明してきました。「じゃあやろう」と早速強化学習を実応用していくことはできません。関数をどうやって実装するか」という大きな問題が残っています。DQNというのは、これをニューラルネットによって行う手法です。Network”の略で、「ディーキューエヌ」と読みます。2}\)一般的な手法では、\(a\)の取りうる種類は有限個とし、その数だけ出力層の次元を用意します。全部で9種類あるなら、出力層のノード数は9とします。次元のベクトルが出てくるニューラルネットを構成します。次から一般的なDQNの学習における具体的な流れをお話しします。値が最大になるものを」というやり方です。後者について説明します。種類あるなら、右端は当然\(Q(s_t,a_10)\)です。この値の最大値をとるようなインデックス\(i\)に対して、\(a_i\)を今回の行動\(a_t\)とします。a_t),x_{t+1}\)が決定されます。\({Q(st_{+1}a_1),......,Q(s_{t+1},a_9)}\)というベクトルが出力されます。関数に\(s_{t+1}\)を入力した場合の出力を摺り合わせます。この2段階を十分なステップ繰り返せば、より良い\(Q\)関数になっていくというわけです。方策の選び方はSARASA法などほかの手法もあるのですが、この基礎編では割愛します。スルーに実装されている3モデルについてここでは、現在スルーができる3つの最適化についてご紹介させていただきます。1}\)これまで、これに対する厳密な証明はなく、あまりに穴の大きい証明を「理論的証明」と皆がありがたがって多数引用されている状況だったのですが、弊社研究チームが数学的に厳密かつ適用範囲を大きく広げた証明に成功しました。現在論文として発表する準備中です。呼ばれる場合が多いです。利益最大化モデル多数の商品の値段を調整するモデルです。強化学習技術により、登録した商品全体の合計利益を最大化します。純粋に利益最大化のみを目指すので、粗利を上げる能力は一番高いモデルです。下記のような状況に当てはまらない場合は、こちらをおすすめします。在庫処分モデル在庫処分におすすめのモデルです。利益最大化効果は上記の利益最大化モデルほどはありませんが、食品のような厳格な期限がある場合にお勧めです。ポイント最適化ポイント還元を行う場合のコストを考慮した利益最大化をしたい場合におすすめです。※専門的な話題ですここからは発展編です。\(Q\)関数から行動を選ぶ方法について。値が最大になる\(a\)を選択し、残りの場合はランダムに選ぶという方法がとられています。番\(Q\)値が高い行動以外はすべて等価という点が挙げられます。