Báo cáo đồ án trí tuệ nhân tạo : xây dựng chương trình sử dụng MLP đa lớp để tìm đường phân lớp 2 tập điểm là các điểm trên không gian 2 chiều

22 1.1K 3
Báo cáo đồ án trí tuệ nhân tạo : xây dựng chương trình sử dụng MLP đa lớp để tìm đường phân lớp 2 tập điểm là các điểm trên không gian 2 chiều

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MỤC LỤC: CHƯƠNG 1: CĂN BẢN VỀ MẠNG NEURAL A.Các mô hình mạng Neural…………………………………2 1.Neural một đầu vào…………………………………….2 2.Hàm truyền………………………………………………3 3.Neural nhiều đầu vào…………………………………6 B.Các kiến trúc mạng Neural…………………………….8 1.Mạng Neural một lớp………………………………..8 2.Mạng Neural đa lớp……………………………….10 C.Mạng Perceptron đa lớp và giải thuật lan truyền ngược 1.Nội dung giải thuật lan truyền ngược…………..11 2.Huấn luyện mạng (Training). ……………………..13 3.Khởi tạo giá trị trọng số……………………………15 CHƯƠNG 2: ÁP DỤNG VÀO BÀI TOÁN: “Bài toán được mô tả là các điểm trên không gian 2 chiều.Mỗi điểm được gán nhãn là 0 hoặc 1.Hãy xây dựng chương trình sử dụng MLP đa lớp để tìm đường phân lớp 2 tập điểm nói trên (đường này cố gắng chia không gian thành 2 phần sao cho tập điểm nhãn 0 ở 1 phía,phía kia là tập điểm mang nhãn 1) ” 1.Xác định bài toán……………………………………..16 2. Xác định các tham số cho mạng…………………….16 3.Áp dụng vào bài toán………………………………….20

