生成AIを用いてPPOの論文「Proximal Policy Optimization Algorithms (2017)」を読んでみた

#   はじめに

生成AIを用いてPPOの論文「Proximal Policy Optimization Algorithms (2017)」の内容を(なるべく)把握してみました。(生成AIが)論文の記載内容を始めから最後まで読んで、実際にどのような記載があるのかを把握します。

(論文の分かりやすい解説記事は見るのですが、実際の論文までチェックしないので、生成AIを使って内容を把握してみました。)

概要レベルでは内容が把握できましたが、標準的な方策勾配法・これまでの主な手法(TRPO、A2C、ACER)の基本的な式・変数記号・処理方法を理解していないので、根幹の部分を理解できませんでした。(その他、[末尾の「分かったこと」章を参照](#分かったこと))

以降で、ChatGPTに聞いてみた例を記載します。

##   他例: 同類の方法を使って読んでみた結果

https://qiita.com/dl_from_scratch/items/8d7e83fef8b434f404dc

https://qiita.com/dl_from_scratch/items/36e5680972f639e69ddb

##   対象の論文

論文: (PPOに関する論文)

[1707.06347] Proximal Policy Optimization Algorithms
https://arxiv.org/abs/1707.06347
(PDF: https://arxiv.org/pdf/1707.06347)

##   質問時の各章節の区切り部分

論文の中にある各章節を、下記のように区切って、部分毎に生成AIに内容を質問していきます。

* Abstract
* \---
* 1 Introduction
* \---
* 2 Background: Policy Optimization
*  2.1 Policy Gradient Methods
* \---
* 2.2 Trust Region Methods
* \---
* 3 Clipped Surrogate Objective
* \---
* 4 Adaptive KL Penalty Coefficient
* \---
* 5 Algorithm
* \---
* 6 Experiments
*  6.1 Comparison of Surrogate Objectives
* \---
* 6.2 Comparison to Other Algorithms in the Continuous Domain
* \---
* 6.3 Showcase in the Continuous Domain: Humanoid Running and Steering
* \---
* 6.4 Comparison to Other Algorithms on the Atari Domain
* \---
* 7 Conclusion
* \---
* A Hyperparameters
* \---
* B Performance on More Atari Games

##   生成AIへの質問方法

生成AIを活用して、知りたい記事・論文の1節分(適度な長さ)のテキストをコピー＆ペーストして、その下に**質問内容を「①～ ②～ …」と番号付きで書いて**、生成AIに渡せば、全質問に一発で的確に回答してくれるので、非常に良好でした。記事全体を読む必要なく、知りたい点の情報だけを収集できます。

**生成AIへの質問例:**
```
(論文・記事の各章節を貼り付け)

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
```

```
続けて下記の質問に追加で回答下さい:
⑥比較の記載があれば違いを表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば明記)
⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば記載)
⑧具体的な数値の記載を全て列挙して、表にまとめて下さい。(必ず正しく数値を抜き取る事、|数値|説明|の表へ)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
⑩図/表があれば、各図/表は何を主張するためのものかを説明下さい。(掲載理由・注目ポイント等)
```
※回答が長くなりそうな場合は、適宜、分けて質問: ①②③④⑤、⑥⑦⑧⑨⑩
※章節に応じて、その章節で明らかに不要な質問は、適宜除外。
※その他、不明点があれば、適宜、追加で質問。

質問内容は、記事・論文を読んでいて**いつも知りたいと思う点**(**改良点・工夫点・テクニック・メカニズムの解明**)にしています。また、表で比較した方が素早く把握できるので、可能であれば**記事を表に変換する**ようにしています。

論文・記事を貼り付けるテキストの長さは、**1節分程度の量に**とどめた方が、良い回答が得られました。生成AIの回答の文量が多くなってくると、回答が長くなり過ぎないように、生成AIが勝手に(適度に)端折り始めてしまい、重要な点が回答から抜けてしまう可能性が高くなります。

##   事前知識

機械学習についてある程度知っていないと、生成AIに質問しても、その回答内容だけでは理解できないと思います。生成AIの回答は、論文の内容をあまり変えずに、要点をそのまま掻い摘んで回答するような形になっています。

PPOについての分かりやすい解説記事(下記)等を事前にチェックして、中核部分の内容をあらかじめ分かっていると、理解しやすいと思います。生成AIは実際の細かい処理方法自体を分かりやすく説明してはくれない傾向があります。

https://horomary.hatenablog.com/entry/2020/10/18/225833

https://qiita.com/pocokhc/items/1a68dc661eaa98dcacb2

##   注意点

論文のテキスト内容だけを貼り付けて、生成AIに質問しています。論文の中の図・表の部分は貼り付けていません。図・表の内容は生成AIの回答には含まれず、別途論文を見る必要があります。

以降で、生成AIの回答内容が読みにくい・分かりづらい場合は、論文の本文でも同じように書かれてあり、論文の本文を読んでも同じように分かりづらいことが多くあります。論文では、既存研究等があるため、多くの説明を省略・一言だけサラッと書かれてある等、同種の研究に取り組む人でなければ、なかなか全容の理解に辿りつくのは難しい側面があります。この点は、生成AIの回答性能が悪いのではなく、論文という性質上、生じるものと考えています。


#   生成AIに質問

以降で、ChatGPTに実際に聞いてみた例を記載します。

##   生成AIへの質問＆回答の全容

生成AIへの質問＆回答の全容・詳細:

https://chatgpt.com/share/66f365a7-6eec-800d-8819-0df39be67eb8

##   Abstract

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
Abstract
We propose a new family of policy gradient methods for reinforcement learning, which al-
ternate between sampling data through interaction with the environment, and optimizing a
“surrogate” objective function using stochastic gradient ascent. Whereas standard policy gra-
dient methods perform one gradient update per data sample, we propose a novel objective
function that enables multiple epochs of minibatch updates. The new methods, which we call
proximal policy optimization (PPO), have some of the benefits of trust region policy optimiza-
tion (TRPO), but they are much simpler to implement, more general, and have better sample
complexity (empirically). Our experiments test PPO on a collection of benchmark tasks, includ-
ing simulated robotic locomotion and Atari game playing, and we show that PPO outperforms
other online policy gradient methods, and overall strikes a favorable balance between sample
complexity, simplicity, and wall-time.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**  
この部分では、新しい強化学習のポリシー勾配法「Proximal Policy Optimization (PPO)」について記載されている。PPOは、標準的なポリシー勾配法に対する改良を提案し、より効率的なデータ活用と性能向上を目指している。

- ポリシー勾配法の新しいファミリー「Proximal Policy Optimization (PPO)」を提案。
- PPOは、環境との相互作用によってデータをサンプリングし、「代替」目的関数を用いてミニバッチ更新を繰り返す。
- 従来のポリシー勾配法（例: Trust Region Policy Optimization (TRPO)）はデータごとに1回の勾配更新を行うが、PPOでは複数回のミニバッチ更新が可能。
- TRPOのメリットを一部保持しつつ、PPOは実装が簡単で汎用性が高く、サンプル効率が優れている。
- シミュレーションされたロボットの移動やAtariゲームを用いたベンチマークタスクでPPOをテストした結果、他のオンラインポリシー勾配法を上回る性能を示した。

**②具体的な処理方法の記載**  
- 環境との相互作用を通じてデータをサンプリングし、ミニバッチのデータを使用して代替目的関数の最適化を行う。
- 代替目的関数は、TRPOで使用される制約付き最適化に代わり、KLダイバージェンスを制御しつつ複数回の勾配更新が可能な形で定義されている。
- ミニバッチごとに複数のエポックを用いて勾配上昇を実行し、サンプル効率を向上させる。
- 標準的なポリシー勾配法に比べ、データの再利用が可能となるため、サンプル効率が向上する。

**③改良点・工夫点・テクニック等の記載**  
- Trust Region Policy Optimization (TRPO) の複雑な制約付き最適化を回避するため、より簡易な「クリッピング」手法を導入し、KLダイバージェンスの大幅な増加を防止している。
- ミニバッチの使用により、複数回の更新が可能となり、サンプルの再利用を実現している。
- 複数のベンチマークタスクで、シンプルな実装とサンプル効率のバランスが取れるように工夫されている。

**④メカニズムの解明・なぜそうなるのか等の記載**  
- 標準的なポリシー勾配法では、データごとに1回の勾配更新しか行わないため、サンプルの利用効率が低い。しかし、PPOでは複数回のミニバッチ更新を行うことで、同じサンプルから得られる学習効果を最大化している。
- KLダイバージェンスの制御がPPOの中心的な要素であり、これによりポリシーが大きく変化しすぎることを防ぎ、安定した学習を実現している。

**⑤性能が向上した記載**  
- PPOはTrust Region Policy Optimization (TRPO) と比較して、サンプル効率が高く、より優れた性能を示していると記載されている。
- ロボットのシミュレーションやAtariゲームにおけるベンチマークタスクで、他のオンラインポリシー勾配法を上回る性能を示し、PPOの優位性が示されているが、具体的な数値や図表番号は本文に記載されていない。

:::note info
参考: 

方策を直接学習するアルゴリズムとして方策勾配法がありました。方策勾配法は方策の更新として方向のみしか教えてくれず、更新幅が分からないという問題がありました。

そこで、TRPO(Trust Region Policy Optimization)では方策の大幅な変更を回避するために、更新幅に制約を設けて学習する手法を提案しました。TRPOはとても優れたアルゴリズムでしたが、計算がとても複雑、ノイズ(Dropout層など)を組み込めない、ActorとCriticでパラメータを共有するアーキテクチャが使えない、という欠点がありました。

これらの課題を解決するためにTRPOとは違ったアプローチで更新幅を制限した手法がPPOとなります。
:::
https://qiita.com/pocokhc/items/1a68dc661eaa98dcacb2

##   1 Introduction

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
1 Introduction
In recent years, several different approaches have been proposed for reinforcement learning with
neural network function approximators. The leading contenders are deep Q-learning [Mni+15],
“vanilla” policy gradient methods [Mni+16], and trust region / natural policy gradient methods
[Sch+15b]. However, there is room for improvement in developing a method that is scalable (to
large models and parallel implementations), data efficient, and robust (i.e., successful on a variety
of problems without hyperparameter tuning). Q-learning (with function approximation) fails on
many simple problems1 and is poorly understood, vanilla policy gradient methods have poor data
effiency and robustness; and trust region policy optimization (TRPO) is relatively complicated,
and is not compatible with architectures that include noise (such as dropout) or parameter sharing
(between the policy and value function, or with auxiliary tasks).
This paper seeks to improve the current state of affairs by introducing an algorithm that attains
the data efficiency and reliable performance of TRPO, while using only first-order optimization.
We propose a novel objective with clipped probability ratios, which forms a pessimistic estimate
(i.e., lower bound) of the performance of the policy. To optimize policies, we alternate between
sampling data from the policy and performing several epochs of optimization on the sampled data.
Our experiments compare the performance of various different versions of the surrogate objec-
tive, and find that the version with the clipped probability ratios performs best. We also compare
PPO to several previous algorithms from the literature. On continuous control tasks, it performs
better than the algorithms we compare against. On Atari, it performs significantly better (in terms
of sample complexity) than A2C and similarly to ACER though it is much simpler.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
⑥比較の記載があれば違いを表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば明記)
⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば記載)
⑪関連研究の参照番号を全て列挙して、表にまとめて下さい。(元文にある内容のみ記載・類推して付け足しは不要、|参照番号|概要説明|の表へ、関連するもの同士でまとめて並べ替え)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**  
この部分では、強化学習における神経ネットワーク関数近似器を用いた方法の問題点を指摘し、新しいアルゴリズム「Proximal Policy Optimization (PPO)」を提案している。PPOは、TRPOのデータ効率性と安定した性能を保持しつつ、よりシンプルな一階最適化を実現することを目指している。

- 強化学習の代表的な手法には、Deep Q-Learning [Mni+15]、バニラポリシー勾配法 [Mni+16]、TRPO [Sch+15b] が存在するが、それぞれにスケーラビリティやデータ効率、汎用性に課題がある。
- Deep Q-Learningは多くの単純な問題で失敗し、バニラポリシー勾配法はデータ効率が悪い。TRPOは複雑で、ノイズやパラメータ共有に対応できない。
- 本論文では、TRPOのデータ効率性と信頼性を維持しつつ、一階最適化によるシンプルな手法であるPPOを提案。
- PPOはクリップ付き確率比率を用いた新しい目的関数を導入し、性能の下限を形成することで安定した学習を実現する。
- PPOは、ポリシーからデータをサンプリングし、サンプルデータを用いた複数エポックでの最適化を行う。
- 実験により、クリップ付き確率比率を使用したPPOが最良の性能を示し、連続制御タスクで他のアルゴリズムよりも優れた性能を発揮。AtariではA2Cよりもサンプル効率が高く、ACERと同等の性能を示しながらもシンプルである。

**②具体的な処理方法の記載**  
- PPOは、TRPOに代わる簡易な一階最適化手法で、目的関数にクリップ付き確率比率を使用している。これにより、パフォーマンスの過大評価を避け、より安定した学習を実現している。
- 学習プロセスでは、まずポリシーからデータをサンプリングし、そのデータを基に複数回のエポックで最適化を行う。各エポックで、ポリシーの更新が行われる際に、確率比率をクリッピングして制御する。
- PPOはTRPOのように制約付き最適化を行わないため、計算コストを低減しつつ、同様の性能を発揮できる。

**③改良点・工夫点・テクニック等の記載**  
- TRPOの複雑な制約付き最適化を回避し、シンプルなクリッピング手法を導入。これにより、最適化が大幅に簡素化され、ノイズを含むアーキテクチャやパラメータ共有が可能となった。
- 複数エポックにわたる最適化プロセスを採用し、サンプルの再利用によってデータ効率を向上させている。

**④メカニズムの解明・なぜそうなるのか等の記載**  
- クリップ付き確率比率を用いることで、勾配上昇の過程における確率比の過度な変動を抑え、パフォーマンスの大幅な劣化を防ぐ。この手法により、最適化が安定し、ポリシーの更新が過剰に行われないように制御されている。
- 一階最適化を使用することで、TRPOに比べて計算コストを大幅に削減し、スケーラビリティが向上している。

**⑤性能が向上した記載**  
- 連続制御タスクでは、PPOは比較対象となる他のアルゴリズムよりも優れた性能を示した。
- Atariのタスクでは、A2Cに比べてサンプル効率が著しく高く、ACERと同等の性能を示しつつも、よりシンプルな実装であると報告されている。具体的な数値や図表番号は本文に記載されていない。

**⑥比較の記載**  
| 手法                | 特徴                                                                 | パフォーマンス                         | 複雑さ              | データ効率 | 表番号 |
|--------------------|----------------------------------------------------------------------|--------------------------------------|-------------------|------------|--------|
| Deep Q-Learning [Mni+15] | 単純な問題で失敗する場合がある                                          | 不安定                                 | 低い                 | 低い        | -      |
| バニラポリシー勾配法 [Mni+16] | データ効率が悪い                                                     | 低い                                   | 中                 | 低い        | -      |
| TRPO [Sch+15b]      | データ効率が良い、制約付き最適化を使用                                     | 良好                                  | 高い                | 高い        | -      |
| PPO (提案手法)      | シンプルな一階最適化、クリップ付き確率比率を使用し安定した学習を実現              | 高い                                   | 中                 | 高い        | -      |
| A2C                | 簡易な実装、サンプル効率が低い                                            | 中                                   | 中                 | 低い        | -      |
| ACER               | 複雑な実装、サンプル効率が良い                                            | 高い                                   | 高い                | 高い        | -      |

- **解説**: この表は、PPOと他のアルゴリズムの性能と複雑さの違いを比較している。PPOは、シンプルな実装でありながら、TRPOに匹敵する性能とサンプル効率を持っていることが強調されている。

**⑦上記⑥以外で表に出来そうな部分**  
| タスク                  | 比較手法     | PPOの優位性         | パフォーマンス向上の度合い     |
|------------------------|-------------|---------------------|-------------------------|
| 連続制御タスク          | TRPO, A2C   | 他の手法を上回る     | 大幅なパフォーマンス向上     |
| Atariゲーム             | A2C, ACER   | A2Cよりも優れる      | サンプル効率が高く、性能向上  |

- **解説**: この表は、PPOの実験結果に基づいて、タスクごとの比較結果とパフォーマンス向上の度合いを示している。

**⑪関連研究の参照番号**  
| 参照番号  | 概要説明                                                       |
|-----------|-----------------------------------------------------------------|
| [Mni+15]  | Deep Q-Learningに関する研究。                                   |
| [Mni+16]  | バニラポリシー勾配法に関する研究。                              |
| [Sch+15b] | Trust Region Policy Optimization (TRPO)に関する研究。             | 

##   2 Background: Policy Optimization
###   2.1 Policy Gradient Methods

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
2 Background: Policy Optimization
2.1 Policy Gradient Methods
Policy gradient methods work by computing an estimator of the policy gradient and plugging it
into a stochastic gradient ascent algorithm. The most commonly used gradient estimator has the
form
ˆg = ˆEt
[
∇θ log πθ(at | st) ˆAt
]
(1)
where πθ is a stochastic policy and ˆAt is an estimator of the advantage function at timestep t.
Here, the expectation ˆEt[. . .] indicates the empirical average over a finite batch of samples, in an
algorithm that alternates between sampling and optimization. Implementations that use automatic
differentiation software work by constructing an objective function whose gradient is the policy
gradient estimator; the estimator ˆg is obtained by differentiating the objective
LP G(θ) = ˆEt
[
log πθ(at | st) ˆAt
]
. (2)
While it is appealing to perform multiple steps of optimization on this loss LP G using the same
trajectory, doing so is not well-justified, and empirically it often leads to destructively large policy
updates (see Section 6.1; results are not shown but were similar or worse than the “no clipping or
penalty” setting).

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**  
この部分では、ポリシー勾配法の基本概念と、勾配推定器を用いた最適化の手法について述べられている。具体的には、ポリシー勾配法における勾配推定の方法と、それに基づく最適化の手法について説明している。

- ポリシー勾配法は、ポリシーの勾配推定器を計算し、それを確率的勾配上昇法に組み込む手法である。
- 勾配推定器は、行動 $ a_t $ と状態 $ s_t $ に基づき、優位関数 $ \hat{A}_t $ を利用して計算される。
- 勾配推定器 $ \hat{g} $ は、方程式(1)で定義されており、経験的なサンプル平均を用いて算出される。
- 自動微分を用いると、目的関数の勾配としてポリシー勾配推定器 $ \hat{g} $ を得ることができ、その目的関数は方程式(2)で定義される。

**②具体的な処理方法の記載**  
ポリシー勾配法では、以下の処理が行われる:
- ポリシー $ \pi_\theta $ をサンプリングし、対応する行動 $ a_t $ と状態 $ s_t $ を記録する。
- 優位関数 $ \hat{A}_t $ を用いて勾配推定器 $ \hat{g} $ を計算する。
  - 具体的な勾配推定器は、以下の式で表される:  
    $
    \hat{g} = \hat{E}_t \left[ \nabla_\theta \log \pi_\theta(a_t | s_t) \hat{A}_t \right]
    $
  - この計算には、サンプルデータに基づく経験的平均 $ \hat{E}_t $ が用いられる。
- 勾配推定器に基づいて目的関数 $ L_{PG}(\theta) $ を設定し、その目的関数を自動微分によって最適化する。
  - 目的関数は以下の式で表される:  
    $
    L_{PG}(\theta) = \hat{E}_t \left[ \log \pi_\theta(a_t | s_t) \hat{A}_t \right]
    $

**③改良点・工夫点・テクニック等の記載**  
- 自動微分を活用して目的関数を構築し、その勾配を計算する手法が採用されている。これにより、手作業での微分計算が不要となり、効率的な実装が可能となっている。
- ただし、同じ軌跡を用いて複数回の最適化を行うことは理論的な根拠がなく、破壊的な大きなポリシー更新を引き起こすため、注意が必要であると述べられている。

**④メカニズムの解明・なぜそうなるのか等の記載**  
- ポリシー勾配法のメカニズムは、ポリシーの勾配を直接推定し、その勾配に従ってパラメータを更新する点にある。優位関数 $ \hat{A}_t $ を用いることで、強化学習における行動の価値を反映させた勾配推定が可能となる。
- しかし、複数の最適化ステップを同じデータで行うと、ポリシーの更新が過大になり、ポリシーの性能を著しく低下させるリスクがある。この理由から、慎重な勾配更新が求められる。

**⑤性能が向上した記載**  
- 特定の性能向上については、ここでは記載されていないが、セクション6.1で「クリッピングやペナルティを使用しない設定では、破壊的なポリシー更新が発生する」とされている。これは、クリッピングやペナルティを用いた更新が性能を維持するために重要であることを示唆している。

**⑨具体的な変数名(数式用の記号)の記載**

| 変数名               | 説明                                                                                      |
|---------------------|-------------------------------------------------------------------------------------------|
| $ \pi_\theta $     | パラメータ $ \theta $ に依存する確率的ポリシー                                            |
| $ \hat{A}_t $      | 時刻 $ t $ における優位関数の推定値                                                        |
| $ \nabla_\theta $  | ポリシー $ \pi_\theta $ に関するパラメータ $ \theta $ についての勾配                     |
| $ a_t $            | 時刻 $ t $ における行動                                                                   |
| $ s_t $            | 時刻 $ t $ における状態                                                                   |
| $ \hat{E}_t $      | サンプル平均を表す記号                                                                     |
| $ L_{PG}(\theta) $ | ポリシー勾配に基づく目的関数                                                               |
| $ \hat{g} $        | 勾配推定器                                                                                 |

:::note info
生成AIの回答内容は、論文の記載内容がそのまま反映されているが、

方策勾配学習について、基本的な式・変数記号を知っていないと、理解できない。
:::

:::note info
「①要旨」で「経験的なサンプル平均」の記載は、論文の本文中での「the empirical average over a finite batch of samples」の部分の訳文となり、より適切には「実験に基づいたサンプル平均」の方の意味ではないかと推測。
:::

**▼質問(人間)**
強化学習におけるアドバンテージ関数(Advantage Function)とは何か?

**▼生成AIの回答(ChatGPT-4o)**
強化学習におけるアドバンテージ関数（Advantage Function）は、特定の状態におけるある行動が他の行動と比べてどれだけ優れているかを評価する関数である。具体的には、アドバンテージ関数 $A(s, a)$ は、行動価値関数 $Q(s, a)$ と状態価値関数 $V(s)$ を用いて次のように定義される：

$
A(s, a) = Q(s, a) - V(s)
$

- **行動価値関数 $Q(s, a)$**: 状態 $s$ で行動 $a$ を選択した場合に得られる将来の報酬の期待値を表す。
- **状態価値関数 $V(s)$**: 状態 $s$ において最適な行動方針に従った場合に得られる将来の報酬の期待値を表す。

この定義に基づき、アドバンテージ関数は次のような意味を持つ：
- アドバンテージ $A(s, a)$ が正の場合、その行動 $a$ は状態 $s$ において期待される報酬よりも高いリターンをもたらすため、他の行動よりも有利である。
- アドバンテージ $A(s, a)$ が負の場合、その行動は期待されるリターンに比べて劣ることを示す。

アドバンテージ関数は、ポリシー勾配法などの強化学習アルゴリズムで、行動の選択や最適化を行う際に用いられる。特に、アクションが価値関数に対してどれほど優れているかを定量的に評価することで、強化学習エージェントがより効率的にポリシーの改善を行うことができる。

:::note info
参考: 

Aπ(s,a)はアドバンテージ関数(Advantage Function)を表します。これは、ある状態sにおいて、特定の行動aを取ることの相対的な価値を示す関数です。
アドバンテージ関数は、特定の行動aを取ることが、その状態での平均的な行動と比べてどれだけ良いかを示します
:::
https://www.perplexity.ai/search/ap-s-a-toha-gmDD.2TfT4WCpw3M5mozsw

**▼質問(人間)**
以降では、Advantage Functionは、アドバンテージ関数と記載下さい。

**▼生成AIの回答(ChatGPT-4o)**
了解しました。以降は、Advantage Functionをアドバンテージ関数として記載します。

##   2.2 Trust Region Methods

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
2.2 Trust Region Methods
In TRPO [Sch+15b], an objective function (the “surrogate” objective) is maximized subject to a
constraint on the size of the policy update. Specifically,
maximize
θ
ˆEt
[ πθ(at | st)
πθold (at | st) ˆAt
]
(3)
subject to ˆEt[KL[πθold (· | st), πθ(· | st)]] ≤ δ. (4)
Here, θold is the vector of policy parameters before the update. This problem can efficiently be
approximately solved using the conjugate gradient algorithm, after making a linear approximation
to the objective and a quadratic approximation to the constraint.
The theory justifying TRPO actually suggests using a penalty instead of a constraint, i.e.,
solving the unconstrained optimization problem
maximize
θ
ˆEt
[ πθ(at | st)
πθold (at | st) ˆAt − β KL[πθold (· | st), πθ(· | st)]
]
(5)
for some coefficient β. This follows from the fact that a certain surrogate objective (which computes
the max KL over states instead of the mean) forms a lower bound (i.e., a pessimistic bound) on the
performance of the policy π. TRPO uses a hard constraint rather than a penalty because it is hard
to choose a single value of β that performs well across different problems—or even within a single
problem, where the the characteristics change over the course of learning. Hence, to achieve our goal
of a first-order algorithm that emulates the monotonic improvement of TRPO, experiments show
that it is not sufficient to simply choose a fixed penalty coefficient β and optimize the penalized
objective Equation (5) with SGD; additional modifications are required.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

- **何についての記載か?**: 強化学習におけるTrust Region Policy Optimization (TRPO)手法についての記載である。
- **要旨**:
  - TRPOは、ポリシーの更新サイズに制約を設けた目的関数を最大化する手法である。
  - 具体的には、古いポリシーと新しいポリシー間のカルバック・ライブラー (KL) ダイバージェンスが制約として導入されている。
  - 制約付き最適化問題を近似的に解くために共役勾配法が使用される。
  - 理論的には、制約の代わりにペナルティを導入することが推奨されているが、固定のペナルティ係数を選ぶことが難しいため、TRPOはハード制約を使用する。
  - TRPOのモノトニックな性能向上を模倣するためには、追加の修正が必要である。

**②具体的な処理方法の記載**

- 目的関数として次の式が使用される:  
  $
  \text{maximize}_{\theta} \quad \mathbb{E}_t \left[ \frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_\text{old}}(a_t | s_t)} \hat{A}_t \right]
  $
  ただし、次の制約条件付きで:
  $
  \mathbb{E}_t \left[\text{KL}[\pi_{\theta_\text{old}}(\cdot | s_t), \pi_{\theta}(\cdot | s_t)]\right] \leq \delta
  $
