Học tăng cường có phải là lựa chọn đúng đắn cho hội họa như Bob Ross?


7

Nơi làm việc của tôi đang có một thử thách mã 2 tuần liên quan đến việc tạo ra một thuật toán để tái tạo 100 bức tranh Bob Ross mẫu càng sát càng tốt với một số hạn chế:

  • "Tranh" được gửi dưới dạng tệp JSON chứa màu nền và một loạt "nét cọ".
  • Nét cọ có điểm bắt đầu, điểm kết thúc, bán kính và màu sắc.
  • Có giới hạn 500 nét trên mỗi bức tranh.
  • Tất cả 100 bức tranh tham khảo có cùng kích thước và tỷ lệ khung hình chính xác: 450x337.

Ví dụ Bob Ross gốc.

Máy chủ "vẽ" mỗi lần gửi và sau đó thực hiện một khác biệt cho mỗi pixel với bức tranh tham chiếu. Mỗi pixel trong bức tranh được gửi được ghi trên phạm vi 0-1 vô hướng dựa trên mức độ tương tự với giá trị của pixel nguồn và điểm cho bức tranh là trung bình của tất cả các điểm pixel. Những người điều hành cuộc thi đã phát hành các thư viện cho cả vẽ và ghi hình ảnh có thể chạy trên dòng lệnh trong MacOS / Linux.

Tôi cảm thấy vấn đề này có thể tuân theo ML vì chúng tôi có cơ chế chấm điểm chính xác cho từng lần thử mà thuật toán thử. Tạo và ghi một bức tranh chỉ mất khoảng 200ms. Thật không may, tôi chủ yếu chỉ là một fanboy ML (tôi nghe rất nhiều podcast) và không biết tôi nên mô hình hóa vấn đề như thế nào.

Để thuật toán tạo ra 500 nét hoàn toàn ngẫu nhiên và sau đó chấm điểm đầu ra sẽ mất mãi mãi để hội tụ một cái gì đó hữu ích. Tôi đã nghĩ đến việc giới hạn không gian màu của các nét thành một bộ 64 màu thường xuyên nhất trong mỗi bức tranh (bằng cách chạy biểu đồ trước khi tôi bắt đầu vẽ) và cũng giới hạn lựa chọn kích thước cọ của thuật toán.

Đối với bản ghi, chỉ cần gửi một hình ảnh là một trường rắn có màu phổ biến nhất đã mang lại cho tôi điểm 65%. Các thuật toán hiện đang chiến thắng chủ yếu chỉ là chuyển đổi các bức tranh thành các lưới và đặt một chấm màu trung bình trong mỗi khu vực lên trên mỗi khu vực.

Câu trả lời:


5

Tôi sẽ đề xuất các thuật toán di truyền (GA) hoặc các trình tối ưu toàn cầu khác cho tìm kiếm này, vì điểm số liên tiếp của bạn khi bạn "xây dựng" bức tranh thành các trạng thái phức tạp hơn có lẽ không phải là hướng dẫn tốt nhất.

Có một vài ví dụ về các câu đố tương tự, chẳng hạn như xây dựng Mona Lisa ra khỏi vòng tròn , và đây là một ví dụ gần đây hơn về cùng một vấn đề, với các ví dụ mã .

Một cách tiếp cận GA về cơ bản sẽ bao gồm một quần thể gồm 100 bộ các nét được tạo ngẫu nhiên, mà bạn ghi điểm và đánh giá các lựa chọn tốt nhất. Sau đó, bạn chọn từ dân số, ưu tiên các giải pháp có điểm số tốt nhất (có rất nhiều tùy chọn cho điều đó, chẳng hạn như chỉ chọn từ phần trên cùng, để sử dụng phân phối sai lệch ưu tiên hàng đầu). Tạo các cặp giải pháp và "nhân giống" chúng bằng cách lấy một số phần từ đầu tiên và một số từ cha mẹ thứ hai. Thêm một chút tiếng ồn ngẫu nhiên là một "đột biến". Khi bạn đã làm điều đó đủ để tạo ra một thế hệ thứ hai, hãy lặp lại toàn bộ quá trình. Có rất nhiều biến thể.

