Làm thế nào để bạn lập trình sợ hãi vào một mạng lưới thần kinh?


8

Nếu bạn đã bị một con nhện tấn công một lần thì rất có thể bạn sẽ không bao giờ đến gần một con nhện nữa.

Trong mô hình mạng thần kinh, việc có trải nghiệm xấu với một con nhện sẽ làm giảm nhẹ xác suất bạn sẽ đến gần một con nhện tùy thuộc vào tốc độ học tập.

Điều này không tốt. Làm thế nào bạn có thể lập trình nỗi sợ hãi vào một mạng lưới thần kinh, như vậy bạn không cần hàng trăm ví dụ về việc bị nhện cắn để bỏ qua con nhện. Và ngoài ra, nó không chỉ làm giảm xác suất bạn sẽ chọn đến gần một con nhện sao?


Sợ hãi là một tỷ lệ học tập giảm dần với một thành phần ngẫu nhiên tăng cường, nhưng không có một trung tâm ngôn ngữ, hệ thống không thể nói, "Tôi sợ."
FelicityC

Bài viết WP Học tập một lần en.wikipedia.org/wiki/One-shot_learning bao gồm một phần về học tập với một ví dụ.
Jaume Oliver Lafont

Câu trả lời:


5

Có rất nhiều cách tiếp cận bạn có thể thực hiện cho việc này. Có thể tạo ra một chất tương tự nhân tạo thực tế cho nỗi sợ hãi như được thực hiện về mặt sinh học ở động vật, nhưng có khá nhiều liên quan đến phản ứng sợ hãi của động vật thực sự sẽ không áp dụng trong các bot AI đơn giản hơn hiện có. Ví dụ, một động vật đi vào trạng thái sợ hãi thường sẽ sử dụng hormone để báo hiệu sự thay đổi trên khắp cơ thể của nó, ủng hộ chi tiêu tài nguyên và chấp nhận rủi ro ("chiến đấu hoặc bay").

Trong học tăng cường cơ bản, mạng lưới thần kinh sẽ không cần quyết định trực tiếp chuyển sang "chế độ sợ hãi". Thay vào đó, bạn có thể sử dụng một số thiết kế trong tác nhân và thuật toán học tập để giúp học hỏi từ các sự kiện hiếm gặp nhưng quan trọng. Dưới đây là một vài ý tưởng:

  • Kinh nghiệm chơi lại. Bạn có thể đã làm điều này trong kịch bản Pacman, nếu bạn đang sử dụng DQN hoặc một cái gì đó tương tự. Lưu trữ quá trình chuyển đổi trạng thái và phần thưởng gây ra phần thưởng tích cực hoặc tiêu cực lớn và học hỏi nhiều lần từ đó sẽ bù đắp cho mối quan tâm của bạn

  • Ưu tiên quét dọn. Bạn có thể sử dụng sự khác biệt lớn hơn có kinh nghiệm giữa phần thưởng dự đoán và phần thưởng thực tế để lấy mẫu thiên vị từ bộ nhớ phát lại của bạn đối với các sự kiện quan trọng và những sự kiện được liên kết chặt chẽ với chúng.

  • Lập kế hoạch. Với mô hình dự đoán - có thể dựa trên các chuyển đổi được lấy mẫu (bạn có thể sử dụng lại bộ nhớ phát lại trải nghiệm cho việc này) hoặc có thể là mạng dự đoán chuyển đổi trạng thái được đào tạo - sau đó bạn có thể xem trước nhiều bước bằng cách mô phỏng. Có một mối quan hệ mạnh mẽ giữa RL và lập kế hoạch về phía trước, chúng là thuật toán rất giống nhau. Sự khác biệt là trạng thái và hành động đang được xem xét, và liệu chúng đang được mô phỏng hoặc có kinh nghiệm. Kinh nghiệm phát lại làm mờ dòng ở đây - nó có thể được đóng khung như học từ bộ nhớ, hoặc cải thiện dự đoán để lập kế hoạch. Lập kế hoạch giúp bằng cách tối ưu hóa các quyết định mà không cần lặp lại kinh nghiệm nhiều - sự kết hợp giữa lập kế hoạch và học tập có thể mạnh mẽ hơn nhiều so với cách ly.

  • Lựa chọn hành động khám phá thông minh hơn. Epsilon tham lam, trong đó bạn hoặc có hành động tham lam hoặc thực hiện một hành động hoàn toàn ngẫu nhiên, hoàn toàn bỏ qua số tiền bạn có thể đã học về các hành động thay thế và công đức tương đối của họ. Bạn có thể sử dụng một cái gì đó như Upper Confidence Bound với một tác nhân dựa trên giá trị.

  • Trong một thế giới xác định, hãy tăng quy mô lô cho việc học và lập kế hoạch, vì bạn có thể tin tưởng rằng khi chuyển đổi được học một lần, bạn sẽ biết mọi thứ về nó.

