SAINT là một mạng nơ-ron cấu trúc cây với mạng con có cấu trúc hai chiều mạng. Để bảo toàn cấu trúc liên kết mạng của mỗi mạng con, chúng ta xem xét hệ thống láng giềng gần nhất, có thể đƣợc định nghĩa nhƣ sau.
Nút là láng giềng của i nếu và chỉ nếu: 1) i ;
Để thực hiện các mục tiêu đã đặt ra: thiết kế mạng nơ-ron với đầu vào phức tạp và phân loại đƣợc bộ dữ liệu lớn, thuật toán học của SAINT cần có các tính chất sau:
- Việc điều chỉnh tham số phải đƣợc thực hiện trƣớc hi điều chỉnh cấu trúc của mạng.
- Mạng cần có các thuộc tính tƣơng ứng với mạng tổng thể.
Do đó thuật toán học của mạng nhƣ sau:
1) Khởi tạo các biến
k 1; // trong đó là số mức trong cấu trúc mạng // Ngƣỡng để khởi tạo hay xóa một nút 2) HILE (điều kiện dừng) DO
0 ; // r: thứ tự của láng giềng, // tốc độ học
WHILE (epoch?) DO
-Tính toán lỗi giữa input và nút ở mức cuối cùng, lựa chọn nút có lỗi tối thiểu nc với:
- Cập nhật trọng số của nút đƣợc chọn và nút láng giềng của nó:
- Tính toán:
Trong đó: là thời gian w với ích thƣớc khởi tạo. là lỗi ở thời điểm t
là hàm bƣớc nhảy
- tăng bộ đếm tham chiếu cho nút đƣợc chọn - giảm ích thƣớc của láng giềng r và tốc độ học
END WHILE
Xóa những nút không hoạt động trong một khoảng thời gian dài Hòa nhập những nút mà mạng con cảu nó ở cùng mức k
- Lựa chọn nút Ni, Nj với điều kiện :
Trong đó và M là số nút trong mạng con - Tính toán lại việc khởi tạo trọng số của nút đƣợc hòa nhập wnew = 0.5 (wi+ wj)
- Xóa nút Ni, Nj Tạo mạng con với nút Xóa . Trong đó 0 < <1 END WHILE 3) Tối ƣu mạng 4) Gắn địa chỉ các lớp vào các nút lá Tổng kết chƣơng 2
Chƣơng 3: GIẢI THUẬT DI TRUYỀN 3.1 Cơ sở thực tiễn của giải thuật di tru ền
Giải thuật di truyền (GA-Genetic lgorithms) c ng nhƣ các thuật toán tiến hóa nói chung, hình thành trên quan niệm cho rằng quá trình tiến hoá tự nhiên là quá trình hoàn hảo nhất, hợp lí nhất và tự nó đã mang tính tối ƣu. Quan niệm này có thể đƣợc xem nhƣ một tiên đề đúng, hông chứng minh đƣợc nhƣng phù hợp với thực tế khách quan. Quá trình tiến hóa thể hiện tính tối ƣu ở chỗ: thế hệ sau bao giờ c ng tốt hơn (phát triển hơn, hoàn thiện hơn) thế hệ trƣớc. Xuyên suốt quá trình tiến hóa tự nhiên, các thế hệ mới luôn đƣợc sinh ra để bổ sung, thay thế cho thế hệ c nhờ hai quá trình cơ bản: sinh sản và chọn lọc tự nhiên, mỗi cá thể muốn tồn tại và phát triển phải thích nghi với môi trƣờng, cá thể nào thích nghi hơn thì tồn tại, cá thể nào kém thích nghi thì bị tiêu diệt.
Trong mỗi cá thể có một tập các nhiễm sắc thể (NST), mỗi NST gồm nhiều gen liên kết với nhau theo cấu trúc dạng chuỗi, quy định các tính trạng của cá thể đó. Các cá thể thuộc cùng một loài có số lƣợng và cấu trúc NST đặc trƣng nhƣng cấu trúc các gen thì hác nhau, điều đó tạo nên sự khác biệt giữa các cá thể trong cùng loài và quyết định sự sống còn của cá thể đó. Do môi trƣờng tự nhiên luôn biến đổi nên cấu trúc NST c ng thay đổi để thích nghi với môi trƣờng và thế hệ sau luôn thích nghi hơn thế hệ trƣớc. Cấu trúc này có đƣợc do sự trao đổi thông tin có tính ngẫu nhiên với môi trƣờng bên ngoài hoặc giữa các NST với nhau.
Từ ý tƣởng đó, các nhà hoa học đã nghiên cứu và xây dựng nên giải thuật di truyền dựa trên cơ sở chọn lọc tự nhiên và quy luật tiến hoá. Giải thuật di truyền mô phỏng bốn quá trình cơ bản của tự nhiên: lai ghép, đột biến, sinh sản và chọn lọc tự nhiên. Ở đây mỗi cá thể chỉ có một NST. Các NST đƣợc chia nhỏ thành các gen đƣợc sắp xếp theo một dãy tuyến tính. Mỗi cá thể (hay NST) biểu diễn một lời giải có thể của bài toán. Một xử lý tiến hoá duyệt trên tập các
NST tƣơng đƣơng với việc tìm kiếm lời giải trong không gian lời giải của bài toán. Quá trình tìm kiếm phải đạt đƣợc hai mục tiêu:
- Khai thác những lời giải tốt nhất
- Xem xét trên toàn bộ không gian tìm kiếm
3.2 Cơ chế thực hiện giải thuật di tru ền
Một thuật giải di truyền (hay một chƣơng trình tiến hóa bất kỳ) để giải một bài toán cụ thể phải bao gồm năm thành phần sau đây:
- Mã hoá lời giải - Cách biểu diễn di truyền cho lời giải của bài toán. - Cách khởi tạo quần thể ban đầu.
- Một hàm lƣợng giá đóng vai trò môi trƣờng để đánh giá các lời giải theo mức độ “thích nghi” của chúng.
- Các phép toán di truyền (chọn lọc, lai tạo, đột biến).
- Các tham số hác ( ích thƣớc quần thể, xác suất áp dụng các phép toán di truyền).
GA sẽ thực hiện tiến trình tìm kiếm lời giải tối ƣu theo nhiều hƣớng, bằng cách duy trì một quần thể các lời giải và thúc đẩy sự hình thành và trao đổi thông tin giữa các hƣớng này. Quần thể trải qua quá trình tiến hóa: ở mỗi thế hệ sẽ tạo ra các cá thể mới bằng cách lai ghép các cá thể đã có và đột biến chúng theo một xác suất nhất định. Sau đó các cá thể tƣơng đối “tốt” sẽ đƣợc giữ lại trong khi các cá thể tƣơng đối “xấu” thì chết đi, tạo ra thế hệ mới tốt hơn thế hệ trƣớc.
Cấu trúc của giải thuật di truyền đƣợc mô phỏng theo thuật toán:
Procedure Giải_thuật_di_truyền;
Begin
t:=0;
Khởi tạo ngẫu nhiên quần thể P(t);
Đánh giá độ phù hợp từng cá thể trong P(t);
Đánh giá độ phù hợp các cá thể trong tập P(t);
Until (thoả điều kiện dừng); End;
Giải thích:
Tại lần lặp thứ t, G xác định một tập hợp các lời giải có thể (các cá thể hay NST) gọi là quần thể P(t) = { xt1, xt2,..., xtm } (số cá thể m gọi là kích cỡ quần thể). Mỗi lời giải xti đƣợc đánh giá nhằm xác định độ phù hợp của nó. Sau đó, một tập hợp các lời giải đƣợc hình thành nhờ sự lựa chọn các lời giải phù hợp hơn. Một số phần tử của tập hợp này đƣợc tái sản xuất thông qua lai ghép và đột biến. Từ đó hình thành quần thể mới P(t+1) với hy vọng chứa các cá thể phù hợp hơn quần thể trƣớc đó.
Nhƣ vậy, bản chất GA là một giải thuật lặp, nhằm giải quyết các bài toán tìm kiếm dựa trên cơ chế chọn lọc nhân tạo và sự tiến hoá của các gen. Trong quá trình đó, sự sống còn của cá thể phụ thuộc vào hoạt động của các NST và quá trình chọn lọc (tham gia vào việc tái tạo ra các chuỗi NST mới bằng cách giải mã các chuỗi NST và tạo ra mối liên kết giữa các NST trong các cá thể khác nhau).
GA sử dụng các toán tử: chọn lọc, lai ghép, đột biến trên các NST để tạo ra chuỗi mới. Những toán tử này thực chất là việc sao chép chuỗi, hoán vị các chuỗi con và sinh số ngẫu nhiên.
Cơ chế của G đơn giản nhƣng lại có sức mạnh hơn các giải thuật thông thƣờng khác nhờ có sự đánh giá và chọn lọc sau mỗi bƣớc thực hiện. Do vậy khả năng tiến gần đến lời giải tối ƣu của GA sẽ nhanh hơn nhiều so với các giải thuật khác.
Có thể nói GA khác với những giải thuật tối ƣu thông thƣờng ở những đặc điểm sau:
- GA làm việc với tập mã của biến chứ không phải bản thân biến
- GA thực hiện tìm kiếm trên một quần thể các cá thể chứ không phải trên một điểm nên giảm bớt khả năng ết thúc tại một điểm tối ƣu cục bộ mà không thấy tối ƣu toàn cục.
- GA chỉ cần sử dụng thông tin của hàm mục tiêu để phục vụ tìm kiếm chứ hông đòi hỏi các thông tin hỗ trợ khác.
- Các thao tác cơ bản trong giải thuật dựa trên khả năng tích hợp ngẫu nhiên, mang tính xác suất chứ không tiền định.
3.3 Các thành phần trong giải thuật di tru ền
Mã hoá lời giải - Biểu diễn di truyền cho lời giải của bài toán
Đây là công việc đầu tiên cần thực hiện khi giải bài toán với GA. GA làm việc với tập mã của biến chứ không phải bản thân biến, do đó hi mã hóa lời giải ta đồng thời phải tiến hành hai công việc:
- Xây dựng cấu trúc gen cho mỗi lời giải của bài toán để từ mỗi lời giải ta có thể mã hoá thành một NST (chuỗi các gen).
- Giải mã các NST để nhận đƣợc lời giải.
Tuỳ thuộc vào đặc điểm của từng bài toán mà ta có cách mã hoá khác nhau. Sau đây là các phƣơng pháp mã hoá hay đƣợc sử dụng:
Mã hoá dạng chuỗi nhị phân:
Đây là phƣơng pháp thông dụng và cơ bản nhất đƣợc sử dụng ngay từ bƣớc ban đầu khi nghiên cứu GA.
Trong phƣơng pháp này mỗi NST(lời giải) là một chuỗi nhị phân (chuỗi các bit 0 và 1) có chiều dài: m= n i i m 1
trong đó m1 bit đầu tiên biểu diễn giá trị của x1(các giá trị trong khoảng [a1,b1]), m2 bit tiếp theo biểu diễn giá trị của x2… và mn bit cuối cùng biểu diễn giá trị của xn.
Ví dụ: Muốn tìm cực đại hàm n biến f(x1,x2,…,xn) với (x1, x2, …, xn) thuộc một miền D nào đó của không gian Rn , Di=[ai,bi] R . Và ta muốn tối ƣu hóa hàm f với độ chính xác cho trƣớc là 6 số l với giá trị của các biến. Khi đó mỗi miền Di sẽ đƣợc phân cắt thành (bi – ai) x 106 miền con bằng nhau, mi sẽ là số nguyên nhỏ nhất sao cho:
(bi – ai) x 106 ≤ 2mi
Để tính giá trị thực của xi (giải mã các NST) ta thực hiện theo công thức: xi = ai + decimal(chuỗi2) x 1 2 mi a bi i
Mỗi NST là một chuỗi các số nguyên thể hiện thứ tự phân bố lời giải của bài toán. Ví dụ: Trong bài toán ngƣời du lịch, mỗi NST(lời giải) là một chuỗi các số nguyên thể hiện thứ tự các thành phố đƣợc thăm.
Cách mã hóa này đƣợc sử dụng trong bài toán có sắp xếp thứ tự, không gian tìm kiếm không phải là một miền liên tục.
Mã hoá dạng cây:
Đƣợc sử dụng chủ yếu trong các biểu thức toán học, trong phƣơng pháp mã hoá này mỗi NST là một cây của một nhóm đối tƣợng nào đó.
Ví dụ: Biểu thức sau x+(y / 8) đƣợc mã hoá thành:
Mã hoá số thực :
Mỗi NST đƣợc mã hoá là một véc tơ trong hông gian Rn, mỗi phần tử buộc phải nằm trong khoảng mong muốn và các phép toán đƣợc thiết kế một cách cẩn thận để đảm bảo yêu cầu này.
Chẳng hạn ở bài toán trên mỗi NST là một vectơ: x=(a1, a2, ..., an) với các ai R biểu hiện giá trị thực của xi.
Cách mã hoá này thƣờng tự nhiên đối với các bài toán tối ƣu số, và phát huy hiệu quả khi áp dụng giải bài toán cần độ chính xác cao, trong một không gian với số chiều lớn, do đó đƣợc phát triển rất mạnh trong thời gian gần đây.
Khởi tạo quần thể ban đầu
Tập lời giải ban đầu thƣờng đƣợc khởi tạo ngẫu nhiên từ miền xác định của các lời giải. Cách tạo lập tập lời giải ban đầu phụ thuộc rất nhiều vào cách mã hoá NST:
- Với phƣơng pháp mã hoá nhị phân: xây dựng NST bằng cách tạo ngẫu nhiên chuỗi các bit 0 hoặc 1, c ng có thể sử dụng những hiểu biết về phân phối xác suất để khởi tạo.
+ / x
- Với phƣơng pháp mã hoá thứ tự: xây dựng NST ban đầu bằng cách hoán vị ngẫu nhiên các thứ tự.
- Với mã hoá số thực: tạo ngẫu nhiên m véc tơ thực trong Rn.
Xác định hàm lượng giá
Hàm lƣợng giá đóng vai trò môi trƣờng, đánh giá hả năng phù hợp của tập lời giải theo yêu cầu bài toán. Hàm này đƣợc xây dựng cho từng bài toán với yêu cầu cụ thể. Thông thƣờng trong các bài toán tối ƣu hàm này chính là hàm mục tiêu của bài toán.
3.4 Các toán tử di tru ền
3.4.1 Toán tử chọn lọc
Toán tử chọn lọc có vai trò rất quan trọng trong quá trình tiến hóa, nhờ quá trình này mà sau mỗi lần tiến hóa các cá thể có độ phù hợp cao đƣợc giữ lại còn các cá thể phù hợp thấp bị loại bỏ.
Việc chọn lọc các cá thể căn cứ vào độ thích nghi đối với môi trƣờng của chúng. Thông thƣờng, mỗi cá thể đƣợc gắn với một hàm để đánh giá độ thích nghi (chính là hàm lƣợng giá). Hàm này là hàm thực dƣơng, có thể không liên tục, không tuyến tính, không khả vi.
Tuy nhiên ngƣời ta c ng phát triển nhiều sơ đồ chọn khác nhau, dựa theo các căn cứ khác nhau nhằm làm tăng tính đa dạng của quần thể, tránh sự hội tụ sớm đến các cực trị địa phƣơng.
Chọn lọc dựa trên độ thích nghi trung bình: Mỗi quần thể đặc trƣng bởi một độ thích nghi trung bình. Mỗi lần tiến hoá ta chỉ giữ lại các cá thể có độ phù hợp cao (độ thích nghi > độ thích nghi trung bình), còn các cá thể phù hợp thấp bị loại bỏ.
F =
size i1 f(cti)
- Tính xác suất chọn pi cho mỗi cá thể cti (i = 1.. size): pi = f(cti) /F
- Tính vị trí xác suất qi của mỗi cá thể: qi =
i j 1 pi
Tiến trình chọn lọc đƣợc thực hiện bằng cách quay bánh xe Rulet size lần, mỗi lần chọn một cá thể từ quần thể hiện hành vào quần thể mới theo cách sau:
- Phát sinh ngẫu nhiên một số r trong khoảng [0..1].
- Nếu r < qi thì chọn cá thể đầu tiên, ngƣợc lại thì chọn cá thể thứ i: cti(i = 2..size) sao cho qi-1 < r ≤ qi
Chọn lọc dựa trên sự cạnh tranh: chọn ngẫu nhiên 2 cá thể trong quần thể, so sánh độ thích nghi giữa chúng, giữ lại cá thể có độ thích nghi cao hơn.
3.4.2 Toán tử lai ghép
Lai ghép là quá trình hình thành nhiễm sắc thể mới trên cơ sở các nhiễm sắc thể cha-mẹ, bằng cách ghép một hay nhiều đoạn gen của hai nhiễm sắc thể cha-mẹ với nhau. Lai ghép giúp tạo ra các thế hệ thích nghi hơn thế hệ trƣớc thoả mãn quy luật tiến hoá của tự nhiên.
Sau khi chọn lọc đƣợc m NST, lần lƣợt lấy ra từng cặp NST để lai ghép tạo ra hai NST mới. Một số dạng toán tử lai ghép hay dùng là:
Lai ghép 1 điểm: Chọn ngẫu nhiên một vị trí sau đó hoán vị phần đứng sau vị trí vừa chọn giữa hai NST cha và mẹ để nhận đƣợc hai NST con. Ví dụ: nếu cặp NST cha mẹ đƣợc biểu diễn dƣới dạng hai véctơ:
(a1, b1, c1,| d1, e1, g1 ) và
Với vị trí lai là 3 thì 2 NST con nhận đƣợc sau khi lai ghép sẽ là: (a1, b1, c1, |d2, e2, g2)
và
(a2, b2, c2, |d1, e1, g1 )
Lai ghép hai điểm: Chọn ngẫu nhiên hai vị trí trong một NST, sau đó hoán vị các giá trị đứng giữa hai điểm đã chọn của hai NST cha mẹ để nhận đƣợc hai NST con.
Ví dụ: nếu cặp NST cha mẹ đƣợc biểu diễn dƣới dạng hai véctơ: (a1,| b1, c1,| d1, e1, g1 )
và
(a2, |b2, c2, |d2, e2, g2)
Với 2 vị trí lai là 1 và 3 thì 2 NST con nhận đƣợc sau khi lai ghép sẽ là: (a1,| b2, c2, |d1, e1, g1)
và
(a2, |b1, c1, |d2, e2, g2)
Lai ghép mặt nạ: Tạo một mặt nạ ngẫu nhiên có số bit bằng chiều dài của NST. Ta sẽ hoán vị các giá trị của hai NST cha và mẹ ở những vị trí tƣơng ứng với vị trí bit 1 của mặt nạ.
Ví dụ: Nếu cặp NST cha mẹ đƣợc biểu diễn dƣới dạng hai véctơ: