人工智慧 (12) 強化學習

Jason990420發表於2019-12-23

檔案建立日期: 2019/12/23
最後修訂日期: None
相關軟體資訊:

Win 10 Python 3.7.2 gym 0.15.4

Windows 10 | Python 3.7.2 | gym 0.15.4 |

參考檔案: AI with Python Tutorial

說明: 所有內容歡迎引用, 只需註明來源及作者, 本文內容如有錯誤或用詞不當, 敬請指正.

標題: 人工智慧 (12) 強化學習

強化學習 ( Reinforcement Learning )

根據評論者資訊來增強或加強網路。在監督學習的情況下,反饋是評估性的,而不是指導性的。環境和代理是AI中強化學習的主要構建塊。

  1. 代理 ( Agent ) - 透過感測器感知其環境並透過效應器在該環境上起作用的任何事物。
    • 代理的績效評估:這是確定代理成功與否的標準。
    • 代理的行為:這是代理在任何給定的感知序列之後執行的動作。
    • 感知:這是代理在給定例項上的感知輸入。
    • 感知順序:這是代理迄今為止所感知的所有歷史。
    • 代理功能:這是從感知序列到動作的對映。
  2. 環境 (Environment)
    • 離散/連續的 - 明確定義的數量有限,則該環境是離散的,否則為連續的。
    • 可觀察/部分可觀察 - 可在每個時間點確定環境的完整狀態,則可以觀察;否則只能部分可觀察。
    • 靜態/動態 - 在操作時環境沒有變化,則它是靜態的;否則它是動態的。
    • 單個/多個代理程式 - 可能包含與該代理程式型別相同或不同的其他代理程式。
    • 可訪問/不可訪問:如果可以訪問環境的完整狀態,則為可訪問;否則為不可訪問。
    • 確定性/非確定性:如果下一個狀態完全由當前狀態和代理的行為確定,則為確定性的;否則,它是非確定性的。
    • 情節/非情節:後續情節是不否取決於先前情節中的動作。

例1. 建立一個環境

# -----------------------------------------------------------------------------
# Constructing an Environment
# OpenAI gym - Cartpole-v0
# ------------------------------------------------------------------------------

import gym

env = gym.make('CartPole-v0')           # 建立一個環境的例項
env.reset()                             # 重置環境狀態並返回初始觀察結果
for _ in range(1000):
    env.render()                        # 環境渲染
    env.step(                           # 執行環境動態的一個時間步
        env.action_space.sample())      # 隨機數取樣動作對應的空間物件

例2. 構建學習代理

# -----------------------------------------------------------------------------
# Constructing a learning agent
# ------------------------------------------------------------------------------

import gym

env = gym.make('CartPole-v0')
for _ in range(20):
    observation = env.reset()
    for i in range(100):
        env.render()
        print(observation)
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
        if done:
            print("Episode finished after {} timesteps".format(i+1))
            break
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Jason Yang

相關文章