Hệ lai tiến hóa nơron

Một phần của tài liệu Bài giảng Các hệ thống dựa trên tri thức: Phần 2 (Trang 37 - 41)

𝑦 = 𝑓(𝑤1 𝑥 1+ 𝑤2 𝑥2 ), 𝑓(𝑥) =

6.8Hệ lai tiến hóa nơron

Mặc dù các mạng nơ ron được sử dụng để giải quyết nhiều vấn đề, nhưng chúng vẫn có một số hạn chế. Ví dụ, các thuật toán học lan truyền ngược thường được sử dụng vì nó là linh hoạt và dễ xử lý, nhưng nó có một nhược điểm: nó không đảm bảo giải pháp tối ưu toàn cục. Trong các ứng dụng, thuật toán lan truyền ngược có thể hội tụ về một tập hợp các giá trị tối ưu trọng cục bộ. Thuật toán di truyền là một kỹ thuật tối ưu hóa hiệu quả (cho toàn cục) và lựa chọn cấu trúc liên kết phù hợp.

Kỹ thuật tối ưu hóa trọng của mạng nơ ron bằng giải pháp tiến hóa (Montana và Davis, 1989; Whitley và Hanson , 1989; Ichikawa và Sawa, 1992), cụ thể là giải thuật di truyền có thể tóm tắt như sau. Để sử dụng các thuật toán di truyền, đầu tiên cần mô tả tên một NST (tiếng Anh: Chromosome). Các topology kết nối của mạng nơ ron thể hiện bởi một ma trận vuông kết nối (hình 6.11). Mỗi cột trong ma trận xác định loại kết nối từ một tế bào thần kinh (cột) khác (hàng), trong đó 0 biểu thị không có kết nối và 1 biểu thị kết nối mà trọng số được xác định thông qua quá trình học. Để chuyển đổi ma trận kết nối vào một nhiễm sắc thể, chỉ cần kết chuỗi các hàng của ma trận với nhau (hình 6.11).

114

Hình 6.11 : Tập mã hóa nhiễm sắc thể

Hình 6.12 : Lai ghép từ bố mẹ (Parent1 lai Parent1) tạo con (Child)

Giả sử, muốn tối ưu trọng cho mạng nơ ron nhiều lớp truyền thẳng, trọng ban đầu trong mạng được chọn ngẫu nhiên trong khoảng (-1, 1). Mô hình mạng nơ ron có thể biểu diễn bằng

115

một ma trận vuông, trong đó một số thực trong ma trận tương ứng với trọng số của một nơ ron, và số 0 trang ma trận (có nghĩa là không có kết nối giữa hai nơ ron) (hình 6.11). Tổng cộng, có 16 liên kết giữa các nơ ron (16 phần tử của ma trận có giá trị số; các phần tử còn lại đều bằng

Một nhiễm sắc thể là một bộ gen, một tập hợp của các số được đại diện bởi một 1 gen gồm 16 NTS, trong đó, mỗi gen tương ứng với một liên kết có trọng duy nhất trong mạng. Vì vậy, nếu xếp chuỗi các hàng của ma trận với nhau, bỏ qua số không, chúng ta có một NST (xem: Chromosome, Hình 6.11).

Bước tiếp theo, chọn các toán tử di truyền: toán tử lai ghép và đột biến. Toán tử lai từhai NST là bố mẹ, tạo đứa trẻ có di truyền từ bố mẹ. Mỗi gen trong NSTcủa trẻ đại diện bởi các gen tương ứng của bố mẹ được lựa chọn ngẫu nhiên (Hình 6.12).

Hình 6.13 cho ví dụ về đột biến.

Hình 6.13 : Mạng nơ ron tối ưu hóa: (b) đột biến

Xác định quy mô (số lượng) các quần thể (dân số), tức là số lượng các mạng với trọng

lượng khác nhau, kiểu lai và đột biến xác suất và số lượng của các thế hệ.

Đến nay, chúng ta giả định rằng cấu trúc của mạng cố định, và tiến hóa chỉ được sử dụng để tối ưu hóa trọng lượng trong các mạng cung cấp. Tuy nhiên, các kiến trúc của mạng (tức là số lượng nơ ron và họ mối liên kết, tức là trọng số) sẽ quyết định sự thành công hay thất bại của các ứng dụng. Các thuật toán di truyền cũng có thể giúp lựa chọn mạng kiến trúc (tức số lượng nơ ron trong mạng).

116

Ý tưởng cơ bản để phát triển một kiến trúc mạng phù hợp là tìm kiếm di truyền trong một quần thể (Miller et al., 1989; Schaffer et al., 1992). Trước tiên, chọn phương pháp mã hóa một kiến trúc mạng thành một nhiễm sắc thể. Có nhiều cách khác nhau để mã hóa cấu trúc của mạng. Điều quan trọng là quyết định bao nhiêu thông tin là cần thiết cho các mạng đại diện. Cho một tập các ví dụ huấn luyện và một chuỗi nhị phân cho kiến trúc mạng; một GA cơ bản có thể được mô tả bởi những điều sau đây bước sau:

Hình 6.14 : Mạng mã hóa trực tiếp

Bước 1: Chọn kích thước của một số nhiễm sắc thể, lai tạo, đột biến và xác định số lượng các

bước huấn luyện.

Bước 2: Xác định chức năng huấn luyện để đo hiệu suất của một NST riêng lẻ thíchhợp. Nói

chung, sự thích hợp của mạng không nên chỉ dựa vào độ chính xác, mà còn về tốc độ học, kích thước và độ phức tạp của nó. Tuy nhiên, hiệu suất của mạng quan trọng hơn so với kích thước của nó, do đó các chức năng vẫn có thể được xác định bởi tổng các bình phương lỗi.

Bước 3: Ngẫu nhiên tạo ra một số ban đầu của nhiễm sắc thể.

Bước 4: Giải mã một NST riêng lẻ thành một mạng nơ ron. Tính tổng các lỗi bìnhphương và

xác định tập thể dục của mạng.

Bước 5: Lặp lại bước 4 cho đến khi tất cả cá thể trong dân số đã được xem xét.

Bước 6: Chọn một cặp NST cho giao phối, với xác suất thích hợp

Bước 7: Tạo một cặp NSTcon bằng cách áp dụng các gen lai và đột biến. Một nhà điều hành

lai ngẫu nhiên, đơn giản là hoán đổi các hàng tương ứng giữa cha mẹ, tạo ra con cái. Đột biến một hoặc hai bit trong các NST với xác xuất thấp (khoảng 0.005)

117

Bước 8: Đặt cácNSTcon được tạo ra trong quần thể mới. (adsbygoogle = window.adsbygoogle || []).push({});

Bước 9: Lặp lại bước 6 cho đến khi kích thước của quần thểNSTmới bằng kích thướccủa quần

thể ban đầu; sau đó thay thế quần thể ban đầu bằng NST mới.

Hình 6.15 : Vòng đời tiến hóa của 1 mạng nơ ron

Bước 10: Quay về bước 4 và lặp lại quá trình này cho đến khi một số quy định của cácthế hệ

đạt được. Chu trình tiến hóa phát triển của mạng nơ ron được trình bày trong Hình 6.15. Ngoài việc học mạng nơ ron, tiến hóa tính toán cũng được sử dụng để tối ưu hóa các phép lai và chọn biến đầu vào.

Một phần của tài liệu Bài giảng Các hệ thống dựa trên tri thức: Phần 2 (Trang 37 - 41)