Trong phạm vi đồ án này chúng tôi chỉ nghiên cứu giải thuật lan truyền ngược.
3.1 Giải thuật lan truyền ngược
Giải thuật lan truyền ngược (back propagation algorithm) là một trong các giải thuật quan trọng lịch sử phát triển của mạng nơron nhân tạo. Giải thuật được sử dụng để huấn luyện các mạng truyền thẳng với các phần tử xử lý trong mạng có hàm tác động là hàm phi tuyến.
Mạng truyền thẳng nhiều lớp được kết hợp với giải thuật lan truyền ngược còn được gọi là mạng lan truyền ngược (back propagation network).
Nếu cho tập các mẫu huấn luyện vào- ra (x(k), d(k)) vói k =1, 2, 3,…, p, giải thuật sẽ cung cấp một thủ tục cho việc cập nhật các trọng số kết nối trong mạng lan truyền ngược từ lớp nơron ngõra đến các lớp nơron ngõvào. Giải thuật vận hành theo hai luồng dữ liệu:
• Đầu tiên dữ liệu được truyền từ lớp nơron ngõ vào đến lớp ngõ ra và cho kết quả thật sự y(k) của lớp nơron ngõra.
• Sau đó, các tín hiệu sai lệch giữa ngõ ra mong muốn và ngõ ra
thật sự của mạng được truyền ngược từ lớp ngõ ra đến các lớp đứng trước để cập nhật các trọng số kết nối trong mạng.
Ở bước điều chỉnh sai số: Giải thuật Back propagation được sử dụng để điều chỉnh các trọng số kết nối sao cho tổng sai số E là nhỏ nhất.
∑ = − = p j j j y x x d E 1 ) ( ) ( (6) Trong đó: d(xj): Tập giá trị mẫu
Trước tiên, ta xét trên 1 nơron và ta phải xác định nơron đó thuộc mức nào
Hình 0.6. Mô tả một nơron j (lớp ẩn) và nơron k (lớp xuất)
Trong đó:
- xl(l=1…m) : các ngõ vào
- wkm : trọng số kết nối giữa ngõvào thứ m với nơron k
- yk: ngõra thật sự của nơron k
- dk : ngõra mong muốn của nơron k
-Giá trị sai số của nơron k tại vòng lặp thứ n là:
ek(n)=dk(n)-yk(n)
-Tổng bình phương sai số của mạng nơron:
(7)
-Tại nơron k với m ngõvào là các tín hiệu chức năng được tạo bởi mức nơron ở bên trái, ta có tổng trọng input tại vòng lặp thứ n là:
Nơron k Nút xuất Nơron j Nút ẩn wj i-1 wk2 wkm-1 x2 x1 w k1 wkm xm yk dk yj wj2 wj i wj1 xi xi-1 x2 x1
-Tín hiệu chức năng yk(n) xuất hiện tại ngõ ra của nơron k ở vòng lặp thứ n là:
yk(n)=f(vk(n))
-Hiệu chỉnh Δwji của trọng số wji mà nối nơron i với nơron j được xác định bằng qui tắc delta như sau:
) ( ) ( ) (n n y n wji =ηδj j ∆ (8) ( với η là hệ số học)
Tuy nhiên ta phải xác định nơron đó thuộc lớp nào (lớp ẩn hay lớp
xuất). Điều này rất quan trọng trong việc tính toán cho từng hệ số hiệu chỉnh
trọng số.
-Nếu nơron k là nút xuất thì bằng tích δj(n) của đạo hàm f’(vk(n)) với tín hiệu lỗi ek(n):
δj(n) = f ’(vk(n)) ek(n)
- Nếu nơron j là nút ẩn thì δj(n) bằng tích đạo hàm với tổng các δ đã
được nhân với các trọng số tương ứng ∑
= m k kj k n w n 1 ) ( ) (
δ của tất cả các nơron thuộc
mức tiếp theo mà được nơron j nối tới.
δj(n) = f ’(vk(n)) ∑ = m k kj k n w n 1 ) ( ) ( δ
Hình 0.7. Đồ thị luồng tín hiệu khi tín hiệu lỗi phản hồi trở lại
wj2 δ2(n) f2’(v2(n)) δm(n) fm’(vm(n)) δj(n) δ1(n) f1’(v1(n)) wj1 wjm
Kế tiếp, ở đây ta chỉ xét một mạng truyền thẳng ba lớp tổng quát đó là: lớp nơron ngõ vào, lớp nơron ẩn và lớp nơron ngõ ra[25].
- Giả sử lớp nơron ngõ vào của mạng có m ngõ vào đó là x1, x2, …xj…, xm; lớp ẩn có l phần tử xử lý với các ngõra của nó là z1, z2,..zq,…zl và lớp nơron
ngõ ra của mạng có n phần tử xử lý với ngõ ra của nó là y1, y2,…yi,…yn. Ta cũng giả sử rằng vqjlà trọng số kết nối giữa ngõra thứ j của lớp nơron ngõvào
với phần tử xử lý q của lớp nơron ẩn và wiq là trọng số kết nối giữa phần xử lý thứ q của lớp ẩn với phần tử xử lý thứ i của lớp nơron ngõ ra như trong hình 2.5.
Hình 0.8. Mô tả mạng nơron truyền thẳng gồm một lớp nhập, một lớp ẩn và một lớp xuất
- Cho cặp mẫu huấn luyện ( x,d ), hàm tổng hợp cho mỗi phần tử xử lý thứ q của lớp nơron ẩn là: và ngõ ra của nó là: zq =f(uq) x1 xj xm xj( j= 1,..,m) vqj Zq (q=1,..l) Wiq yi (i= 1,…n) yn yi y1
- Hàm tổng hợp cho mỗi phần tử xử lý thứ i trong lớp nơron ngõ ra là: ui=∑ = l q q iqz w 1 và ngõ ra của nó là: yi =f (ui)
- Tổng bình phương sai số của mạng nơron:
- Trọng số kết nối giữa lớp nơron ẩn và lớp nơron ngõ ra là:
Δwiq =ηδ qi zq ; với δ qi = f ’(ui)ei
- Trọng số kết nối giữa lớp nơron ẩn và lớp nơron ngõ vào là:
Δwqj =ηδ hq xj ; với η là hệ số học, δ hq = f ’(uq) ∑ =
n
i 1δqiwiq
Tóm lại , khi giải quyết bài toán bằng mạng nơron theo thủ tục truyền ngược có những vấn đề rút ra là:
- Sẽ có bao nhiêu nơron trong mạng, bao nhiêu ngõ vào, bao nhiêu
ngõ ra và bao nhiêu lớp ẩn. Càng nhiều lớp ẩn bài toán trở nên phức tạp nhưng có thể giải quyết được những vấn đề lớn.
- Thuật toán Back propagation cung cấp một phương pháp “xấp xỉ” cho việc tìm trong không gian trọng số (nhằm tìm ra những trọng số phù hợp cho mạng). Chúng ta càng lấy giá trị của tham số học càng nhỏ bao nhiêu thì sự thay đổi trọng số càng nhỏ bấy nhiêu và quỹ đạo không gian học sẽ càng trơn. Tuy nhiên điều này lại làm cho tốc độ học chậm đi. Trái lại, nếu chúng ta chọn tham số tốc độ học quá lớn, sự thay đổi lớn của các
trọng số có thể làm cho mạng trở nên không ổn định. Về mặt ý tưởng, tất cả các nơron trong mạng nên chọn cùng một tốc độ học, tham số học η nên gán một giá trị nhỏ. Các nơron với nhiều ngõvào nên chọn một tham số tốc độ học nhỏ hơn để giữ một thời gian học tương tự cho nhau cho tất cả các nơron trong mạng.
Phụ Lục C : MINH HỌA GIẢI THUẬT LAN TRUYỀN NGƯỢC TRONG HUẤN LUYỆN MẠNG NHIỀU LỚP
Các hình vẽ dưới đây minh họa quá trình lan truyền ngược của mạng 3 lớp : lớp nhập, lớp ẩn và lớp xuất.
Quá trình huấn luyện mạng gồm 2 pha :
Lan truyền tiến mẫu học. Tính kết quả để tìm sai số.
Lan truyền ngược gồm 2 bước :
1. Lan truyền ngược lỗi cho toàn mạng. 2. Cập nhật ma trận trọng số của mạng.
Pha 1 : Quá trình lan truyền tiến.
Trong đó :
- x1, x2 là dữ liệu nhập.
- f1(e), f2(e)...fn(e) là hàm lan truyền tiến của nơron thứ n. Có công thức là f(e)=2/(1+exp(-alpha*e)) -1 ( với hàm exp là hàm lũy thừa cơ số e).
- y là kết quả của quá trình tính toán của mạng.
Mỗi một noron sẽ tính tổng của tích các trọng số với dữ liệu nhập. Sau đó đưa giá trị này vào hàm truyền f và cho ra giá trị xuất.
Ví dụ: Trong đó : e=x1*w1 + x2*w2 f(e)=2/(1+exp-alpha*e) - 1 yn=fn(e) Áp dụng trên toàn mạng : Lớp nhập :
Lớp xuất :
Pha 2 :Quá trình lan truyền ngược.
Bước 1 : Tính sai số cho các noron của tất cả các lớp.
Trong đó :
• z là giá trị xuất mong muốn.
• y là kết quả tính toán của mạng.
• δ là sai số.
• yn là giá trị xuất của noron thứ n trong quá trình lan truyền tiến.
• e là biến nhận giá trị xuất của noron tương ứng.
• f’(e)=alpha * (1 - f(e)2) / 2 (với alpha là hệ số góc).
• Tính đạo hàm theo e và thay giá trị xuất của noron đó vào e( với f’n(e) ta thay e=yn).
Bước 2: Cập nhật sai số cho các trọng số :
Trong đó :
• η là tốc độ học.Nhận giá trị trong khoảng [0,1].Tốc độ học tỉ lệ nghịch với độ chính xác và tỉ lệ thuận với thời gian học.
• w(x1)1 là trọng số đang xét.
• xn là giá trị nhập.
• df1(e)/de là đạo hàm cấp 1 của f1(e).
• yn là giá trị xuất của noron đang xét.
Cập nhật trọng số cho lớp xuất :
DANH MỤC TÀI LIỆU THAM KHẢO
[1] Henry A. Rowley, Neural Network-Based Face Detection, May 1999, CMU-CS-99-117.
[2] Ming-Hsuan Yang, David J. Kriegman, Narendra Ahuja, “Detecting Faces in Images: A Survey”, IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI), Vol. 24, No 1, pp. 34-47, Jan 2002.
[3] T. Kanade, “Picture Processing Computer Complex and
Recognition of Human Faces”, PhD thesis, Kyoto Univ., 1973.
[4] G. Yang, T. S. Huang, “Human Face Detection in
Complex Background”, Pattern Recognition, Vol. 27, No. 1,
pp. 53-63, 1994.
[5] C. Kotropoulos, I. Pitas, “Rule-based Face Detection in
Frontal Views”, Proc. Int’l Conf. Acoustics, Speech and
Signal Processing, Vol. 4, pp. 2637-2540, 1997.
[6] Jianping Fan, David K.Y. Yau, Ahmed K.Elmagarmid, an
Walid G. Arref, IEEE Transactionson Image Processing, vol. 10, no. 10, IEEE, 2001.
[7] Hichem Sabbi and Nozha Boujemaa, “Coarse to Fine
Face Detection Based on Skin Color Adaption”, Biometric Authentication, LNCS 2359, pp. 112-120, Springer-Verlag Berlin Heidelberg, 2002.
[8] Douglas Chai and Kim N. Ngan, “Locating Facial Region
of a Head-and-Shoulders Color Image”, Proc. Third Int’l Conf. Automatic Face and Gesture Recognition, pp. 124-129, 1998.
[9] Hannes Kruppa, Martin A. Bauer, and Bernt Schiele,“
Skin Patch Detection in Real-World Images”, DAGM 2002, LNCS 2449, pp. 109-116, Springer-Verlag Berlin Heidelberg, 2002.
[10]Kang Ryoung Park, “Gaze Detection System by Wide
and Auto Pan/Tilt Narrow View Camera”, DAGM 2003, LNCS 2781, pp. 76-83, Springer- Verlag Berlin Heidelberg, 2003.
[11]K. C. Yow, R. Cipolla, “Feature-Based Human Face
Detection”, Image and Vision Computing, Vol. 15, No. 9, pp.
713-735, 1997.
[13] T. K. Leung, M.C. Burl, P. Perona, “Finding Faces in
Cluttered Scenes Using Random Labeled Graph Matching”,
Proc. 5th IEEE Conf. Computer Vision (ICCV’95), pp. 637-644, 1995.
[14]. A. Lanitis, C. J. Taylor, T. F. Cootes, “An Automatic Face Identification System Using Flexible Appearance Models”,
Image and Vision Computing, Vol.13, No. 5, pp. 393-401, 1995.
[15]. I. Craw, D. Tock, A. Bennett, “Finding Face Features”,
Proc. 2nd European Conf. Computer Vision (ECCV’92), Vol. 2, pp. 92-96, 1992.
[16]M. Turk, A. Pentland, “Eigenfaces for Recognition”,
Journal of Cognitive Neuroscience, Vol. 3, No. 1, pp. 71-86, 1991.
[17]E. Osuna, R. Freund, F. Girosi, “Training Support Vector
Machines: An Application to Face Detection”, Proc. IEEE
Conf. Computer Vision and Pattern Recognition (CVPR’97), pp. 130-136, 1997.
[18]P. Viola, M. Jones, “Robust Real Time Object Detection”,
Proc. IEEE ICCV Workshop on Statistical and Computational Theories of Vision, Jul 2001.
[19]. P. Viola, M. Jones, “Rapid object detection using a boosted cascade of
simple features”, Proc. IEEE Conf. Computer Vision and
Pattern Recognition (CVPR’01), pp. 511-518, Dec 2001.
[20] K. K. Sung, T. Poggio, “Example-based learning for
view-based human face detection”, IEEE Transaction on
Pattern Analysis and Machine Intelligence(PAMI), Vol. 20, No. 1, pp. 39-51, Jan 1998.
[21] Ths.Trần Lê Hồng Vũ , “Phát hiện khuôn mặt dựa trên đặt trưng lồi lõm”, Luận văn Thạc sỹ, Đại học quốc gia TP. Hồ Chí Minh, 2005.
[22] Phạm Thế Bảo, Nguyễn Thành Nhật, Cao Minh Thịnh , Trần Anh Tuấn, Nguyễn Phúc Dõan, “Tổng quan các phương pháp xác định khuôn mặt người”.
[23] Trần Phúc Trị, “Phát hiện mặt người bằng AdaBoost kết hợp mạng nơron”.
[24] Ts.Nguyễn Đình Thúc, “Mạng nơron Phương pháp và ứng dụng”, Nhà xuất bản giáo dục 2000.
[25] Nguyễn Thiện Thành,” Trí Tuệ Nhân Tạo”, Nhà xuất bản Đại học quốc gia Thành phố Hồ Chí Minh 2001, Chương 7.