- ポリシー更新の制約としてKLダイバージェンスが設定され、その制約を守りながらポリシーを更新する。
- 近似解法として共役勾配法が用いられ、目的関数には線形近似、制約には二次近似が適用される。
- ペナルティを使った最適化式では、ペナルティ項を加えることで制約を緩和しつつ最適化が行われる:  
  $
  \text{maximize}_{\theta} \quad \mathbb{E}_t \left[ \frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_\text{old}}(a_t | s_t)} \hat{A}_t - \beta \text{KL}[\pi_{\theta_\text{old}}(\cdot | s_t), \pi_{\theta}(\cdot | s_t)] \right]
  $

**③改良点・工夫点・テクニック等の記載**

- 固定のペナルティ係数を使った手法では、異なる問題や学習過程における特性の変動に対応することが難しいため、TRPOはハード制約を採用した。
- モノトニックな性能向上を目指し、目的関数にKL制約を設けて、大規模なポリシーの変動を防ぐ。
- 共役勾配法を使うことで、制約付き最適化問題を効率的に解く工夫がされている。

**④メカニズムの解明・なぜそうなるのか等の記載**

- ペナルティではなくハードなKL制約を導入する理由は、ペナルティ係数 β を適切に選ぶことが困難であり、異なる問題設定や学習段階によって最適な値が変わるためである。
- KL制約を設けることで、ポリシーが大きく変動することを防ぎ、より安定した学習が可能になる。

**⑤性能が向上した記載**

- KLダイバージェンスに基づく制約により、従来の方法と比べてポリシー更新が安定し、TRPOがモノトニックな改善を達成したことが示されている (図表の番号は記載されていない)。
- ペナルティ方式を用いた場合、パフォーマンスのばらつきが大きく、固定のペナルティ係数では一貫した性能向上が得られない場合があった。

**⑨具体的な変数名(数式用の記号)の記載**

| 変数名         | 説明                                                               |
|----------------|--------------------------------------------------------------------|
| $\theta$     | ポリシーのパラメータベクトル                                       |
| $\pi_{\theta}$ | パラメータ $\theta$ を持つポリシー                               |
| $a_t$        | 時刻 $t$ でのアクション                                           |
| $s_t$        | 時刻 $t$ での状態                                                 |
| $\hat{A}_t$  | 時刻 $t$ におけるアドバンテージ関数の推定値                        |
| $\pi_{\theta_\text{old}}$ | 更新前のポリシー                                       |
| $\text{KL}$  | カルバック・ライブラー (KL) ダイバージェンス                        |
| $\beta$      | ペナルティ項に対する係数                                             |
| $\delta$     | KL制約の許容範囲                                                   |

:::note info
生成AIの回答内容は、論文の記載内容がそのまま反映されているが、

方策勾配学習について、基本的な式・変数記号を知っていないと、理解できない。
:::

:::note info
参考: 

TRPOでは代理目的関数:Surrogate Objectiveを最大化しつつ、KL距離による制約をかけて更新幅を抑える手法を提案しました。ただ、この式をKL距離の制約の元で解こうとするととても複雑になります。（ラグランジュ乗数法で解くとの事）

そこでPPOでは制約条件の代わりに単純にclipすることで更新幅を抑える事を提案しました。
:::
https://qiita.com/pocokhc/items/1a68dc661eaa98dcacb2

##   3 Clipped Surrogate Objective

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
3 Clipped Surrogate Objective
Let rt(θ) denote the probability ratio rt(θ) = πθ (at | st)
πθold (at | st) , so r(θold) = 1. TRPO maximizes a
“surrogate” objective
LCP I (θ) = ˆEt
[ πθ(at | st)
πθold (at | st) ˆAt
]
= ˆEt
[
rt(θ) ˆAt
]
. (6)
The superscript CP I refers to conservative policy iteration [KL02], where this objective was pro-
posed. Without a constraint, maximization of LCP I would lead to an excessively large policy
update; hence, we now consider how to modify the objective, to penalize changes to the policy that
move rt(θ) away from 1.
The main objective we propose is the following:
LCLIP (θ) = ˆEt
[
min(rt(θ) ˆAt, clip(rt(θ), 1 − ϵ, 1 + ϵ) ˆAt)
]
(7)
where epsilon is a hyperparameter, say, ϵ = 0.2. The motivation for this objective is as follows. The
first term inside the min is LCP I . The second term, clip(rt(θ), 1 − ϵ, 1 + ϵ) ˆAt, modifies the surrogate
objective by clipping the probability ratio, which removes the incentive for moving rt outside of the
interval [1 − ϵ, 1 + ϵ]. Finally, we take the minimum of the clipped and unclipped objective, so the
final objective is a lower bound (i.e., a pessimistic bound) on the unclipped objective. With this
scheme, we only ignore the change in probability ratio when it would make the objective improve,
and we include it when it makes the objective worse. Note that LCLIP (θ) = LCP I (θ) to first order
around θold (i.e., where r = 1), however, they become different as θ moves away from θold. Figure 1
plots a single term (i.e., a single t) in LCLIP ; note that the probability ratio r is clipped at 1 − ϵ
or 1 + ϵ depending on whether the advantage is positive or negative.
Figure 2 provides another source of intuition about the surrogate objective LCLIP . It shows how
several objectives vary as we interpolate along the policy update direction, obtained by proximal
policy optimization (the algorithm we will introduce shortly) on a continuous control problem. We
can see that LCLIP is a lower bound on LCP I , with a penalty for having too large of a policy
update.

Figure 1: Plots showing one term (i.e., a single timestep) of the surrogate function LCLIP as a function of
the probability ratio r, for positive advantages (left) and negative advantages (right). The red circle on each
plot shows the starting point for the optimization, i.e., r = 1. Note that LCLIP sums many of these terms.

Figure 2: Surrogate objectives, as we interpolate between the initial policy parameter θold, and the updated
policy parameter, which we compute after one iteration of PPO. The updated policy has a KL divergence of
about 0.02 from the initial policy, and this is the point at which LCLIP is maximal. This plot corresponds
to the first policy update on the Hopper-v1 problem, using hyperparameters provided in Section 6.1.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

- **何についての記載か?**: Clipped Surrogate Objectiveについての記載であり、特にポリシー更新時に生じる問題を解決するために、確率比に基づいた代理目的関数を制限する手法について述べている。
- **要旨**:
  - TRPOの代替目的関数 $ L_{CPI} $ は、ポリシー更新時に制約がないと過度に大きな更新を行う可能性がある。
  - この問題を解決するために、目的関数をクリップして、ポリシーの更新が過度にならないように調整する手法 $ L_{CLIP} $ を提案している。
  - クリップされた目的関数は、更新がポリシーの性能に悪影響を与える場合にのみ確率比を制限し、性能を向上させる場合はその制限を無視する。
  - $ L_{CLIP} $ は、TRPOの目的関数 $ L_{CPI} $ に対して保守的な下限となるが、ポリシーが大きく変化した場合には異なる挙動を示す。

**②具体的な処理方法の記載**

- TRPOの代替目的関数 $ L_{CPI} $ を最大化する式は以下の通りである:  
  $
  L_{CPI}(\theta) = \mathbb{E}_t \left[ \frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_\text{old}}(a_t | s_t)} \hat{A}_t \right] = \mathbb{E}_t \left[ r_t(\theta) \hat{A}_t \right]
  $
- このままではポリシーが過度に更新される可能性があるため、次の式で目的関数を修正する:  
  $
  L_{CLIP}(\theta) = \mathbb{E}_t \left[ \min(r_t(\theta) \hat{A}_t, \text{clip}(r_t(\theta), 1 - \epsilon, 1 + \epsilon) \hat{A}_t) \right]
  $
  ここで、$\epsilon$ はハイパーパラメータであり、通常は $ \epsilon = 0.2 $ で設定される。
- このクリップ操作によって、確率比 $ r_t(\theta) $ が $ [1 - \epsilon, 1 + \epsilon] $ の範囲外に出るのを防ぎ、ポリシー更新が過度にならないようにする。
- クリップされた目的関数は、ポリシーが $ \theta_\text{old} $ に近い時点では通常の目的関数 $ L_{CPI} $ と同等であるが、更新が進むと異なる挙動を示す。

**③改良点・工夫点・テクニック等の記載**

- 確率比 $ r_t(\theta) $ をクリップすることで、ポリシー更新が過度に大きくなることを防ぐ。この手法によって、ポリシー更新が性能に与える負の影響を最小限に抑えつつ、性能向上が見込める範囲での更新は許容される。
- クリップされた目的関数 $ L_{CLIP} $ は、TRPOの保守的な目的関数 $ L_{CPI} $ をベースにしつつ、過度な更新を制限する新しい工夫がなされている。

**④メカニズムの解明・なぜそうなるのか等の記載**

- $ L_{CPI} $ の最大化のみでは、確率比 $ r_t(\theta) $ が大きくなりすぎることでポリシーの更新が過度になる。これにより、学習の安定性が損なわれる。
- 確率比をクリップすることで、更新量を制限し、学習の安定性を保つように設計されている。
- クリップは、ポリシー更新が性能向上に寄与する場合は制限を行わず、悪影響がある場合のみ制限をかけるメカニズムとなっている。

**⑤性能が向上した記載**

- 提案されたクリップ手法 $ L_{CLIP} $ は、TRPOに比べてより安定したパフォーマンスを発揮することが示されている。特に、ポリシーの更新が過度になることを防ぐことで、長期的な学習の安定性が向上している。
- 図1および図2において、クリップされた目的関数が代理関数 $ L_{CPI} $ に対して保守的な下限であり、ポリシーの大きな変化に対するペナルティが視覚的に示されている。図2では、更新後のポリシーのKLダイバージェンスが0.02である時点で $ L_{CLIP} $ が最大となっていることが確認できる (図1, 図2)。

:::note info
生成AIの回答内容は、論文の記載内容がそのまま反映されているが、

方策勾配学習について、基本的な式・変数記号を知っていないと、理解できない。
:::

**▼質問(人間)**
続けて下記の質問に追加で回答下さい:
⑥比較の記載があれば違いを表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば明記)
⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば記載)
⑧具体的な数値の記載を全て列挙して、表にまとめて下さい。(必ず正しく数値を抜き取る事、|数値|説明|の表へ)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
⑩図/表があれば、各図/表は何を主張するためのものかを説明下さい。(掲載理由・注目ポイント等)

**▼生成AIの回答(ChatGPT-4o)**
**⑥比較の記載があれば違いを表でまとめて下さい。**

| 比較項目              | TRPOの代替目的関数 $ L_{CPI} $ | Clipped Surrogate Objective $ L_{CLIP} $ |
|-----------------------|----------------------------------|------------------------------------------|
| ポリシー更新の制約      | 制約なし                        | クリップによる制限付き                  |
| 過度なポリシー更新への対応 | 特に制限なし                    | 確率比のクリップによって更新を抑制      |
| パフォーマンスの下限    | 保守的な下限を形成               | より厳しい下限を形成                    |
| 初期状態での挙動        | 同一                             | 更新が進むにつれて挙動が異なる           |
| 実装の複雑さ            | 比較的単純                       | クリッピングによる追加計算が必要         |

**解説**:
TRPOの代替目的関数 $ L_{CPI} $ は、過度なポリシー更新を防ぐ手段がなく、その結果、学習の不安定さが発生する可能性がある。一方、Clipped Surrogate Objective $ L_{CLIP} $ は、確率比をクリップすることでポリシー更新が大きくならないように制御する。この違いは特にポリシーが大きく更新される場合に顕著であり、$ L_{CLIP} $ がより安定した学習を実現する。

**⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。**

| クリッピング範囲 | $1 - \epsilon$ ～ $1 + \epsilon$ |
|-----------------|---------------------------------|
| クリッピングによる影響 | 過度なポリシー更新を抑制             |
| ハイパーパラメータ $ \epsilon $ の値 | 0.2                                |

**解説**:
クリッピングの範囲 $1 - \epsilon$ ～ $1 + \epsilon$ という設定は、ポリシーの大幅な変更を抑えるために用いられている。$ \epsilon = 0.2 $ という設定は適度な更新幅を持たせるためのものであり、これにより学習が安定する効果が得られる。

**⑧具体的な数値の記載を全て列挙して、表にまとめて下さい。**

| 数値   | 説明                                        |
|--------|---------------------------------------------|
| 0.2    | クリッピング範囲のハイパーパラメータ $ \epsilon $ の値 |
| 0.02   | 初期ポリシーと更新後ポリシー間のKLダイバージェンス         |

**⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。**

| 変数名   | 説明                                         |
|----------|----------------------------------------------|
| $ r_t(\theta) $ | 確率比 $\frac{\pi_{\theta}(a_t \| s_t)}{\pi_{\theta_\text{old}}(a_t \| s_t)}$ |
| $ \hat{A}_t $   | アドバンテージ関数の推定値                           |
| $ \theta $      | 現在のポリシーパラメータ                           |
| $ \theta_\text{old} $ | 前回のポリシーパラメータ                           |
| $ \epsilon $    | クリッピングの範囲を決めるハイパーパラメータ             |
| $ L_{CPI}(\theta) $ | TRPOの代替目的関数                                |
| $ L_{CLIP}(\theta) $ | Clipped Surrogate Objective                      |

**⑩図/表があれば、各図/表は何を主張するためのものかを説明下さい。**

- **図1**: 1つのタイムステップにおけるクリップされた代理目的関数 $ L_{CLIP} $ を確率比 $ r $ に対してプロットしている。正のアドバンテージと負のアドバンテージでクリッピングの動作が異なることが視覚的に示されており、特に赤い円で示される初期状態（$ r = 1 $）からの変化が重要なポイントである。
- **図2**: 初期のポリシーパラメータ $ \theta_\text{old} $ と更新後のパラメータ間での代理目的関数の挙動を比較している。更新後のポリシーはKLダイバージェンスが約0.02であり、この時点で $ L_{CLIP} $ が最大となることが示されている。これにより、適切なポリシー更新がどのように行われるかが視覚的に確認できる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/5191f9b0-986e-e229-07f8-e787e4e48542.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/174b4053-5367-1233-b4d2-83d2374d1c34.png)

##   4 Adaptive KL Penalty Coefficient

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
4 Adaptive KL Penalty Coefficient
Another approach, which can be used as an alternative to the clipped surrogate objective, or in
addition to it, is to use a penalty on KL divergence, and to adapt the penalty coefficient so that we
achieve some target value of the KL divergence dtarg each policy update. In our experiments, we
found that the KL penalty performed worse than the clipped surrogate objective, however, we’ve
included it here because it’s an important baseline.
In the simplest instantiation of this algorithm, we perform the following steps in each policy
update:
• Using several epochs of minibatch SGD, optimize the KL-penalized objective
LKLP EN (θ) = ˆEt
[ πθ(at | st)
πθold (at | st) ˆAt − β KL[πθold (· | st), πθ(· | st)]
]
(8)
• Compute d = ˆEt[KL[πθold (· | st), πθ(· | st)]]
– If d < dtarg/1.5, β ← β/2
– If d > dtarg × 1.5, β ← β × 2
The updated β is used for the next policy update. With this scheme, we occasionally see policy
updates where the KL divergence is significantly different from dtarg, however, these are rare, and
β quickly adjusts. The parameters 1.5 and 2 above are chosen heuristically, but the algorithm is
not very sensitive to them. The initial value of β is a another hyperparameter but is not important
in practice because the algorithm quickly adjusts it.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

この節では、KLダイバージェンスに基づくペナルティ係数を適応的に調整する手法について記載している。この手法は、クリップされた代理目的関数に代わるアプローチ、またはそれに加えて使用できるものとして提案されている。

- ポリシー更新ごとにKLダイバージェンスのターゲット値 $ d_{targ} $ を達成するためにペナルティ係数 $ \beta $ を適応的に調整する手法を説明している。
- KLペナルティは、クリップされた代理目的関数よりも性能が劣るとされるが、ベースラインとして重要である。
- 各ポリシー更新時に複数エポックにわたるミニバッチSGDを用いてKLペナルティ付き目的関数を最適化する。

**②具体的な処理方法の記載**

この手法の処理手順は以下の通りである：

1. ポリシー更新ごとに、KLペナルティ付きの目的関数 $ L_{KLpen} (\theta) $ を次のように最適化する。
   $
   L_{KLpen} (\theta) = \hat{E}_t \left[ \frac{\pi_{\theta}(a_t | s_t)}{\pi_{\theta_{old}}(a_t | s_t)} \hat{A}_t - \beta KL[\pi_{\theta_{old}}(\cdot | s_t), \pi_{\theta}(\cdot | s_t)] \right]
   $
2. KLダイバージェンス $ d = \hat{E}_t \left[ KL[\pi_{\theta_{old}}(\cdot | s_t), \pi_{\theta}(\cdot | s_t)] \right] $ を計算する。
3. 計算したKLダイバージェンス $ d $ とターゲット値 $ d_{targ} $ を比較し、以下の基準に基づいてペナルティ係数 $ \beta $ を調整する：
   - $ d < \frac{d_{targ}}{1.5} $ の場合、$ \beta $ を半分にする。
   - $ d > d_{targ} \times 1.5 $ の場合、$ \beta $ を2倍にする。
4. 更新された $ \beta $ は次回のポリシー更新に使用される。

**③改良点・工夫点・テクニック等の記載**

- この手法ではKLダイバージェンスのターゲット値を設定し、それに基づいてペナルティ係数 $ \beta $ を動的に調整する。この適応的な調整により、KLダイバージェンスがターゲットから大きく外れることが少なくなる。
- ペナルティ係数 $ \beta $ の調整は、1.5倍や2倍という数値を使ったヒューリスティックな方法で行われているが、アルゴリズム自体はこれらの値に対してあまり敏感ではないとされている。

**④メカニズムの解明・なぜそうなるのか等の記載**

- KLダイバージェンスをターゲットとする理由は、ポリシー更新が過度に大きくならないように制御し、学習が安定することを保証するためである。
- ペナルティ係数 $ \beta $ を動的に調整することで、KLダイバージェンスがターゲット範囲内に収まるようにしており、これにより過度なポリシー更新や逆に過小な更新を防いでいる。

**⑤性能が向上した記載**

- この手法では、KLペナルティによるポリシー更新が行われるが、クリップされた代理目的関数と比べて性能が劣るとされている。ただし、重要なベースラインとして用いられることがある。

**⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。**

| 変数名  | 説明                                                      |
|---------|-------------------------------------------------------------|
| $ \theta $ | 現在のポリシーパラメータ                                      |
| $ \theta_{old} $ | 更新前のポリシーパラメータ                                  |
| $ \hat{A}_t $ | アドバンテージ関数の推定値                                  |
| $ \beta $  | KLダイバージェンスに対するペナルティ係数                          |
| $ KL[\pi_{\theta_{old}}(\cdot \| s_t), \pi_{\theta}(\cdot \| s_t)] $ | ポリシー間のKLダイバージェンス         |
| $ d_{targ} $ | KLダイバージェンスのターゲット値                                |
| $ L_{KLpen} (\theta) $ | KLペナルティ付き目的関数                                 |

##   5 Algorithm

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
5 Algorithm
The surrogate losses from the previous sections can be computed and differentiated with a minor
change to a typical policy gradient implementation. For implementations that use automatic dif-
ferentation, one simply constructs the loss LCLIP or LKLP EN instead of LP G, and one performs
multiple steps of stochastic gradient ascent on this objective.
Most techniques for computing variance-reduced advantage-function estimators make use a
learned state-value function V (s); for example, generalized advantage estimation [Sch+15a], or the
finite-horizon estimators in [Mni+16]. If using a neural network architecture that shares parameters
between the policy and value function, we must use a loss function that combines the policy
surrogate and a value function error term. This objective can further be augmented by adding
an entropy bonus to ensure sufficient exploration, as suggested in past work [Wil92; Mni+16].
Combining these terms, we obtain the following objective, which is (approximately) maximized
each iteration:
LCLIP +V F +S
t (θ) = ˆEt
[LCLIP
t (θ) − c1LV F
t (θ) + c2S[πθ](st)], (9)
where c1, c2 are coefficients, and S denotes an entropy bonus, and LV F
t is a squared-error loss
(Vθ(st) − V targ
t )2.
One style of policy gradient implementation, popularized in [Mni+16] and well-suited for use
with recurrent neural networks, runs the policy for T timesteps (where T is much less than the
episode length), and uses the collected samples for an update. This style requires an advantage
estimator that does not look beyond timestep T . The estimator used by [Mni+16] is
ˆAt = −V (st) + rt + γrt+1 + · · · + γT −t+1rT −1 + γT −tV (sT ) (10)
where t specifies the time index in [0, T ], within a given length-T trajectory segment. Generalizing
this choice, we can use a truncated version of generalized advantage estimation, which reduces to
Equation (10) when λ = 1:
ˆAt = δt + (γλ)δt+1 + · · · + · · · + (γλ)T −t+1δT −1, (11)
where δt = rt + γV (st+1) − V (st) (12)
A proximal policy optimization (PPO) algorithm that uses fixed-length trajectory segments is
shown below. Each iteration, each of N (parallel) actors collect T timesteps of data. Then we
construct the surrogate loss on these N T timesteps of data, and optimize it with minibatch SGD
(or usually for better performance, Adam [KB14]), for K epochs.

Algorithm 1 PPO, Actor-Critic Style
for iteration=1, 2, . . . do
for actor=1, 2, . . . , N do
Run policy πθold in environment for T timesteps
Compute advantage estimates ˆA1, . . . , ˆAT
end for
Optimize surrogate L wrt θ, with K epochs and minibatch size M ≤ N T
θold ← θ
end for

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

この節は、Proximal Policy Optimization (PPO)アルゴリズムの詳細について記載している。特に、PPOの実装における代理損失関数の計算と、その損失関数を用いたポリシーの更新手法について説明している。

- 代理損失関数 $ L_{CLIP} $ や $ L_{KLpen} $ を、標準的なポリシー勾配法と比較して、少しの変更で計算・微分できる。
- 値関数誤差項やエントロピー正則化項を加えた損失関数が提案されている。
- 固定長の軌跡セグメントを用いて、PPOアルゴリズムが実行される手順について記載されている。

**②具体的な処理方法の記載**

PPOアルゴリズムの具体的な処理手順は以下の通りである：

1. まず、ポリシー勾配法で使用される代理損失関数 $ L_{CLIP} $ または $ L_{KLpen} $ を構築し、それに対して複数のエポックにわたって確率的勾配上昇を行う。
2. 状態価値関数 $ V(s) $ を用いて、分散を低減したアドバンテージ関数の推定値を計算する。例として、Generalized Advantage Estimation (GAE) や有限ホライズン推定値が使用される。
3. 損失関数は次のように定義される：
   $
   L_{CLIP+VF+S}^t(\theta) = \hat{E}_t[L_{CLIP}^t(\theta) - c1 L_{VF}^t(\theta) + c2 S[\pi_\theta](s_t)]
   $
   ここで、$ c1 $ と $ c2 $ は係数、$ S $ はエントロピーボーナス、$ L_{VF}^t $ は値関数の誤差項 $ (V_\theta(s_t) - V_{targ}^t)^2 $ である。
4. 時間ステップ $ T $ 毎にポリシーを実行し、集められたデータを用いてアドバンテージ推定値を計算する。この際、アドバンテージ推定値は次の式で与えられる：
   $
   \hat{A}_t = -V(s_t) + r_t + \gamma r_{t+1} + \dots + \gamma^{T-t+1} V(s_T)
   $
5. 一般化されたアドバンテージ推定 (GAE) のトランケート版も使用可能で、次の式で与えられる：
   $
   \hat{A}_t = \delta_t + (\gamma\lambda) \delta_{t+1} + \dots + (\gamma\lambda)^{T-t+1} \delta_{T-1}
   $
   ここで、$ \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) $ である。
6. 各イテレーションで、$ N $ 個の並列アクターが $ T $ ステップ分のデータを収集し、ミニバッチ確率的勾配法 (通常はAdam) を用いて $ K $ エポックで損失関数を最適化する。

(※この部分の処理方法は、さっぱり分からない)

**③改良点・工夫点・テクニック等の記載**

- 代理損失関数にエントロピーボーナスや値関数誤差項を加えることで、ポリシーの探索を促進し、収束を早める工夫が施されている。
- Generalized Advantage Estimation (GAE) のトランケート版を使用することで、再帰的なニューラルネットワークに適したアドバンテージ推定が可能となっている。

**④メカニズムの解明・なぜそうなるのか等の記載**

- エントロピーボーナスを加えることで、探索の多様性が確保され、最適解に収束するまでに局所的最適解に陥るのを防ぐ役割を果たしている。
- アドバンテージ推定値の分散を減らすために状態価値関数 $ V(s) $ を用いる。これにより、更新時の勾配のばらつきが減少し、安定した学習が可能になる。
- 複数のアクターが並列にデータを収集することで、データ効率が向上し、学習の高速化が図られている。

**⑤性能が向上した記載**

- 特定の性能向上についての記載はないが、エントロピーボーナスや値関数誤差項の導入によって探索の多様性が保たれ、安定した学習が可能になるとされている。また、並列アクターの使用により、効率的なデータ収集と高速な学習が達成されている。

:::note info
生成AIの回答内容は、論文の記載内容がそのまま反映されているが、

方策勾配学習について、基本的な式・変数記号を知っていないと、理解できない。

(※この部分の処理方法は、さっぱり分からない)
(※どうやってPPOのobjectiveをInstructGPTのobjectiveに適用するのか、式がつながらない)
:::

**▼質問(人間)**
続けて下記の質問に追加で回答下さい:
⑥比較の記載があれば違いを表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば明記)
⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば記載)
⑧具体的な数値の記載を全て列挙して、表にまとめて下さい。(必ず正しく数値を抜き取る事、|数値|説明|の表へ)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)

**▼生成AIの回答(ChatGPT-4o)**
**⑥比較の記載**

この節には、他手法との比較は明示されていない。ただし、異なる手法の詳細を説明する中で、以下の違いが暗示されている。

| 比較点                | $ L_{CLIP} $ と $ L_{KLpen} $ の違い                    | GAE と有限ホライズン推定 (Finite-Horizon Estimators) の違い           |
|-----------------------|----------------------------------------------------|-------------------------------------------------------------|
| アドバンテージ推定方法 | $ L_{CLIP} $ はクリッピングによる勾配の安定性を提供 | GAE は $ \lambda $ によって長期的な割引推定を導入            |
| 探索性の確保           | エントロピーボーナスを用いる                          | 有限ホライズンでは、$ T $ を超える探索が行われない              |
| 使用する更新方法       | ミニバッチ確率的勾配法 (SGD または Adam)            | 固定長の軌跡セグメントを使い、ポリシーの更新を行う                |

**⑦上記⑥以外で表に出来そうな部分**