RL cũng sẽ hoạt động, nhưng bạn có thể có một nhiệm vụ khó khăn để tạo một hàm chính sách hoặc giá trị có thể học ánh xạ từ các hành động đột quỵ và trạng thái hiện tại đến chính sách hoặc giá trị cuối cùng. Nó chắc chắn khả thi từ quan điểm lý thuyết mặc dù. Nhà nước là hình ảnh hiện tại. Các hành động là một sự lựa chọn của đột quỵ tiếp theo. Phần thưởng là sự cải thiện về điểm số và có lẽ nên được đánh giá trên mỗi hành động (nhưng có thể được thực hiện sau mỗi 10, mỗi 50 hoặc thậm chí ở cuối - sự chậm trễ lâu hơn sẽ thách thức RL nhiều hơn, nhưng có thể cho phép lặp lại nhanh hơn). Hầu hết các thuật toán RL, chẳng hạn như Q-learning, sẽ có thể đối phó với việc tránh kết quả "ngõ cụt" trong đó điểm tốt sớm là dẫn sai và cần được sửa đổi.

Tôi không biết, nhưng sẽ rất quan tâm để xem, liệu GA hay RL giải quyết vấn đề này hiệu quả hơn. . . cảm giác ruột của tôi là GA sẽ là con đường để đi.


1
Đây là suy nghĩ đầu tiên của tôi khi đọc mô tả vấn đề ... có lẽ vì gần đây tôi đã xem bài nói chuyện này: infoq.com/presentations/genetic-alacticms ( 50 phút ) trong đó là một trong ba ví dụ GA của anh ấy. github.com/ckoster22/geneticAlgoKcdc2017 có mã typecript cho nó.
Darren Cook

1

Tôi nghĩ rằng sự hoài nghi của bạn về RL cho nhiệm vụ này là có cơ sở. Nhưng đã có một số nghiên cứu hướng tới việc xây dựng mạng lưới thần kinh để tái tạo phong cách của các họa sĩ. Công việc này thúc đẩy sức mạnh của mạng lưới thần kinh tích chập.

" Một thuật toán thần kinh của phong cách nghệ thuật " Leon A. Gatys, Alexander S. Ecker, Matthias Bethge

Trong mỹ thuật, đặc biệt là hội họa, con người đã thành thạo kỹ năng tạo ra những trải nghiệm thị giác độc đáo thông qua việc kết hợp một sự tương tác phức tạp giữa nội dung và phong cách của một hình ảnh. Cho đến nay, cơ sở thuật toán của quá trình này vẫn chưa được biết và không tồn tại hệ thống nhân tạo nào có khả năng tương tự. Tuy nhiên, trong các lĩnh vực quan trọng khác về nhận thức thị giác như hiệu suất gần giống người và nhận diện khuôn mặt gần đây đã được chứng minh bằng một lớp mô hình tầm nhìn lấy cảm hứng sinh học có tên Deep Neural Networks.1, 2 Ở đây chúng tôi giới thiệu một hệ thống nhân tạo dựa trên Mạng lưới thần kinh sâu tạo ra hình ảnh nghệ thuật có chất lượng cảm nhận cao. Hệ thống sử dụng các biểu diễn thần kinh để phân tách và kết hợp lại nội dung và phong cách của các hình ảnh tùy ý, cung cấp một thuật toán thần kinh để tạo ra các hình ảnh nghệ thuật. Hơn thế nữa,


1
Tôi không thực sự tìm kiếm sự chuyển đổi phong cách ... hơn nữa theo dòng "đưa ra một số hạn chế hành vi nghiêm ngặt, cố gắng hết sức để tạo lại một đầu vào tùy ý".
Joshua Sullivan
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.