VŨ THỊ THO – TIN 5A HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN VŨ THỊ THO Tin học 5A BÀI TẬP LỚN MƠN TRÍ TUỆ NHÂN TẠO Tên đề tài : “Bài tốn mơ tả điểm không gian chiều.Mỗi điểm gán nhãn 1.Hãy xây dựng chương trình sử dụng MLP đa lớp để tìm đường phân lớp tập điểm nói ( đường cố gắng chia không gian thành phần cho tập điểm nhãn phía,phía tập điểm mang nhãn ) ” Giáo viên phụ trách : NGÔ HỮU PHÚC HÀ NỘI, 3/2010 VŨ THỊ THO – TIN 5A MỤC LỤC: CHƯƠNG 1: CĂN BẢN VỀ MẠNG NEURAL A.Các mơ hình mạng Neural…………………………………2 Neural đầu vào…………………………………….2 Hàm truyền………………………………………………3 B C Neural nhiều đầu vào …………………………………6 Các kiến trúc mạng Neural…………………………….8 1.Mạng Neural lớp ……………………………… 2.Mạng Neural đa lớp ……………………………….10 Mạng Perceptron đa lớp giải thuật lan truyền ngược Nội dung giải thuật lan truyền ngược ………… 11 Huấn luyện mạng (Training) …………………… 13 Khởi tạo giá trị trọng số……………………………15 CHƯƠNG 2: ÁP DỤNG VÀO BÀI TOÁN: “Bài tốn mơ tả điểm khơng gian chiều.Mỗi điểm gán nhãn 1.Hãy xây dựng chương trình sử dụng MLP đa lớp để tìm đường phân lớp tập điểm nói (đường cố gắng chia không gian thành phần cho tập điểm nhãn phía,phía tập điểm mang nhãn 1) ” 1.Xác định toán…………………………………… 16 Xác định tham số cho mạng…………………….16 3.Áp dụng vào toán………………………………….20 VŨ THỊ THO – TIN 5A A.Các mơ hình mạng Neural 1.Neural đầu vào Hình 1.1 Neural đầu vào Đầu vào vơ hướng p nhân với trọng số w, cho wp, tạo thành số hạng gửi đến cộng Một đầu vào khác nhân với bias b, chuyển đến cộng Đầu cộng, thường xem net-input, trở thành đầu vào cho hàm truyền đạt f sinh đầu Neural a: a = f(wp + b) Ví dụ: w = 3, p = 2, b = -1.5 a = f(wp + b) = f(3x2 - 1.5) = f(4.5) Bias giống trọng số ngoại trừ ln có đầu vào số Có thể bỏ qua bias muốn 2.Hàm truyền Hàm truyền f cho hình 2.1 hàm tuyến tính phi tuyến n Mỗi hàm truyền cụ thể chọn nhằm thoả mãn số tính chất đặc biệt tốn cần giải Sau hàm truyền thông dụng nhất: Hàm truyền Hard Limit: VŨ THỊ THO – TIN 5A a = hardlim(n) = Ta sử dụng hàm để tạo Neural phân lớp đầu vào thành hai nhóm Hàm truyền minh hoạ hình 1.2 Hình 1.2 Hàm truyền Hard Limit Hàm truyền tuyến tính a = purelin(n) = n Các Neural với hàm truyền sử dụng mạng ADALINE a = purelin(wp + b) = wp + b Hàm truyền minh hoạ hình 1.3 Hình 1.3 Hàm truyền tuyến tính VŨ THỊ THO – TIN 5A Hàm truyền log.sigmoid a = logsig(n) = Hàm truyền logsig thông thường sử dụng mạng đa lớp dùng để huấn luyện với giải thuật BP, phần nhờ tính khả vi Hàm truyền minh hoạ hình 1.4 Hình 1.4 Hàm truyền Log-Sigmoid Một số hàm truyền khác thường sử dụng, xem bảng tóm lược hàm truyền VŨ THỊ THO – TIN 5A Bảng 1.5 Các hàm truyền Neural nhiều đầu vào Thơng thường, nơ ron có nhiều đầu vào Một Neural với R đầu vào cho hình 1.5 Các đầu vào độc lập p 1, p2, p3, ,pR gán trọng số thành phần w11, w12,, , w1R ma trận trọng số W VŨ THỊ THO – TIN 5A Hình 1.6 Neural nhiều đầu vào Ở đây: W = [w11, w12, , w1R]1xR; p = [p1, p2, p3, , pR]TRx1 Như vậy: n = w11p1 + w12p2 + w13p3 + +w1RpR + b = Wp +b đó, ma trận W cho trường hợp Neural có hàng Vậy: a = f(n) = f(Wp + b) Ta chọn quy ước số thành phần wij ma trận trọng số Chỉ số đầu (i) biểu thị Neural đích gán trọng số Chỉ số sau (j) biểu thị tín hiệu nguồn cung cấp cho Neural Như vậy, wij nói lên rằng, trọng số kết nối đến Neural thứ i từ tín hiệu nguồn thứ j (từ pj → Neural i) Ta lại muốn vẽ mạng với nhiều Neural, Neural có nhiều đầu vào, nữa, lại có nhiều lớp Neural, dùng cách biểu thị hình 1.5 phức tạp Ta dùng ký hiệu tắt hình 1.6 sau: Hình 1.7 Neural R đầu vào, kí hiệu tắt VŨ THỊ THO – TIN 5A Ở đây, đầu vào p véc tơ Rx1 Chú ý thêm rằng, số lượng đầu vào mạng xác định toán Chẳng hạn, để thiết kế mạng Neural dự toán điều kiện bay đầu vào nhiệt độ khơng khí, vận tốc gió độ ẩm phải có đầu vào cho mạng Neural B.Các kiến trúc mạng Neural 1.Mạng Neural lớp Hình 1.8 Một lớp gồm S-Neural Ở đây: p = [p1, p2, p3, , pR]TRx1; b = [b1 b2 bS]TSx1 n = [n1 n2 nS]TSx1 ; a = [a1 a2 aS]TSx1; a = f(n) = [f(n1) f(n2) f(ns)]TSx1 at = f(nt) = f(wt.p + bt) t = S VŨ THỊ THO – TIN 5A Trong Wt =[wt1 wt2 wtR] hàng thứ t W Một lớp Neural gồm S Neural thể hình 1.8 Chú ý rằng, thành phần R đầu vào kết nối đến tất Neural, ma trận trọng số có S hàng (R cột) Ta nói rằng, lớp Neural bao gồm: Ma trận trọng số, cộng, véc tơ bias b, hộp hàm truyền véc tơ đầu a Mỗi thành phần véc tơ đầu vào p kết nối đến Neural thông qua ma trận trọng số W Mỗi Neural thứ i gồm bias bi, cộng, hàm truyền f đầu a i Như vậy, đầu tạo thành véc tơ đầu a Nói chung số đầu vào lớp số Neural lớp khác Các hàm truyền cho tất Neural giống nhau, không thiết phải Các ứng dụng thơng thường có tính chất hàm truyền Các thành phần véc tơ đầu vào vào mạng thông qua ma trận trọng số W: Như nói, số hàng phần tử w ij (tức i) w dùng để Neural liên kết, số (j) nguồn đầu vào Do số w 32 nói lên rằng, trọng số (w32) kết nối đến Neural thứ từ nguồn thứ (p2) Mạng lớp S-Neural, R đầu vào vẽ dạng ký hiệu tắt hình 1.9 sau: VŨ THỊ THO – TIN 5A Hình 1.9 Lớp S Neural, kí hiệu tắt Ở đây: pRx1; WSxR; aSx1; bSx1 2.Mạng Neural đa lớp Bây ta xét mạng có số lớp Neural Mỗi lớp Neural gồm ma trận trọng số W nó, bias b nó, véc tơ net-input n véc tơ đầu a Ta cần có thêm số ký hiệu để phân biệt lớp Ta dùng ký hiệu kề để phân biệt lớp Theo đó, ma trận trọng số của lớp thứ k ký hiệu Wk (không phải mũ k), Một mạng lớp biểu diễn hình 1.10 sau: 10 VŨ THỊ THO – TIN 5A Hình 1.10 Mạng lớp Như trên, có R đầu vào, S1 Neural lớp thứ nhất, S2 Neural lớp thứ 2, Các lớp khác có số Neural khác Các đầu lớp 1, theo thứ tự đầu vào cho lớp 2, Do đó, lớp xem mạng lớp với R=S đầu vào, S=S2 Neural, ma trận trọng số W2 cấp S2xS1, đầu vào cho lớp a1, đầu a2 Lớp có đầu đầu mạng gọi lớp Các lớp lại gọi lớp ẩn Mạng vẽ hình 2.9 có lớp (lớp 3) lớp ẩn (các lớp 1,2) Mạng vẽ lại dạng ký hiệu tắt sau: (Hình 1.10) • C Hình 1.11 Mạng lớp, kí hiệu tắt Mạng Perceptron đa lớp giải thuật lan truyền ngược Nội dung giải thuật lan truyền ngược  Xét mơ hình mạng BP Để huấn luyện cho mạng Neural nhiều lớp giải thuật lan truyền ngược cần phải có tập mẫu học {XS, YS} Mỗi đầu vào XS lan truyền từ đầu vào lớp ra, qua trình lan truyền tạo đầu OS mạng Giá trị đầu thường có sai số so với giá trị đầu mong muốn YS tương ứng với mẫu học XS Các 11 VŨ THỊ THO – TIN 5A sai số tính lan truyền ngược từ lớp trở phía trước để cập nhật lại trọng số liên kết Neural lớp Các bước thuật tốn với mơ hình mạng tổng quát Trên ta trình bày giải thuật lan truyền ngược áp dụng cho mạng lớp Tiếp theo ta trình bày giải thuật áp dụng cho mạng Neural với số lớp bất kỳ: Đầu vào: Tập mẫu học X=(x1,x2,x3,…xm) Y=(y1,y2,y3,… yn) với m: số đầu vào, n: số đầu ra, số lượng mẫu M, số tầng mạng T Đầu ra: Các ma trận trọng số w1,w2,…wT • Bước 1: Khởi tạo: Chọn giá trị hệ số học < η T để tính đầu tương ứng lớp theo cơng thức: Sq −1 oj = f(net ) = f( ∑ wij oiq-1) q q j i =1 đầu thứ j lớp q, lưu ý sq-1 số Neural lớp q-1 • Bước 4: Tính sai số lớp mạng theo công thức: δ k =(yk – ok).ok.(1-ok) Neural thứ k 12 VŨ THỊ THO – TIN 5A • Bước 5: Lan truyền ngược tín hiệu sai số, cụ thể từ đầu ra, qua lớp ẩn cuối cùng,…đến lớp ẩn đầu tiên, để cập nhật trọng số tín hiệu sai số trước theo cơng thức: δ j q-1 Sq = f (netj ) ∑ wqjk ‘ q-1 δ k =1 q k wqjk = wqjk + ∆ wqjk ∆ wqjk = η δ q k ojq-1 • Bước 6: Nếu m < M (chưa hết số mẫu học) m = m+1, quay lại bước 2, ngược lại chuyển sang bước • Bước 7: Sai số trung bình mạng tính theo cơng thức: M n (y − o ) RMS = ∑∑ km km m =1 k =1 n số thành phần M n vector đầu Nếu RMS < ε kết thúc Ngược lại gán h = h + lặp lại bước từ bước bước 7, bắt đầu chu kỳ học 2.Huấn luyện mạng (Training)  Giảm Gradient: Là nguyên tắc học nguyên thuỷ mạng lan truyền ngược Khi hoàn thành bước lặp qua tồn tập mẫu tất trọng số mạng cập nhật dựa vào thông tin đạo hàm riêng theo trọng số tích luỹ 13 VŨ THỊ THO – TIN 5A được, trọng số cập nhật theo hướng mà hàm lỗi tụt dốc nhanh  Học mẫu một: Một quy tắc cập nhật trọng số khác là: trọng số cập nhật sau mạng học xong mẫu, dựa đạo hàm lỗi riêng mẫu Với cách lỗi tập mẫu thường giảm nhanh bước đầu mạng không cần phải đợi hết bước qua tồn tập mẫu học điều Tuy vậy, với vài toán ta phải cẩn thận dùng cách Lý lúc phương pháp giảm số bước cần thiết để mạng ta ổn định với tập trọng số tối ưu Trong nhiều trường hợp học mẫu mạng quên mẫu cũ Trường hợp thường xảy mẫu tập mẫu có khác biệt lớn Thứ hai, học mẫu, cần bước luyện chưa tổng thời gian máy tính thực việc tính tốn so với học tồn tập mẫu lần Bởi việc học mẫu lại địi hỏi việc tính tốn máy tính mẫu nhiều hơn, trọng số thay đổi phải tính cho mẫu khơng tính lần cho bước Thứ ba, việc học tong mẫu đòi hỏi ta phải then trong việc xếp thứ tự mẫu tập mẫu Thường mẫu xuất cuối đợt huấn luyện thường có nhiều ảnh hưởng so với mẫu xuất lúc đầu Một giải pháp dung hoà cập nhật tập trọng số dựa nhóm mẫu thay mẫu khơng phải tồn tập mẫu  Quy tắc moment Phương pháp học diễn tả sau: bước học trước giảm mạnh theo đà bước tới giảm mạnh ta tăng hệ số học để biến thiên trọng tăng lên, ngược lại giảm hệ số học 14 VŨ THỊ THO – TIN 5A 3.Khởi tạo giá trị trọng số Một vấn đề đáng quan tâm q trình huấn luyện mạng Neural vấn đề khởi tạo giá trị trọng số Huấn luyện mạng tiến trình lặp qua lặp lại nhiều bước Trong bước, mạng thi hành ánh xạ với mẫu tập mẫu, tính tốn sai số cập nhật lại cho mạng thi hành ngày tốt hơn.Vấn đề đặt là, ban đầu để mạng thi hành bước học trọng số lấy từ đâu? Có cách tốt khởi tạo trọng cho kết xuất có giá trị trung dung 0.5(chính trung điểm hàm logictic) Có hai lý giải thích cho việc này: Thứ nhất, ta khơng biết kết xuất, giá trị giá trị hợp lý Trong trường hợp lớp cho tất kết đầu phân bố xung quanh trung điểm hàm truyền, giá trị cực tiểu hoá hàm sai số, giá trị khác sinh sai số lớn Thứ hai, ta muốn tránh giá trị kết xuất thái quá, chúng chứa đạo hàm lỗi nhỏ, đạo hàm lỗi nhỏ làm cho biến thiên trọng nhỏ tiến trình học chậm Có hai cách khác cho phép khởi tạo trọng số để kết xuất nút khoảng giữa: - Cách thứ nhất: ding khởi tạo trọng số nút ẩn - Cách thứ hai: khởi tạo trọng số nút xuất Đối với nút xuất, ta khởi tạo trọng số ban đầu thật nhỏ Nếu trọng số đủ nhỏ, nút kết xuất giá trị bất chấp giá trị nhập CHƯƠNG 2: Áp dụng vào tốn: “Bài tốn mơ tả điểm không gian chiều.Mỗi điểm gán nhãn 1.Hãy xây dựng chương trình sử dụng MLP đa lớp để tìm đường phân lớp tập điểm nói (đường cố gắng chia không gian thành phần cho tập điểm nhãn phía,phía tập điểm mang nhãn 1) ” 15 VŨ THỊ THO – TIN 5A 1.Xác định toán Bài toán đưa yêu cầu xây dựng mạng noron với điểm đầu vào có tọa độ (x,y) gán nhãn là 1, đưa vào mạng MLP (em xây dựng mạng MLP lớp) Khi đầu mạng gồm có đầu ra.Thứ đầu phân lớp đúng, thứ đầu phân lớp sai Xác định tham số cho mạng Bài toán sử dụng mạng BP lớp hình vẽ đây: Hình 1.13 Mạng lan truyền ngược Kiến trúc mạng tóm tắt sau:  Mạng có m đầu vào, kí hiệu xi (i = 1…m)  Mạng có lớp Neural Lớp ẩn có r Neural, kí hiệu pj (j =1 … r) Lớp có n Neural, kí hiệu ok (k = 1…n) 16 VŨ THỊ THO – TIN 5A  Mỗi Neural lớp sau liên kết đầy đủ với Neural lớp trước trọng số w, liên kết thể đường nét liền  Sự lan truyền ngược sai số phát sinh thể nét đứt  Không sử dụng hệ số bias  Hàm kích hoạt sử dụng lớp hàm Sigmoid đơn cực Chú ý: Trên hình vẽ ma trận Wij thứ ma trận cỡ r x m, ma trận Wij lớp thứ ma trận cỡ n x r Giải thuật lan truyền ngược (xét với mạng lớp toán này) Khi mạng muốn học mẫu (X,Y) X vector tín hiệu đầu vào Y tín hiệu đầu mong muốn Các thành phần xi X đưa vào Neural lớp ẩn Vì đầu vào liên kết với Neural nút ẩn trọng số wij cho lên Neural thứ j lớp ẩn nhận tổng tín hiệu đầu vào có trọng số netj tính theo cơng thức: m netj = ∑ wij * x i i =1 Sau nhận tổng tín hiệu vào với trọng số netj, giá trị sử dụng làm tham số đầu vào cho hàm kích hoạt f (hàm truyền), hàm kích hoạt f cho ta tín hiệu Neural lớp ẩn Giả sử hàm truyền sử dụng hàm Sigmoid đơn cực (ký hiệu f) tín hiệu zj Neural j tính sau: m zj = f(netj)= f( ∑ wij * x i) i =1 Các tín hiệu zj lại xem đầu vào lớp (trong trường hợp mạng nhiều lớp), ta xét mạng lớp lên chúng truyền cho Neural thứ k lớp với trọng số liên kết wjk Ta lại có: 17 VŨ THỊ THO – TIN 5A r netk = ∑ w jk * zj j =1 Tín hiệu đầu Ok Neural thứ k lớp là: r Ok = f(netk)= f( ∑ w jk * zj) j =1 Như với đầu vào vector X, sau lan truyền tiến qua mạng, ta nhận đầu vector O Đầu khơng thể hồn tồn trùng khớp với đầu đích (hay đầu r among muốn) Sai số tổng thể E mạng tính dựa sai lệch O Y theo cơng thức bình phương: E= n ∑ (yk – ok)2 k =1 Để điều chỉnh cho tín hiệu Ok tiến lại gần tín hiệu mong muốn yk, trọng số mạng cập nhật lại theo quy tắc Chẳng hạn với quy tắc Delta (hay gọi phương pháp giảm theo hướng dốc nhất), trọng số liên kết Neural thứ j lớp ẩn tới Neural thứ k lớp cập nhật theo cơng thức: wjk = wjk + ∆ wjk Trong biến thiên trọng số wjk tính sau: ∆ wjk = η δ k ∆ wjk trọng số liên kết zj Với: • η : hệ số học • zj: đầu Neural thứ j • δ k: sai số mà Neural thứ k phải chịu trách nhiệm, xác định theo công thức: δ k = Ek f ’(netk) 18 VŨ THỊ THO – TIN 5A Ở Ek đạo hàm hàm lỗi E (Ek = ok - yk), netk tổng tín hiệu vào có trọng số Neural thứ k f ‘() đạo hàm hàm kích hoạt f mà ta dùng mạng Hàm f hàm sigmoid đơn cực f ‘(x) = f(x)(1- f(x)) Vậy công thức viết lại là: δ k =(yk – ok).ok.(1-ok) Các trọng số liên kết từ đầu vào thứ i tới Neural thứ j lởp ẩn cập nhật theo cách tương tự, nhiên sai số mà Neural lớp ẩn phải chịu trách nhiệm tính theo cách khác: wij = wij + ∆ wij Với ∆ wij =η δ j xi Ta biết Neural thứ j lớp ẩn liên kết đầy đủ với tất Neural k lớp Như phải chụi trách nhiệm với tất sai số Neural k mà liên kết lớp Tổng sai số mà Neural thứ j phải chụi trách nhiệm là: δ n j = f(netj) ∑ wjk k =1 δ k hay δ n j = zj (1-zj) ∑ wjk k =1 δ k Các thao tác thực cập nhật trọng số wịj, wjk gọi lan truyền ngược sai số Các q trình lan truyền tiến, tính sai số lan truyền ngược thực lặp lặp lại nhiều lần thoả mãn điều kiện sai số qua đủ số lần lặp xác định trước dừng lại Đó nội dung giải thuật lan truyền ngược Sai số trung bình mạng tính theo công thức: 19 VŨ THỊ THO – TIN 5A M n (y − o ) RMS = ∑∑ km km m =1 k =1 n số thành phần M n vector đầu Nếu RMS < ε kết thúc.Ngược lại đưa mẫu huấn luyện thứ m áp lên mạng,bắt đầu chu kỳ học 3.Áp dụng vào toán Bước 1:Khởi tạo ma trận trọng số q1 q2 for (int i = 1; i

Ngày đăng: 25/03/2014, 22:18

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan