---
# System prepended metadata

title: '**An Outsider’s Tour of Reinforcement Learning (Part7)**'

---

# **An Outsider’s Tour of Reinforcement Learning (Part7)**

[TOC]

## [A Model, You Know What I Mean?](http://www.argmin.net/2018/02/26/nominal/)

Model 的使用在RL中仍然備受爭議

:::info
- Model-free : 系統不知道外界環境資訊，只能在執行每一步動作後從環境中得到反饋然後去學習，只能按部就班，一步一步等待真實世界的反饋，再根據反饋採取下一步行動。 
  Policy gradient : 通過探討系統和改進策略來解決最優控制問題
- 許多研究人員認為，為我們要解決的任務尋找一個 policy ，往往會比建構一個符合系統動態的模型更容易
:::

:::warning
- 在連續控制問題中，我們通常是有 Model 的。在無模型的情況下，用反複試驗來製造自動駕駛汽車的想法是荒謬的。
- 對於多數的系統而言，建構模型雖然費力，但都是能做到的。而且通常粗糙的模型幾乎就足以讓我們規劃最佳的控制策略。
:::
&nbsp;


### **System identification**


動態系統的估計在控制領域中叫做 System identification。System identification 是根據系統的輸入輸出時間函數來確定描述系統行為的模型。建立一個能模仿真實系統行為的模型，並用當前可測量的系統的輸入輸出來預測系統輸出的未來演變。
&nbsp;
![](https://i.imgur.com/qkTlQPV.png)
&nbsp;
![](https://i.imgur.com/gwhnfjY.png)
&nbsp;
![](https://i.imgur.com/bQBcQJu.png)
&nbsp;
&nbsp;
![](https://i.imgur.com/vGTBgAf.png)
&nbsp;
($z_t$ ; $v_t$) : the state of the system

$u_t$ : control action (propeller force)

$e_t$ : random disturbance
&nbsp;

($z_{t+1}$ ; $v_{t+1}$) = f (($z_t$ ; $v_t$),$u_t$,$e_t$)
&nbsp;

$\begin{bmatrix}
z_{t+1}\\
v_{t+1}
\end{bmatrix}$ = $\begin{bmatrix}
1&1\\
0&1
\end{bmatrix}$ $\begin{bmatrix}
z_t\\
v_t
\end{bmatrix}$ + $\begin{bmatrix}
0\\
1/m\end{bmatrix}$ ($u_t$ - g)
&nbsp;
($z_{t+1}$ ; $v_{t+1}$) = A($z_t$ ; $v_t$) + B$u_t$ + $e_t$
&nbsp;

**$x_t$ = ($z_t$ ; $v_t$)**
&nbsp;
![](https://i.imgur.com/deaEUVG.png)
&nbsp;

::: info
1. Inject a random probing sequence $u_t$ for control and then measure how the state responds
2. Solve the least-squares problem 
:::
最小平方法是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。
利用最小平方法可以簡便地求得未知的數據，並使得這些求得的數據與實際數據之間誤差的平方和為最小。
![](https://i.imgur.com/UTXj9uh.png)

![](https://i.imgur.com/qanhyYZ.png)
&nbsp;


**Label the minimizers A^ and B^**

![](https://i.imgur.com/zTa8RHN.png)
&nbsp;

### [Comparing Policies](https://nbviewer.jupyter.org/url/argmin.net/code/lqr_policy_comparisons_original.ipynb)   &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;[lqrpols](https://hackmd.io/nwi7hg4-RgiEQrQQxib3tA?view)

#### **System identification with least-squares (Nominal control)**

noise $e_t$ : zero-mean with covariance 10^-4^I

time horizon T : 10

input sequence : Gaussian white noise with unit variance
&nbsp;

A = $\begin{bmatrix}1&1\\0&1\end{bmatrix}$  &emsp; &emsp;    B = $\begin{bmatrix}0\\1\end{bmatrix}$
&nbsp;

A^ = $\begin{bmatrix}1.00032885&0.999484822\\0.00021146575&0.999153277\end{bmatrix}$ &emsp;&emsp; B^ = $\begin{bmatrix}-0.00174996\\ 0.99998723\end{bmatrix}$
&nbsp;


#### **Compared three model free strategies**
&nbsp;

:::info
- Policy Gradient
- Random search
- Uniform sampling
:::
&nbsp;


![](https://i.imgur.com/r6R6etd.png)
&nbsp;
在大約500次的 rollouts 後所有的方法看起來都是好的，但 Nominal control 只 rollout 一次就得到了好的結果
&nbsp;
&nbsp;
Rather than plotting the best performance, I plot the median performance :
&nbsp;
![](https://i.imgur.com/s3eDA6O.png)
&nbsp;
The error bars here are encompassing the max and min over all trials.
&nbsp;
:::danger
- Policy gradient 的結果看起來更糟糕了
- 該如何改善 Policy gradient 的結果 ? 調整 random seed 會讓它變得更好嗎 ?
- 從模擬的結果可知 Model-free 方法得出的結果比 Model-based 還要差。如果我們擁有 Model 的話，那我們應該要使用它。
:::
&nbsp;

### **MetaLearning**
&nbsp;
RL中經常提出的另一個主張是，在一項任務中學到的 policy 可能會 generalize to 到其他任務。
當我們改變時間範圍時，仍能夠在 LQR 問題上實現高性能。 也就是說，如果我們使 horizon 的長度任意長，那麼 policy 是否仍能實現 high performance 呢？
&nbsp;

:::success
- **查看無限時間範圍內的 cost**
Nominal control : 使用我們估計的數值求解 Ricatti equation ， 並產生一個無限時間範圍的控制器
:::
&nbsp;
Model free :
&nbsp;

![](https://i.imgur.com/J4VNGeB.png)
&nbsp;
The error bars for Policy Gradient are all over the place here.

:::warning
- 在無限時間範圍內，控制器必須穩定，以確定軌跡不會 blow up
- 穩定的一個充分必要條件是矩陣 (A + BK) 的所有特徵值都小於1
 &nbsp;
 
 closed-loop system   
  
$x_{t+1}$ = ( A+BK ) $x_t$ + $e_t$

如果( A + BK )具有大於1的特徵值，則該對應的特徵向量將以指數方式快速放大

:::
closed-loop system :
&nbsp;
$x_{t+1}$ = ( A+BK ) $x_t$ + $e_t$

如果( A + BK )具有大於1的特徵值，則該對應的特徵向量將以指數方式快速放大
&nbsp;
&nbsp;
接下來，我們可以繪製各種方法在有限範圍時找到穩定控制策略的情況
Nominal control 只用一次模擬就找到了

![](https://i.imgur.com/DU7Mbtw.png)

&nbsp;

### **A Coarse Model Can’t Do Everything**

:::warning
-  即使理解線性系統估計的複雜性，非時變的情況仍然是一個挑戰。 在非線性的情況下，只會更難。
-  我們不完全理解  Nominal control 對於 LQR  的限制，我們不知道模型需要建構到什麼程度才能獲得令人滿意的控制性能
:::


參考資料

[A Model, You Know What I Mean?](http://www.argmin.net/2018/02/26/nominal/)
[Least squares](https://en.wikipedia.org/wiki/Least_squares)
[Introduction to System Identification](https://www.youtube.com/watch?v=u7hJ1aF-JrU)