Bạn sẽ cần phải thử nghiệm trong từng môi trường. Bạn có thể làm cho các tác nhân học tập thận trọng hơn về việc khám phá gần các khu vực thưởng thấp. Tuy nhiên, nếu môi trường là cần thiết phải chấp nhận rủi ro để có được phần thưởng tốt nhất (thường là trong các trò chơi) thì có thể không tối ưu về thời gian học để có một tác nhân "nhút nhát". Ví dụ trong ví dụ về Pacman của bạn, đôi khi những con ma nên tránh, đôi khi chúng nên bị truy đuổi. Nếu tác nhân học được ác cảm mạnh mẽ ban đầu, có thể mất nhiều thời gian để khắc phục điều này và học cách đuổi theo chúng sau khi ăn tăng sức mạnh.

Ví dụ về con nhện của bạn, với tư cách là người xây dựng thí nghiệm thì bạn biết rằng vết cắn là xấu mỗi lần và tác nhân phải tránh nó càng nhiều càng tốt. Đối với hầu hết các thuật toán RL, không có kiến ​​thức như vậy, ngoại trừ có được thông qua kinh nghiệm. Một mô hình thế giới MDP không cần phải phù hợp với lẽ thường, có thể là do nhện cắn là xấu (-10 phần thưởng) 90% thời gian và 10% thời gian tốt (phần thưởng +1000). Các đặc vụ chỉ có thể khám phá điều này bằng cách bị cắn nhiều lần. . . RL thường không bắt đầu với bất kỳ hệ thống nào để đưa ra các giả định về loại điều này và không thể đưa ra một quy tắc chung về tất cả các MDP có thể. Thay vào đó, đối với một hệ thống RL cơ bản, bạn có thể xem xét sửa đổi siêu âm hoặc tập trung vào các sự kiện chính như được đề xuất ở trên. Bên ngoài một hệ thống RL cơ bản, có thể có công trong việc sao chép những thứ khác,


1
Đây sẽ là một quá trình khá phức tạp để mô hình hóa một thứ gì đó như sợ hãi ... các mức học tập khác nhau cho các đối tượng khác nhau (nhưng có lẽ nó được chăm sóc bởi rủi ro ngày càng tăng = tăng tỷ lệ học tập), sau đó một số người có nỗi sợ phi lý về lỗi ... Có một giả thuyết cho rằng tâm trí của chúng ta hoạt động theo logarit tức là bạn sợ 1 con hổ, bạn vẫn còn hơn 2 con hổ ... bạn sợ 100 con hổ, nhưng nỗi sợ của bạn không tăng lên nhiều cho 101 con hổ như trong ví dụ về 1 -> 2 trường hợp hổ ..... tất cả có thể được mô hình hóa không?
DuttaA

1
@DuttaA: Tôi đồng ý, đó là lý do tại sao tôi đề xuất một loạt các công cụ không phải là "nỗi sợ thực sự (tm)". Tôi nghĩ rằng một "nỗi sợ bản năng" rất cơ bản khi sử dụng RL sẽ liên quan đến việc bằng cách nào đó thêm một giá trị thấp trước đó vào hàm giá trị theo chương trình mà không có kinh nghiệm thực tế.
Neil Slater

2

Tôi nghĩ có 2 cách để thực hiện điều này: 1) lập trình rõ ràng nỗi sợ là một ràng buộc hoặc tham số trong một số biểu thức logic, hoặc 2) sử dụng một tập hợp lớn dữ liệu huấn luyện để dạy sợ hãi.

