強化學習

在本章中,您將詳細學習使用Python進行AI強化學習的概念。

強化學習基礎

這種類型的學習被用來加強或加強基於評論者信息的網絡。 也就是說,在強化學習下訓練的網絡從環境中獲得一些反饋。 但是,反饋是評價性的,並且不像監督式學習的情況那樣具有啓發性。 基於這種反饋,網絡將對權重進行調整以獲得更好的評論信息。

這個學習過程類似於監督學習,但我們可能擁有的信息非常少。 下圖給出了強化學習的框圖 -

強化學習

構建模塊:環境和代理

環境和代理是人工智能強化學習的主要構件。 本節詳細討論它們 -

媒介代理

代理媒介是能夠通過傳感器感知其環境並通過效應器作用於該環境的任何事物。

  • 人用媒介具有與傳感器平行。諸如眼睛,耳朵,鼻子,舌頭和皮膚之類的感覺器官以及用於效應器的諸如手,腿,嘴等其他器官。
  • 機器人媒介取代了傳感器的攝像頭和紅外測距儀,以及各種效應器的馬達和執行器。
  • 軟件媒介已將位串編碼爲其程序和操作。

代理術語

以下術語在AI中的強化學習中更頻繁地使用 -

  • 代理的性能測量 - 這是決定代理成功程度的標準。
  • 代理的行爲 - 代理在任何給定的感知順序之後執行的行爲。
  • 感知 - 它是特定實例中代理的感知輸入。
  • 感知序列 - 這是代理人迄今爲止所瞭解的所有歷史。
  • 代理功能 - 它是從訓示序列到動作的映射。

環境
某些程序在侷限於鍵盤輸入,數據庫,計算機文件系統和屏幕上字符輸出的完全人造環境中運行。

相比之下,一些軟件代理(如軟件機器人或軟驅)存在於豐富且無限的軟域中。 模擬器具有非常詳細和複雜的環境。 軟件代理需要實時從多種行爲中進行選擇。

例如,設計用於掃描顧客的在線偏好並向顧客展示有趣物品的軟堆可在真實環境和人工環境中工作。

環境屬性
如下所述,環境具有多重屬性 -

  • 離散/連續 - 如果環境的數量有限且截然不同,則環境是離散的,否則它是連續的。 例如,象棋是一個離散的環境,駕駛是一個連續的環境。
  • 可觀察/部分可觀察 - 如果可以從知覺中確定每個時間點環境的完整狀態,則可觀察到; 否則它只是部分可觀察的。
  • 靜態/動態 - 如果環境在代理正在執行時沒有改變,那麼它是靜態的; 否則它是動態的。
  • 單個代理/多個代理 - 環境可能包含其他代理,這些代理可能與代理的類型相同或不同。
  • 可訪問/不可訪問 - 如果代理的傳感設備可以訪問完整的環境狀態,則可以訪問該代理的環境; 否則它是無法訪問的。
  • 確定性/非確定性 - 如果環境的下一個狀態完全由當前狀態和代理的行爲決定,那麼環境是確定性的; 否則它是非確定性的。
  • 情節式/非情節式 - 在情節化環境中,每個情節由代理人感知並然後行動組成。 其行動的質量取決於情節本身。 隨後的劇集不依賴於前幾集中的動作。 情景環境要簡單得多,因爲代理人不需要提前思考。
    強化學習

用Python構建環境

對於建設強化學習代理,將使用OpenAI Gym軟件包,該軟件包可使用以下命令來安裝 -

pip install gym

OpenAI健身房有各種各樣的環境可以用於各種目的。 其中很少是:Cartpole-v0,Hopper-v1和MsPacman-v0。 他們需要不同的引擎。 OpenAI Gym的詳細文檔可以在 https://gym.openai.com/docs/#environments 找到。

以下代碼顯示了cartpole-v0環境的Python代碼示例 -

import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
   env.render()
   env.step(env.action_space.sample())

您可以用類似的方式構建其他環境。

用Python構建一個學習代理

對於構建強化學習代理,我們將使用如下所示的OpenAI Gym包 -

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

觀察小推車可以平衡。

強化學習