Tại sao thuật toán di truyền không được sử dụng để tối ưu hóa mạng lưới thần kinh?


13

Theo hiểu biết của tôi, Thuật toán di truyền là công cụ mạnh mẽ để tối ưu hóa đa mục tiêu.

Hơn nữa, đào tạo Mạng nơ-ron (đặc biệt là mạng sâu) rất khó và có nhiều vấn đề (hàm chi phí không lồi - cực tiểu cục bộ, biến mất và nổ độ dốc, v.v.).

Ngoài ra, về mặt khái niệm, việc đào tạo NN với GA là khả thi. Tôi đã tự hỏi, tại sao chúng không được sử dụng trong thực tế? Có phải là một vấn đề về hiệu suất?

Câu trả lời:


5

Đào tạo Mạng thần kinh (NN) với Thuật toán di truyền (GA) không chỉ khả thi, có một số lĩnh vực thích hợp mà hiệu suất đủ tốt để được sử dụng thường xuyên. Một ví dụ điển hình của việc này là Neuroevolution của các cấu trúc liên kết tăng cường hoặc NEAT , một cách tiếp cận thành công để tạo bộ điều khiển trong các môi trường đơn giản, chẳng hạn như các trò chơi.

Trong trường hợp tổng quát hơn, cách tiếp cận không mở rộng tốt cho các mạng lớn, sâu với nhiều tham số để điều chỉnh.

Các thuật toán di truyền và các tìm kiếm toàn cầu khác cho các tham số tối ưu là mạnh mẽ theo cách mà các thuật toán dựa trên độ dốc không. Chẳng hạn, bạn có thể huấn luyện NN với kích hoạt chức năng bước hoặc bất kỳ chức năng kích hoạt không phân biệt nào khác. Họ có điểm yếu ở nơi khác. Một điều có liên quan trong trường hợp GA được sử dụng cho NN, là các tham số trọng lượng có thể thay thế cho nhau trong một số kết hợp nhưng phụ thuộc rất nhiều vào các kết hợp khác. Hợp nhất hai mạng thần kinh tốt tương đương với các tham số khác nhau - mà bạn sẽ thực hiện trong giao thức chéo trong GA - thường sẽ dẫn đến mạng thứ ba có hiệu suất kém. Thành công của NEAT một phần là tìm ra cách giải quyết vấn đề đó bằng cách "phát triển" các kết nối của NN và kết hợp chúng giữa các mạng thần kinh tương tự.

Phương pháp tiếp cận dựa trên Gradient hiệu quả hơn nhiều. Nói chung, và không chỉ trong miền của NN, nếu bạn có thể tính toán độ dốc của hàm đối với các tham số, thì bạn có thể tìm thấy các tham số tối ưu nhanh hơn hầu hết các kỹ thuật tối ưu hóa khác. Một gradient chính xác đảm bảo ít nhất là một cải tiến nhỏ từ một đánh giá duy nhất và hầu hết các trình tối ưu hóa khác rơi vào mô hình tạo và thử lại mà không thể thực hiện loại đảm bảo đó. Điểm yếu của việc tìm kiếm tối ưu cục bộ hóa ra không phải là trở ngại lớn cho các chức năng mất trong NN và đã được khắc phục với một số mức độ thành công khi sử dụng các tiện ích mở rộng cho độ dốc cơ bản như đà, RPROP, Adam, v.v.

Trong thực tế trên một mạng nhiều lớp lớn, các phương thức gradient có khả năng là các đơn đặt hàng có cường độ nhanh hơn các tìm kiếm GA như NEAT để tìm các tham số mạng. Bạn sẽ không tìm thấy bất kỳ CNN nào được đào tạo về GA giải quyết ImageNet, hoặc thậm chí là MNIST, nơi GA đã tìm thấy các trọng số mạng không được trả. Tuy nhiên, GA, hoặc ít nhất là một số biến thể của chúng, không được loại trừ 100%. Ví dụ , blog năm 2017 này xem xét các bài báo gần đây bao gồm Tiến hóa phân loại hình ảnh quy mô lớn khám phá bằng cách sử dụng GA để khám phá siêu âm NN , đây là một nhiệm vụ quan trọng trong học máy và không dễ sử dụng bằng các phương pháp dựa trên độ dốc.


1

Trên thực tế, Google Brain đã làm điều tương tự đối với các trình phân loại hình ảnh

Tuy nhiên, nghiên cứu của họ sử dụng backpropagation để đào tạo các mạng, nhưng họ sử dụng thuật toán di truyền để tìm ra một kiến ​​trúc tốt. Một điều nữa cần đề cập: để có được mô hình tốt nhất của họ - nó đòi hỏi họ sức mạnh tính toán rất lớn.

Họ đã xuất bản bài báo đầu tiên vào năm 2017 và năm 2018 đã có phiên bản cải tiến . Bạn có thể đọc về nó trong bài viết trên blog của họ

Có một nghiên cứu khác để tìm kiếm kiến ​​trúc mạng, nhưng họ sử dụng tối ưu hóa bayes thay vì thuật toán di truyền

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.