AI với Python - Học tập củng cố

Trong chương này, bạn sẽ tìm hiểu chi tiết về các khái niệm học củng cố trong AI với Python.

Kiến thức cơ bản về học tập củng cố

Loại hình học tập này được sử dụng để củng cố hoặc tăng cường mạng lưới dựa trên thông tin phê bình. Đó là, một mạng lưới đang được đào tạo theo phương pháp học tăng cường, nhận được một số phản hồi từ môi trường. Tuy nhiên, phản hồi chỉ mang tính đánh giá và không mang tính hướng dẫn như trong trường hợp học có giám sát. Dựa trên phản hồi này, mạng thực hiện các điều chỉnh trọng số để thu được thông tin phê bình tốt hơn trong tương lai.

Quá trình học tập này tương tự như học tập có giám sát nhưng chúng ta có thể có rất ít thông tin. Hình sau cho thấy sơ đồ khối của học củng cố -

Khối xây dựng: Môi trường và Tác nhân

Môi trường và Tác nhân là các khối xây dựng chính của việc học tăng cường trong AI. Phần này thảo luận chi tiết về chúng -

Đặc vụ

Tác nhân là bất cứ thứ gì có thể nhận biết môi trường của nó thông qua các cảm biến và tác động lên môi trường đó thông qua các tác nhân.

  • A human agent có các cơ quan cảm giác như mắt, tai, mũi, lưỡi và da song song với các cảm biến, và các cơ quan khác như tay, chân, miệng để tạo hiệu ứng.

  • A robotic agent thay thế máy ảnh và công cụ tìm phạm vi hồng ngoại cho cảm biến, và các động cơ và bộ truyền động khác nhau cho hiệu ứng.

  • A software agent có các chuỗi bit được mã hóa làm chương trình và hành động của nó.

Thuật ngữ đại lý

Các thuật ngữ sau được sử dụng thường xuyên hơn trong học tập củng cố trong AI -

  • Performance Measure of Agent - Đó là tiêu chí, quyết định mức độ thành công của một đại lý.

  • Behavior of Agent - Là hành động mà tác nhân thực hiện sau bất kỳ chuỗi khái niệm nhất định nào.

  • Percept - Đó là đầu vào tri giác của tác nhân tại một trường hợp nhất định.

  • Percept Sequence - Đó là lịch sử của tất cả những gì mà một đặc vụ đã nhận ra cho đến nay.

  • Agent Function - Nó là một bản đồ từ trình tự giới luật đến một hành động.

Môi trường

Một số chương trình hoạt động hoàn toàn artificial environment được giới hạn ở đầu vào bàn phím, cơ sở dữ liệu, hệ thống tệp máy tính và đầu ra ký tự trên màn hình.

Ngược lại, một số tác nhân phần mềm, chẳng hạn như rô bốt phần mềm hoặc rô bốt phần mềm, tồn tại trong các miền softbot phong phú và không giới hạn. Trình mô phỏng có mộtvery detailedcomplex environment. Tác nhân phần mềm cần chọn từ một loạt các hành động trong thời gian thực.

Ví dụ: một softbot được thiết kế để quét các sở thích trực tuyến của khách hàng và hiển thị các mặt hàng thú vị cho khách hàng hoạt động trong real cũng như một artificial Môi trường.

Thuộc tính của môi trường

Môi trường có nhiều thuộc tính như được thảo luận bên dưới:

  • Discrete/Continuous- Nếu có giới hạn các trạng thái riêng biệt, xác định rõ ràng của môi trường thì môi trường là rời rạc, ngược lại thì liên tục. Ví dụ, cờ vua là một môi trường rời rạc và lái xe là một môi trường liên tục.

  • Observable/Partially Observable- Nếu có thể xác định được trạng thái hoàn chỉnh của môi trường tại từng thời điểm từ các khái niệm thì có thể quan sát được; nếu không thì nó chỉ có thể quan sát được một phần.

  • Static/Dynamic- Nếu môi trường không thay đổi trong khi một tác nhân đang hoạt động, thì nó là tĩnh; nếu không thì nó là động.

  • Single agent/Multiple agents - Môi trường có thể chứa các tác nhân khác có thể cùng loại hoặc khác loại với tác nhân.

  • Accessible/Inaccessible- Nếu bộ máy cảm quan của tác nhân có thể tiếp cận được trạng thái hoàn chỉnh của môi trường thì tác nhân đó có thể tiếp cận được với môi trường; nếu không thì không thể truy cập được.

  • Deterministic/Non-deterministic- Nếu trạng thái tiếp theo của môi trường được xác định hoàn toàn bởi trạng thái hiện tại và các hành động của tác nhân, thì môi trường là xác định; nếu không nó là không xác định.

  • Episodic/Non-episodic- Trong môi trường nhiều tập, mỗi tập bao gồm tác nhân nhận thức và sau đó hành động. Chất lượng của hành động của nó chỉ phụ thuộc vào chính tập phim. Các tập tiếp theo không phụ thuộc vào các hành động trong các tập trước. Môi trường Episodic đơn giản hơn nhiều vì tác nhân không cần phải suy nghĩ trước.

Xây dựng môi trường với Python

Đối với tác nhân học tập củng cố xây dựng, chúng tôi sẽ sử dụng OpenAI Gym gói có thể được cài đặt với sự trợ giúp của lệnh sau:

pip install gym

Có nhiều môi trường khác nhau trong phòng tập thể dục OpenAI có thể được sử dụng cho các mục đích khác nhau. Một vài trong số họ làCartpole-v0, Hopper-v1MsPacman-v0. Họ yêu cầu các động cơ khác nhau. Tài liệu chi tiết vềOpenAI Gym có thể được tìm thấy trên https://gym.openai.com/docs/#environments.

Đoạn mã sau đây cho thấy một ví dụ về mã Python cho môi trường cartpole-v0:

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

Bạn có thể xây dựng các môi trường khác theo cách tương tự.

Xây dựng tác nhân học tập với Python

Đối với tác nhân học tập củng cố xây dựng, chúng tôi sẽ sử dụng OpenAI Gym gói như hình -

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

Quan sát xem cartpole có thể tự cân bằng không.