# An Outsider’s Tour of Reinforcement Learning (Part13) [TOC] ## [Coarse-ID Control](http://www.argmin.net/2018/05/11/coarse-id-control/)   :::info 在控制迴圈 (control loops) 中使用較差的模型 (poor models) ,依然能夠達到接近最佳的性能 (performance) 嗎 ?   **答案是 " 可能的 "** :::   **Nominal control** 使用系統識別的方法去建構一個估計的模型,並把它當成是真正的系統實行控制,我們把這樣的方法稱為 Nominal control     the quadrotor dynamics (Coarse Model) :                    [lqrpolsSGD](https://hackmd.io/nwi7hg4-RgiEQrQQxib3tA)     ![](https://i.imgur.com/VyrDpBp.png)     ![](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   1. 將隨機數序列作為輸入 $u_t$ ,並得到狀態 $x_t$ , $x_{t+1}$ 2. 利用最小平方法求出 $\hat{A}$,$\hat{B}$ 的值 3. 得到我們估計的模型   :::warning - 這是LQR問題的最佳選擇嗎? - 只要像決定參數一樣簡單,然後將估算的結果視為真實的嗎?   The answer is not entirely clear. :::   fake datacenter model : three state system ,x 代表主機內部溫度,u 代表冷卻器的控制輸入     ![](https://i.imgur.com/f0ciZcG.png)   ![](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}$             *B* = *I*   狀態轉移函數 A 的 對角線元素都大於 1 , 當我們啟動這個系統的時候,狀態將會指數增長,因此可能導致數據中心失火。   ### Coarse-ID Ingredients   從實驗數據還有與真實系統的誤差的估計值,來算出系統的模型,並用此模型來設計控制器   :::info 一般的 Coarse-ID Control 包含 3 個 步驟 1. 使用監督學習來學習要控制的系統的粗略模型,並將估計的系統稱為 Nominal system 2. 使用先前的知識 (prior knowledge) 或是 統計工具 (statistical tools),建立 Nominal system 與真實的未知系統之間,可能的差距與其發生的機率。 3. 確保系統穩定,並優化對於 Nominal system 的控制 :::   **這種方法是 Robust Control 的一個例子** 在控制理論中,強韌控制是一種可處理不確定性的控制器設計方法。 如果在某些集合內發現不確定的參數或干擾,則設計強韌的控制方法以使其正常工作。 - 如果一個控制器是針對某個固定的參數集而設計,但是當它在一個不同的假設集下,依然能夠很好的工作,控制器就是強韌的。 - 我們試圖找到一個控制器,它不僅適用於一個模型,而且適用於某些情況中的所有可能模型。 關鍵在於我們不僅要使用機器學習來識別受控廠,還要識別估計產生的不確定性。   通過上述 LQR 的例子,說明了 Coarse-ID 的過程 : 1. 我們可以通過用一點隨機雜訊 激發 (excite) 系統來估計 A 和 B 2. 測量結果,然後求解最小平方問題 **一旦我們得到這兩個估計值 A,B ,就可以建構一個標準 LQR 最佳控制問題的 Robust variant,並計算出一個控制器,它可以穩定所有與我們觀察到的數據一致的模型**     ### Proof is in the pudding [On the Sample Complexity of the Linear Quadratic Regulator](https://arxiv.org/abs/1710.01688)   讓我們回到數據中心問題,看看它對真實數據的影響,而不僅僅是理論上的 : 在下面的圖中,我們將 Nominal Control 與 Robust LQR 問題的兩個版本進行比較 - 藍線曲線描述了,當我們告訴優化器從 nominal model 到 true model 的距離時情況 (利用最小平方法估計誤差) - 綠色曲線描述了,當我們使用 bootstrap 去模擬並估計模型之間的差異時。(利用 bootstrap 估計誤差)     ![](https://i.imgur.com/Au4UYuu.png)     ![](https://i.imgur.com/hpSFvMT.png)   - Nominal controller 經常無法穩定真實系統 - Robust optimization 確實有助於找到能夠穩定系統的控制器     Model-free RL approaches :    ![](https://i.imgur.com/rvPkQuc.png) ![](https://i.imgur.com/vDUiqE6.png)   ![](https://i.imgur.com/1FbsdR6.png)   - Model-free 方法不僅需要較多的 sample ,也較不安全。 - 安全性比樣本複雜性更為重要。     ### Pushing against the boundaries   Coarse-ID Control 在 LQR 上的表現很好,那麼在非線性的情況下呢 ?   :::success 1. 在非線性問題的表現上如何 ? 2. 我們能用線性模型模擬非線性問題並估計非線性的不確定性嗎? :::         參考資料 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)