Thuật toán lan truyền ngƣợc sai số là thuật toán rất phổ biến đƣợc sử dụng trong quá trình huấn luyện mạng nơ ron.
Mạng nơ ron MLP sử dụng thuật toán lan truyền ngƣợc sai số đƣợc gọi là mạng BP (Back Propagation Network). Hình 1.12 minh họa cấu trúc mạng với thuật toán lan truyền ngƣợc sai số.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/ Hình 1.12: Mạng MLP lan truyền ngược sai số
Giả sử tập mẫu dùng để huấn luyện mạng gồm mẫu , k=1,2,.., thủ tục BP xây dựng một chuỗi các hàm sai số
Trong đó:
m : là số nơ ron đầu ra
là thành phần thứ j của vectơ ra mong muốn
là thành phần thứ j của vectơ ra mong muốn do lan truyền đầu vào
Các hàm sai số này lần lƣợt đƣợc tối thiểu trong không gian các trọng số. Giá trị hàm sai số đối với một mẫu đƣợc tính toán dựa trên giá trị các trọng số hiện tạị
Các giá trị trọng số này sau đó đƣợc hiệu chỉnh và trở thành các giá trị trọng số hiện tại để tính giá trị hàm sai số tiếp theo . Cách làm này có khả năng tạo ra sự dao động trong quá trình hiệu chỉnh các trọng số. Kết quả hiệu chỉnh hiện tại có thể làm hỏng kết quả hiệu chỉnh ở các lần trƣớc đó.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Giải pháp thay thế là xây dựng một hàm sai số duy nhất bằng cách tích luỹ các sai số
Các trọng số của mạng nơ ron chỉ đƣợc hiệu chỉnh sau khi tất cả các véc tơ tín hiệu vào có trong tập mẫu đƣợc lan truyền qua mạng nơ ron.
Quá trình huấn luyện tiến hành nhƣ sau:
+ Trƣớc tiên ta xét lan truyền tín hiệu qua từng lớp mạng: lớp nhập, lớp ẩn và lớp xuất.
Giả sử tín hiệu đƣa vào mạng nơ ron x = (x1, x2, ..., xm) với m là số nơ ron trong lớp nhập, l là số nơ ron trong lớp ẩn và n là số nơ ron trong lớp xuất. Các nơ ron trong lớp nhập nhận và truyền tín hiệu sang lớp ẩn. Đầu vào các nơ ron (nút) trong lớp ẩn thứ nhất có dạng:
Trong đó wqj là trọng số liên kết từ nút j của lớp nhập đến nút q của lớp ẩn. Đầu ra zq của lớp ẩn nhận đƣợc:
Với ănetq) là hàm kích hoạt của các nơ ron trong lớp ẩn. Đầu vào của nút ở lớp xuất sẽ nhận đƣợc:
(1.13) (1.12)
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Đầu ra của nút i ở lớp xuất nhận đƣợc
Sau khi lan truyền tín hiệu thẳng qua mạng, sai số của tín hiệu ra sẽ đƣợc lan truyền ngƣợc để điều chỉnh các trọng số, mục tiêu ở đây là cực tiểu sai số giữa tín hiệu ra y = (y1, y2, ..., yn) của mạng nơ ron và tín hiệu mong muốn d=(d1, d2, ..., dn), hàm mục tiêu có dạng:
=
Theo phƣơng pháp giảm gradient, trọng số liên kết giữa lớp ẩn và lớp xuất đƣợc điều chỉnh nhƣ sau:
Ở đây là hệ số học của mạng nơ ron. Sử dụng (1.14) và (1.15) ta có:
=
Trong đó là tín hiệu sai số, i là số thứ tự của nút i của lớp xuất; tín hiệu sai số đƣợc định nghĩa nhƣ sau:
Với netilà tổng đầu vào của nơ ron thứ i của lớp xuất và
(1.18) (1.15)
(1.16)
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Trọng số liên kết giữa lớp ẩn và lớp nhập cũng đƣợc điều chỉnh theo phƣơng pháp giảm gradient nhƣ sau:
(1.20)
Từ công thức (1.16) ta thấy với mỗi thành phần sai số [di-yi]
vớii=1,2,...,nlà một hàm của zq và ta có:
(1.21)
Sử dụng (1.19) và (1.21) ta viết lại nhƣ sau:
(1.22)
Trong đó là tín hiệu lỗi của nơ ron thứ q ở tầng ẩn:
(1.23)
Khi hàm kích hoạt là hàm sigmoid các công thức (1.19) và (1.23) trở thành:
(1.24)
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Thuật toán có thể khái quát qua sơ đồ nhƣ hình 1.13sau:
Bắt đầu
l=1
E=0,k=1
Lan truyền tính y theo x theo công thức 1.12 và 1.15
y
Lan truyền ngƣợc sai số, hiệu chỉnh trọng số wiq=wiq+ wiq; vqj=vqj+ vqj với wiq, vqj theo công
thức (1.18) và (1.21) k=k+1
l=l+1
Kết thúc
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Thuật toán đƣợc trình bày cho mạng nơ ron truyền thẳng nhiều lớp tổng quát nhƣ sau:
Xét mạng nơ ron với lớp lan truyền thẳng, và và là đầu vào và đầu ra của nơ ron thứ trong lớp tƣơng ứng. Mạng có nút nhập, nút xuất. Gọi là trọng số liên kết từ nơ ron lớp đến nơ ron lớp .
Input: Tập mẫu huấn luyện {(x(k), d(k))},
Bƣớc 0. (khởi tạo): chọn và (sai số lớn nhất), khởi tạo trọng số với giá trị ngẫu nhiên nhỏ. Đặt và .
Bƣớc 1. (vòng luyện): sử dụng mẫu đầu vào thứ k cho lớp nhập (q = 1)
Bƣớc 2. (Lan truyền thẳng tín hiệu): lan truyền thẳng tín hiệu qua mạng theo công thức:
Bƣớc 3. (Tính sai số đầu ra): tính sai số và tín hiệu sai số cho lớp xuất:
Bƣớc 4. (Lan truyền ngƣợc sai số): lan truyền ngƣợc sai số để điều chỉnh trọng số và tính tín hiệu sai số cho lớp trƣớc.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Bƣớc 5. (Lặp một chu kỳ): kiểm tra tập dữ liệu huấn luyện đã quay hết một vòng. Nếu thì và quay lại bƣớc 1; trƣờng hợp khác về bƣớc 6.
Bƣớc 6. (Kiểm tra tín hiệu sai số): kiểm tra tín hiệu sai số, nếu thì kết thúc vòng luyện và đƣa ra bộ trọng số cuối cùng; trƣờng hợp khác cho và quay lại bƣớc 1 tiến hành chu kỳ luyện mớị
Kết thúc BP
Thuật toán trên là phƣơng pháp huấn luyện gia tăng khi điều chỉnh trọng số, nghĩa là các trọng số đƣợc điều chỉnh ngay sau khi có một mẫu luyện. Một phƣơng pháp khác là luyện dạng gói (batch training), ở đó các trọng số chỉ thay đổi sau khi đã có tất cả các mẫu luyện.
Mạng nơ ron truyền thẳng có từ một lớp ẩn trở lên có thể xấp xỉ một hàm, trong [Hornik et al., 1989] đã phát biểu và chứng minh định lý dƣới đây:
Định lý: Mạng nơ ron truyền thẳng với các lớp ẩn sử dụng hàm kích hoạt nén, tuyến tính hoặc hàm đa thức mở rộng có thể xấp xỉ gần đúng một hàm bất kỳ với độ chính xác tuỳ ý miễn là có đủ số nơ ron ẩn. Hàm
(hoặc [-1, 1]) là hàm nén nếu nó đồng biến và
Hàm kích hoạt sử dụng trong mạng Perceptron nhiều lớp là hàm sigmoid lƣỡng cực:
hoặc hàm sigmoid đơn cực
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Kết luận chƣơng 1
Trong chƣơng này luận đã giới thiệu và khái quá hóa các kiến thức về mạng nơ ron. Trong đó đặc biệt chú trọng nhấn mạnh đến cấu trúc của mạng nơ ron truyền thẳng nhiều lớp MLP và thuật toán lan truyền ngƣợc sai số.
Một trong những khả năng quan trọng của mạng nơ ron là khả năng học, nhờ khả năng này mà mạng nơ ron có thể học và nhận dạng các tập mẫu cho trƣớc, ngoài ra mạng còn có khả năng dự đoán...
Kỹ thuật mạng nơ ron đã đƣợc ứng dụng để giải quyết nhiều bài toán thực tiễn nhƣ nhận dạng, dự báo, xấp xỉ hàm... Do đó nghiên cứu sâu về mạng nơ ron là điều rất quan trọng và cần thiết.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
2 CHƢƠNG 2: GIẢI THUẬT DI TRUYỀN 2.1. Các khái niệm cơ bản về giải thuật di truyền
Giải thuật di truyền-Gennetic Algorithm, viết tắt là GA là giải thuật tìm kiếm, chọn lựa các giải pháp tối ƣu để giải quyết các bài toán khác nhau dựa trên cơ chế chọn lọc tự nhiên của ngành di truyền học.
Trong cơ thể sinh vật, các gen liên kết với nhau theo cấu trúc dạng chuỗi gọi là nhiễm sắc thể, nó đặc trƣng cho mỗi loài và quyết định sự sống còn của cơ thể đó.
Một loài muốn tồn tại phải thích nghi với môi trƣờng, cơ thể sống nào thích nghi với môi trƣờng hơn thì sẽ tồn tại và sinh sản với số lƣợng ngày càng nhiều hơn, trái lại những loài không thích nghi với môi trƣờng sẽ dần dần bị diệt chủng.
Môi trƣờng tự nhiên luôn biến đổi, nên cấu trúc nhiễm sắc thể cũng thay đổi để thích nghi với môi trƣờng, và ở thế hệ sau luôn có độ thích nghi cao hơn ở thế hệ trƣớc. Cấu trúc này có đƣợc nhờ vào sự trao đổi thông tin ngẫu nhiên với môi trƣờng bên ngoài hay giữa chúng với nhaụ
Dựa vào đó các nhà khoa học máy tính xây dựng nên một giải thuật tìm kiếm tinh tế dựa trên cơ sở chọn lọc tự nhiên và quy luật tiến hóa, gọi là giải thuật di truyền.
Các nguyên lý cơ bản của giải thuật đƣợc tác giả Holland đề xuất lần đầu vào năm 1962. Nền tảng toán học của giải thuật GA đƣợc tác giả công bố trong cuốn sách “Sự thích nghi trong các hệ thống tự nhiên và nhân tạo” xuất bản năm 1975.
Giải thuật GA đƣợc xem nhƣ một phƣơng pháp tìm kiếm có bƣớc chuyển ngẫu nhiên mang tính tổng quát để giải các bài toán tối ƣu hoá.[2]
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Giải thuật GA thuộc lớp các giải thuật tìm kiếm tiến hoá. Khác với phần lớn các giải thuật khác tìm kiếm theo điểm, giải thuật GA thực hiện tìm kiếm song song trên một tập đƣợc gọi là quần thể các lời giải có thể.
Thông qua việc áp dụng các toán tử di truyền, giải thuật GA tráo đổi thông tin giữa các cực trị và do đó làm giảm thiểu khả năng kết thúc giải thuật tại một cực trị địa phƣơng. Trong thực tế, giải thuật GA đã đƣợc áp dụng thành công trong nhiều lĩnh vực.
Giải thuật GA lần đầu đƣợc tác giả Holland giới thiệu vào năm 1962. Giải thuật GA mô phỏng quá trình tồn tại của các cá thể có độ phù hợp tốt nhất thông qua quá trình chọn lọc tự nhiên, sao cho khi giải thuật đƣợc thực thi, quần thể các lời giải tiến hoá tiến dần tới lời giải mong muốn.
Giải thuật GA duy trì một quần thể các lời giải có thể của bài toán tối ƣu hoá. Thông thƣờng, các lời giải này đƣợc mã hoá dƣới dạng một chuỗi các gien. Giá trị của các gien có trong chuỗi đƣợc lấy từ một bảng các ký tự đƣợc định nghĩa trƣớc. Mỗi chuỗi gien đƣợc liên kết với một giá trị đƣợc gọi là độ phù hợp. Độ phù hợp đƣợc dùng trong quá trình chọn lọc.[2]
Cơ chế chọn lọc đảm bảo các cá thể có độ phù hợp tốt hơn có xác suất đƣợc lựa chọn cao hơn. Quá trình chọn lọc sao chép các bản sao của các cá thể có độ phù hợp tốt vào một quần thể tạm thời đƣợc gọi là quần thể bố mẹ. Các cá thể trong quần thể bố mẹ đƣợc ghép đôi một cách ngẫu nhiên và tiến hành lai ghép tạo ra các cá thể con.
Sau khi tiến hành quá trình lai ghép, giải thuật GA mô phỏng một quá trình khác trong tự nhiên là quá trình đột biến, trong đó các gien của các cá thể con tự thay đổi giá trị với một xác suất nhỏ.
Tóm lại, có 6 khía cạnh cần đƣợc xem xét, trƣớc khi áp dụng giải thuật GA để giải một bài toán, cụ thể là:
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/ (2.1) Hàm xác định giá trị độ phù hợp. Sơ đồ chọn lọc các cá thể bố mẹ. Toán tử lai ghép. Toán tử đột biến.
Chiến lƣợc thay thế hay còn gọi là toán tử tái tạọ
Có nhiều lựa chọn khác nhau cho từng vấn đề trên. Phần tiếp theo sẽ đƣa ra cách lựa chọn theo J.H. Holland khi thiết kế phiên bản giải thuật GA đầu tiên. Giải thuật này đƣợc gọi là giải thuật di truyền đơn giản (SGA).
2.2. Giải thuật di truyền mã hóa nhị phân
Trong giải thuật di truyền của mình J. H. Holland sử dụng mã hoá nhị phân để biểu diễn các cá thể, lý do là phần lớn các bài toán tối ƣu hoá đều có thể đƣợc mã hoá thành chuỗi nhị phân khá đơn giản.
Hàm mục tiêu, hàm cần tối ƣu, đƣợc chọn làm cơ sở để tính độ phù hợp của từng chuỗi cá thể. Giá trị độ phù hợp của từng cá thể sau đó đƣợc dùng để tính toán xác suất chọn lọc.
Sơ đồ chọn lọc trong giải thuật SGA là sơ đồ chọn lọc tỷ lệ. Trong sơ đồ chọnlọc này, cá thể có độ phù hợp có xác suất chọn lựa
Với là số cá thể có trong quần thể.
Toán tử lai ghép trong giải thuật SGA là toán tử lai ghép một điểm cắt. Giả sử chuỗi cá thể có độ dài L (có L bít), toán tử lai ghép đƣợc tiến hành qua hai giai đoạn là:
Hai cá thể trong quần thể bố mẹ đƣợc chọn một cách ngẫu nhiên với phân bố xác suất đềụ
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Sinh một số ngẫu nhiên j trong khoảng [1, L - 1] . Hai cá thể con đƣợc tạo ra bằng việc sao chép các ký tự từ 1 đến j và tráo đổi các ký tự từ j + 1 đến L.
Vị trí lai ghép
1001110|101 1001110|110
0100111|110 0100111|101
Hai cá thể bố mẹ Hai cá thể con
Lƣu ý giải thuật GA không yêu cầu toán tử lai ghép luôn xảy ra đối với hai cá thể bố mẹ đƣợc chọn. Sự lai ghép chỉ xảy ra khi số ngẫu nhiên tƣơng ứng với cặp cá thể bố mẹ đƣợc sinh ra trong khoảng [0, 1) không lớn hơn một tham số (gọi là xác suất lai ghép). Nếu số ngẫu nhiên này lớn hơn , toán tử lai ghép không xảy rạ Khi đó hai cá thể con là bản sao trực tiếp của hai cá thể bố mẹ.
Tiếp theo, J. H. Holland xây dựng toán tử đột biến cho giải thuật SGẠ Toán tử này đƣợc gọi là toán tử đột biến chuẩn. Toán tử đột biến duyệt từng gien của từng cá thể con đƣợc sinh ra sau khi tiến hành toán tử lai ghép và tiến hành biến đổi giá trị từ 0 sang 1 hoặc ngƣợc lại với một xác suất đƣợc gọi là xác suất đột biến.
Cuối cùng là chiến lƣợc thay thế hay còn gọi là toán tử tái tạọ Trong giải thuật SGA, quần thể con đƣợc sinh ra từ quần thể hiện tại thông qua 3 toán tử là chọn lọc, lai ghép và đột biến thay thế hoàn toàn quần thể hiện tại và trở thành quần thể hiện tại của thế hệ tiếp theọ
Sơ đồ tổng thể của giải thuật SGA đƣợc thể hiện qua thủ tục SGĂ) trình bày dƣới đâỵ
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Thủ tục SGA () /* Giải bài toán tối ƣu */ { k = 0;
// Khởi tạo quần thể P0 một cách ngẫu nhiên.
khởi_tạo (Pk);
// Tính giá trị hàm mục tiêu cho từng cá thể.
tính_hàm_mục_tiêu (Pk);
// Đặt lời giải của giải thuật bằng cá thể có giá trị hàm mục tiêu tốt nhất.
Xbest = tốt_nhất (Pk);
do { // Chuyển đổi giá trị hàm mục tiêu thành giá trị độ phù hợp và
// tiến hành chọn lọc tạo ra quần thể bố mẹ Pparent
Pparent = chọn_lọc (Pk );
// Tiến hành lai ghép và đột biến tạo ra quần thể cá thể con//Pchild
Pchild = đột_biến (lai_ghép (Pparent));
// Thay thế quần thể hiện tại bằng quần thể cá thể con
k = k + 1;
Pk = Pchild; tính_hàm_mục_tiêu (Pk);
// Nếu giá trị hàm mục tiêu obj của cá thể tốt nhất X trong quần
thể Pk lớn hơn giá trị hàm mục tiêu của Xbest thì thay thế lời giải
X = tốt_nhất (Pk);
if ( obj (X) > obj (Xbest) ) Xbest = X; } while ( k < G); /* Tiến hành G thế hệ */
return (Xbest); /* Trả về lời giải của giải thuật GA*/ }
Giải thuật di truyền phụ thuộc vào bộ 4 (N, pc, pm, G), trong đó: N - số cá thể trong quần thể;
pc - xác suất lai ghép; pm - xác suất đột biến; G - số thế hệ cần tiến hoá.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnụedụvn/
Đó chính là các tham số điều khiển của giải thuật SGẠ Cá thể có giá trị hàm mục tiêu tốt nhất của mọi thế hệ là lời giải cuối cùng của giải thuật SGẠ Quần thể đầu tiên đƣợc khởi tạo một cách ngẫu nhiên.
Ví dụ: xét bài toán tìm max của hàm f(x) = x2 với x là số nguyên trên đoạn [0,31].
Để sử dụng giải thuật di truyền ta mã hóa mỗi số nguyên x trong đoạn [0,31] bởi một số nhị phân có độ dài 5, chẳng hạn chuỗi 11000 là mã của số