---
# System prepended metadata

title: An Outsider’s Tour of Reinforcement Learning (Part13)

---

# An Outsider’s Tour of Reinforcement Learning (Part13)

[TOC]

## [Coarse-ID Control](http://www.argmin.net/2018/05/11/coarse-id-control/)

&emsp;

:::info
在控制迴圈 (control loops) 中使用較差的模型 (poor models) ，依然能夠達到接近最佳的性能 (performance) 嗎 ?

&emsp;

**答案是 " 可能的 "**

:::


&emsp;


**Nominal control** 

使用系統識別的方法去建構一個估計的模型，並把它當成是真正的系統實行控制，我們把這樣的方法稱為 Nominal control

&emsp;
&emsp;


the quadrotor dynamics (Coarse Model) : &emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp; [lqrpolsSGD](https://hackmd.io/nwi7hg4-RgiEQrQQxib3tA)
&emsp;
&emsp;
![](https://i.imgur.com/VyrDpBp.png)
&emsp;
&emsp;


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

($z_t$ ; $v_t$) : the state of the system

$u_t$ : control action (propeller force)

$e_t$ : random disturbance
&nbsp;

1. 將隨機數序列作為輸入 $u_t$ ，並得到狀態 $x_t$ , $x_{t+1}$

2. 利用最小平方法求出 $\hat{A}$,$\hat{B}$  的值

3. 得到我們估計的模型
&nbsp;

:::warning
- 這是LQR問題的最佳選擇嗎？
- 只要像決定參數一樣簡單，然後將估算的結果視為真實的嗎？
&nbsp;

The answer is not entirely clear.
:::

&nbsp;

fake datacenter model : three state system ，x 代表主機內部溫度，u 代表冷卻器的控制輸入
&nbsp;
&nbsp;

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

&nbsp;

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

*A* = $\begin{bmatrix}
1.01&0.01&0\\
0.01&1.01&0.01\\
0&0.01&1.01\end{bmatrix}$   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;     *B* = *I*

&nbsp;

狀態轉移函數 A 的 對角線元素都大於  1 ， 當我們啟動這個系統的時候，狀態將會指數增長，因此可能導致數據中心失火。


&nbsp;
### Coarse-ID Ingredients
&nbsp;
從實驗數據還有與真實系統的誤差的估計值，來算出系統的模型，並用此模型來設計控制器
&nbsp;

:::info
一般的 Coarse-ID Control 包含 3 個 步驟

1. 使用監督學習來學習要控制的系統的粗略模型，並將估計的系統稱為 Nominal system

2. 使用先前的知識 (prior knowledge) 或是 統計工具 (statistical tools)，建立 Nominal system 與真實的未知系統之間，可能的差距與其發生的機率。

3. 確保系統穩定，並優化對於 Nominal system 的控制
:::

&nbsp;

**這種方法是 Robust Control 的一個例子**

在控制理論中，強韌控制是一種可處理不確定性的控制器設計方法。 如果在某些集合內發現不確定的參數或干擾，則設計強韌的控制方法以使其正常工作。

- 如果一個控制器是針對某個固定的參數集而設計，但是當它在一個不同的假設集下，依然能夠很好的工作，控制器就是強韌的。

- 我們試圖找到一個控制器，它不僅適用於一個模型，而且適用於某些情況中的所有可能模型。

關鍵在於我們不僅要使用機器學習來識別受控廠，還要識別估計產生的不確定性。

&nbsp;


通過上述 LQR 的例子，說明了 Coarse-ID 的過程 : 

1. 我們可以通過用一點隨機雜訊 激發 (excite) 系統來估計 A 和 B
2. 測量結果，然後求解最小平方問題

**一旦我們得到這兩個估計值 A,B ，就可以建構一個標準 LQR 最佳控制問題的  Robust variant，並計算出一個控制器，它可以穩定所有與我們觀察到的數據一致的模型**

&nbsp;
&nbsp;

### Proof is in the pudding
[On the Sample Complexity of the Linear Quadratic Regulator](https://arxiv.org/abs/1710.01688)
&nbsp;

讓我們回到數據中心問題，看看它對真實數據的影響，而不僅僅是理論上的 : 

在下面的圖中，我們將 Nominal Control 與 Robust LQR 問題的兩個版本進行比較

- 藍線曲線描述了，當我們告訴優化器從 nominal model 到 true model 的距離時情況 (利用最小平方法估計誤差) 
- 綠色曲線描述了，當我們使用 bootstrap 去模擬並估計模型之間的差異時。(利用 bootstrap 估計誤差) 

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


- Nominal controller 經常無法穩定真實系統

- Robust optimization 確實有助於找到能夠穩定系統的控制器
&nbsp;
&nbsp;

 
Model-free RL approaches :　
&nbsp;

![](https://i.imgur.com/rvPkQuc.png)
![](https://i.imgur.com/vDUiqE6.png)
&nbsp;
![](https://i.imgur.com/1FbsdR6.png)
&nbsp;

- Model-free 方法不僅需要較多的 sample ，也較不安全。
- 安全性比樣本複雜性更為重要。

&nbsp;
&nbsp;
### Pushing against the boundaries
&nbsp;
Coarse-ID Control 在 LQR 上的表現很好，那麼在非線性的情況下呢 ?
&nbsp;

:::success
1. 在非線性問題的表現上如何 ?
2. 我們能用線性模型模擬非線性問題並估計非線性的不確定性嗎？
:::




&nbsp;
&nbsp;
&nbsp;
&nbsp;

參考資料 

https://en.wikipedia.org/wiki/Robust_control
https://en.wikipedia.org/wiki/Semidefinite_programming
https://arxiv.org/pdf/1710.01688.pdf
https://en.wikipedia.org/wiki/Bootstrapping_(statistics)