| 項目                           | 説明                                                                                     |
|------------------------------|----------------------------------------------------------------------------------------|
| 損失関数の定義                   | $ L_{CLIP+VF+S}^t(\theta) = \hat{E}_t[L_{CLIP}^t(\theta) - c1 L_{VF}^t(\theta) + c2 S[\pi_\theta](s_t)] $ |
| アドバンテージ推定の定義             | $ \hat{A}_t = \delta_t + (\gamma\lambda) \delta_{t+1} + \dots + (\gamma\lambda)^{T-t+1} \delta_{T-1} $    |
| 固定長の軌跡セグメントを使用する理由  | 再帰的ニューラルネットワークに適しており、時系列のデータを効率的に処理するため                                      |
| 主要なハイパーパラメータ            | $ c1 $, $ c2 $, $ \gamma $, $ \lambda $, $ T $                                                        |

**⑧具体的な数値の記載**

| 数値      | 説明                                      |
|-----------|-------------------------------------------|
| $ c1 $  | 値関数誤差項の重み付け係数                          |
| $ c2 $  | エントロピーボーナスの重み付け係数                       |
| $ \gamma $ | 割引率 (未来の報酬に対する重み付け)                    |
| $ \lambda $ | GAE におけるアドバンテージ推定のトランケーションパラメータ |
| $ T $    | 軌跡セグメントの固定長                               |
| $ K $    | エポック数 (ミニバッチの最適化に使用)                    |

**⑨具体的な変数名(数式用の記号)**

| 変数名                | 説明                                                                 |
|-----------------------|----------------------------------------------------------------------|
| $ L_{CLIP} $        | クリップされた代理損失関数                                               |
| $ L_{KLpen} $       | KLペナルティ付き代理損失関数                                            |
| $ L_{VF} $          | 値関数誤差 (二乗誤差)                                                   |
| $ S[\pi_\theta](s_t) $ | エントロピーボーナス                                                    |
| $ \delta_t $        | TDエラー (時刻 t における報酬と価値の差)                                   |
| $ \hat{A}_t $       | 時刻 t におけるアドバンテージ推定                                        |
| $ V(s) $            | 状態価値関数                                                         |
| $ \gamma $          | 割引率                                                               |
| $ \lambda $         | GAE におけるトランケーションパラメータ                                  |
| $ T $               | 固定長軌跡セグメントの長さ                                                |
| $ K $               | ミニバッチ最適化に使用されるエポック数                                      |

##   6 Experiments
###   6.1 Comparison of Surrogate Objectives

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
6 Experiments
6.1 Comparison of Surrogate Objectives
First, we compare several different surrogate objectives under different hyperparameters. Here, we
compare the surrogate objective LCLIP to several natural variations and ablated versions.
No clipping or penalty: Lt(θ) = rt(θ) ˆAt
Clipping: Lt(θ) = min(rt(θ) ˆAt, clip(rt(θ)), 1 − ϵ, 1 + ϵ) ˆAt
KL penalty (fixed or adaptive) Lt(θ) = rt(θ) ˆAt − β KL[πθold , πθ]
For the KL penalty, one can either use a fixed penalty coefficient β or an adaptive coefficient as
described in Section 4 using target KL value dtarg. Note that we also tried clipping in log space,
but found the performance to be no better.
Because we are searching over hyperparameters for each algorithm variant, we chose a compu-
tationally cheap benchmark to test the algorithms on. Namely, we used 7 simulated robotics tasks2
implemented in OpenAI Gym [Bro+16], which use the MuJoCo [TET12] physics engine. We do
one million timesteps of training on each one. Besides the hyperparameters used for clipping (ϵ)
and the KL penalty (β, dtarg), which we search over, the other hyperparameters are provided in in
Table 3.
To represent the policy, we used a fully-connected MLP with two hidden layers of 64 units,
and tanh nonlinearities, outputting the mean of a Gaussian distribution, with variable standard
deviations, following [Sch+15b; Dua+16]. We don’t share parameters between the policy and value
function (so coefficient c1 is irrelevant), and we don’t use an entropy bonus.
Each algorithm was run on all 7 environments, with 3 random seeds on each. We scored each
run of the algorithm by computing the average total reward of the last 100 episodes. We shifted
and scaled the scores for each environment so that the random policy gave a score of 0 and the best
result was set to 1, and averaged over 21 runs to produce a single scalar for each algorithm setting.
The results are shown in Table 1. Note that the score is negative for the setting without clipping
or penalties, because for one environment (half cheetah) it leads to a very negative score, which is
worse than the initial random policy.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
⑥比較の記載があれば違いを表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば明記)
⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば記載)
⑧具体的な数値の記載を全て列挙して、表にまとめて下さい。(必ず正しく数値を抜き取る事、|数値|説明|の表へ)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
⑩図/表があれば、各図/表は何を主張するためのものかを説明下さい。(掲載理由・注目ポイント等)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

この節は、複数の代理目的関数 (surrogate objectives) の比較実験に関する記載である。特に、クリッピングを用いた代理損失関数 $ L_{CLIP} $ と、ペナルティを加えた $ L_{KLpen} $ の効果を比較している。要旨は以下の通りである:
- クリッピングやペナルティを加えた損失関数の有効性を比較
- 7つのシミュレーション環境での評価に基づく実験
- 結果の定量化により、クリッピングとペナルティなしの手法が悪いパフォーマンスを示す

**②具体的な処理方法の記載**

1. クリッピングやペナルティのある代理損失関数を用いた目的関数を定義し、各手法の性能を比較する。
   - **クリッピングなし**: $ L_t(\theta) = r_t(\theta) \hat{A}_t $
   - **クリッピングあり**: $ L_t(\theta) = \min(r_t(\theta) \hat{A}_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) \hat{A}_t) $
   - **KLペナルティ付き**: $ L_t(\theta) = r_t(\theta) \hat{A}_t - \beta \text{KL}[\pi_{\theta_{old}}, \pi_{\theta}] $
2. 7つのロボティクスシミュレーション環境 (MuJoCo) を使用し、各環境で100万ステップのトレーニングを行う。
3. ハイパーパラメータ (クリッピング係数 $ \epsilon $ やペナルティ係数 $ \beta $, 目標KL値 $ d_{targ} $) を探索し、他のハイパーパラメータは固定値を使用。
4. 各手法は、3つの異なる乱数シードで21回実行され、結果は最後の100エピソードの平均報酬で評価される。

**③改良点・工夫点・テクニック等の記載**

- クリッピングなしやペナルティなしの設定では、パフォーマンスが低下する傾向がある。特に、Half Cheetah 環境で顕著であった。
- 各環境の得点は、乱数ポリシーの得点を0、最良の結果を1にスケーリングし、アルゴリズム設定ごとの結果を比較した。
- KLペナルティの係数 $ \beta $ は固定値または適応型として設定できる。適応型では目標KL値 $ d_{targ} $ に基づいて調整される (詳細は第4章参照)。

**④メカニズムの解明・なぜそうなるのか等の記載**

クリッピングとペナルティは、ポリシー更新時の不安定さを防ぐために機能する。クリッピングを導入することで、勾配の急激な変化を抑制し、学習の安定性が向上する。また、KLペナルティを導入することで、新しいポリシーが古いポリシーから急激に変化しないように調整される。

**⑤性能が向上した記載**

クリッピングやペナルティなしでは、特にHalf Cheetah環境において負のスコアを示し、ランダムポリシーよりも悪い結果となった。他の設定では、クリッピングやペナルティを加えることで、結果が向上している。これにより、特定のハイパーパラメータ設定がモデルの安定性とパフォーマンスに寄与することが示されている (表1参照)。

**⑥比較の記載**

以下に異なる代理目的関数の違いを表でまとめる。

| 設定                        | 損失関数定義                                                                   | パフォーマンス結果                 |
|-----------------------------|------------------------------------------------------------------------------|----------------------------------|
| クリッピングなし             | $ L_t(\theta) = r_t(\theta) \hat{A}_t $                                    | Half Cheetah環境で負のスコアを記録 |
| クリッピングあり             | $ L_t(\theta) = \min(r_t(\theta) \hat{A}_t, \text{clip}(r_t(\theta))) \hat{A}_t $ | 安定した学習を示す                   |
| KLペナルティ (固定または適応) | $ L_t(\theta) = r_t(\theta) \hat{A}_t - \beta \text{KL}[\pi_{\theta_{old}}, \pi_{\theta}] $ | 若干のパフォーマンス向上が確認される   |

(対応する図/表: 表1)

**⑦上記⑥以外で表に出来そうな部分**

表にするべき新たな部分は無し。

**⑧具体的な数値の記載**

| 数値               | 説明                                                     |
|--------------------|----------------------------------------------------------|
| 100万ステップ        | 各環境でのトレーニングに使用されたステップ数                |
| 64                 | 各隠れ層のユニット数 (MLP)                                  |
| 3つの乱数シード     | 各アルゴリズムの実行回数                                   |
| $ \epsilon $       | クリッピングに使用される係数                                |
| $ \beta $          | KLペナルティ係数 (固定または適応)                          |
| $ d_{targ} $      | 目標KL値 (適応型KLペナルティのための)                       |

**⑨具体的な変数名(数式用の記号)**

| 変数名                   | 説明                                                  |
|--------------------------|-------------------------------------------------------|
| $ L_t(\theta) $         | 各手法の代理損失関数                                    |
| $ r_t(\theta) $         | 時刻 t におけるポリシー比率                                 |
| $ \hat{A}_t $           | アドバンテージ推定                                        |
| $ \beta $               | KLペナルティ係数                                          |
| $ \text{KL}[\pi_{\theta_{old}}, \pi_{\theta}] $ | KL発散度 (古いポリシーと新しいポリシー間の)                       |
| $ \epsilon $            | クリッピングに使用される閾値                                 |
| $ d_{targ} $            | 目標とするKL発散度                                        |

**⑩図/表があれば、各図/表は何を主張するためのものか**

- **表1**: 複数の代理目的関数の結果を比較するための表であり、クリッピングやKLペナルティの有効性を示している。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/486186d8-c50b-2c00-6e99-02dcab614416.png)

##   6.2 Comparison to Other Algorithms in the Continuous Domain

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
6.2 Comparison to Other Algorithms in the Continuous Domain
Next, we compare PPO (with the “clipped” surrogate objective from Section 3) to several other
methods from the literature, which are considered to be effective for continuous problems. We com-
pared against tuned implementations of the following algorithms: trust region policy optimization
[Sch+15b], cross-entropy method (CEM) [SL06], vanilla policy gradient with adaptive stepsize3,
A2C [Mni+16], A2C with trust region [Wan+16]. A2C stands for advantage actor critic, and is
a synchronous version of A3C, which we found to have the same or better performance than the
asynchronous version. For PPO, we used the hyperparameters from the previous section, with
ϵ = 0.2. We see that PPO outperforms the previous methods on almost all the continuous control
environments.

Figure 3: Comparison of several algorithms on several MuJoCo environments, training for one million
timesteps.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
⑥比較の記載があれば違いを表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば明記)
⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば記載)
⑧具体的な数値の記載を全て列挙して、表にまとめて下さい。(必ず正しく数値を抜き取る事、|数値|説明|の表へ)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
⑩図/表があれば、各図/表は何を主張するためのものかを説明下さい。(掲載理由・注目ポイント等)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

この節は、PPO（「クリッピング」代理目的関数を用いた手法）が、連続制御タスクにおける他のアルゴリズムと比較してどのようにパフォーマンスするかについて記載されている。要旨は以下の通りである:
- PPOは他の連続領域の強化学習アルゴリズムと比較されている
- 比較対象のアルゴリズムには、TRPO、CEM、Vanilla Policy Gradient、A2C、A2C with Trust Regionが含まれる
- MuJoCo環境での評価結果において、PPOがほぼすべての環境で他の手法を上回っている

**②具体的な処理方法の記載**

1. PPOは「クリッピング」代理目的関数を使用し、ハイパーパラメータ $ \epsilon = 0.2 $ を設定している。
2. 比較に使用されたアルゴリズムは以下の通りである:
   - **TRPO**: Trust Region Policy Optimization (TRPO) [Schulman et al., 2015b]
   - **CEM**: Cross-Entropy Method (CEM) [Szita and Lörincz, 2006]
   - **Vanilla Policy Gradient**: アダプティブなステップサイズを用いた標準的なポリシー勾配法
   - **A2C**: Advantage Actor-Critic [Mnih et al., 2016]
   - **A2C with Trust Region**: A2CにTRPOの要素を組み合わせたもの [Wang et al., 2016]
3. MuJoCo環境で1,000,000ステップのトレーニングを行い、それぞれのアルゴリズムのパフォーマンスを比較している。
4. PPOは、第6.1節で説明されたハイパーパラメータ設定を引き継ぎ、MuJoCo環境でのパフォーマンスを評価している。

**③改良点・工夫点・テクニック等の記載**

PPOの最大の工夫点は「クリッピング」代理目的関数を用いる点にあり、これによりポリシーの急激な更新を抑制し、より安定した学習を可能にしている。さらに、PPOはTRPOの制約を緩和し、計算コストを削減しながらも同等かそれ以上の性能を発揮する。

**④メカニズムの解明・なぜそうなるのか等の記載**

PPOはTRPOと比較して、ポリシー更新の際に適応的なKLペナルティを導入する代わりに、簡便なクリッピングを使用している。このクリッピングにより、更新が過度に大きくならないように制御され、学習が安定する。この仕組みが、PPOの連続制御タスクでの優れたパフォーマンスにつながっている。

**⑤性能が向上した記載**

