Tôi không chắc chắn nếu sử dụng chuỗi bit là ý tưởng hay nhất, tôi muốn thể hiện ít nhất trọng số với giá trị thực. Tuy nhiên bitstrings cũng có thể làm việc.
Nếu bạn có một topo cố định, sau đó cả hai chéo và đột biến là khá dễ dàng (giả sử bạn chỉ phát triển các trọng của mạng):
Crossover: mất một trọng lượng từ một phụ huynh, phần còn lại từ người kia, có thể được thực hiện rất dễ dàng nếu bạn đại diện cho trọng số dưới dạng mảng hoặc danh sách. Để biết thêm chi tiết hoặc các lựa chọn thay thế, hãy xem http://en.wikipedia.org/wiki/Crossover_%28genetic_algorithm%29.
Đột biến: chỉ cần chọn một số trọng số và điều chỉnh chúng một chút.
Phát triển một số nội dung khác (ví dụ: chức năng kích hoạt) tương tự như vậy.
Nếu bạn cũng muốn phát triển cấu trúc liên kết thì mọi thứ trở nên thú vị hơn nhiều. Có một số khả năng đột biến bổ sung, như thêm nút (có khả năng kết nối với hai nút đã tồn tại), tách một kết nối (thay vì A-> B có A-> C-> B), thêm kết nối, hoặc đối lập trong số này.
Nhưng giao nhau sẽ không quá dễ dàng (ít nhất là nếu số lượng nút không cố định), vì bạn có thể muốn tìm các nút "khớp" (nơi khớp có thể là bất kỳ thứ gì, nhưng có thể liên quan đến tương tự " vai trò ", hoặc một vị trí tương tự trong mạng). Nếu bạn cũng muốn làm điều đó tôi muốn khuyên bạn nên nghiên cứu kỹ thuật đã tồn tại. Một cái mà tôi biết và thích được gọi là NEAT. Bạn có thể tìm thấy một số thông tin về nó ở
http://en.wikipedia.org/wiki/Neuroevolution_of_augmenting_topologies
http://nn.cs.utexas.edu/?neat
và http://www.cs.ucf.edu/~kstanley/neat.html
Nguồn
2010-07-02 09:35:44
NEAT cho phép các mạng có chu kỳ/sự lặp lại trong chúng. Làm thế nào để bạn xử lý điều đó trong quá trình đánh giá? –
@iliacholy nó thường phụ thuộc vào vấn đề mà bạn đang cố gắng giải quyết. Đối với các nhiệm vụ điều khiển (như rô bốt cân bằng cực), các kết nối lặp lại có thể hữu ích vì chúng có thể cung cấp cách tính các dẫn xuất của các giá trị theo thời gian. Khi đánh giá mạng, bạn có thể thực hiện một lần truyền đơn giá trị mỗi dấu thời gian hoặc bạn tiếp tục truyền giá trị cho đến khi kết quả đầu ra ổn định ... Tôi không chắc liệu có bất kỳ câu trả lời 'đúng' nào không. :) –