Phát biểu vấn đề nghiên cứu Nhận dạng khuôn mặt người là một công nghệ được ứng dụng rộng rãi trong đời sống hằng ngày của con người như các hệ thống giám sát, quản lý vào ra, tìm kiếm
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Trang 2LỜI CÁM ƠN
Đầu tiên, em xin chân thành cám ơn thầy PGS.TS ĐINH ĐỨC ANH VŨ – người đã tận tình truyền đạt cho em những kiến thức quý báu để em hoàn thành khóa luận này
Tiếp theo, em xin gửi lời cám ơn đến các thầy cô ở các khoa cũng như tại các phòng ban tại trường ĐH Công Nghệ Thông Tin đã tận tình giúp đỡ em trong thời gian học vừa qua
Do kiến thức có hạn cũng như kinh nghiệm nghiên cứu khoa học trên thực tế không nhiều nên bài khóa luận của em không tránh khỏi thiếu sót Em rất mong nhận được sự đóng góp quý báu của quí thầy cô
TpHCM, ngày…tháng… năm 2015
Lớp Cao học KHMT khóa 8
Lê Phú Quí
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu độc lập của bản thân Các số liệu, kết quả trong khóa luận này là trung thực Các tài liệu trong khóa luận có nguồn gốc và trích dẫn rõ ràng, đầy đủ
Tác giả
Lê Phú Quí
Trang 4MỤC LỤC
Lời cam đoan
Mục lục
DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT 5
DANH MỤC CÁC BẢNG 6
DANH MỤC HÌNH ẢNH 7
MỞ ĐẦU 8
1 Phát biểu vấn đề nghiên cứu 8
2 Mục tiêu, nhiệm vụ, đối tượng và phạm vi nghiên cứu 8
3 Ý nghĩa khoa học và thực tiễn 9
CHƯƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT 10
1.1 Gới thiệu 10
1.2 Các ứng dụng liên quan đến nhận dạng mặt người 10
1.3 Các hướng tiếp cận nhận dạng khuôn mặt dùng mạng Nơ-ron 11
1.4 Những khó khăn của nhận dạng khuôn mặt 11
CHƯƠNG 2: MỘT SỐ CƠ SỞ LÝ THUYẾT 13
2.1 Giới thiệu về mạng Nơ-ron 13
2.1.1 Khái niệm mạng Nơ-ron 13
2.1.1.1 Mạng Nơ-ron nhân tạo là gì? 13
2.1.1.2 Sơ lược về Nơ-ron sinh học 13
2.1.1.3 Nơ-ron nhân tạo 15
2.1.2 Mô hình cơ bản của mạng Nơ-ron 17
2.1.3 Phân loại mạng Nơ-ron 18
Trang 52.1.3.2 Một số loại mạng Nơ-ron 18
2.1.4 Xây dựng mạng Nơ-ron 21
2.1.5 Huấn luyện mạng Nơ-ron 23
2.1.5.1 Phương pháp học 23
2.1.5.2 Thuật toán học 25
2.1.6 Mạng Perceptron nhiều tầng (MPL – Multi Perceptron Layer) 29
2.1.6.1 Mạng phân lớp 29
2.1.6.2 Kiến trúc mạng tổng quát 31
2.1.7 Hàm sigmoid 32
2.1.8 Thuật toán lan truyền ngược 33
2.1.8.1 Lan truyền ngược 35
2.1.8.2 Hiệu quả của lan truyền ngược 39
2.2 Giới thiệu về PCA 40
2.2.1 Một số khái niệm toán học 41
2.2.1.1 Độ lệch chuẩn 41
2.2.1.2 Phương sai 42
2.2.1.3 Hiệp phương sai 42
2.2.1.4 Ma trận hiệp phương sai 43
2.2.2 Ma trận đại số 43
2.2.2.1 Eigenvector (Vectơ riêng) 44
2.2.2.2 Eigenvalue (Giá trị riêng) 44
2.3 Phân tích thành phần chính (PCA) 45
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT 46
Trang 63.1.1 Tiền xử lý 46
3.1.2 Trích rút đặc trưng 47
3.2 Nhận dạng khuôn mặt bằng mạng Nơ-ron 50
3.2.1 Cấu hình mạng Nơ-ron 50
3.2.2 Quá trình huấn luyện mạng 51
CHƯƠNG IV: CÀI ĐẶT CHẠY THỬ NGHIỆM 52
4.1 Bài toán 52
4.2 Cơ sở dữ liệu và môi trường cài đặt 52
4.2.1 Cơ sở dữ liệu 52
4.2.2 Môi trường cài đặt 53
4.3 Một số xử lý trong quá trình cài đặt chương trình 53
4.4 Kết quả cài đặt 54
4.4.1 Giao diện chương trình 54
4.4.2 Huấn luyện mạng Nơ-ron (tạo tập dữ liệu mẫu) 54
4.4.3 Nhận dạng khuôn mặt 56
CHƯƠNG V: KẾT LUẬN 58
TÀI LIỆU THAM KHẢO 59
Trang 7DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT
BPNN: BackPropagation Neural Network
DoG: Difference of Gauss
EBM: Edge-like Blob Map
HMM: Hidden Markov Model
MPL: Multi Perceptron Layer
PCA: Principal Component Analysis
SVM: Support Vector Machine
LDA: Linear Discriminant Analysis
LFA: Local Feature Analysis
Trang 8DANH MỤC CÁC BẢNG
Bảng 2.1: Một số hàm kích hoạt 16 Bảng 4.1: Kết quả thực nghiệm trên nhiều tập dữ liệu 57
Trang 9DANH MỤC HÌNH ẢNH
Hình 1.1: Ví dụ về hệ thống nhận dạng mặt người 10
Hình 2.1: Cấu trúc của một Nơ-ron sinh học điển hình 14
Hình 2.2: Mô hình một Nơ-ron nhân tạo 15
Hình 2.3: Sơ đồ đơn giản về một mạng Nơ-ron nhân tạo 17
Hình 2.4: Mạng tiến với một mức Nơ-ron 19
Hình 2.5: Mạng tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra 20
Hình 2.6: Mạng quy hồi không có Nơ-ron ẩn và không có vòng lặp tự phản hồi 21
Hình 2.7: Mạng quy hồi có các Nơ-ron ẩn 21
Hình 2.8: Mô phỏng liên kết giữa các Nơ-ron 22
Hình 2.9: Mô hình mạng lan truyền tiến 29
Hình 2.10: Đồ thị hàm truyền sigmoid 32
Hình 2.11: Lan truyền ngược 36
Hình 2.12: Minh họa việc tính δj cho việc tính nút ẩn j 38
Hình 2.13: Ví dụ về 1 non-eigenvector và 1 eigenvector 43
Hình 2.14: Ví dụ về 1 eigenvector có tỉ lệ khác vẫn 1 là eigenvector 44
Hình 3.1: Hệ thống nhận dạng khuôn mặt cơ bản 46
Hình 3.2: Sơ đồ khối trích chọn đặc trưng sử dụng PCA 47
Hình 4.1 : Sơ đồ luồng xử lý chương trình thử nghiệm 53
Hình 4.2: Giao diện chính của chương trình 54
Hình 4.3: Giao diện huấn luyện 55
Hình 4.4: Quá trình huấn luyện 55
Hình 4.5: Kết quả huấn luyện 56
Hình 4.6: Giao diện nhận dạng khuôn mặt 56
Hình 4.7: Index của ảnh cần tìm 56
Hình 4.8: Kết quả nhận dạng 57
Trang 10MỞ ĐẦU
1 Phát biểu vấn đề nghiên cứu
Nhận dạng khuôn mặt người là một công nghệ được ứng dụng rộng rãi trong đời sống hằng ngày của con người như các hệ thống giám sát, quản lý vào ra, tìm kiếm thông tin một người nổi tiếng,…Có rất nhiều phương pháp nhận dạng khuôn mặt để nâng cao hiệu suất tuy nhiên dù ít hay nhiều những phương pháp này đang vấp phải những thử thách về độ sáng, hướng nghiêng, kích thước ảnh, hay ảnh hưởng của tham số môi trường
Một số hệ thống nhận dạng thường khuôn mặt gồm có 2 bước Bước thứ nhất
là trích xuất đặc trưng dựa vào một số phương pháp như phân tích thành phần chính (Principal Component Analysis – PCA), phân tích sự khác biệt tuyến tính (Linear Discriminant Analysis –LDA), phân tích đặc điểm vùng (Local Feature Analysis – LFA) Bước thứ hai là phương pháp máy học như là mạng Nơ-ron (Neural Network), Support Vector Machine (SVM)
Trong đó, PCA là phương pháp trích rút đặc trưng nhằm giảm số chiều của ảnh tuy đơn giản nhưng mang lại hiệu quả tốt Nhận dạng khuôn mặt dùng PCA kết hợp với mạng Nơ-ron là phương pháp mang lại hiệu quả nhận dạng cao bởi nó phát huy được ưu điểm của PCA và mạng Nơ-ron [8][15][26] Hệ thống hoạt động ổn định và có tính thích nghi cao khi dữ liệu đầu vào thay đổi nhiều
2 Mục tiêu, nhiệm vụ, đối tượng và phạm vi nghiên cứu
Mục tiêu nghiên cứu:
Nghiên cứu phương pháp nhận dạng bằng mạng Nơ-ron
Áp dụng phương pháp trên vào việc nhận dạng khuôn mặt
Nhiệm vụ chính của đề tài:
Nghiên cứu tổng quan về nhận dạng khuôn mặt
Nghiên cứu các phương pháp nhận dạng bằng mạng Nơ-ron
Trang 11 Đối tượng nghiên cứu bao gồm:
Lý thuyết về nhận dạng khuôn mặt
Các vấn đề liên quan đến các phương pháp nhận dạng khuôn mặt
Phương pháp nhận dạng khuôn mặt bằng mạng Nơ-ron
3 Ý nghĩa khoa học và thực tiễn
Ý nghĩa khoa học:
Nghiên cứu việc nhận dạng khuôn mặt
Nghiên cứu về mạng Nơ-ron trong việc nhận dạng khuôn mặt
Tạo tiền đề cho những nghiên cứu tiếp theo trong tương lai
Ý nghĩa thực tiễn:
Cung cấp các thuật toán hỗ trợ cho các thiết bị phát hiện và nhận dạng khuôn mặt người
Giúp giảm giá thành cho công tác bảo vệ và bảo mật
Tạo tiền đề cho việc xây dựng cơ sở dữ liệu nhận dạng khách hàng một cách tự động thông qua khuôn mặt
Trang 12CHƯƠNG 1: TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT
1.1 Gới thiệu
Hệ thống nhận dạng mặt người là một hệ thống nhận vào là một ảnh hoặc một
đoạn video (một chuỗi các ảnh) Qua xử lý tính toán hệ thống xác định là người nào trong số những người hệ thống đã được biết (qua quá trình huấn luyện) hoặc là người
lạ
Hình 1.1: Ví dụ về hệ thống nhận dạng mặt người
1.2 Các ứng dụng liên quan đến nhận dạng mặt người
Bài toán nhận dạng mặt người có thể áp dụng rộng rãi trong nhiều ứng dụng thực tế khác nhau Đó chính là lý do mà bài toán này hấp dẫn rất nhiều nhóm nghiên cứu trong thời gian dài Các ứng dụng liên quan đến nhận dạng mặt người có thể kể như:
- Hệ thống phát hiện tội phạm: camera được đặt tại một số điểm công cộng như: siêu thị, nhà sách, trạm xe buýt, sân bay,v.v Khi phát hiện được sự xuất hiện của các đối tượng là tội phạm, hệ thống sẽ gửi thông điệp về cho trung tâm xử lý
- Hệ thống theo dõi nhân sự trong một đơn vị: giám sát giờ ra vào của từng nhân viên và chấm công
Trang 13người) Chẳng hạn như: đài truyền hình Việt Nam (VTV) có một kho dữ liệu video tin tức khá lớn cần tìm kiếm nhanh những đoạn video nào có G Bush hoặc Bin Laden
1.3 Các hướng tiếp cận nhận dạng khuôn mặt dùng mạng Nơ-ron
Mạng Nơ-ron đã và đang được sử dụng trong nhận dạng ảnh mặt người Một trong những nghiên cứu đầu tiên dùng Nơ-ron trong nhận dạng ảnh mặt người trong [25] đã sử dụng mạng Kohonen nhận dạng ảnh trong một tập mẫu nhỏ các ảnh mặt người và cho kết quả tốt ngay cả khi ảnh bị nhiễu hay mất một phần ảnh Mạng Nơ-ron cũng được hiện thực dùng phần cứng để nhận dạng ảnh mặt người trong [23] Trong [24], mạng Nơ-ron được sử dụng để phân loại giới tính dùng vector có 16 thuộc tính như độ dày của lông mày, độ rộng của mũi và miệng, … Đầu ra của 2 mạng Nơ-ron được so sánh, giới tính của người trong ảnh nhận dạng thử được xác định bởi mạng có đầu ra lớn hơn Tỷ lệ nhận dạng đúng được công bố là 92.5% với ảnh test đã được huấn luyện và 87.5% với ảnh test chưa được huấn luyện
Trong nhiều nghiên cứu nhận dạng ảnh mặt người dùng mạng Nơ-ron, loại mạng Nơ-ron được cho là hiệu quả nhất là mạng Nơ-ron perception đa lớp lan truyền ngược (backpropagation MLP) Trong [26] hệ thống nhận dạng khuôn mặt người dùng mạng MLP lan truyền ngược sử dụng cơ sở dữ liệu gồm 100 ảnh của 10 người khác nhau
tự thu thập, tỷ lệ nhận dạng đúng được công bố là 95.6%
Để giảm số chiều của vector ảnh đầu vào làm giảm khối lượng tính toán của mạng Nơ-ron Nhiều nghiên cứu gần đây đề xuất dùng đầu vào của mạng Nơ-ron là vector PCA (vector phân tích các thành phân cơ bản – Principal Component Analysis)
Trong [27] hệ thống nhận dạng ảnh mặt người được xây dựng dùng vector PCA và mạng Nơ-ron lan truyền ngược Cơ sở dữ liệu gồm 200 ảnh được trích từ cơ sở dữ liệu ảnh công cộng của Yale, hệ thống không chỉ cho kết quả nhận dạng tốt hơn mà còn giảm thời gian huấn luyện, nhận dạng so với các nghiên cứu trước đó
1.4 Những khó khăn của nhận dạng khuôn mặt
Trang 1470 Tuy nhiên, đây là một bài toán khó nên những nghiên cứu hiện tại vẫn chưa đạt được kết quả mong muốn Chính vì thế vấn đề này vẫn đang được nhiều nhóm trên thế giới quan tâm nghiên cứu Khó khăn của bài toán nhận dạng mặt người có thể kể nhƣ sau:
a Tư thế, góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì góc
chụp giữa camera và khuôn mặt Chẳng hạn như: chụp thẳng, chụp xéo bên trái 450hay xéo bên phải 450, chụp từ trên xuống, chụp từ dưới lên, v.v ) Với các tư thế khác nhau, các thành phần trên khuôn mặt nhu mắt, mũi, miệng có thể bị khuất một phần hoặc thậm chí khuất hết
b Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: Các đặc trưng
nhƣ: râu mép, râu hàm, mắt kính, v.v có thể xuất hiện hoặc không Vấn đề này làm cho bài toán càng trở nên khó hơn rất nhiều
c Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt người có thể làm
ảnh hưởng đáng kể lên các thông số của khuôn mặt Chẳng hạn, cùng một khuôn mặt một người, nhưng có thể sẽ rất khác khi họ cười hoặc sợ hãi,v.v
d Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng khác hoặc
các khuôn mặt khác
e Hướng của ảnh: Các ảnh của khuôn mặt có thể biến đổi rất nhiều với các
góc quay khác nhau của trục camera Chẳng hạn chụp với trục máy ảnh nghiêng làm
cho khuôn mặt bị nghiêng so với trục của ảnh
f Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau về: chiếu
sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại,v.v ) ảnh hưởng rất
nhiều đến chất lượng ảnh khuôn mặt
Trang 15CHƯƠNG 2: MỘT SỐ CƠ SỞ LÝ THUYẾT
2.1 Giới thiệu về mạng Nơ-ron
2.1.1 Khái niệm mạng Nơ-ron
2.1.1.1 Mạng Nơ-ron nhân tạo là gì?
Định nghĩa: Mạng Nơ-ron nhân tạo, Artificial Neural Network (ANN) gọi tắt
là mạng Nơ-ron, neural network, là một mô hình xử lý thông tin phỏng theo cách thức
xử lý thông tin của các hệ Nơ-ron sinh học Nó được tạo lên từ một số lượng lớn các
phần tử (gọi là phần tử xử lý hay Nơ-ron) kết nối với nhau thông qua các liên kết (gọi
là trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể
nào đó
Một mạng Nơ-ron nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận
dạng mẫu, phân loại dữ liệu, ) thông qua một quá trình học từ tập các mẫu huấn
luyện Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các ron
Nơ-2.1.1.2 Sơ lược về Nơ-ron sinh học
Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: bộ não con người bao gồm khoảng 1011 Nơ-ron tham gia vào khoảng 1015 kết nối trên các đường truyền Mỗi đường truyền này dài khoảng hơn một mét Các Nơ-ron có nhiều đặc điểm chung với các tế bào khác trong cơ thể, ngoài ra chúng còn có những khả năng mà các tế bào khác không có được, đó là khả năng nhận, xử lý và truyền các tín hiệu điện hóa trên các đường mòn Nơ-ron, các con đường này tạo nên hệ thống giao tiếp của bộ não
Trang 16Hình 2.1: Cấu trúc của một Nơ-ron sinh học điển hình [5]
Mỗi Nơ-ron sinh học có 3 thành phần cơ bản:
• Các nhánh vào hình cây (dendrites)
• Thân tế bào (cell body)
• Sợi trục ra (axon)
Các nhánh hình cây truyền tín hiệu vào đến thân tế bào Thân tế bào tổng hợp
và xử lý cho tín hiệu đi ra Sợi trục truyền tín hiệu ra từ thân tế bào này sang Nơ-ron khác Điểm liên kết giữa sợi trục của Nơ-ron này với nhánh hình cây của Nơ-ron khác
gọi là synapse Liên kết giữa các Nơ-ron và độ nhạy của mỗi synapse được xác định
bởi quá trình hóa học phức tạp Một số cấu trúc của Nơ-ron được xác định trước lúc sinh ra Một số cấu trúc được phát triển thông qua quá trình học Trong cuộc đời cá thể, một số liên kết mới được hình thành, một số khác bị hủy bỏ
Như vậy Nơ-ron sinh học hoạt động theo cách thức sau: nhận tín hiệu đầu vào,
xử lý các tín hiệu này và cho ra một tín hiệu đầu ra Tín hiệu đầu ra này sau đó được truyền đi làm tín hiệu đầu vào cho các Nơ-ron khác
Trang 17Dựa trên những hiểu biết về Nơ-ron sinh học, con người xây dựng Nơ-ron nhân tạo với hy vọng tạo nên một mô hình có sức mạnh như bộ não
2.1.1.3 Nơ-ron nhân tạo
Nơ-ron nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra,
mỗi đầu vào đến từ một liên kết Đặc trưng của Nơ-ron là một hàm kích hoạt phi tuyến chuyển đổi tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra Hàm kích hoạt (hàm truyền) này đảm bảo tính chất phi tuyến cho tính toán của mạng Nơ-ron
Hình 2.2: Mô hình một Nơ-ron nhân tạo [6]
Một Nơ-ron được cầu tạo gồm các thành phần chính : liên kết Nơ-ron,
bộ cộng , hàm kích hoạt
Liên kết Nơ-ron là một thành phần của mạng Nơ-ron nhận tạo để liên kết giữa các Nơ-ron, nó nối đầu ra của Nơ-ron lớp này với đầu vào của một Nơ- ron trong lớp khác Đặc trưng của thành phần liên kết là một trọng số mà mỗi tín hiệu đi qua đều được nhân với trọng số này Các trọng số liên kết chính là
các tham số tự do cơ bản của mạng Nơ-ron, có thể thay đổi được nhằm thích
nghi với môi trường xung quanh
Trang 18Bộ cộng dùng để tính tổng các tín hiệu đầu vào của Nơ-ron, đã được nhân với các trọng số liên kết tương ứng, phép toán được mô tả ở đây tạo nên một bộ hợp tuyến tính
Hàm kích hoạt hay còn gọi hàm kích hoạt phi tuyến, chuyển đổi một tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra Hàm kích hoạt này đảm bảo tính chất phi tuyến cho tính toán mạng Nơ-ron Nó được xem như là một hàm giới hạn, nó giới hạn phạm vi biên độ cho phép của tín hiệu đầu ra trong một khoảng giá trị hữu hạn Mô hình Nơ-ron trong hình 2.2 còn bao gồm một hệ số điều chỉnh b tác động từ bên ngoài Hệ số điều chỉnh b có tác dụng tăng lên hoặc giảm đi đầu vào thực của hàm kích hoạt, tùy theo nó dương hay âm
Trang 19a = 1 với n > 1
6 tansig
a = n với n 0
a = 0 với các Nơ-ron còn lại
9 logsig
2.1.2 Mô hình cơ bản của mạng Nơ-ron
Hình 2.3: Sơ đồ đơn giản về một mạng Nơ-ron nhân tạo [6]
Mô hình mạng Nơ-ron ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn và lớp xuất (output) Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập và chuyển vào mạng
n
e
e e a
n n
Trang 20Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp – ta gọi là tổng trọng hóa – và chuyển kết quả cho các nút trong lớp ẩn Gọi là “ẩn” vì các nút trong lớp
này chỉ liên lạc với các nút trong lớp nhập và lớp xuất, và chỉ có người thiết kế mạng mới biết lớp này (người sử dụng không biết lớp này)
Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong lớp
ẩn Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc
2.1.3 Phân loại mạng Nơ-ron
2.1.3.1 Phân loại theo kiểu liên kết Nơ-ron
Ta có mạng Nơ-ron truyền thẳng và Nơ-ron mạng quy hồi
Trong mạng truyền thẳng các Nơ-ron đi theo một hướng nhất định tạo thành
đồ thị không có chu trình, các đỉnh là các Nơ-ron còn các cạnh là các liên kết giữa chúng
Các mạng quy hồi cho phép các liên kết Nơ-ron tạo thành chu trình, các thông tin ra của các Nơ-ron được truyền lại cho các Nơ-ron đã góp phần kích hoạt chúng, nên mạng quy hồi còn có khả năng lưu giữ trạng thái trong của nó dưới dạng các ngưỡng kích hoạt ngoài các trọng số liên kết Nơ-ron
2.1.3.2 Một số loại mạng Nơ-ron
a Mạng dẫn tiến
Có thể nói mạng Nơ-ron dẫn tiến là một kiểu mạng đơn giản trong việc sắp đặt mạng Trong mạng này thông tin chỉ truyền trên một hướng duy nhất Từ lớp đầu vào xuyên qua lớp ẩn (nếu có) và kết thúc tại lớp đầu ra Không có chu trình hoặc vòng trong mạng
Các mạng dẫn tiến đơn mức:
Trang 21Trong một mạng Nơ-ron phân mức, các Nơ-ron được tổ chức dưới dạng các mức Với dạng đơn giản nhất của mạng phân mức, chúng ta có một mức đầu vào gồm các nút nguồn chiếu trực tiếp tới mức đầu ra gồm các Nơ-ron
Mức đầu vào Mức đầu ra Hình 2.4: Mạng tiến với một mức Nơ-ron [6]
Như vậy, mạng thực sự là không có chu trình Nó được minh hoạ trong hình 2.4 cho trường hợp ba nút đối với cả mức đầu ra và đầu vào Một mạng như vậy được gọi là một mạng đơn mức “Đơn mức” tức là chỉ có một mức, chính là mức đầu ra gồm các nút tính toán (các Nơ-ron) Chúng ta không tính mức đầu vào của các nút nguồn vì không có tính toán nào được thực hiện ở đây
Các mạng dẫn tiến đa mức:
Lớp thứ hai của một mạng Nơ-ron dẫn tiến được phân biệt bởi sự có mặt của một hay nhiều mức ẩn, mà các nút tính toán của chúng được gọi là các Nơ-ron ẩn hay các đơn vị ẩn (thuật ngữ “ẩn” ở đây mang ý nghĩa là không tiếp xúc với môi trường) Chức năng của các Nơ-ron ẩn là can thiệp vào giữa đầu vào và đầu ra của mạng một cách hữu hiệu Bằng việc thêm một vài mức ẩn, mạng có khả năng rút ra được các thống kê bậc cao của tín hiệu đầu vào Khả năng các Nơ-ron ẩn rút ra được các thống
kê bậc cao đặc biệt có giá trị khi mức đầu vào có kích thước lớn
Trang 22Mạng Nơ-ron trong hình 2.5 được gọi là kết nối đầy đủ với ý nghĩa là tất cả các nút trong mỗi mức của mạng được nối với tất cả các nút trong mức tiếp sau Nếu một số kết nối không tồn tại trong mạng, chúng ta nói rằng mạng là kết nối không đầy đủ
Mức đầu vào Mức ẩn Mức đầu ra gồm các nút gồm các gồm các nguồn Nơ-ron ẩn Nơ-ron đầu ra Hình 2.5: Mạng tiến kết nối đầy đủ với một mức ẩn và một mức đầu ra [6]
b Mạng quy hồi
Trái với mạng Nơ-ron dẫn tiến, mạng Nơ-ron quy hồi là những mô hình với hai luồng dữ liệu có hướng Trong khi mạng dẫn tiến truyền dữ liệu theo một đường thẳng thì những mạng Nơ-ron quy hồi có ít nhất một phản hồi từ những Nơ-ron xử lý sau quay trở lại các Nơ-ron xử lý trước đó
Trang 23Hình 2.6: Mạng quy hồi không có Nơ-ron ẩn và không có vòng lặp tự phản hồi [6]
Hình 2.7: Mạng quy hồi có các Nơ-ron ẩn [6]
2.1.4 Xây dựng mạng Nơ-ron
Về cơ bản ta có thể hiểu mạng Nơ-ron là một đồ thị có hướng Trong đó các đỉnh của đồ thị là các Nơ-ron và các cạnh của đồ thị là các liên kết giữa các Nơ-ron
Trang 24Hình 2.8: Mô phỏng liên kết giữa các Nơ-ron
Vì vậy để xây dựng một mạng Nơ-ron ta xây dựng một đồ thị có hướng: số đỉnh của đồ thị bằng số Nơ-ron trong mạng, giá trị của các cạnh chính là trọng số liên kết Nơ-ron
Giải thuật xây dựng mạng Nơ-ron đơn giản:
Input: Cho:
Mạng Nơ-ron có num_layer lớp (với num_layer>1)
Mỗi lớp có num_of_layer Nơ-ron (num_of_layer>=1)
Trọng số w liên kết Nơ-ron ngẫu nhiên trong khoảng (-a,a)
Output: Mạng Nơ-ron nhân tạo
Kiểu dữ liệu: chọn lưu dữ kiểu mảng :
f
Trang 25- Bước 3 : Tại lớp đang xét i , xét Nơ-ron thứ j
- Bước 4: Thực hiện khởi tạo ngẫu nhiên trọng số kết nối với Nơ-ron k của lớp i-1 trong khoảng (-a,a)
w(i,j,k)=random(-a,a) (trọng số kết nối của ron thứ j của layer[i] với ron thứ k của layer[i-1] )
Nơ Bước 5: Nếu k <= num_of_layer[iNơ 1] quay lại “Bước 4”, ngược lại thực hiện
“Bước 6”
- Bước 6: Nếu j<=num_of_layer[i] quay lại “Bước 3”, ngược lại thực hiện
“Bước 7”
- Bước 7: Nếu i<=num_layer quay lại “Bước 3” ngược lại kết thúc
2.1.5 Huấn luyện mạng Nơ-ron
2.1.5.1 Phương pháp học
Một mạng Nơ-ron được huyấn luyện sao cho với một tập các vector đầu vào
X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó Tập X được
sử dụng cho huấn luyện mạng được gọi là tập huấn luyện (training set) Các phần tử
x thuộc X được gọi là các mẫu huấn luyện (training example) Quá trình huấn luyện
bản chất là sự thay đổi các trọng số liên kết của mạng Trong quá trình này, các trọng
số của mạng sẽ hội tụ dần tới các giá trị sao cho với mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ cho ra vector đầu ra y như mong muốn
Có ba phương pháp học phổ biến là học có giám sát (supervised learning), học không giám sát (unsupervised learning) và học tăng cường (Reinforcement learning):
♦ Học có giám sát: Là quá trình học có sự tham gia giám sát của một “thầy
giáo” Cũng giống như việc ta dạy một em nhỏ các chữ cái Ta đưa ra một chữ “a” và bảo với em đó rằng đây là chữ “a” Việc này được thực hiện trên tất cả các mẫu chữ cái Sau đó khi kiểm tra ta sẽ đưa ra một chữ cái bất kì (có thể viết hơi khác đi) và hỏi
Trang 26Với học có giám sát, tập mẫu huấn luyện được cho dưới dạng D = {(x,t) | (x,t)
Như vậy với học có giám sát, số lớp cần phân loại đã được biết trước Nhiệm
vụ của thuật toán là phải xác định được một cách thức phân lớp sao cho với mỗi vector đầu vào sẽ được phân loại chính xác vào lớp của nó
♦ Học không giám sát: Là việc học không cần có bất kỳ một sự giám sát nào
Trong bài toán học không giám sát, tập dữ liệu huấn luyện được cho dưới dạng: D = {(x
Như vậy với học không giám sát, số lớp phân loại chưa được biết trước, và tùy
theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại
khác nhau
♦ Học tăng cường: đôi khi còn được gọi là học thưởng-phạt (reward-penalty
learning), là sự tổ hợp của cả hai mô hình trên Phương pháp này cụ thể như sau: với
vector đầu vào, quan sát vector đầu ra do mạng tính được Nếu kết quả được xem là
“tốt” thì mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống Do đó
học tăng cường là học theo nhà phê bình (critic), ngược với học có giám sát là học theo thầy giáo (teacher)
Trang 272.1.5.2 Thuật toán học
a Thuật toán học của mạng Nơ-ron một lớp:
Xét trường hợp perceptron sử dụng hàm kích hoạt ngưỡng:
Nếu ta cho w0=-t và v0=1, ta có thể viết lại
Thuật toán:
Thuật toán học của perceptron hay mạng Nơ-ron một lớp gồm 3 bước chính:
Bước 1: Khởi tạo:
Khởi tạo trọng số w (0 hoặc ngẫu nhiên)
Chọn tốc độ học µ
Bước 2 :Học
Với mỗi mẫu (x,t) trong tập học
Tính y=f(x, w)
Nếu y!=t thay đổi vectơ trọng số w với: w(mới) = w(cũ) + µ(t-y)x
Bước 3: Lặp lại bước 2 cho tất cả các mẫu
Nhận xét:
Phương trình w.v=0 là chính là siêu phẳng trong không gian d-chiều, suy ra perceptron có khả năng phân lớp tuyến tính, có khả năng giải bài toán quy hồi tuyến tính
i i
d i
i i
t w v
t w v output
1
1
, 1
, 1
i
i i
d i
i i
w v sign
w v
w v output
0
0
0
0 ,
1
0 ,
1
(I.1)
(I.2)
Trang 28Không thể phân lớp phi tuyến
Giải pháp: sử dụng mạng Nơ-ron nhiều tầng MLP
b Thuật toán học của mạng Nơ-ron nhiều lớp:
Huấn luyện mạng Nơ-ron nhiều lớp sử dụng thuật toán lan truyền ngược gồm hai quá trình: quá trình truyền tuyến tính và quá trình truyền ngược:
Quá trình truyền tuyến tính: dữ liệu từ lớp nhập qua lớp ẩn và đến lớp xuất để:
Thay đổi giá trị của trọng số liên kết W của các Nơ-ron trong mạng biểu diễn được dữ liệu học
Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính được và kết quả dự đoán của mạng gọi là lỗi (học có giám sát)
Quá trình truyền ngược: giá trị lỗi sẽ được truyền ngược lại sao cho quá trình huấn luyện (học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất
Thuật toán:
Xét mạng Nơ-ron 3 lớp : input, hiden và output
Hàm kích hoạt các Nơ-ron : logistic (sigmoid)
g(x)= 𝟏
𝟏+𝒆 −𝒙 Bước 1: Khởi tạo trọng số w ngẫu nhiên nhỏ
Bước 2 : Chọn lớp đầu vào
Bước 3 : Truyền sự kích hoạt qua trọng số đến khi kích hoạt các Nơ-ron đầu
Bước 6: Cập nhật tất cả trọng số theo Wi=W(i-1)-µ(δE/ δ Wi)
Bước 7: Quay lại “Bước 2” cho đến “Bước 6” cho tất cả các mẫu
Trong đó: GRADIENT hàm lỗi:
(I.3)
Trang 29 Hàm lỗi:
( t là giá trị thật của mẫu huấn luyện)
Đạo hàm riêng của hàm lỗi (I.4) theo trọng số b:
2
1)(z z
E
b
v v
z z
E b
0 ,
1
) 1 (
) (
i b
v
z z
v
g v
z
t z z
E
i
) 1 ( )
E p
w2
wk
w1
z=g(v) v=b 0 + 𝑘𝑖=1𝑦𝑖𝑏𝑖
g(x)= 1 1+𝑒−𝑥
Trang 30 Đối với các Nơ-ron lớp ẩn:
Đạo hàm riêng của hàm lỗi theo trọng số:
i p b
E
i i
a
u u
y y
E a
0 ,
1 1
) 1
( ) (
1
j c
j a
u
y y
u y
b y v
p z
z t z v
z z E
y
v v
z z
E y
E
j j
i i
i i
i i i i
1
y y
b p u
y y
E q
Trang 312.1.6 Mạng Perceptron nhiều tầng (MPL – Multi Perceptron Layer)
MPL là một loại mạng lan truyền tiến được huấn luyện theo kiểu học có giám sát
2.1.6.1 Mạng phân lớp
Các mạng đơn lớp được xây dựng dựa trên sự kết hợp tuyến tính các biến đầu vào được chuyển đổi bởi một hàm truyền phi tuyến
Ta có thể xây dựng được các hàm tổng quát hơn bằng cách nghiên cứu những
mô hình mạng có các lớp các nút là liên tiếp, với các kết nối từ tất cả các nút thuộc một lớp tới tất cả các nút thuộc lớp kế tiếp, và không cho phép bất kỳ một loại kết nối nào khác Những mạng phân lớp như thế này có thể dễ phân tích hơn các cấu trúc tổng quát khác, và cũng dễ được mô phỏng bởi phần mềm hơn
Hình 2.9: Mô hình mạng lan truyền tiến [10]
Các nút không phải là các nút nhập và nút xuất được gọi là các nút ẩn Trong
mô hình chúng ta nghiên cứu ở đây, có d nút nhập, M nút ẩn và c nút xuất
Kết quả của nút ẩn thứ j được tính như sau:
d (1) (1)
i i
i
w
E w