PPOは、MuJoCo環境において他のアルゴリズム（TRPO, CEM, Vanilla Policy Gradient, A2C, A2C with Trust Region）よりもほぼすべてのタスクで優れたパフォーマンスを示している (図3参照)。特にPPOは、TRPOよりも計算コストが低いにもかかわらず、ほぼ同等かそれ以上の成果を挙げている。

**⑥比較の記載**

以下にPPOと他のアルゴリズムの違いを表でまとめる。

| アルゴリズム              | 特徴                                                                  | PPOとのパフォーマンス比較           |
|---------------------------|---------------------------------------------------------------------|----------------------------------|
| TRPO                       | ポリシー更新のためのKLペナルティと大規模な制約を用いる                  | 計算コストが高いが性能は近い         |
| CEM                        | サンプルベースの探索手法で、最良の軌道を選択する                       | PPOよりも劣る                      |
| Vanilla Policy Gradient     | アダプティブなステップサイズを持つ標準的なポリシー勾配法                 | PPOに対してパフォーマンスが低い       |
| A2C                        | 同期版アドバンテージアクタークリティック (A3Cの同期版)                | PPOよりもパフォーマンスが低い         |
| A2C with Trust Region       | A2CにTRPOの要素を追加                                               | A2Cより若干パフォーマンスが良いがPPOには劣る |

(対応する図: 図3)

**⑦上記⑥以外で表に出来そうな部分**

表にするべき新たな部分は無し。

**⑧具体的な数値の記載**

| 数値                  | 説明                                                  |
|-----------------------|-------------------------------------------------------|
| $ \epsilon = 0.2 $   | PPOで使用されたクリッピング閾値                          |
| 1,000,000 ステップ     | 各アルゴリズムがMuJoCo環境でトレーニングされたステップ数     |
| ほぼすべての環境で優位 | PPOが他のアルゴリズムに対して示した優れたパフォーマンス       |

**⑨具体的な変数名(数式用の記号)**

| 変数名                   | 説明                                                  |
|--------------------------|-------------------------------------------------------|
| $ \epsilon $            | PPOのクリッピング閾値                                   |
| $ L_{CLIP} $            | PPOのクリッピング付き代理目的関数                        |
| KLペナルティ              | TRPOが用いるポリシーの更新制約                             |

**⑩図/表があれば、各図/表は何を主張するためのものか**

- **図3**: 複数のアルゴリズムがMuJoCo環境でどのようにパフォーマンスするかを示すもので、PPOがほぼすべての環境で他の手法を上回っていることを主張している。この図は、PPOの有効性を視覚的に確認するために掲載されている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/09b6d122-ac30-1b35-2e2e-f35db79020b8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/208e4274-a42d-a154-c1f3-c39bcf0a0b48.png)

##   6.3 Showcase in the Continuous Domain: Humanoid Running and Steering

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
6.3 Showcase in the Continuous Domain: Humanoid Running and Steering
To showcase the performance of PPO on high-dimensional continuous control problems, we train
on a set of problems involving a 3D humanoid, where the robot must run, steer, and get up
off the ground, possibly while being pelted by cubes. The three tasks we test on are (1) Ro-
boschoolHumanoid: forward locomotion only, (2) RoboschoolHumanoidFlagrun: position of target
is randomly varied every 200 timesteps or whenever the goal is reached, (3) RoboschoolHumanoid-
FlagrunHarder, where the robot is pelted by cubes and needs to get up off the ground. See Figure 5
for still frames of a learned policy, and Figure 4 for learning curves on the three tasks. Hyperpa-
rameters are provided in Table 4. In concurrent work, Heess et al. [Hee+17] used the adaptive KL
variant of PPO (Section 4) to learn locomotion policies for 3D robots.

Figure 4: Learning curves from PPO on 3D humanoid control tasks, using Roboschool.

Figure 5: Still frames of the policy learned from RoboschoolHumanoidFlagrun. In the first six frames, the
robot runs towards a target. Then the position is randomly changed, and the robot turns and runs toward
the new target.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
⑥比較の記載があれば違いを表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば明記)
⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば記載)
⑧具体的な数値の記載を全て列挙して、表にまとめて下さい。(必ず正しく数値を抜き取る事、|数値|説明|の表へ)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
⑩図/表があれば、各図/表は何を主張するためのものかを説明下さい。(掲載理由・注目ポイント等)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

この節は、高次元の連続制御問題におけるPPOの性能を実証するために、3Dヒューマノイドロボットを用いたタスクに関する実験結果を記載している。要旨は以下の通りである:
- PPOを用いて3Dヒューマノイドロボットのランニングや操縦、障害を克服するタスクを実行
- 3つのタスクで評価されている: 前進のみの移動、目標位置のランダムな変更、障害物を避けながら起き上がる動作
- ロボットの動作が映像フレームで示され、学習曲線が提供されている（図4, 図5）

**②具体的な処理方法の記載**

1. タスクの詳細:
   - **RoboschoolHumanoid**: 前進のみの移動を目的としたタスク。
   - **RoboschoolHumanoidFlagrun**: 200タイムステップごと、またはゴールに到達するたびに目標位置がランダムに変わるタスク。
   - **RoboschoolHumanoidFlagrunHarder**: ロボットが障害物（キューブ）に当たる中で、起き上がることを含むタスク。
2. ハイパーパラメータはTable 4に記載されており、これに基づいて学習を実施。
3. ロボットは1,000,000ステップまでトレーニングされ、3つのタスクで学習曲線が観察されている（図4参照）。
4. Roboschoolフレームワークを使用して、ヒューマノイドの動作ポリシーを学習している。
5. また、Heessら[Hee+17]の研究においては、適応的KL変種のPPOを用いて3Dロボットの移動ポリシーを学習した。

**③改良点・工夫点・テクニック等の記載**

PPOを用いた高次元の連続制御問題に対する適応性と効率性が大きな改良点である。特に、以下の点が工夫されている:
- 複雑なタスク（障害物の回避や起き上がり動作）に対しても、PPOが安定して学習できる点。
- ハイパーパラメータチューニングによるタスクごとの最適化。

**④メカニズムの解明・なぜそうなるのか等の記載**

PPOの「クリッピング」代理目的関数が安定したポリシー更新をもたらし、高次元の連続制御問題にも適用可能である。特に、障害物回避や起き上がりといった複雑な動作でも、過度なポリシー更新を防ぐことにより、学習が安定しやすい。また、適応的なKL制御が一部の変種で使用されており、これがPPOの有効性をさらに高めていると考えられる。

**⑤性能が向上した記載**

PPOは3Dヒューマノイドロボットのタスクにおいて高いパフォーマンスを示しており、学習曲線においてもタスクごとに学習が進む様子が視覚的に確認できる（図4参照）。特に、難易度の高いタスク（RoboschoolHumanoidFlagrunHarder）でも、ロボットが障害物を回避し、起き上がることができるようになっている（図5参照）。

**⑥比較の記載**

以下に、3つのタスクの難易度とロボットの動作の違いを表でまとめる。

| タスク名称                    | タスク内容                                       | 難易度  | ロボットの主な動作                              |
|-----------------------------|-------------------------------------------------|---------|---------------------------------------------|
| RoboschoolHumanoid           | 前進のみの移動                                   | 低      | 前進走行                                     |
| RoboschoolHumanoidFlagrun    | 目標位置がランダムに変更される                     | 中      | ターゲット方向の変更に適応し走行               |
| RoboschoolHumanoidFlagrunHarder | 障害物を避けながら、転倒後に起き上がる               | 高      | 障害物を回避し、転倒後に立ち上がって再び走行     |

（対応する図: 図4, 図5）

**⑦上記⑥以外で表に出来そうな部分**

タスクのハイパーパラメータ設定が表にできるが、詳細はTable 4に記載されている。

**⑧具体的な数値の記載**

| 数値                            | 説明                                          |
|---------------------------------|---------------------------------------------|
| 1,000,000 ステップ               | PPOが各タスクでトレーニングされたステップ数       |
| 200タイムステップ                | RoboschoolHumanoidFlagrunで目標位置が変更される頻度  |

**⑨具体的な変数名(数式用の記号)**

| 変数名                            | 説明                                         |
|-----------------------------------|---------------------------------------------|
| KLペナルティ                      | Heessらが使用した適応的KLペナルティ (適応的KL変種のPPO)   |
| タイムステップ (Timesteps)         | 学習プロセスにおける各ステップの単位                   |

**⑩図/表があれば、各図/表は何を主張するためのものか**

- **図4**: 3Dヒューマノイドの制御タスクにおけるPPOの学習曲線を示している。この図は、各タスクにおいてPPOがどのように学習し、最適な動作を学んでいくかを視覚的に表現しており、タスクごとの学習速度やパフォーマンスの差異を観察するために掲載されている。
- **図5**: RoboschoolHumanoidFlagrunにおける学習されたポリシーのスチルフレームで、目標位置が変更された際にロボットがどのように適応して新しい方向に走るかを示している。これは、PPOがどのようにしてリアルタイムで目標に適応できるかを視覚的に説明するために掲載されている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/786cbec1-9f72-eedc-5a3f-4dc9ab4c94f6.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/db4f61a3-96f0-a4a2-0e09-c75bcc3b397c.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/42dc47eb-2cd5-f65e-8701-ce3ae2b7afe3.png)

##   6.4 Comparison to Other Algorithms on the Atari Domain

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
6.4 Comparison to Other Algorithms on the Atari Domain
We also ran PPO on the Arcade Learning Environment [Bel+15] benchmark and compared against
well-tuned implementations of A2C [Mni+16] and ACER [Wan+16]. For all three algorithms, we
used the same policy network architechture as used in [Mni+16]. The hyperparameters for PPO
are provided in Table 5. For the other two algorithms, we used hyperparameters that were tuned
to maximize performance on this benchmark.
A table of results and learning curves for all 49 games is provided in Appendix B. We consider
the following two scoring metrics: (1) average reward per episode over entire training period (which
favors fast learning), and (2) average reward per episode over last 100 episodes of training (which
favors final performance). Table 2 shows the number of games “won” by each algorithm, where we
compute the victor by averaging the scoring metric across three trials.

A2C ACER PPO Tie
(1) avg. episode reward over all of training 1 18 30 0
(2) avg. episode reward over last 100 episodes 1 28 19 1
Table 2: Number of games “won” by each algorithm, where the scoring metric is averaged across three trials.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
⑥比較の記載があれば違いを表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば明記)
⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば記載)
⑧具体的な数値の記載を全て列挙して、表にまとめて下さい。(必ず正しく数値を抜き取る事、|数値|説明|の表へ)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
⑩図/表があれば、各図/表は何を主張するためのものかを説明下さい。(掲載理由・注目ポイント等)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

この節は、AtariゲームドメインでのPPOの性能を、他のアルゴリズム（A2C, ACER）と比較して評価したものである。要旨は以下の通りである:
- Atariゲームのベンチマーク（Arcade Learning Environment）で、PPOとA2C, ACERの3つのアルゴリズムを比較。
- 49のゲームで、エピソードごとの平均報酬と最終100エピソードの平均報酬という2つのスコアリングメトリクスで評価。
- 結果として、全期間の報酬平均ではPPOが最も多くのゲームで勝利したが、最終100エピソードではACERが優勢であった。

**②具体的な処理方法の記載**

- **実験環境**: Arcade Learning Environmentを使用し、49種類のAtariゲームでテスト。
- **ネットワークアーキテクチャ**: Mnih et al. [Mni+16]で使用されたポリシーネットワークアーキテクチャを3つのアルゴリズム（PPO, A2C, ACER）すべてで使用。
- **ハイパーパラメータ**: PPOのハイパーパラメータはTable 5に記載され、他の2つのアルゴリズムはこのベンチマークで最適なパフォーマンスを発揮するようチューニングされている。
- **スコアリングメトリクス**:
  1. トレーニング期間全体を通じたエピソードごとの平均報酬。
  2. 最終100エピソードのエピソードごとの平均報酬。
- **試行回数**: それぞれのスコアは3回の試行において平均化されている。

**③改良点・工夫点・テクニック等の記載**

PPOの「クリッピング」代理目的関数が、過度なポリシー更新を防ぎ、Atariのような複雑な環境でも安定して学習できる点が強化されている。また、全てのアルゴリズムで統一されたネットワークアーキテクチャを使用することで、公平な比較が可能となっている。

**④メカニズムの解明・なぜそうなるのか等の記載**

PPOの安定した学習は、クリッピングを使用したことで、過剰なポリシーの更新が抑制されるためである。また、ACERはトラストリージョン手法を使用しているため、最終100エピソードの報酬において優位に立つ結果となったと考えられる。これは、ACERが後半の学習でポリシーをより洗練するメカニズムが作用した可能性が高い。

**⑤性能が向上した記載**

Table 2に記載されている通り、以下の2つのスコアリングメトリクスで性能を評価している:
1. **全トレーニング期間の平均エピソード報酬**: PPOが30のゲームで勝利し、ACERが18、A2Cが1つのゲームで勝利した。
2. **最終100エピソードの平均エピソード報酬**: ACERが28のゲームで勝利し、PPOが19、A2Cが1つのゲームで勝利した。

**⑥比較の記載**

3つのアルゴリズム（A2C, ACER, PPO）のゲーム勝利数を以下の表にまとめる。

| メトリクス                             | A2Cの勝利数 | ACERの勝利数 | PPOの勝利数 | 引き分け数 |
|---------------------------------------|------------|--------------|-------------|----------|
| 全トレーニング期間の平均エピソード報酬 | 1          | 18           | 30          | 0        |
| 最終100エピソードの平均エピソード報酬  | 1          | 28           | 19          | 1        |

