Bước 1 : Tạo mạng truyền thẳng có nin Neural đầu vào nhidden Neural trên mỗi lớp ẩn và h lớp ẩn với nout đầu ra Bước 2 : Khởi tạo bộ trọng cho mạng với giá trị nhỏ Bước 3 : Trong khi là
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN KHOA HỌC MÁY TÍNH
NHÓM VHCC
MULTILAYER PERCEPTRON CÁC VẤN ĐỀ TỒN TẠI VÀ HƯỚNG GIẢI QUYẾT
BÁO CÁO ĐỀ TÀI MÔN CÁC HỆ CƠ SỞ TRI THỨC
GIÁO VIÊN HƯỚNG DẪN
TS LÊ HOÀNG THÁI
TP HCM, 2011
Trang 2Mục lục
CHƯƠNG 1 : TỔNG QUAN 4
1.1 PERCEPTRON 4
1.2 THUẬT TOÁN HỌC PERCEPTRON 5
1.3 THUẬT TOÁN LAN TRUYỀN NGƯỢC 5
1.4 CÁC VẤN ĐỀ CỦA MẠNG MLP: 6
CHƯƠNG 2 : QUÁ TRÌNH HUẤN LUYỆN CỦA MLP: 8
2.1 GỌI TÊN LẠI CÁC KHÁI NIỆM CƠ BẢN 8
2.2 TIẾP CẬN VẤN ĐỀ: 9
2.2.1 Thuật toán Output Weight Optimization – Back Propagation(OWO-BP) 9
2.2.2 Phương pháp Hidden Weight Optimization (HWO): 9
2.2.3 Cơ sở lý thuyết của phương pháp OWO-HWO: 10
2.2.4 Giải thuật: 11
2.2.5 Một số ví dụ thể hiện tính ưu việt của thuật toán: 12
CHƯƠNG 3 : THUẬT TOÁN ĐỊNH KÍCH THƯỚC 14
1.1 PIECEWISE LINEAR N ETWORK – PLN 14
1.1.1 Cấu trúc: 14
1.1.2 Các khái niệm cơ bản về PLN 15
1.1.3 Cách thức xử lý của PLN : 15
1.1.4 Thuật toán huấn luyện PLN 16
1.1.5 Thuật toán Sequential Leader Clustering 17
1.2 PATTERN STORAGE 18
1.3 SIZING ALGO RITHM (THUẬT TOÁN ĐỊN H KÍCH THƯỚC) 18
1.3.1 Những giả thuyết cơ sở 18
1.3.2 Các bổ đề 19
1.3.3 Thuật toán xác định kích thước (Sizing Algorithm) 19
CHƯƠNG 4 : XÁC ĐỊNH ĐỘ LỖI VÀ CỰC TIỂU CỦA ĐỘ LỖI 22
4.1 CƠ SỞ TOÁN HỌC 22
4.2 CỰC TIỂU CRAMER-RAO 23
4.3 XÁC ĐỊNH CỰC TIỂU SAI SỐ TRONG MLP 24
4.4 ỨNG DỤNG TRONG XỬ LÝ TÍN HIỆU SỐ 27
Trang 3CHƯƠNG 5 : TÌM HIỂU THỰC TẾ VÀ XÂY DỰNG DEMO 29
5.1 TÌM HIỂU VÀ SỬ DỤNG MLP-BP TRONG LĨNH VỰC NHẬN DẠN G 29
5.1.1 Xây dựng mẫu huấn luyện và mẫu thử: 29
5.1.2 Chọn đặc trưng (đặc trưng do nhóm tự nghiên cứu và chọn dựa) 29
5.1.3 Kết quả huấn luyện và thử nghiệm (bằng weka) 34
5.2 DEMO SỬ DỤNG THUẬT TOÁN ĐỊNH KÍCH THƯỚC (SIZING ALGORITHM) 36 CHƯƠNG 6 : KẾT LUẬN 38
THAM KHẢO : 39
Trang 4 Một perceptron học bằng cách điều chỉnh siêu phẳng phân biệt theo sai
số e(p) = Yd(p) – Y(p) với Yd/Y(p) là kết xuất thực/mong muốn tại
bước p
Nếu e(p) > 0 tăng Y(p), ngược lại giảm Y(p)
Nếu xi(p) > 0 tăng wi(p) sẽ làm tăng Y(p) Ngược lại nếu xi(p) < 0, tăng wi(p) sẽ làm giảm Y(p)
Do đó, luật học perceptron có thể được viết là
với là tốc độ học
Trang 51.2 THUẬT TOÁN HỌC PERCEPTRON
Khởi tạo: (w1, w2,…, wn, t) [-0.5, 0.5]
Kích hoạt: tính kết xuất thực sự tại lần lặp p = 1
Cập nhật trọng số:
Lặp: tăng p lên 1 và lặp lại bước 2
1.3 THUẬT TOÁN LAN TRUYỀN NGƯỢC
Quá trình học gồm hai pha:
Lan truyền các mẫu input từ lớp nhập đến lớp xuất
Giá trị sai số được tính đầu tiên cho lớp xuất, kết quả này được dùng để tính sai số của các neural ở lớp ẩn cao nhất, và lớp ẩn kế tiếp thì tính theo kết quả của lớp ẩn cao hơn nó Cứ thế lan truyền cho đến lớp nhập
Mô phỏng thuật toán lan truyền ngược
Trang 6Bước 1 : Tạo mạng truyền thẳng có nin Neural đầu vào nhidden Neural trên mỗi lớp ẩn và h lớp ẩn với nout đầu ra
Bước 2 : Khởi tạo bộ trọng cho mạng với giá trị nhỏ
Bước 3 : Trong khi <điều kiện kết thúc chưa thỏa> làm
Với mỗi cặp (x, t) trong không gian mẫu huấn luyện thực hiện:
• Xét lớp nhập (*): truyền x qua mạng, tại mỗi lớp xác
định đầu ra của mỗi Neural Quá trình này được thực hiện đến lớp xuất dựa theo cấu trúc mạng cụ thể
• Xét lớp xuất: đối với đầu ra ok của Neural k trong lớp
xuất K, xác định sai số
• Chuyển sang lớp ẩn L kế nó, đặt L=K-1
• Xét lớp ẩn (**): với mỗi Neural I trên lớp ẩn thứ L, xác
định sai số:
• Cập nhật lại trọng số có trong mạng , wij
• Nếu L > 1 thì chuyển sang lớp ẩn trên nó: L = L – 1 và quay lại bước (**)
• Ngược lại : chọn cặp (x, t) mới trong không gian mẫu học, quay lại bước (*)
Trang 73 Hiệu suất huấn luyện không biết trước (thời gian huấn luyện, độ lỗi của mạng)
4 Khó xác định độ lỗi của mạng từ tập huấn luyện
5 Khó xác định độ lớn của tập huấn luyện
Trang 8CHƯƠNG 2 : QUÁ TRÌNH HUẤN LUYỆN CỦA MLP:
Như đã nêu trên, các thuật toán huấn luyện thường tốn nhiều thời gian và không phải luôn luôn hội tụ Do đó chúng ta cần một thuật toán nhanh hơn và khả năng hội tụ cao hơn trong quá trình huấn luyện
2.1 GỌI TÊN LẠI CÁC KHÁI NIỆM CƠ BẢN
Để tiếp cận vấn đề dễ dàng, chúng ta định nghĩa lại các khái niệm cơ bản sau:
- Tập huấn luyện gồm Nv mẫu {(xp, tp)}
p là mẫu thứ p
xp là vector đầu vào kích thước N
tp là vector đầu ra mong muốn kích thước M
yp là vector đầu ra thực sự
Độ đo quan hệ của nơron thứ j: (tương dương với z)
( ) ∑ ( ) ( )
N h : số lượng nơron ẩn
w(j,i) là trọng số giữa node vào thứ i và node ẩn thứ j
Trang 9x p (N+1) = 1
- Z là hệ số học
- Độ lỗi với mẫu thứ p: ∑ [ ]
- Độ lỗi với node ra thứ k: ( ) ∑ [ ]
- Phương sai mẫu – MSE (mean square error): ∑ ( ) ∑
- Trọng số đầu ra được tìm bằng cách giải các phương trình tuyến tính
- Trọng số của lớp ẩn được tìm bằng phương pháp lan truyền ngược
- Tuy nhiên, Back Propagation không phải là phương pháp hiệu quả để cập nhật trọng số của các lớp ẩn
Thay thế giải thuật lan truyền ngược bằng một phương pháp hiệu quả hơn
2.2.2 Phương pháp Hidden Weight Optimization (HWO):
- Sử dụng các độ lỗi riêng biệt cho mỗi node ẩn
- Giải các hệ phương trình tuyến tính để tìm ra trọng số tối ưu cho các node ẩn
Bằng cách làm nhỏ các độ lỗi đơn giản thay vì một độ lỗi lớn và phức tạp, tốc
độ huấn luyện và độ hội tụ sẽ được cải thiện
Tuy nhiên, phương pháp này đòi hỏi các một đo mong muốn (độ đo lý tưởng mà thường không tồn tại)
Thông thường, các độ đo này sẽ được xây dựng như sau:
( ) ( ) ( )
Trang 10net pd là độ đo mong muốn net p là độ đo thực
δ p là hàm delta ( )
( )
2.2.3 Cơ sở lý thuyết của phương pháp OWO-HWO:
Trong giải thuật OWO – HWO, trọng số sẽ được cập nhật như sau:
w(j,i) w(j,i) + Z.e(j,i) với e(j,i) là độ thay đổi của trọng số
Khi đó:
( ) ∑[ ( ) ( )] ( )
Suy ra
( ) ( ) ∑[ ( ) ( )] ( )
Giản lược netp(j) ta được:
( ) ∑ ( ) ( )Bằng cách làm nhỏ giá trị
( ) ∑ [ ( ) ∑ ( ) ( )]
ta sẽ tìm được các giá trị e(j,i) mong muốn Khi đó các trọng số của node ẩn sẽ
được cộng vào giá trị w(j,i) = Z.e(j,i)
Độ thay đổi của phương sai mẫu sẽ được tính
( ) ( )
( ) ( ) Khả năng hội tụ
Trang 11Ta nhận thấy E≤ 0 => Dãy Ek (ứng với lần lặp thứ k) là một dãy số thực
không âm không tăng.Suy ra E k hội tụ
Trang 12( ) ∑ ( ) ( )
(7)Giải phương trình tính các trọng số lớp ẩn e(j,i):
∑ ( ) ( ) ( )(8) Tính hệ số học Z từ biểu thức
Trang 14CHƯƠNG 3 : THUẬT TOÁN ĐỊNH KÍCH THƯỚC
1.1 PIECEWISE LINEAR NETWORK – PLN
1.1.1 Cấu trúc:
Một PLN cho N đầu vào và M đầu ra bao gồm:
K cụm (cluster)
K vector trung tâm mn (độ dài N)
K ma trận trọng số Wn ( M x (N+1) chiều) để lưu lại trọng số huấn luyện cho mỗi clusters
Một hàm đo khoảng cách d Hàm này dùng để tính khoảng cách từ vector input đến các vector trung tâm của các cluster
Vector trung bình µ và Vector độ lệch chuẩn σ với độ dài N
Trang 151.1.2 Các khái niệm cơ bản về PLN
- Hàm tính khoảng cách: thường được tính bởi công thức
( ) ∑[ ( ) ( )]
Với: xp: vector input
mk: vector trung tâm của cluster k
N: độ dài của vector input
Ta nói vector input xp thuộc về cluster k nếu :
d(x, m k )= min i d(x, m i )
- Sai số của mạng Sai số tại output thứ j của cluster k được cho bởi công thức:
Số 1 được thêm vào để điều chỉnh độ lệch và ngưỡng
- Tất cả các phần tử của xp’ (ngoại trừ phần tử thứ N+1) được chuẩn hóa theo công thức:
x p (n) = (x p (n) - µ(n)) / σ(n) với 1< n < N
Trang 16- Xét xem vector input thuộc về cluster nào dựa vào hàm d Ta nói vector
input xp thuộc về cluster k nếu :
d(x, m k )= min i d(x, m i )
- Khi xp thuộc về cluster k, vector kết quả sẽ được tính:
y p = W k x p
1.1.4 Thuật toán huấn luyện PLN
Dưới đây là một trong những thuật toán huấn luyện PLN nhanh và hội tụ: (1) Khởi tạo PLN với một cluster có vector trung tâm là vector trung
bình của các input vector Tiếp đó, ta thêm 1 cluster mới vào Cluster mới này có vector trung tâm được tạo ra bằng cách xáo trộn vector trung tâm của cluster đầu tiên
Sử dụng hàm tính khoảng cách d để gán tất cả các mẫu học cho 2 cluster đầu tiên: mẫu học x sẽ được gán cho cluster gần nó nhất
(tính bằng hàm khoảng cách d)
Với mỗi lần lặp, cluster mới được thêm vào bằng cáchphân chia một trong các cluster có sẵn
(2) Chọn 4 cluster có lỗi đối sánh lớn nhất làm các cluster có khả năng
bị phân chia (candidate clusters) Đăt tên các cluster này là: π(1), π(2),π(3), π(4)
(3) Chọn 1 cluster π(k) 1 ≤ k ≤ 4 trong nhóm candidate clusters, sử dụng
thuật toán “Sequential Leader Clustering” với ngưỡng θ để tách thử
cluster này ra thành 4 cluster con: π(k, 1), π(k, 2), π(k, 3), π(k, 4) θ được tính bằng công thức:
( ) ∑ ∑[ ( ) ( )]
( )
Với: Nv(k): số lượng mẫu thuộc về cluster k
S(k): tập các mẫu thuộc về cluster k
Trang 17mk: vector trung tâm của cluter k
Đồng thời, với mỗi Cluster con, ma trận trọng số sẽ được tính bằng công thức:
Với R: Ma trận tự tương quan(Auto-Corellation Matrix)
C: Ma trận tương quan chéo (Cross-Correllation Matrix) W: Ma trận trọng số của Cluster
(4) Với mỗi cặp cluster π(k, u), π(k, v) u≠v và 1≤u,v≤4, gán các mẫu
thuộc về cluster π(k, u’) và π(k, v’) (với u’≠v’≠u≠v ) cho cluster
π(k, u), π(k, v) dựa vào hàm khoảng cách d
Nếu Eπ(k,u) + Eπ(k,v)< Eπ(k) , ta lưu lại cặp cluster π(k, u), π(k, v)
(5) Trong các cặp π(k, u), π(k, v) lưu lại ở bước (4), chọn cặp π(k,u”),
π(k,v”) sao cho Eπ(k,u”) + Eπ(k,v”) là nhỏ nhất
(6) Loại bỏ cluster π(k) và thêm cluster π(k,u”), π(k,v”) vào Nếu mạng
có E<Emin , ta gán Emin = E và lưu lại cấu trúc mạng PLN hiện tại (7) Sử dụng cấu trúc mạng ở bước 3, lặp từ bước 3 đến bước 6 để thực
hiện việc phân chia thử đối với các candicate clusters π(k) 1 ≤ k ≤ 4 còn lại Chỉ lưu lại những cấu trúc mạng PLN mới với E<Emin (8) Trong những cấu trúc mạng PLN đã lưu lại, chọn cấu trúc mạng có
E nhỏ nhất
(9) Nếu không có cấu trúc mạng có E<Emin hoặc đã lặp đủ số lần lặp yêu
cầu, thuật toán kết thúc Ngược lại, quay trở lại lặp từ bước 2 đến bước 9
1.1.5 Thuật toán Sequential Leader Clustering
Thuật toán Sequential Leader Clusteringđược sử dụng trong bước 3 của
thuật toán huấn luyện PLN ở trên Nội dung thuật toán như sau:
Trang 18Cho Nv mẫu huấn luyện, 1 ngưỡng T, số lượng cluster của PLN là K, và hàm tính khoảng cách d
(1) Bắt đầu với k = 1 cluster và mẫu huấn luyện thứ p=1 Lấy mẫu huấn luyện thứ nhất x1 làm vector trung tâm của cluster thứ nhất
(2) Tăng p và đọc mẫu huấn luyện thứ xp.
(3) Bắt đầu với cluster index k= 1
(4) Nếu d(xp, mk) ≤ T, gán xp cho cluster k Đến bước 8
(5) Nếu d(xp, mk) > T, tăng k = k+1
(6) Nếu k<K, quay lại bước 4
(7) Nếu d(xp, mk) > T với mọi cluster, tạo 1 cluster mới, lấy xp làm vector trung tâm của cluster mới và gán mẫu huấn luyện xp cho cluster mới Tăng K= K+1
(8) Nếu p = Nv , dừng thuật toán Ngược lại, quay trở về bước 2
1.2 PATTERN STORAGE
Pattern storage của một network là số lượng các cặp input-output được chọn một cách ngẫu nhiên sao cho network được huấn luyện để nhớ mà không có lỗi Nói cách khác, nếu ta tiến hành thử nghiệm network trên chính tập mẫu đã huấn luyện thì sẽ không có lỗi nào xảy ra
1.3 SIZING ALGORITHM (THUẬT TOÁN ĐỊNH KÍCH THƯỚC) 1.3.1 Những giả thuyết cơ sở
Nếu PWL và MLP có cùng pattern storage thì chúng có cùng lỗi huấn luyện (training error) Giả thuyết này đúng trong 3 trường hợp sau:
– Đầu ra của network là một hằng số cho tất cả các mẫu huấn luyện – Đầu ra của network là một hàm tuyến tính của input
(khi PLN chỉ có 1 cluster và MLP chỉ có trọng số kết nối và ngưỡng
Trang 19– Cả PLN và MLP đều ghi nhớ tất cả các mẫu huấn luyện với lỗi huấn luyện bằng 0
1.3.2 Các bổ đề
Bổ đề 1 : Pattern storage của mạng multi-layer perceptron có giá trị nhỏ
nhất bằng số lượng các tham số gắn với một output Nói cách khác, giá trị này sẽ bằng tổng số lượng các phần tử trong lớp ẩn, số lượng input và ngưỡng của output
Nh: Số phần tử lớp ẩn
M: số lượng output
Bổ đề 3 : Pattern storage của Piecewise Linear Network (PLN) sẽ bằng số
lượng cluster nhân với pattern storage của 1 cluster
SPLN = Nc (N + 1)
1.3.3 Thuật toán xác định kích thước (Sizing Algorithm)
Xét PLN đang được huấn luyện ở lần lặp thứ i, ta có:
Et(i) là lỗi huấn luyện ở lần lặp thứ i
Nc(i) là số lượng cluster ở lần lặp thứ i
Trang 20Khi đó, theo bổ đề 3, pattern storages của PLN được tính bởi công thức:
SPLN (i) = Nc(i) (N + 1) (*) Xét MLP có cùng pattern storage với PLN ở lần lặp thứ i ở trên Theo bổ đề
2 MLP này sẽ có pattern storage là:
( ) ( ) ( ) (**) Theo giả thuyết nền tảng: nếu PLN và MLP có cùng pattern storage thì chúng có cùng lỗi huấn luyện Ta có:
Sử dụng kĩ thuật SVD (singular value decomposition) để giảm bớt
số output ở đầu ra (nén) mà không làm biến đổi nghiêm trọng đến MSE
Giúp thuật toán định kích thước đưa ra dự đoán các mạng MPL nhỏ hơn và đơn giản hơn
Trang 21- Khi nén M output thành M’ output (1<=M’<=M), MSE cũng sẽ chuyển
Trang 22CHƯƠNG 4 : XÁC ĐỊNH ĐỘ LỖI VÀ CỰC TIỂU CỦA ĐỘ LỖI
với ( ) được gọi là ma trận hiệp phương sai
Cho mẫu ngẫu nhiên ( ), thống kê ước lượng cho tham số θ có dạng :
( ) Khi đó :
Thống kê θ ’ gọi là ước lượng không chệch (nonbiased estimator)
của θ nếu và chỉ nếu ( )
Ước lượng không chệch có phương sai nhỏ nhất (so sánh trên cùng một mẫu) được gọi là ước lượng hiệu quả
Dùng bất đẳng thức Cramer-Rao để để xác định
Trang 23
)
Trong đó, Σ(θ) là ma trận hiệp phương sai, tr( ) là tổng các phần tử trên đường chéo chính của ma trận
Trang 24Trường hợp đặc biệt (ứng dụng phổ biến) : khi các đại lượng ngẫu nhiên phân bố độc lập (VD: các đặt trưng phân bố độc lập)
4.3 XÁC ĐỊNH CỰC TIỂU SAI SỐ TRONG MLP
Ta không thể nghiên cứu toàn bộ phần tử của tập hợp để rút ra kết luận vì :
Khó mà tìm ra được toàn bộ các phần tử (toàn bộ các trường hợp mà biến ngẫu nhiên có thể xảy ra)
Quy mô của tập hợp cần nghiên cứu quá lớn tốn chi phí về vật chất, cũng như thời gian
Do đó, ta chỉ có thể ước lượng các tham số trong một tập mẫu giới hạn