13

Tôi có cơ sở tốt về thuật toán tiến hóa, vì vậy bây giờ tôi bắt đầu đọc về mạng nơron nhân tạo. Tôi đi qua hướng dẫn này trên http://www.ai-junkie.com/ann/evolved/nnt2.html, cho biết cách sử dụng ANN để phát triển Xe tăng thu thập mỏ. Nó sử dụng một GA để phát triển các trọng lượng đầu vào trên mỗi Neuron.Sự khác biệt giữa mạng nơron và thuật toán tiến hóa

Tôi biết tôi có thể sử dụng GA (không có ANN) để giải quyết cùng một vấn đề. Tôi đã tạo ra một Tetris Bot chỉ sử dụng GA để tối ưu hóa các trọng số trong chức năng đánh giá lưới (kiểm tra blog của tôi http://www.bitsrandomicos.blogspot.com.br/).

Câu hỏi của tôi là: sự khác biệt về khái niệm/thực tế giữa việc sử dụng ANN + GA trong trường hợp tôi có thể sử dụng GA một mình ở đâu? Ý tôi là, Tetris Bot của tôi là ANN? (Tôi không nghĩ vậy).

Có một số câu hỏi liên quan về vấn đề này, nhưng tôi không thể tìm thấy một câu trả lời:

Are evolutionary algorithms and neural networks used in the same domains?

When to use Genetic Algorithms vs. when to use Neural Networks?

Cảm ơn!

Trả lời

18

A thuật toán di truyền là một thuật toán tối ưu hóa .

An mạng nơron nhân tạo là một số hàm xấp xỉ. Để ước tính một hàm bạn cần một thuật toán tối ưu hóa để điều chỉnh trọng số. ANN có thể được sử dụng cho việc học có giám sát (phân loại, hồi quy) hoặc học tăng cường và một số thậm chí có thể được sử dụng cho việc học tập không giám sát.

Trong học tập được giám sát, thuật toán tối ưu hóa không có nguồn gốc phái sinh như thuật toán di truyền chậm hơn hầu hết các thuật toán tối ưu hóa sử dụng thông tin về gradient. Vì vậy, nó chỉ có ý nghĩa để phát triển mạng thần kinh với các thuật toán di truyền trong học tập tăng cường. Điều này được gọi là "neuroevolution". Lợi thế của các mạng nơron như perceptron đa lớp trong thiết lập này là chúng có thể xấp xỉ bất kỳ hàm nào với độ chính xác tùy ý khi chúng có số lượng nút ẩn hoàn chỉnh.

Khi bạn tạo bot tetris, bạn không nhất thiết phải sử dụng ANN làm hàm xấp xỉ. Nhưng bạn cần một số loại hàm xấp xỉ để đại diện cho chính sách của bot của bạn. Tôi đoán nó đơn giản hơn ANN. Nhưng khi bạn muốn tạo ra một chính sách phi tuyến phức tạp, bạn có thể làm điều đó e. g. với ANN.

+1

Vì vậy, trong Tetris Bot của tôi tôi có một heuristic, nơi GA giai điệu trọng lượng của mỗi tham số hội đồng quản trị (như chiều cao lưới, số lỗ, vv). Trong ví dụ về Tanks-Mines, tôi có thể xem mỗi Neuron là 'tham số ẩn danh' (tức là một số tính năng sẽ ảnh hưởng đến hành vi của Tank nhưng chưa được đặt tên?) - Chỉ cần một sự tương tự, cảm ơn! – Fernando

+1

Có, bạn có thể làm điều đó. Mạng nơron được coi là các hàm xấp xỉ hàm hộp đen. Điều đó có nghĩa là bạn thường không thể hiểu được ANN làm gì khi nhìn vào các giá trị trọng lượng của nó. Thật khó để trích xuất bất kỳ 'quy tắc' đơn giản nào. :) – alfa

0

Tôi không phải là chuyên gia, nhưng dựa trên những gì tôi biết từ hiện trường ..

Mạng nơron nhân tạo có cơ sở về khoa học thần kinh cuối cùng. Nó cố gắng mô phỏng/mô hình hóa hành vi của nó thông qua việc xây dựng một cấu trúc giống như nơron trong thuật toán. Có một sự nhấn mạnh mạnh về bản chất học tập của vấn đề hơn là kết quả. Từ những gì tôi hiểu, vì lý do này mà ANN không phải là rất phổ biến từ một quan điểm kỹ thuật. Cơ sở thống kê về học máy (mạng HMM và Bayesian) tạo ra kết quả tốt hơn.

Tóm lại, miễn là nó có một cái gật đầu đối với một số chủ đề thần kinh cơ bản, nó có thể là ANN, ngay cả khi nó sử dụng một dạng GA nào đó.

Nếu bạn sử dụng GA, nó không nhất thiết phải là ANN.

+1

Có một số điểm tương đồng giữa mạng thần kinh và khoa học thần kinh, nhưng mạng thần kinh không cố gắng mô hình hóa các tế bào thần kinh tự nhiên nói chung. –

6

câu trả lời của alfa là hoàn hảo. Dưới đây chỉ là một hình ảnh để minh họa cho những gì ông nói:

enter image description here Meta-Optimizer = None (nhưng có thể)
Optimizer = Genetic Algorithm
Vấn đề = Tetris Bot (ví dụ ANN)

2

Bạn sử dụng tiến hóa thuật toán nếu bạn chưa không biết câu trả lời nhưng bạn có thể bằng cách nào đó xếp hạng ứng cử viên và cung cấp các đột biến có ý nghĩa.

Mạng thần kinh là tuyệt vời nếu bạn đã có câu trả lời (và đầu vào) và bạn muốn "đào tạo máy tính" để có thể đoán câu trả lời cho các mục nhập không xác định. Ngoài ra, bạn không phải suy nghĩ nhiều về vấn đề này, mạng sẽ tự tìm ra nó.

Kiểm tra này "trò chơi AI" Ví dụ: https://synaptic.juancazala.com/#/
(lưu ý cách đơn giản nó là, tất cả các bạn phải làm là cung cấp cho họ đủ huấn luyện, bạn không cần phải biết gì về trò chơi AI - và một khi nó là đủ tốt, tất cả những gì bạn phải làm là để "tải xuống" bộ nhớ và chạy nó khi cần)

Các vấn đề liên quan