q learning裡的核心思想是如下公式:
其中,第乙個q(s, a)是更新後的值,第二個 q(s, a)是q表中值,a是指學習效率,r是獎勵值。\gamma是折扣因子。第三個q是指要選取q表中的最大值。最後乙個表示q表中值,與第二個q一樣。
現在通過書中的偽**來展示q-learning的過程:
1. 初始化q-table:q-table|s|*|a|的矩陣。其中,|s|代表了所有的狀態,|a|代表了所有的動作。矩陣中各個元素首先初始化為0。
2. 進入迴圈1
3. 進入迴圈2:
3.1 帶入當前狀態。若為第一次迴圈,此處需隨機選擇乙個狀態作為初始狀態;
3.2 為該狀態選擇乙個動作:需注意,此處有乙個學習效率。選擇動作的方法為:agent有1-a的概率,隨機選擇動作;有a的概率,選擇對應q值最大的動作;
3.3 據當前狀態s和當前動作a,得出下乙個狀態s『和獎勵r;
3.4 通過上圖公式更新q-table;
3.5 更新狀態。
注意:迴圈1的結束可以為q-table中的值收斂。也可以為乙個固定值,例如整個程式執行1000次,停止。迴圈2的結束條件為到達最終狀態。
Q learning訓練過程
下面的偽 說明了我們如何訓練,來得到乙個盡量完美的q 初始化 q while q 未收斂 初始化小鳥的位置s,開始新一輪遊戲 while s 死亡狀態 使用策略 獲得動作a s 使用動作a進行遊戲,獲得小鳥的新位置s 與獎勵r s,a q s,a 1 q s,a r s,a max q s a 更新...
StringCopy 函式的簡化過程
下面是stringcopy 函式的最原始版本,基於標準庫的strcpy 該函式用了陣列符號,較為容易理解 char stringcopy char dest char sour dest i 0 return dest 下面是stringcopy 函式的另外乙個版本,用指標代替陣列,完成了同樣的功能...
SSL會話的簡化過程
1 客戶端傳送可供選擇的加密方式,並向伺服器請求證書 2 服務端傳送證書,選定加密方式並告知客戶端 3 客戶端取得證書並進行證書的驗證 如果信任發證的ca a.驗證證書 的合法性 用ca的公鑰解密數字簽名 b.驗證證書的內容合法性 完整性驗證 c.檢查證書的有效期限 d.檢查證書是否被吊銷 e.證書...