使用 openai gym 作為實踐環境,這是乙個可以用來研究和比較強化學習演算法的開源工具包,包含了各種可用來訓練和研究新的強化學習演算法的模擬環境,裡面共包含 777 種不同的環境。openai gym 提供了乙個統一的環境介面,智慧型體可以通過三種基本方法:重置、執行和回饋與環境互動:
import gym
#構造乙個初始環境:
env_name='breakout-v3'
env=gym.make(env_name)
#通過重置來啟動環境:
obs=env.reset()
#顯示環境的基本情況:
print(obs.shape)
可以執行的動作可以通過指令 actions=env.action_space 獲得,比如 breakout-v4 有四種可能的動作:等待、發射、向左和向右。動作總數可以通過指令 env.action_space.n 來獲得
定義智慧型體從四種可能的動作中隨機選擇一種動作來執行:
def random_police(n):
action=np.random.randint(0,n)
return action
使用 obs、rewards、done,info=env.step(action) 讓智慧型體繼續隨機執行 1000 步:
for steo in range(1000):
action=random_police(env.action_space.n)
obs,rewrd,done,info=env.step(action)
env.render()
if done:
img=env.render(mode='rgb_array')
plt.imshow(img)
plt.show()
break
觀測值 obs 將環境資訊傳給智慧型體,在這裡是乙個 210×160×3 大小的彩色資訊。每一步執行過程中,智慧型體都會得到乙個 0 或 1 的獎勵(reward),在 openai gym 中,獎勵範圍是 [-inf,inf]。遊戲結束時,環境會返回 done=true。資訊(info)在除錯時非常有用,但智慧型體得不到這個資訊。env.render() 指令會顯示乙個視窗提示當前環境的狀態,當呼叫這個指令時,可以通過視窗看到演算法是如何學習和執行的。在訓練過程中,為了節約時間建議注釋掉這條指令。 強化學習 強化學習基礎
為了應對車載網路中通訊環境快速變化的難題,可以使用強化學習進行解決,這裡對強化學習的基礎進行整理。主要的應用場景為車載網路中資源分配問題。本文源自莫煩python 強化學習章節,有需要請查閱原文 20200413補充了一些內容,來自這篇部落格,是李巨集毅的深度強化學習的筆記。強化學習的主要構成有 a...
強化學習之Q learning
三要素 狀態 state 動作 action 獎賞 reward 更具具體情況自行進行給定。q更新公式 q是什麼?動作效用函式 action utility function 用於評價在某一狀態下採取某個動作的優劣。如果q訓練好了,之後 時就可以按照q進行選擇動作。詳解q更新函式 是學習速率 是折扣...
強化學習之概述
面向智慧型體的學習 通過與乙個環境進行互動來實現目標 通過試錯和優化進行學習 用試錯後的獎勵 或懲罰 進行學習 監督學習本質上可以認為是強化學習的一種特殊形式 無延遲場景 強化學習更貼近人類的學習過程 強化學習可能是通往通用人工智慧的道路,目前人工智慧都是弱人工智慧 強化學習整體結構由環境,智慧型體...