（対応する図表: Table 2）

**⑦上記⑥以外で表に出来そうな部分**

無し。

**⑧具体的な数値の記載**

| 数値                                   | 説明                                                   |
|---------------------------------------|------------------------------------------------------|
| 49                                   | Atariゲームの総数                                        |
| 1                                    | 全トレーニング期間の平均エピソード報酬におけるA2Cの勝利数   |
| 18                                   | 全トレーニング期間の平均エピソード報酬におけるACERの勝利数 |
| 30                                   | 全トレーニング期間の平均エピソード報酬におけるPPOの勝利数 |
| 1                                    | 最終100エピソードの平均エピソード報酬におけるA2Cの勝利数  |
| 28                                   | 最終100エピソードの平均エピソード報酬におけるACERの勝利数 |
| 19                                   | 最終100エピソードの平均エピソード報酬におけるPPOの勝利数  |
| 1                                    | 最終100エピソードの平均エピソード報酬における引き分け数    |

**⑨具体的な変数名(数式用の記号)**

| 変数名  | 説明                                         |
|--------|--------------------------------------------|
| avg. episode reward | 平均エピソード報酬 (エピソードごとの報酬を平均化したもの)      |
| last 100 episodes  | 最終100エピソードの平均報酬                       |

**⑩図/表があれば、各図/表は何を主張するためのものか**

- **Table 2**: 各アルゴリズムがいくつのゲームで勝利したかを示す表である。この表は、全トレーニング期間の平均エピソード報酬と、最終100エピソードの平均エピソード報酬に基づく勝者を示し、各アルゴリズムのパフォーマンスを比較するために使用されている。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/40957880-60ce-f6a0-68dc-5e130ded5526.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/d8570257-3599-9427-5416-14364c92bffa.png)

##   7 Conclusion

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
7 Conclusion
We have introduced proximal policy optimization, a family of policy optimization methods that use
multiple epochs of stochastic gradient ascent to perform each policy update. These methods have
the stability and reliability of trust-region methods but are much simpler to implement, requiring
only few lines of code change to a vanilla policy gradient implementation, applicable in more general
settings (for example, when using a joint architecture for the policy and value function), and have
better overall performance.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

本節は、Proximal Policy Optimization（PPO）に関する結論である。要旨は以下の通りである:
- PPOは、複数のエポックで確率的勾配上昇法を用いてポリシー更新を行うポリシー最適化手法である。
- 本手法は、信頼領域法（Trust-Region Methods）の安定性と信頼性を保持しながら、より実装が簡単である。
- PPOは、標準的なポリシー勾配法に対して数行のコード変更で実装可能であり、より一般的な設定にも適用可能である（例: ポリシーと価値関数の結合アーキテクチャでの使用）。
- 全体的に、PPOは既存手法に対して優れた性能を示した。

**②具体的な処理方法の記載**

PPOは、以下の手順に従ってポリシーを更新する:
- 複数エポックにわたって確率的勾配上昇法を適用し、ポリシーを更新する。
- クリッピングを用いた目的関数を使用して、更新時のポリシー変化を抑制する（これにより過度な更新が防がれる）。
- 信頼領域法に匹敵する安定性を持ちながら、実装が簡易である点が強調されている。
- ポリシーと価値関数の結合アーキテクチャにも適用可能で、他の強化学習タスクでも汎用的に利用可能である。

**③改良点・工夫点・テクニック等の記載**

PPOは、信頼領域法の安定性を保ちながら、以下の点で簡素化を実現している:
- 実装に必要なコード変更が少ないこと。
- クリッピング手法による目的関数の工夫により、ポリシーの大幅な変動を抑制する技術が使われている。
- ポリシーと価値関数を共有するアーキテクチャなど、複雑な設定にも適用できる柔軟性がある。

**④メカニズムの解明・なぜそうなるのか等の記載**

PPOが安定性を持ちつつも高い性能を発揮する理由は、クリッピングによる目的関数の調整により、ポリシーの更新が過度に行われることを防ぎ、学習が破壊されるリスクを軽減するためである。これにより、学習の安定性が向上し、信頼領域法に匹敵する性能が実現できる。

**⑤性能が向上した記載**

本手法は、既存の信頼領域法と同等の安定性と信頼性を提供しつつ、実装が簡素化されている点で性能が向上した。具体的な数値や図表は結論では示されていないが、「better overall performance」という表現が使用されていることから、他のポリシー最適化手法と比較して優れた結果を示したと結論づけている。

**▼質問(人間)**
標準的なポリシー勾配法を説明下さい。

**▼生成AIの回答(ChatGPT-4o)**
標準的なポリシー勾配法（Vanilla Policy Gradient）とは、強化学習におけるエージェントの方策（ポリシー）を直接最適化するための手法である。この手法では、エージェントの行動方策をパラメータ化し、そのパラメータを報酬を最大化するように調整する。

**標準的なポリシー勾配法の主な特徴と手順:**

1. **方策のパラメータ化**
   - 方策を確率分布としてモデル化し、その確率分布をパラメータ $\theta$ で表現する。
   - 方策 $\pi_{\theta}(a|s)$ は、状態 $s$ に対して行動 $a$ を取る確率を表す。

2. **報酬の期待値最大化**
   - エージェントは、各エピソードにおいて累積報酬（return）の期待値を最大化することを目的とする。
   - 累積報酬は以下のように定義される:
     $
     R(\tau) = \sum_{t=0}^{T} \gamma^t r_t
     $
     ここで、$\tau$ はエピソードの軌跡、$\gamma$ は割引率、$r_t$ は時刻 $t$ に得られる報酬である。

3. **ポリシー勾配の計算**
   - 報酬の期待値を最大化するために、方策のパラメータ $\theta$ を勾配法で更新する。
   - ポリシー勾配の基本的な更新式は以下である:
     $
     \nabla_{\theta} J(\theta) = \mathbb{E}_{\tau \sim \pi_{\theta}} \left[ \sum_{t=0}^{T} \nabla_{\theta} \log \pi_{\theta}(a_t | s_t) R(\tau) \right]
     $
     ここで、$J(\theta)$ は累積報酬の期待値、$\log \pi_{\theta}(a_t | s_t)$ は方策の勾配である。

4. **エピソードのサンプリング**
   - 方策 $\pi_{\theta}(a|s)$ に従ってエピソードをサンプリングし、得られた累積報酬を基に勾配を計算する。
   - サンプリングされたエピソードごとの報酬の期待値に基づき、方策パラメータ $\theta$ を更新する。

5. **方策の更新**
   - パラメータ更新は、通常の勾配法に従い、次のように行われる:
     $
     \theta \leftarrow \theta + \alpha \nabla_{\theta} J(\theta)
     $
     ここで、$\alpha$ は学習率である。

**標準的なポリシー勾配法の課題**

- **高い分散**: ポリシー勾配の推定には分散が大きく、学習が不安定になることが多い。
- **エピソード全体での更新**: 標準的なポリシー勾配法では、エピソード全体が終了するまで報酬を計算できないため、長いエピソードでは非効率になる。
- **局所最適への収束**: 勾配法の特性上、局所最適解に収束する可能性がある。

標準的なポリシー勾配法はシンプルであり、実装が容易だが、上記の課題を解決するために、様々な改良手法（例えばPPOやTRPOなど）が提案されている。

##   A Hyperparameters

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
A Hyperparameters

Hyperparameter Value
Horizon (T) 2048
Adam stepsize 3 × 10−4
Num. epochs 10
Minibatch size 64
Discount (γ) 0.99
GAE parameter (λ) 0.95
Table 3: PPO hyperparameters used for the Mujoco 1 million timestep benchmark.

Hyperparameter Value
Horizon (T) 512
Adam stepsize ∗
Num. epochs 15
Minibatch size 4096
Discount (γ) 0.99
GAE parameter (λ) 0.95
Number of actors 32 (locomotion), 128 (flagrun)
Log stdev. of action distribution LinearAnneal(−0.7, −1.6)
Table 4: PPO hyperparameters used for the Roboschool experiments. Adam stepsize was adjusted based on
the target value of the KL divergence.

Hyperparameter Value
Horizon (T) 128
Adam stepsize 2.5 × 10−4 × α
Num. epochs 3
Minibatch size 32 × 8
Discount (γ) 0.99
GAE parameter (λ) 0.95
Number of actors 8
Clipping parameter ϵ 0.1 × α
VF coeff. c1 (9) 1
Entropy coeff. c2 (9) 0.01
Table 5: PPO hyperparameters used in Atari experiments. α is linearly annealed from 1 to 0 over the course
of learning.

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
⑥比較の記載があれば違いを表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば明記)
⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば記載)
⑧具体的な数値の記載を全て列挙して、表にまとめて下さい。(必ず正しく数値を抜き取る事、|数値|説明|の表へ)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
⑩図/表があれば、各図/表は何を主張するためのものかを説明下さい。(掲載理由・注目ポイント等)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

- 何についての記載か: この節では、PPO（Proximal Policy Optimization）における各種ハイパーパラメータが、異なる実験環境（Mujoco、Roboschool、Atari）においてどのように設定されているかが示されている。
- 要旨:
  - Mujoco環境におけるPPOのハイパーパラメータ設定が説明されている（表3）。
  - Roboschool環境におけるハイパーパラメータ設定の詳細が記載されている（表4）。
  - Atari環境におけるPPOの設定と、特にAdamのstepsizeとクリッピングパラメータが線形にアニーリングされることが強調されている（表5）。

**②具体的な処理方法の記載**

- Mujoco実験では、2048のホライゾン（T）、学習率としてAdamオプティマイザを使用し、stepsizeは $3 \times 10^{-4}$ に設定している。エポック数は10、ミニバッチサイズは64、割引率（γ）は0.99、GAEパラメータ（$\lambda$）は0.95である（表3）。
- Roboschool実験では、ホライゾンを512に設定し、エポック数を15、ミニバッチサイズを4096に設定している。32人のアクターが使用され、flagrunタスクでは128人のアクターを使用している。行動分布の標準偏差は線形アニーリングされている（表4）。
- Atari実験では、ホライゾンが128、エポック数は3、ミニバッチサイズは $32 \times 8$、クリッピングパラメータは線形アニーリングされる。エントロピー係数や価値関数の重みも設定されている（表5）。

**③改良点・工夫点・テクニック等の記載**

- Roboschool実験での行動分布の標準偏差が線形アニーリングされることにより、学習の安定性が向上している。
- Atari実験でのクリッピングパラメータとAdamのstepsizeが学習の進行に従ってアニーリングされることで、初期段階での大きな更新と、後半での安定した最適化を両立している。

**④メカニズムの解明・なぜそうなるのか等の記載**

- Adamのstepsizeやクリッピングパラメータのアニーリングにより、初期段階では大きなステップで探索を行い、最終的には安定した収束を目指すというメカニズムが機能している。この設定により、エージェントが早期に良い方策を発見し、後半にはその方策の微調整を行うことが可能となっている。

**⑤性能が向上した記載**

- Atari実験では、Adamのstepsizeやクリッピングパラメータの線形アニーリングが性能向上に寄与しているが、具体的な性能向上値や図表番号の記載はない。

**⑥比較の記載**

| 環境       | Horizon (T) | Adam stepsize     | エポック数 | ミニバッチサイズ | アクター数     | 割引率 (γ) | GAEパラメータ ($\lambda$) | クリッピングパラメータ | エントロピー係数 | 価値関数係数 |
|------------|-------------|-------------------|------------|------------------|---------------|------------|--------------------------|---------------------|----------------|---------------|
| Mujoco     | 2048        | $3 \times 10^{-4}$ | 10         | 64               | 無し          | 0.99       | 0.95                     | 無し                | 無し           | 無し          |
| Roboschool | 512         | 調整中             | 15         | 4096             | 32～128        | 0.99       | 0.95                     | 無し                | 無し           | 無し          |
| Atari      | 128         | $2.5 \times 10^{-4} \times \alpha$ | 3          | $32 \times 8$ | 8             | 0.99       | 0.95                     | $0.1 \times \alpha$ | 0.01           | 1             |

- 表6では、異なる環境ごとのハイパーパラメータの違いが比較されている。

**⑦上記⑥以外で表に出来そうな部分**

- 特に無し。

**⑧具体的な数値の記載**

| 数値                    | 説明                                         |
|-------------------------|----------------------------------------------|
| 2048                    | Mujoco実験のホライゾン                       |
| $3 \times 10^{-4}$     | Mujoco実験におけるAdamのstepsize             |
| 10                      | Mujoco実験のエポック数                       |
| 64                      | Mujoco実験のミニバッチサイズ                 |
| 512                     | Roboschool実験のホライゾン                   |
| 15                      | Roboschool実験のエポック数                   |
| 4096                    | Roboschool実験のミニバッチサイズ             |
| 128                     | Atari実験のホライゾン                        |
| $2.5 \times 10^{-4} \times \alpha$ | Atari実験におけるAdamのstepsize      |
| 3                       | Atari実験のエポック数                        |
| $32 \times 8$          | Atari実験のミニバッチサイズ                 |
| 0.99                    | 全実験共通の割引率                           |
| 0.95                    | 全実験共通のGAEパラメータ                    |
| $0.1 \times \alpha$    | Atari実験のクリッピングパラメータ            |
| 0.01                    | Atari実験のエントロピー係数                  |
| 1                       | Atari実験の価値関数係数                      |

**⑨具体的な変数名(数式用の記号)**

