ai-446Đọc toàn bộ đề miễn phí

Chọn hành động epsilon-greedy với một số ngẫu nhiên

Epsilon-greedy là cách cân bằng khám phá và khai thác trong học tăng cường: với xác suất

AICơ bản11 phút

Tiến độ của tôi ở bài này

Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.

Đang tải điểm của bạn…

Kiến thức và chủ đề

pythonq-learningexplorationentry-ramp

Kiến thức tiên quyết: python-basics, ai-action-value.

Nội dung đề bài

Mô tả bài toán

Epsilon-greedy là cách cân bằng khám phá và khai thác trong học tăng cường: với xác suất epsilon ta thử một hành động ngẫu nhiên, ngược lại ta chọn hành động có giá trị cao nhất. Trong bài này số ngẫu nhiên được cho sẵn để kết quả tất định và kiểm tra được.

Yêu cầu

Viết hàm epsilon_greedy_action(q_values, epsilon, u): nếu u < epsilon trả về chỉ số khám phá int(u * n) (với n = len(q_values)), ngược lại trả về chỉ số của giá trị lớn nhất (argmax, lấy chỉ số nhỏ nhất khi bằng nhau).

Quy ước nộp bài

Nộp hàm epsilon_greedy_action trong solution.py. Hệ thống gọi hàm trực tiếp và so kết quả với sai số 1e-6; không đọc stdin và không in ra stdout.

Input

  • q_values: danh sách giá trị hành động, khác rỗng.
  • epsilon: xác suất khám phá trong [0, 1].
  • u: số ngẫu nhiên trong [0, 1).

Output

Một số nguyên là chỉ số hành động được chọn.

Ràng buộc

  • q_values phải khác rỗng; nếu không, ném ValueError.
  • argmax lấy chỉ số nhỏ nhất khi có nhiều giá trị lớn nhất bằng nhau.
  • Chỉ dùng Python thuần, không cần thư viện ngoài.

Ví dụ 1

Input

epsilon_greedy_action(q_values=[1, 3, 2], epsilon=0.1, u=0.9)

Output

1

Ví dụ 2

Input

epsilon_greedy_action(q_values=[1, 3, 2], epsilon=0.6, u=0.2)

Output

0

Giải thích

Với q_values = [1, 3, 2], epsilon = 0.6, u = 0.2: vì 0.2 < 0.6 nên khám phá và trả về int(0.2 * 3) = 0.

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.

Nhóm Zalo