Hãy nghĩ về một trò chơi Pacman cơ bản-- dù Pacman sợ ma hay không sợ chúng khó nói, nhưng chúng là ma và Pacman tránh chúng nên tôi nghĩ chúng ta có thể sử dụng nó như một ví dụ cơ bản về "sợ hãi". Vì trong trò chơi này, sợ hãi = tránh né, bạn có thể lập trình tránh né một cách hợp lý để trở thành một khoảng cách. Tôi đã thử điều này với việc học tăng cường Pacman. Tôi đã cố gắng đặt khoảng cách 5 ô vuông cho những con ma và bất cứ khi nào Pacman có thể nhìn thấy một con ma trong 5 ô vuông, anh ta sẽ di chuyển theo một hướng khác. Những gì tôi tìm thấy là trong khi Pacman sẽ cố gắng tránh ma, anh ta không biết chiến lược (hoặc có trí thông minh). Pacman chỉ đơn giản là di chuyển khỏi những bóng ma cho đến khi anh ta bị đóng hộp.

Quan điểm của tôi là bạn có thể lập trình mạng của mình để tránh các con nhện không nhận được bit, nhưng không cần đào tạo, bạn sẽ chỉ tạo ra một tham số cơ bản có thể gây ra vấn đề nếu có 100 con nhện siêu hung dữ tấn công bạn! Cách tốt hơn là sử dụng một số logic cơ bản để tránh nhện, nhưng sau đó huấn luyện mạng để được thưởng những con nhện tốt hơn sẽ tránh được.

Bây giờ, có nhiều tình huống sợ hãi, vì vậy một ví dụ với Pacman sẽ không nhất thiết phải áp dụng cho tất cả ... Chỉ cần cố gắng đưa ra một cái nhìn sâu sắc về kinh nghiệm của tôi với việc dạy sợ hãi với việc học tăng cường ở Pacman.


1
Tôi nghĩ rằng đối với một số thứ như lửa, nó cần phải là một bản năng. Bởi vì vào thời điểm bạn có một vài "ví dụ đào tạo", bạn sẽ bị thiêu rụi. Nhưng với những thứ khác, bạn chỉ cần một ví dụ như lấy một con chuột đồng, bạn nên học hamster có hàm răng sắc nhọn vì vậy đừng đưa tay vào miệng chúng. Vì vậy, đối với một số thứ, bản năng chỉ nên ngăn bạn làm những việc như đưa tay vào lửa. Hoặc làm cho bạn nhảy trở lại. Nhưng bạn cũng nên sợ đi gần lửa nếu bạn biết rằng bạn có thể bị trúng tia lửa?
Zooby

2
@zooby theo kinh nghiệm của tôi, những đứa trẻ không thực sự học cách sợ bếp nóng hoặc lửa cho đến khi chúng bị đốt cháy. (vì bạn đã phải theo dõi sát sao chúng!) Tôi nói rằng nếu thuật toán học tránh né thông qua một kỹ thuật như học tăng cường, thì đó là "học cái gì phải sợ" cơ chế tránh được lập trình sẵn, đó sẽ là "bản năng".
DukeZhou

2

Sợ loại này là một phản ứng phi lý (khuyến khích tiêu cực lớn để đáp ứng với một rủi ro nhỏ). Nỗi sợ mô hình hóa sẽ cần mô hình hóa một yếu tố "thô" liên quan đến, ví dụ như các con nhện để phản ứng không theo tỷ lệ thông thường sẽ xảy ra. Yếu tố "thô thiển" có thể được biểu hiện dưới nhiều hình thức khác để phóng đại phản ứng với trải nghiệm khó chịu trước đây, mặc dù không đặc biệt nguy hiểm. Nỗi sợ hãi như vậy cũng có thể được truyền cảm hứng từ tin đồn (nghĩ hysteria gây ra bởi một câu chuyện tin tức giật gân). Một NN thường chỉ đáp ứng tối thiểu với rủi ro tối thiểu.


1

Tôi sẽ đề nghị các tác nhân cân nhắc việc học hỏi từ một sự kiện nhất định dựa trên mức độ nghiêm trọng của hậu quả đối với sự kiện đó xảy ra. Ví dụ. Có nó phát triển một mô hình mối đe dọa như những mô hình thường được phác thảo trong lĩnh vực An toàn thông tin. Rủi ro cao nhưng xác suất thấp là điều có thể được tính toán và đánh giá.

Cố gắng trực tiếp bắt chước nỗi sợ hãi của con người sẽ là ngớ ngẩn, rất có thể bạn sẽ kết thúc với những AI có nỗi ám ảnh nếu bạn thành công quá tốt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.