| 変数名                | 説明                             |
|-----------------------|----------------------------------|
| $T$                 | ホライゾン                       |
| $\alpha$            | Adamのstepsizeやクリッピングの係数 |
| $\gamma$            | 割引率                           |
| $\lambda$           | GAEパラメータ                    |
| $c_1$               | 価値関数の係数                   |
| $c_2$               | エントロピーの係数               |
| $\epsilon$          | クリッピングパラメータ            |

**⑩図/表があれば、各図/表は何を主張するためのものか**

- 表3, 表4, 表5: それぞれの環境で使用されるPPOのハイパーパラメータの設定を示す。

:::note info
「③改良点・工夫点・テクニック等の記載」では、表の内容のみから、生成AIが改良点を推測して、それらしい回答をしている。今回の場合は、もっともらしい回答内容となっている。
:::

##   B Performance on More Atari Games

**▼質問(人間)**
<details><summary>質問内容全体はここをクリック</summary>
(論文・記事の各章節を貼り付け)
B Performance on More Atari Games
Here we include a comparison of PPO against A2C on a larger collection of 49 Atari games. Figure 6
shows the learning curves of each of three random seeds, while Table 6 shows the mean performance.

Figure 6: Comparison of PPO and A2C on all 49 ATARI games included in OpenAI Gym at the time of
publication.

Table 6: Mean final scores (last 100 episodes) of PPO and A2C on Atari games after 40M game frames (10M
timesteps).

上記の内容に関して下記の質問に回答下さい: (である調で記載、質問に対して該当するものが無ければ無しと記載)
①何についての記載か? + 要旨は何? (要旨は箇条書きで記載、既存手法があれば引用元を記載)
②具体的な処理方法の記載があれば説明下さい。(簡略化せずに全て記載、既存手法があれば引用元を記載)
③改良点・工夫点・テクニック等の記載があれば説明下さい。
④メカニズムの解明・なぜそうなるのか等の記載があれば説明下さい。
⑤性能が向上した記載があれば説明下さい。(具体値があれば記載、対応する図/表番号があれば各文末に記載)
⑥比較の記載があれば違いを表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば明記)
⑦上記⑥以外で表に出来そうな部分があれば表でまとめて下さい。(下に解説を記載、対応する図/表番号があれば記載)
⑧具体的な数値の記載を全て列挙して、表にまとめて下さい。(必ず正しく数値を抜き取る事、|数値|説明|の表へ)
⑨具体的な変数名(数式用の記号)の記載を全て列挙して、表にまとめて下さい。(|変数名|説明|の表へ)
⑩図/表があれば、各図/表は何を主張するためのものかを説明下さい。(掲載理由・注目ポイント等)
</details>

**▼生成AIの回答(ChatGPT-4o)**
**①何についての記載か? + 要旨は何?**

- 何についての記載か: この節では、PPO（Proximal Policy Optimization）とA2C（Advantage Actor-Critic）のアルゴリズムが、49種類のAtariゲームでどのように比較されるかについて記述している。
- 要旨:
  - PPOとA2Cの性能比較が49のAtariゲームに対して行われている。
  - 図6では、ランダムシードごとの学習曲線が示されており、表6では最終100エピソードの平均スコアがまとめられている。

**②具体的な処理方法の記載**

- 49種類のAtariゲームに対して、PPOとA2Cの学習をそれぞれ実行し、40Mフレーム（10Mタイムステップ）後のパフォーマンスを評価している。
- 各アルゴリズムは、3つの異なるランダムシードで実行され、各シードに対する学習曲線が記録されている（図6）。
- 最後の100エピソードのスコアが記録され、平均化されている（表6）。

**③改良点・工夫点・テクニック等の記載**

- PPOは、A2Cに比べて安定した学習を行い、性能が向上する傾向にあるとされる。これにより、複数のランダムシードでの結果が安定しており、学習のばらつきが少なくなっている。

**④メカニズムの解明・なぜそうなるのか等の記載**

- PPOは、クリッピングやTRPOの制約により、方策の急激な変更を抑制するため、学習が安定して進む。このメカニズムが、A2Cと比較した際にPPOがより安定して高い性能を発揮する理由となっている。

**⑤性能が向上した記載**

- 表6に示されたように、PPOは40Mフレームのゲームプレイ後、A2Cよりも多くのゲームで優れたスコアを記録している。具体的な数値は表6で示されているが、この節においては詳細なスコアは記載されていない。

**⑥比較の記載**

| 比較項目             | PPO                          | A2C                          | 説明                                     |
|----------------------|------------------------------|------------------------------|------------------------------------------|
| 学習曲線の安定性     | 高い                         | ばらつきが多い               | 複数のシードでの学習曲線の比較（図6）   |
| 最終スコアの平均     | 高いスコアを記録することが多い | 一部のゲームでPPOに劣る       | 最終100エピソードのスコア（表6）        |
| 方策の更新方法       | クリッピングによる制約        | 方策に制約なし                | 方策の更新メカニズムの違い              |

**⑦上記⑥以外で表に出来そうな部分**

- 特に無し。

**⑧具体的な数値の記載**

| 数値                 | 説明                                         |
|----------------------|----------------------------------------------|
| 49                   | Atariゲームの数                               |
| 40M                  | ゲームフレーム数                             |
| 10M                  | タイムステップ数                             |
| 100                  | 最終スコアが記録されたエピソード数           |

**⑨具体的な変数名(数式用の記号)**

| 変数名                | 説明                             |
|-----------------------|----------------------------------|
| $S_{final}$         | 最終100エピソードのスコア          |
| $T_{steps}$         | タイムステップ数                   |
| $F_{frames}$        | ゲームフレーム数                   |
| $\mu(S)$            | スコアの平均値                     |

**⑩図/表があれば、各図/表は何を主張するためのものか**

- 図6: PPOとA2Cの49個のAtariゲームにおける学習曲線を示し、ランダムシードごとの性能差を可視化している。PPOはA2Cに比べ、シード間での学習のばらつきが少なく、安定していることがわかる。
- 表6: 49個のAtariゲームにおけるPPOとA2Cの最終100エピソードの平均スコアを比較している。PPOが全体的に高いスコアを記録していることが強調されている。

:::note info
「⑥比較の記載」では、生成AIが改良点を推測して、それらしい回答をしている。前回までの文脈の影響もある模様。

「⑨具体的な変数名」にある変数名は、本文中に存在しない。不適。
:::


#   あとがき

##   所感

機械学習についてある程度知っていないと、生成AIに質問しても、その回答内容だけでは理解できないと思います。生成AIの回答は、論文の内容をあまり変えずに、要点をそのまま掻い摘んで回答するような形になっています。(良い意味で論文の要点をそのまま抜き出した形)

##   分かったこと

分かったこと・注目した点を列挙すると:

ポリシー勾配法の新しいファミリー「Proximal Policy Optimization (PPO)」を提案。
PPOは、環境との相互作用によってデータをサンプリングし、「代替」目的関数を用いてミニバッチ更新を繰り返す。
**従来のポリシー勾配法（例: Trust Region Policy Optimization (TRPO)）はデータごとに1回の勾配更新を行うが、PPOでは複数回のミニバッチ更新が可能。**
代替目的関数は、TRPOで使用される制約付き最適化に代わり、KLダイバージェンスを制御しつつ複数回の勾配更新が可能な形で定義されている。
TRPOのメリットを一部保持しつつ、PPOは実装が簡単で汎用性が高く、サンプル効率が優れている。
**シミュレーションされたロボットの移動やAtariゲームを用いたベンチマークタスクでPPOをテストした結果、他のオンラインポリシー勾配法を上回る性能を示した。**
Trust Region Policy Optimization (TRPO) の複雑な制約付き最適化を回避するため、**より簡易な「クリッピング」手法を導入し、KLダイバージェンスの大幅な増加を防止している。**
標準的なポリシー勾配法では、データごとに1回の勾配更新しか行わないため、サンプルの利用効率が低い。しかし、**PPOでは複数回のミニバッチ更新を行うことで、同じサンプルから得られる学習効果を最大化している。**
**KLダイバージェンスの制御がPPOの中心的な要素**であり、これによりポリシーが大きく変化しすぎることを防ぎ、安定した学習を実現している。

強化学習の代表的な手法には、**Deep Q-Learning [Mni+15]、バニラポリシー勾配法 [Mni+16]、TRPO [Sch+15b] が存在する**が、それぞれにスケーラビリティやデータ効率、汎用性に課題がある。
**Deep Q-Learningは多くの単純な問題で失敗し、バニラポリシー勾配法はデータ効率が悪い。TRPOは複雑で、ノイズやパラメータ共有に対応できない。**
本論文では、TRPOのデータ効率性と信頼性を維持しつつ、一階最適化によるシンプルな手法であるPPOを提案。
PPOはクリップ付き確率比率を用いた新しい目的関数を導入し、性能の下限を形成することで安定した学習を実現する。
学習プロセスでは、まず**ポリシーからデータをサンプリングし、そのデータを基に複数回のエポックで最適化を行う**。各エポックで、ポリシーの更新が行われる際に、確率比率をクリッピングして制御する。
実験により、クリップ付き確率比率を使用したPPOが最良の性能を示し、連続制御タスクで他のアルゴリズムよりも優れた性能を発揮。
**PPOはTRPOのように制約付き最適化を行わない**ため、計算コストを低減しつつ、同様の性能を発揮できる。

ポリシー勾配法のメカニズムは、ポリシーの勾配を直接推定し、その勾配に従ってパラメータを更新する点にある。優位関数 $A^t$​ を用いることで、強化学習における行動の価値を反映させた勾配推定が可能となる。

TRPOは、ポリシーの更新サイズに制約を課しながら「代理目的関数」を最大化するアプローチであり、ポリシーの急激な変化を防ぐために導入された。KLダイバージェンスを用いて制約を定める。
**TRPOでは、従来の手法である共役勾配法を使用し、目的関数を線形近似、制約を二次近似する。**

Clipped Surrogate Objectiveについて:
確率比に基づいた代理目的関数を制限する手法。
クリップされた目的関数は、更新がポリシーの性能に悪影響を与える場合にのみ確率比を制限し、性能を向上させる場合はその制限を無視する。

PPOの実装における代理損失関数の計算とポリシーの更新手法について: 
固定長の軌跡セグメントを用いて、PPOアルゴリズムが実行される手順について記載されている。
Generalized Advantage Estimation (GAE) のトランケート版を使用。
(※この部分の処理方法は、さっぱり分からない)
(※どうやってPPOのobjectiveをInstructGPTのobjectiveに適用するのか、式がつながらない)

エントロピーボーナスを加えることで、探索の多様性が確保され、最適解に収束するまでに局所的最適解に陥るのを防ぐ役割を果たしている。
アドバンテージ推定値の分散を減らすために状態価値関数 V(s) を用いる。これにより、更新時の勾配のばらつきが減少し、安定した学習が可能になる。
複数のアクターが並列にデータを収集することで、データ効率が向上し、学習の高速化が図られている。

複数の代理目的関数 (surrogate objectives) の比較実験:
7つのロボティクスシミュレーション環境 (MuJoCo) を使用し、各環境で100万ステップのトレーニングを行う。
各手法は、3つの異なる乱数シードで21回実行され、結果は最後の100エピソードの平均報酬で評価される。
各環境の得点は、乱数ポリシーの得点を0、最良の結果を1にスケーリングし、アルゴリズム設定ごとの結果を比較した。

PPOと他の連続領域の強化学習アルゴリズムの比較: 
比較対象のアルゴリズムには、TRPO、CEM、Vanilla Policy Gradient、A2C、A2C with Trust Regionが含まれる
MuJoCo環境での評価結果において、PPOがほぼすべての環境で他の手法を上回っている
MuJoCo環境で1,000,000ステップのトレーニングを行い、それぞれのアルゴリズムのパフォーマンスを比較している。

3Dヒューマノイドロボットでの実験結果:
高次元の連続制御問題におけるPPOの性能を実証するため
PPOを用いて3Dヒューマノイドロボットのランニングや操縦、障害を克服するタスクを実行
3つのタスクで評価されている: 前進のみの移動、目標位置のランダムな変更、障害物を避けながら起き上がる動作
Roboschoolフレームワークを使用して、ヒューマノイドの動作ポリシーを学習している。
**PPOの「クリッピング」代理目的関数が安定したポリシー更新をもたらし、高次元の連続制御問題にも適用可能である**。特に、障害物回避や起き上がりといった複雑な動作でも、過度なポリシー更新を防ぐことにより、学習が安定しやすい。

Atariゲームでの実験結果:
Atariゲームのベンチマーク（Arcade Learning Environment）で、PPOとA2C, ACERの3つのアルゴリズムを比較。
実験環境: Arcade Learning Environmentを使用し、49種類のAtariゲームでテスト。
結果として、全期間の報酬平均ではPPOが最も多くのゲームで勝利したが、最終100エピソードではACERが優勢であった。
**ACERはトラストリージョン手法を使用しているため、最終100エピソードの報酬において優位に立つ結果となったと考えられる。これは、ACERが後半の学習でポリシーをより洗練するメカニズムが作用した可能性が高い。**

PPOは、標準的なポリシー勾配法に対して数行のコード変更で実装可能であり、より一般的な設定にも適用可能である（例: ポリシーと価値関数の結合アーキテクチャでの使用）。

:::note info
参考: 

方策勾配系の強化学習手法は、各手法のコアコンセプトではない”実装レベルの細かいテクニック”がパフォーマンスに大きく影響することが様々な論文で検証されています。また、この傾向はとくに連続値コントロール環境で顕著なようです。
:::
https://horomary.hatenablog.com/entry/2020/10/18/225833