Luận văn bao gồm đầy đủ chi tiết từng bước trong việc tìm hiểu và phát triển hệ thống phát hiện mặt người bằng mạng neural nhân tạo và thuật toán PCA (Phân tích thành phần chính).Trong luận văn cũng bao gồm nhiều thuật toán có mức sở hữu trí tuệ cao như Phân tích ma trận QR, Hồi Quy tuyến tính, Back Propagation,...Chúc các bạn vui vẻ
Trang 1Đặc biệt, tác giả xin chân thành cảm ơn thầy Lữ Cao Tiến, người đã bỏ ra rất nhiều thời gian, công sức và nhiệt huyết để giảng dạy cho tác giả nhiều điều, giúp đỡ cho tác giả không chỉ về kiến thức mà còn cả về tinh thần để tác giả có thể hoàn thành
Đồ án tốt nghiệp này
Ngoài ra, tác giả xin cảm ơn thầy Dương Hữu Phước “Một chữ cũng là thầy, nửa chữ cũng là thầy”, tuy chỉ gặp thầy ở tháng cuối cùng, nhưng thầy đã truyền đạt cho tác giả nhiều kiến thức bổ ích, giúp tác giả bổ sung thêm những kiến thức còn thiếu sót
Cuối cùng, tác giả xin gửi lời cảm ơn đến gia đình và bạn bè, những người luôn
ở bên cạnh giúp đỡ cho em, đặc biệt là bạn Trương Tấn Khải, tuy không chung nhóm nhưng bạn đã hỗ trợ cho tác giả rất nhiều trong việc chạy thực nghiệm và thu thập kết quả
Đồ án chỉ là bước đầu tìm hiểu một công trình nghiên cứu đã có từ lâu, vì vậy không thể tránh khỏi những sai sót, lỗi lầm do sự thiếu hụt về kiến thức căn bản cũng như nâng cao mà tác giả có Đồ án cũng giúp tác giả bắt đầu hiểu thế nào là nghiên cứu khoa học, tìm hiểu một vấn đề mới theo một khía cạnh khác, vì vậy tác giả rất mong nhận được sự cảm thông của quý Thầy Cô, và những lời đóng góp, chia sẻ của quý Thầy Cô sẽ là động lực lớn lao nhất để tác giả hoàn thành tốt đồ án này
Một lần nữa tác giả xin chân thành cảm ơn!
Trang 2LỜI NÓI ĐẦU
Ngày nay, ngành Công nghệ thông tin đang phát triển rất nhanh, điều này đã mang tới những ứng dụng thiết thực để phục vụ cho con người Tuy nhiên, đi kèm với
nó vẫn còn lại những vấn đề mang đậm tính thách thức với trí tuệ của các nhà khoa học, một trong những vấn đề đó là dò tìm phát hiện và nhận diện mặt người, một bài toán mà cho đến nay vẫn đang là một vấn đề mở và được các nhà khoa học tiếp tục nghiên cứu Với nhu cầu sinh hoạt ngày càng cao của con người, đặc biệt trong vấn đề
an ninh, bảo mật thì bài toán này ngày càng khẳng định được vai trò của nó Chính vì
lý do đó, đồ án này sẽ tiến hành tìm hiểu bài toán từ những bước đầu tiên, tức là dò tìm
và phát hiện khuôn mặt với những kỹ thuật kinh điển đã được sử dụng và đã có những công trình nghiên cứu đi trước
Hệ thống phát hiện mặt người trong đồ án này được xây dựng về cơ bản có nguyên tắc hoạt động theo mô hình mạng neural kinh điển Đó là mô hình mạng neural perceptron đa lớp truyền thẳng, sử dụng thuật toán lan truyền nguợc và phương pháp giảm gradient để học mạng, với bộ ảnh học chủ yếu là bộ khuôn mặt nhìn thẳng Ngoài
ra, để tăng cường tốc độ dạy học cho mạng, đồ án còn sử dụng phương pháp phân tích thành phần chính (Principal Component Analysis - PCA) để giảm số chiều dữ liệu của ảnh học, giúp cho đầu vào của mạng giảm bớt rất nhiều neural, qua đó giúp thời gian học của mạng giảm xuống đáng kể
Trang 3NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
TPHCM, ngày … tháng … năm … GIÁO VIÊN PHẢN BIỆN
Trang 4NHẬN XÉT CỦA HỘI ĐỒNG
Trang 5
MỤC LỤC
GIỚI THIỆU CHUNG 1
1.1 Tổng quan về bài toán phát hiện mặt người 1
1.1.1 Giới thiệu chung 1
1.1.2 Một số hướng tiếp cận để giải quyết bài toán 2
1.2 Phân biệt bài toán phát hiện mặt người và nhận diện mặt người 3
1.3 Các ứng dụng của hệ thống dò tìm, phát hiện và nhận dạng mặt người 4
1.4 Một số công trình nghiên cứu và sự lựa chọn của đồ án 6
1.5 Các thách thức trong hệ thống dò tìm, phát hiện khuôn mặt 7
1.6 Một số vấn đề liên quan trong đồ án 8
MẠNG NEURAL NHÂN TẠO 9
2.1 Tổng quan về mạng neural 9
2.1.1 Giới thiệu về mạng neural sinh học 9
2.1.2 Giới thiệu về mạng neural nhân tạo 11
2.1.3 Lịch sử phát triển của mạng neural nhân tạo: 13
2.1.4 Khái niệm về Neural 14
2.1.5 Khái niệm về perceptron 16
2.2 Mạng Perceptron truyền thẳng 17
2.2.1 Mạng Perceptron 17
2.2.2 Mạng Perceptron truyền thẳng nhiều lớp 18
2.2.3 Các phương pháp học của mạng 20
Học có giám sát 21
Học không có giám sát 22
Học tăng cường 22
Phương pháp huấn luyện cho mạng và sự lựa chọn của đồ án 22
2.2.4 Thuật toán lan truyền ngược 24
2.2.5 Ví dụ về thuật toán lan truyền ngược 34
2.2.6 Một số vấn đề khi sử dụng mạng neural 36
Trang 6Vấn đề chuẩn hóa dữ liệu đầu vào 36
Vấn đề học chưa đủ và học quá khớp của mạng: 37
Một số giải pháp cho vấn đề học quá khớp 37
Lựa chọn kích thước mạng 38
2.3 Mạng neural truyền thẳng cải tiến 38
2.3.1 Bias 38
2.3.2 Momentum 41
MỘT SỐ THUẬT TOÁN XỬ LÝ ẢNH TRONG BÀI TOÁN PHÁT HIỆN MẶT NGƯỜI 43
3.1 Tổng quan về xử lý ảnh số 43
3.1.1 Giới thiệu về xử lý ảnh số 43
3.1.2 Khái niệm điểm ảnh và biểu diễn ảnh trên máy tính 43
Điểm ảnh 43
Biểu diễn ảnh trên máy tính 44
3.2 Các thuật toán xử lý ảnh trong bài toán 45
3.2.1 Mô hình xử lý ảnh trong bài toán 45
3.2.2 Xám hóa ảnh 46
3.2.3 Cân bằng ánh sáng 48
Ý tưởng 48
Giới thiệu về hồi quy tuyến tính 48
Hồi quy tuyến tính đơn biến 51
Áp dụng hồi quy tuyến tính vào vấn đề 55
3.2.4 Cân bằng lược đồ xám 57
PHƯƠNG PHÁP PHÂN TÍCH THÀNH PHẦN CHÍNH 60
4.1 Một số kiến thức cần biết 60
4.1.1 Trị riêng, vector riêng của ma trận 60
4.1.2 Kì vọng và phương sai trong thống kê đa chiều 60
Kì vọng 61
Ma trận hiệp phương sai 61
Trang 74.2 Động cơ của phương pháp phân tích thành phần chính 62
4.3 Cơ sở toán học 63
4.4 Tính toán eigenfaces (Các vector riêng) 65
4.4.1 Phân tích ma trận QR 69
Giới thiệu 69
Các phương pháp phân tích QR 70
Thuật toán HouseHolder 71
4.4.2 Thuật toán lặp QR tìm trị riêng và vector riêng 77
Thuật toán “Pure” QR 78
Thuật toán QR thực tế 78
4.5 Chuẩn hóa eigenfaces 79
4.6 Cắt giảm các eigenfaces 81
4.7 Biểu diễn lại ảnh học trên không gian mới 82
DÒ TÌM PHÁT HIỆN MẶT NGƯỜI 84
5.1 Giới thiệu về bài toán dò tìm phát hiện mặt người 84
5.1.1 Mô hình của bài toán 84
5.1.2 Bài toán phân lớp 85
5.2 Huấn luyện mạng neural 87
5.2.1 Chuẩn bị cơ sở dữ liệu 87
5.2.2 Xây dựng không gian khuôn mặt 89
5.2.3 Cấu hình cho mạng neural 90
5.2.4 Kết quả chạy thử nghiệm 90
Thời gian 91
Hiệu suất 92
Bảng tổng kết 103
Kết luận chung 133
5.3 Cài đặt thực nghiệm 134
5.3.1 Lựa chọn cấu hình mạng và chạy chương trình 134
5.3.2 Cải thiện tốc độ quét bằng phương pháp phân vùng màu da 136
Trang 85.3.3 Một số heuristic sử dụng trong đồ án 138
Hiện tượng chồng chéo (Overlap) 138
Xử lý gián tiếp 139
5.3.4 Hướng dẫn sử dụng phần mềm 141
Giới thiệu chung 141
Dò tìm mặt người 145
Huấn luyện mạng neural 148
Xử lý ảnh 149
Phương pháp phân tích thành phần chính 151
Phân tích ma trận QR 152
5.4 Kết luận về đồ án 153
5.4.1 Ưu điểm 153
5.4.2 Khuyết điểm 154
5.4.3 Hướng phát triển 154
Trang 9DANH MỤC HÌNH VẼ
Hình 1.1 Nhận diện và phát hiện mặt người 3
Hình 2.1 Các loại tế bào thần kinh sinh học 10
Hình 2.2 Synapse 11
Hình 2.3 Mạng neural nhân tạo 13
Hình 2.4 Neural nhân tạo 15
Hình 2.5 Mạng perceptron (Single player) 17
Hình 2.6 Mạng perceptron nhiều lớp 19
Hình 2.7 Mạng neural dùng trong minh họa thuật toán lan truyền ngược 24
Hình 2.8 Các thành phần của neural nhân tạo 25
Hình 2.9 Minh họa lan truyền tiến 26
Hình 2.10 Minh họa lan truyền tiến 27
Hình 2.11 Minh họa lan truyền tiến 27
Hình 2.12 Tính giá trị lỗi ở neural đầu ra ở lớp đầu ra 30
Hình 2.13 Lan truyền lỗi ở neural lớp đầu ra đến các neural ở lớp ẩn 2 31
Hình 2.14 Lan truyền lỗi từ các neural lớp ẩn 2 đến các neural lớp ẩn 1 32
Hình 2.15 Cập nhật lại trọng số kết nối từ lớp đầu vào tới lớp ẩn 34
Hình 2.16 Cập nhật lại trọng số liên kết từ lớp ẩn 2 tới lớp đầu ra 34
Hình 2.17 Biểu đồ sự biến thiên khác biệt của hàm Sigmoid 39
Hình 2.18 Mạng neural 1 neural input, 1 neural output, 1 bias 40
Hình 2.19 Biểu đồ biến thiên của hàm Sigmoid khi có bias 40
Hình 2.20 Sự biến thiên của trọng số khi không có Momentum 42
Hình 2.21 Sự biến thiên của trọng số khi có Momentum 42
Hình 3.1 Quá trình xử lý ảnh 43
Hình 3.2 Minh họa về điểm ảnh 44
Hình 3.3 Ví dụ về không gian màu RGB 45
Hình 3.4 Các thuật toán xử lý ảnh trong đồ án 46
Hình 3.5 Ảnh bị tối bên phải 48
Trang 10Hình 3.6 Ảnh bị tối bên trái 48
Hình 3.7 Ảnh bị tối toàn diện 48
Hình 3.8 Không gian 2 chiều với 2 điểm 49
Hình 3.9 Không gian 2 chiều với 2 điểm 49
Hình 3.10 Không gian 2 chiều với nhiều điểm 49
Hình 3.11 Một số đường thẳng đi qua tất cả các điểm 50
Hình 3.12 Minh họa về đoạn sai số 51
Hình 3.13 Sơ đồ thống kê thị trường bất động sản 52
Hình 3.14 Các đường thẳng “trung bình” có thể đi qua các điểm 53
Hình 3.15 Sơ đồ về hồi quy tuyến tính 53
Hình 3.16 Thống kê về độ sáng của mỗi cột trên dòng 55
Hình 3.17 Hồi quy tuyến tính của dòng 56
Hình 3.18 Ví dụ về lược đồ xám 58
Hình 4.1 Minh họa về biến đổi chiều dữ liệu 62
Hình 4.2 Ý tưởng của PCA 63
Hình 4.3 Minh họa về PCA 65
Hình 4.4 Các mẫu ảnh trong cơ sở dữ liệu 65
Hình 4.5 Ảnh trung bình 66
Hình 4.6 Householder reflection 73
Hình 4.7 Householder 2 khả năng lựa chọn 74
Hình 4.8 Sắp xếp theo thứ tự giảm dần của các Eigenfaces 81
Hình 4.9 Biểu diễn lại khuôn mặt trong không gian mới 82
Hình 4.10 Minh họa “gần sát” việc biểu diễn khuôn mặt trên không gian mới 83
Hình 5.1 Mô hình dò tìm phát hiện mặt người bằng mạng neural của Rowley 84
Hình 5.2 Minh họa tập dữ liệu X cần phân lớp 85
Hình 5.3 Minh họa kết quả phân lớp 86
Hình 5.4 Mô hình bài toán phân lớp mặt người 86
Hình 5.5 Một số ảnh khuôn mặt 87
Hình 5.6 Canh biên cho ảnh 87
Trang 11Hình 5.7 Một số ảnh trong cơ sở dữ liệu ORL 88
Hình 5.8 Một số ảnh trong bộ dữ liệu testing 88
Hình 5.9 Mô hình dò tìm phát hiện mặt người bằng mạng neural của Rowley 89
Hình 5.10 Minh họa về “pyramid” của Rowley 134
Hình 5.11 Ảnh chứa các khuôn mặt nhỏ 135
Hình 5.12 Kích thước các cửa sổ sẽ được quét qua ảnh 135
Hình 5.13 Ảnh 1 trước khi phân vùng màu da 136
Hình 5.14 Ảnh 1 sau khi phân vùng màu da 137
Hình 5.15 Ảnh 2 trước khi phân vùng màu da 137
Hình 5.16 Ảnh 2 sau khi phân vùng màu da 138
Hình 5.17 Hiện tượng chồng chéo 138
Hình 5.18 Ảnh 3 trước khi sử dụng heuristic 139
Hình 5.19 Hình 3 sau khi sử dụng heuristic 139
Hình 5.20 Giao diện giới thiệu 141
Hình 5.21 Giao diện chính 142
Hình 5.22 Cách mở phần mềm con 142
Hình 5.23 Cách di chuyển giữa các giao diện phần mềm con 143
Hình 5.24 Các biểu tượng đại diện cho phần mềm con 143
Hình 5.25 Nút thoát chương trình 144
Hình 5.26 Cách chung để thoát phần mềm con 144
Hình 5.27 Giao diện phần mềm dò tìm phát hiện mặt người 145
Hình 5.28 Menu File 145
Hình 5.29 Giao diện thiết lập thông số quét 146
Hình 5.30 Kết quả sau khi phát hiện mặt người 147
Hình 5.31 Giao diện của phần mềm mạng neural nhân tạo 148
Hình 5.32 Giao diện phần mềm xử lý ảnh 149
Hình 5.33 Menu Process 150
Hình 5.34 Giao diện phần mềm PCA 151
Hình 5.35 Kết quả của phần mềm 152
Trang 12Hình 5.36 Giao diện phần mềm phân tích ma trận QR 152Hình 5.37 Ma trận tạo ban đầu 153Hình 5.38 Ma trận sau khi kết thúc 153
Trang 13DANH MỤC BẢNG
Bảng 1.1 Một số hướng tiếp cận 3
Bảng 2.1 Neural sinh học và neural nhân tạo 12
Bảng 2.2 Một số hàm kích hoạt 20
Bảng 3.1 Số liệu thống kê thị trường bất động sản 51
Bảng 4.1 So sánh 2 phương pháp Gram-Schmidt và Householder 71
Bảng 5.1 Thống kê hiệu suất trường hợp 1 lớp ẩn 109
Bảng 5.2 Thống kê hiệu suất trường hợp 2 lớp ẩn 132
Trang 14GIỚI THIỆU CHUNG 1.1 Tổng quan về bài toán phát hiện mặt người
1.1.1 Giới thiệu chung
Định nghĩa [1]: Phát hiện mặt người là một kỹ thuật máy tính để xác định các vị trí và kích thước của các mặt người có trong các ảnh bất kỳ Kỹ thuật này sẽ phát hiện
ra các mặt người có trong ảnh và bỏ qua các đối tượng khác như cây cối, tòa nhà, bàn ghế,…
Như định nghĩa trên, ta thấy nhiệm vụ của bài toán phát hiện mặt người là đi tìm các vùng có dạng giống với mặt người trong 1 ảnh cho trước Với bài toán này ta có thể hiểu đơn giản rằng, nếu ta có 1 bộ dữ liệu các mặt người, ta gọi là bộ dữ liệu mẫu, sau
đó ta so sánh các vùng với bộ dữ liệu mẫu để tìm sự tương quan giữa chúng Ngoài ra,
ta cũng có thể chuẩn bị sẵn một bộ luật về mặt người, sau đó áp dụng nó vào một vùng
và xem vùng này có đáp ứng được một mức độ nào đó của bộ luật này hay không và đưa ra kết luận
Dĩ nhiên trên thực tế việc so sánh một vùng bất kỳ với các ảnh trong bộ dữ liệu mặt người hoặc tìm ra một bộ luật về mặt người là không hề đơn giản Dù đã có nhiều phương pháp đã được xuất nhưng cho đến nay vẫn chưa có một phương pháp nào thực
sự trọn vẹn, mang lại hiệu quả ổn định và giải quyết hết các thách thức cũng như tình huống trong vấn đề phát hiện mặt người Một nguyên nhân cơ bản làm cho vấn đề trở nên phức tạp là vì nếu ảnh bị nhiễu hoặc có vật cản phía trước khuôn mặt sẽ gây ra tình trạng các đặc trưng như mắt, mũi, miệng,…bị che khuất, điều này có thể dẫn đến việc
so sánh vùng ảnh có khuôn mặt này với bộ dữ liệu mẫu không trùng khớp hay không đáp ứng được bộ luật mặt người, dẫn đến kết luận sai và bỏ sót khuôn mặt trên ảnh, vì vậy cho đến nay bài toán phát hiện mặt người vẫn đang là vấn đề mở và được nhà khoa học tiếp tục nghiên cứu Ngoài ra còn nhiều những nguyên nhân phức tạp khác, sẽ được đề cập trong phần 1.5
Trang 151.1.2 Một số hướng tiếp cận để giải quyết bài toán
Về hướng tiếp cận thì có rất nhiều hướng tiếp cận trước đây đã thực hiện liên quan đến vấn đề phát hiện mặt người Theo Ming - Hsuan Yang [2], có thể phân loại thành bốn hướng tiếp cận chính:
- Dựa vào tri thức (Knowledge - based)
- Dựa vào đặc trưng bất biến (Feature invariant)
- Dựa vào đối sánh mẫu (Template matching)
- Dựa vào diện mạo (Appearance - based)
Trong bảng tra cứu dưới đây, tác giả Ming - Hsuan Yang đã chia rõ các phương pháp được đề xuất ứng với từng hướng tiếp cận:
HƯỚNG TIẾP CẬN TÀI LIỆU TIÊU BIỂU
Dựa vào tri thức
Multiresolution rule–based method
Dựa vào đặc trưng bất biến
Đặc trưng khuôn mặt (Facial Features) Grouping of edges
Kết cấu khuôn mặt (Texture) Space Gray- Level Dependence matrix
(SGLD) of face pattern Màu da (Skin color) Mixture of Gaussian
Đa đặc trưng (Multiple Features) Integration of skin color, size and shape
Dựa vào đối sánh mẫu
Xác định trước khuôn mặt mẫu
(Predefined face template) Shape template
Các mẫu bị biến dạng (Deformable
Dựa vào diện mạo
Khuôn mặt riêng (Eigenface) Eigenvector decomposition and
clustering
Trang 16Dựa trên phân phối (Distribution -
Phân lớp bayes (Nạve Bayes
1.2 Phân biệt bài tốn phát hiện mặt người và nhận diện mặt người
Phát hiện mặt người (Face detection) và nhận diện mặt người (Face recognition)
là 2 bài tốn khác nhau nhưng chúng cĩ mối liên hệ chặt chẽ với nhau
Trong một hệ thống, việc phát hiện mặt người là việc đầu tiên cần phải làm để xác minh xem trong ảnh, video hay camera cĩ mặt người hay khơng, nếu cĩ thì số lượng là bao nhiêu, vị trí ở đâu? Sau đĩ những vùng đã được xác định là khuơn mặt sẽ được tiến hành nhận diện xem khuơn mặt đĩ là ai? Người này là người lạ (Khơng cĩ thơng tin của người này) hay người quen (Đã cĩ thơng tin trong cơ sở dữ liệu)
Hình 1.1 Nhận diện và phát hiện mặt người
Trang 17Có thể thấy phát hiện khuôn mặt và nhận diện khuôn mặt là hai vấn đề cơ bản và liên kết với nhau Thông thường, phát hiện khuôn mặt sẽ là giai đoạn đầu của hệ thống nhận diện khuôn mặt Sự khác nhau cơ bản giữa phát hiện khuôn mặt với nhận diện khuôn mặt đó là: Nếu như nhận diện khuôn mặt là phân biệt những khuôn mặt khác nhau trong tập danh mục các khuôn mặt, còn phát hiện khuôn mặt đó là phân lớp đuợc đâu là danh mục các khuôn mặt và đâu là danh mục các ảnh không phải khuôn mặt
1.3 Các ứng dụng của hệ thống dò tìm, phát hiện và nhận dạng mặt người
Từ những năm 1990 trở lại đây, chúng ta đã chứng kiến sự phát triển rất mạnh của các ngành công nghiệp, đặc biệc là ngành công nghiệp chế tạo điện tử Tuy nhiên hiện nay các thiết bị điện tử cao cấp như máy ảnh số, camera kĩ thuật số, và nhiều sản phẩm khác dường như chỉ phù hợp cho các phòng thí nghiệm, các công ty sản xuất kinh doanh, thương mại, tài chính, ngân hàng, Hiện nay chi phí cho các thiết bị này đang dần giảm xuống, đó là điều kiện thuận lợi để mở ra nhiều hướng nghiên cứu về thị giác máy tính, đồng thời sẽ có nhiều ứng dụng trong giao tiếp giữa người với máy tính mà trong đó hệ thống dò tìm, phát hiện và nhận diện mặt người đóng một vai trò không nhỏ, dưới đây là một số ứng dụng [3]:
Các ứng dụng chuyên biệt cho ngành hàng không
o Đảm bảo sự truy cập và tính hợp lệ trong công việc cho từng nhân viên: Mỗi nhân viên làm việc tại cảng hàng không cũng như nhân viên phi hành đoàn được cung cấp quyền truy cập để đến vị trí làm việc Làm thế nào để xác minh nhân viên này vào đúng khu vực làm việc hay không?
o Làm sao để đảm bảo trong số những hành khách không có sự trà trộn của một số kẻ khủng bố/tội phạm quốc gia/quốc tế?
Bảo vệ trẻ tác giả ở nhà trẻ từ bọn bắt cóc
o Quy định rằng chỉ có những nhân viên của nhà trẻ mới được phép dẫn trẻ tác giả ra ngoài và trao tận tay cho bố mẹ đón về Nhưng trong xã hội cũng có một số trường hợp giả danh nhân viên để bắt
Trang 18cóc trẻ tác giả với mục đích xấu Làm thế nào để ngăn chặn hành vi xấu này?
Nhận diện mặt người được sử dụng với thẻ truy cập
o Ở các nước phát triển, hầu như mọi người dân đều dùng thẻ tín dụng để mua bán, rút tiền, trao đổi hàng hóa Điều này rất nguy hiểm khi thẻ truy cập này bị người khác lấy được và biết được mật khẩu của sở hữu thẻ này? Làm cách nào có thể bảo đảm an toàn nhất?
Có thể dùng song song 2 mật khẩu: có nghĩa là sử dụng khuôn mặt như là một mật khẩu thứ hai để truy cập vào hệ thống cùng với thông tin từ card truy cập để rút được tiền:
Đưa thẻ vào hệ thống
Nhập mật khẩu số
Nếu đúng thì đưa khuôn mặt vào để nhận diện
Xác minh người này có phải là chủ sở hữu của thẻ hay không?
Nếu khớp thì hệ thống cho rút tiền
Nếu không thì hệ thống không cho rút tiền
Kinh doanh thương mại điện tử
o Với sự tiến bộ của khoa học công nghệ, nhiều hình thức kinh doanh thương mại xuất hiện, đặc biệt là thương mại điện tử Việc buôn bán và trao đổi giữa hai bên đối tác không cần diễn ra trực tiếp (Mặt đối mặt), mà chỉ cần thông qua mạng với hình ảnh của người đại diện Tuy nhiên bên cạnh đó sẽ có nhiều mặt tiêu cực trên hình thức kinh doanh này, đó là các vụ lừa đảo, giả mạo, giả danh… Làm sao
để biết được đối tác của mình là thật hay giả?
Ngăn chặn việc xuất/nhập cảnh bất hợp pháp
Trang 19o Một số người không được xuất/nhập cảnh vào một quốc gia nào đó, song họ cố tình khai gian giấy tờ để xuất/nhập cảnh bất hợp pháp Làm sao để ngăn chặn được sự gian lận này?
Hệ thống giám sát công nhân và tự chấm công
o Hiện nay trong các khu công nghiệp hay những công ty sản xuất lớn
có hàng ngàn công nhân vào ra mỗi ngày nên việc giám sát kẻ gian vào công ty cũng như công việc chấm công rất phức tạp Vậy làm thế nào để nhận ra từng nhân viên của công ty?
Tóm lại, nhu cầu sử dụng các hệ thống xử lý dùng trí tuệ nhân tạo ngày càng phát triển, mà trong đó hệ thống dò tìm, phát hiện và nhận diện khuôn mặt là một nhu cầu thiết yếu hiện nay và trong tương lai Đặc biệt vụ khủng bố ngày 11/9/2001 tại Mỹ đã đánh dấu một bước ngoặt mới trong xu hướng nghiên cứu và giá trị thương mại của các
hệ thống đảm bảo an ninh cũng như sự an toàn cho con người
1.4 Một số công trình nghiên cứu và sự lựa chọn của đồ án
Cho đến nay đã có rất nhiều những công trình nghiên cứu khoa học về bài toán dò tìm, phát hiện và nhận diện mặt người được công bố, các công trình nghiên cứu hầu như đều dựa vào các hướng tiếp cận đã được đề xuất trong phần 1.1.2, dưới đây là một
số công trình nghiên cứu [3]:
Wenyi Zhao, Arvindh Krishnaswamy, Rama Chellappa, Danie L.Swets, John Weng (1998) sử dụng phương pháp phân tích thành phần chính (Principal Component Analysis) kết hợp phân tích độc lập tuyến tính (Linear Discriminant Analysis)
John Daugnman (1998) đưa ra phương pháp dùng đặc trưng về tròng của mắt để phân biệt cặp trai/gái song sinh
Antonio J.Colmenarez và Thomas S.Huang (1998) sử dụng kỹ thuật học thị giác và phù hợp mẫu 2–D
Kazunori Okada, Johannes Steffens, Thomas Maurer, Hai Hong, Egor Elagin, Hartmut Neven, and Christoph (1998) nhận dạng khuôn mặt dựa vào sóng Gabor và phương pháp phù hợp đồ thị bó
Trang 20 Baback Moghaddam và Alex Pentland (1998) đưa ra phương pháp phù hợp thị giác trực tiếp từ các ảnh cần sửdụng cho mục đích nhận dạng khuôn mặt
và dùng độ đo xác suất để tính độ tương tự
Rowley, Baluja, and Kanade (1998) sử dụng mạng neural nhân tạo để phân lớp khuôn mặt và không phải khuôn mặt
Guodong Guo, Stan Z.Li, Kap Luk Chan (2001) dùng phương pháp SVM để nhận diện khuôn mặt
Ngoài ra cũng còn rất nhiều những công trình nghiên cứu khác Trong đồ án này, tác giả sử dụng phương pháp phân tích thành phần chính (PCA) kết hợp với mạng neural nhân tạo (Artificial Neural Network) để giải quyết bài toán Mạng neural nhân tạo có thể miêu tả và phát hiện khuôn mặt trong nhiều tình huống khác nhau kết hợp cùng phương pháp phân tích thành phần chính với “Eigenfaces” mang hi vọng sẽ đạt được hiệu năng tốt hơn so với các phương pháp độc lập khác
1.5 Các thách thức trong hệ thống dò tìm, phát hiện khuôn mặt
Việc dò tìm phát hiện đối tượng là bài toán xác định cửa sổ con của ảnh có thuộc
về tập các ảnh của đối tượng quan tâm hay không Do đó, đường biên của tập ảnh đối tượng phức tạp sẽ làm tăng độ khó của bài toán và có thể tăng số lỗi nhận dạng, giả sử ngoài việc phát hiện các khuôn mặt thẳng ta muốn phát hiện các khuôn mặt nghiêng chẳng hạn Như vậy, việc thêm các khuôn mặt nghiêng vào tập các ảnh ta muốn phát hiện làm tăng độ biến thiên của tập, và có thể làm tăng độ phức tạp của đường biên quyết định của tập ảnh Theo như Ming–Hsuan Yang [2], những vấn đề dưới đây là thách thức của bài toán:
Hướng nhìn: Kết quả thu nhận được từ các ảnh là khác nhau, do vị trí đặt
của Camera hoặc máy ảnh (Đối diện, nghiêng, lộn ngược, hoặc ảnh hồ sơ)
Sự thay đổi của các đặc trưng khuôn mặt: Sự có mặt của râu, ria mép, và
kính có thể làm thay đổi hình dạng, màu sắc và kích thước của khuôn mặt
Biểu hiện của khuôn mặt: Cảm xúc cười, khóc, chậm môi, nhe răng, nhắm
mắt
Trang 21 Định hướng khuôn mặt: Hình ảnh thẳng khác nhau cho góc quay khác
nhau về trục quang học của máy ảnh hay camera
Điều kiện môi trường: Các yếu tố như ánh sáng (Quang phổ, phân phối
nguồn sáng và cường độ sáng) và đặc điểm của thiết bị thu nhận ảnh sẽ ảnh hưởng đến sự biểu thị thông tin của khuôn mặt
1.6 Một số vấn đề liên quan trong đồ án
Trong vấn đề dò tìm, phát hiện mặt người có một số vấn đề sẽ gây ra nhầm lẫn nếu không được tìm hiểu một cách rõ ràng, những vấn đề đó bao gồm [4]:
Định vị khuôn mặt hay xác định vị trí khuôn mặt: Đây là vấn đề rất
gần với vấn đề phát hiện mặt người Nếu như phát hiện mặt người trong ảnh là phải trả lời các câu hỏi có tồn tại khuôn mặt trong ảnh hay không ? Nếu tồn tại thì tồn tại bao nhiêu khuôn mặt? Vị trí của khuôn mặt ở đâu ? Thì vấn đề định vị mặt người chỉ trả lời cho câu hỏi vị trí mặt người ở đâu trong một ảnh đã biết trước là có một mặt người Như vậy có thể thấy, định vị khuôn mặt là một phần công việc của phát hiện mặt người
Phát hiện các đặc trưng của khuôn mặt: Đây là vấn đề cũng rất gần với
vấn đề định vị khuôn mặt Nó cũng giả thiết rằng chỉ có một khuôn mặt trong ảnh và việc phát hiện đặc trưng khuôn mặt là tìm ra vị trí của các đặc trưng như đôi mắt, mũi, miệng, môi, tai…
Bám sát khuôn mặt: Mục đích của vấn đề này là ước lượng liên tục sự
thay đổi về vị trí và huớng của khuôn mặt trong một chuỗi ảnh thời gian thực
Nhận diện trạng thái khuôn mặt: Mục tiêu của vấn đề này là nhận diện
trạng thái của khuôn mặt con người (Hạnh phúc, tức giận, đau khổ…) Đây là vấn đề rất khó và thú vị vì trạng thái khuôn mặt của từng người có thể là rất khác nhau trong cùng một trạng thái tâm lý Vấn đề này trong
hệ thống dò tìm phát hiện mặt người cũng cần được lưu ý, tuy nhiên nó là một gánh nặng thật sự trong hệ thống nhận diện mặt người
Trang 22MẠNG NEURAL NHÂN TẠO 2.1 Tổng quan về mạng neural
2.1.1 Giới thiệu về mạng neural sinh học
Hệ thống thần kinh (Neural network) là một mạng lưới các tế bào chuyên biệt cho việc tiếp nhận, hội nhập và truyền tải thông tin Bao gồm não, tủy sống (Hệ thống thần kinh trung ương) và thần kinh cảm giác (Sensory neural) hay thần kinh cơ (Motor neural) vào ra hệ thống thần kinh trung ương hoặc hoàn toàn bên ngoài thần kinh trung ương (Hệ thần kinh ngoại vi) Đơn vị cơ bản của hệ thần kinh là các tế bào thần kinh (Neural) [5]
Qua quá trình nghiên cứu về bộ não con người, người ta thấy rằng: bộ não con người bao gồm khoảng 1011 neural tham gia vào khoảng 1015 kết nối trên các đường truyền Các neural 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 tiếp nhận, xử lý và truyền các tín hiệu điện hóa trên các đường mòn neural, các con đường này tạo nên hệ thống giao tiếp của bộ não
Có 3 loại neural (Tế bào thần kinh):
- Sensory Neural (Thần kinh cảm giác)
- Motor Neural (Thần kinh cơ)
- Interneural (Thần kinh liên kết)
Trang 23Hình 2.1 Các loại tế bào thần kinh sinh học
Tế bào thần kinh sinh học đều có chung các phần cơ bản:
- Nhân tế bào (Nucleus)
- Các tua gai (Dendrites)
- Nhân tế bào (Nucleus)
- Sợi trục (Axon)
Ngoài ra, giữa các nhánh vào và phần thân tế bào, còn có một yếu tố quan trọng khác, đó là khớp thần kinh (Synapse):
Trang 24Hình 2.2 Synapse
Tế bào thần kinh tự nhiên nhận được tín hiệu thông qua các khớp thần kinh nằm trên tua gai hoặc màng của tế bào thần kinh Khi các tín hiệu nhận được đủ mạnh (Vượt qua một ngưỡng nhất định), các tế bào thần kinh được kích hoạt và phát ra một tín hiệu đến sợi trục Tín hiệu này có thể được gửi đến khớp thần kinh khác, và có thể kích hoạt tế bào thần kinh khác [5]
Như vậy, khớp thần kinh có chức năng tiếp nhận tín hiệu từ các tua gai và gửi đến nhân tế bào Khớp thần kinh chính là yếu tố quyết định sự truyền tải tín hiệu nhanh hay chậm, tức là sẽ quyết định một người nào đó suy nghĩ nhanh hay chậm nhờ vào tốc độ
và khả năng truyền tải tín hiệu của nó
2.1.2 Giới thiệu về mạng neural nhân tạo
Mạng neural nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng neural,
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ệ neural sinh học, lấy cảm hứng từ các tế bào thần kinh tự nhiên [6] Nó được tạo lên từ một số lượng lớn các phần tử (Gọi là nút hay neural) kết nối với nhau thông qua các liên kết
Trang 25(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 neural 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, việc học của mạng chính là quá trình hiệu chỉnh trọng số liên kết giữa các
neural
Bảng 2.1 Neural sinh học và neural nhân tạo Thông thường, một mạng neural bao gồm một hoặc nhiều nhóm các neural được kết nối vật lý với nhau hoặc có liên quan với nhau về chức năng Một neural đơn có thể được nối với nhiều neural khác và tổng số neural và kết nối trong một mạng có thể là một giá trị cực kỳ lớn Các kết nối thường nối từ các sợi trục tới các tế bào tua gai thần kinh, tuy có thể có các vi mạch và các kết nối khác [7]
Trang 26Hình 2.3 Mạng neural nhân tạo Ngoài tín hiệu điện, còn có các dạng tín hiệu khác phát sinh từ việc khuếch tán các chất dẫn truyền xung động thần kinh (Neurotransmitter), chúng có ảnh hưởng đối với tín hiệu điện Do vậy, cũng như các mạng sinh học khác, mạng neural nhân tạo vô cùng phức tạp, trong khi hiện nay, dù chưa đạt được một mô tả chi tiết nào về hệ thần kinh, người ta vẫn ngày càng hiểu rõ hơn về các cơ chế cơ bản [8]
Tóm lại, neural nhân tạo 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 (Output) Tín hiệu đầu ra này sau đó có thể được truyền đi làm tín hiệu đầu vào cho các neural khác Dựa trên những hiểu biết
về neural sinh học, con người xây dựng neural nhân tạo với hi vọng tạo nên một mô hình có sức mạnh như một bộ não
2.1.3 Lịch sử phát triển của mạng neural nhân tạo:
Sự kiện đầu tiên đánh dấu sự ra đời của mạng neural nhân tạo diễn ra vào năm
1943 khi nhà thần kinh học Warren McCulloch và nhà toán học Walter Pitts viết bài báo mô tả cách thức các neural hoạt động Họ cũng đã tiến hành xây dựng một mạng neural đơn giản bằng các mạch điện Các neural của họ được xem như là các thiết bị
Trang 27nhị phân với ngưỡng cố định Kết quả của các mô hình này là các hàm logic đơn giản [9]
Những tiến bộ của máy tính đầu những năm 1950 giúp cho việc mô hình hóa các nguyên lý của những lý thuyết liên quan tới cách thức con người suy nghĩ đã trở thành hiện thực Sau nhiều năm làm việc tại các phòng thí nghiệm nghiên cứu của IBM đã có những nỗ lực đầu tiên để mô phỏng một mạng neural
Năm 1956 dự án Dartmouth nghiên cứu về trí tuệ nhân tạo (Artificial Intelligence) đã mở ra thời kỳ phát triển mới cả trong lĩnh vực trí tuệ nhân tạo lẫn mạng neural [7]
Từ những năm sau đó tới năm 1985 đã xuất hiện thêm nhiều phát minh ra các mô hình mạng neural nhân tạo khác nhau
Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức các cuộc họp hàng năm về mạng neural ứng dụng trong tin học (Neural Networks for Computing)
Năm 1987, hội thảo quốc tế đầu tiên về mạng neural của Viện các kỹ sư điện và điện tử IEEE (Institute of Electrical and Electronic Engineer) đã thu hút hơn 1800 người tham gia
Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên cứu ứng dụng mạng neural để giải quyết các bài toán thực tế được diễn ra ở khắp mọi nơi Các ứng dụng mạng neural ra đời ngày càng nhiều và ngày càng hoàn thiện hơn Điển hình
là các ứng dụng: xử lý ngôn ngữ, nhận dạng kí tự, nhận dạng tiếng nói (Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu (Signal Processing), lọc dữ liệu (Data Filtering),…
2.1.4 Khái niệm về Neural
Neural 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 (Input) đến từ một synapse kèm theo một trọng số (Weight) Đặc trưng của neural là một 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 [9]
Một neural nhân tạo là một đơn vị tính toán hay đơn vị xử lý thông tin cơ sở cho hoạt động của một mạng neural
Trang 28Hình 2.4 Neural nhân tạo Các thành phần cơ bản của một neural nhân tạo bao gồm:
- Tập các đầu vào (Input - x1, x2,…, xn): Là các tín hiệu vào (Input signal) của
neural, các tín hiệu này thường được đưa vào dưới dạng một vector N chiều
- Tập các trọng số liên kết (Weight - w1, w2,…, wn): Mỗi liên kết được thể hiện bởi một trọng số (Gọi là trọng số liên kết - Synaptic weight) Trọng số liên kết giữa tín hiệu vào thứ i với neural thường được kí hiệu là wi Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng
- Bộ tổng (Sum - s): Thường dùng để tính tổng của tích các đầu vào với trọng
số liên kết của nó
- Hàm kích hoạt (Activation function - f): Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi neural Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng đã cho
- Đầu ra (Output - O): Là tín hiệu đầu ra của một neural, với mỗi neural sẽ có tối đa là một đầu ra Xét về mặt toán học, cấu trúc của một neural i, được mô
tả bằng biểu thức:
Output = f(∑n−1(xi × wi)
i = 0 )
Trang 292.1.5 Khái niệm về perceptron
Mạng perceptoron (Multilayer Perceptron - MLP) thuộc kiến trúc truyền thẳng có hai loại đó là perceptron một lớp và perceptron nhiều lớp
Mạng perceptron do F.Rosenblatt đề xuất năm 1957 [10] là mạng truyền thẳng chỉ một lớp vào và một lớp ra không có lớp ẩn Trên mỗi lớp này có thể có một hoặc nhiều neural Mô hình mạng neural của Rosenblatt sử dụng hàm ngưỡng đóng vai trò là hàm chuyển Do đó, tổng của các tín hiệu vào lớn hơn giá trị ngưỡng thì giá trị đầu ra của neural sẽ là 1, còn trái lại sẽ là 0
Ngay từ khi mạng perceptron được đề xuất nó đã được sử dụng để giải quyết bài toán phân lớp, bài toán dự báo, điều khiển và tối ưu hóa Việc huấn luyện mạng dựa trên phương pháp học có giám sát
Mạng perceptron nhiều lớp còn được gọi là mạng truyền thẳng nhiều lớp là sự mở rộng của mô hình mạng perceptron với sự bổ sung thêm những lớp ẩn và các neural trong các lớp ẩn này có hàm chuyển (Hàm kích hoạt) dạng phi tuyến Mạng neural đa lớp truyền thẳng có một lớp ẩn là mạng neural nhân tạo được sử dụng phổ biến nhất, nó
có thể xấp xỉ các hàm liên tục được định nghĩa trên một miền có giới hạn cũng như những hàm là tập hợp hữu hạn của các điểm rời rạc
Trang 302.2 Mạng Perceptron truyền thẳng
2.2.1 Mạng Perceptron
Như đã giới thiệu, Perceptron là một mạng chỉ có một lớp neural (Lớp này có thể
có một hay nhiều neuron), do Frank Rosenblatt đề nghị năm 1957
Lớp đầu vào có chức năng thu nhận tín hiệu, như vậy mạng chỉ có 1 lớp là đầu ra
Hình 2.5 Mạng perceptron (Single player) Mạng neural truyền thẳng một lớp là loại mạng chỉ có lớp neural đầu vào và một lớp neural đầu ra (Thực chất lớp neural đầu vào không có vai trò xử lý, do đó ta nói mạng chỉ có một lớp) Loại mạng này còn được gọi là mạng perceptron một lớp Mỗi neural đầu ra có thể nhận tín hiệu từ các đầu vào x1, x2,…, xm để tạo ra tín hiệu đầu ra tương ứng Mô hình mạng neural của Rosenblatt sử dụng hàm ngưỡng đóng vai trò là hàm chuyển Do đó, tổng của các tín hiệu vào lớn hơn giá trị ngưỡng thì giá trị đầu ra của neural sẽ là 1, còn trái lại sẽ là 0
Từ khi mạng Perceptron một lớp được đề xuất nó đã được sử dụng để giải quyết bài toán phân lớp Một đối tượng sẽ được neural i phân vào lớp A nếu tổng thông tin đầu vào: ∑wijxj > θ i(Ngưỡng) Trong đó wij là trọng số liên kết từ neural j tới neural
i, xj là đầu vào từ neural j, và θ là ngưỡng của neural i Trong trường hợp trái lại đối tượng sẽ được phân vào lớp B
Trang 312.2.2 Mạng Perceptron truyền thẳng nhiều lớp
Trong mạng neural truyền thẳng nhiều lớp, lớp nhận tín hiệu vào của mạng gọi là lớp vào (Input layer), nó thường không thực hiện việc chuyển đổi thông tin mà chỉ làm chức năng nhận tín hiệu Tín hiệu ra của mạng được đưa ra từ lớp ra (Output layer) Các lớp ở giữa lớp vào và lớp ra gọi là các lớp ẩn Trong mạng truyền thẳng (Feed–forward network) không có nút nào mà đầu ra của nó là đầu vào của một nút khác trên cùng lớp với nó hoặc lớp trước [9]
Trang 32Hình 2.6 Mạng perceptron nhiều lớp
Ở đây, chúng ta xác định ba thành phần cơ bản của một mô hình neural:
Một tập hợp các trọng số hay các kết nối, mà mỗi một trong chúng được đặc trưng bởi một trọng số của riêng nó Tức là một tín hiệu tại đầu vào của trọng số j nối với neural k sẽ được nhân với trọng số wkj Ở đó k là chỉ số của neural tại đầu ra của trọng số đang xét, còn j chỉ điểm đầu vào của trọng số Các trọng số của một neural nhân tạo có thể nhận cả các giá trị âm và các giá trị dương
Một bộ cộng để tính tổng các tín hiệu đầu vào của neural, đã được nhân với các trọng số tương ứng; phép toán được mô tả ở đây tạo nên một bộ tổ hợp tuyến tính Một hàm kích hoạt (Activation function) để giới hạn biên độ đầu ra của neural Hàm kích hoạt cũng được xem xét như là một hàm nén, nó 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 Có nhiều loại hàm kích hoạt:
Symmetrical Hard Limit
+1 nếu x ≥ 0
Trang 33Có thể mô tả kiến trúc của mạng neural perceptoron nhiều lớp như sau:
- Đầu vào là các vector (x1, x2, , xn) trong không gian n chiều, đầu ra là các vector (y1, y2, , ym) trong không gian m chiều Đối với các bài toán phân loại,
n chính là kích thước của mẫu đầu vào, m chính là số lớp cần phân loại
- Mỗi neural thuộc tầng sau liên kết với tất cả các neural thuộc tầng liền trước
nó
- Đầu ra của neural tầng trước là đầu vào của neural thuộc tầng liền sau nó Hoạt động của mạng như sau: Tại tầng đầu vào các neural nhận tín hiệu vào xử lý (Tính tổng trọng số, gửi tới hàm kích hoạt) rồi cho ra kết quả (Là kết quả của hàm kích hoạt), kết quả này sẽ được truyền tới các neural thuộc tầng ẩn thứ nhất; các neural tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ 2, thứ 3,…, quá trình tiếp tục cho đến khi các neural thuộc tầng ra cho kết quả
2.2.3 Các phương pháp học của mạng
Định nghĩa [11]: Học trong mạng neural là quá trình thay đổi giá trị của trọng số
để mạng có thể đưa ra được kết quả mong muốn tối ưu
Trang 34Sự khác nhau giữa giá trị thật của mẫu và kết quả dự đoán của mạng gọi là lỗi Quá trình học sẽ tìm các trọng số để lỗi nhỏ nhất
Một mạng neural được huấ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 tác giả nhỏ các chữ cái Ta đưa ra một chữ “a” và bảo với tác giả đó 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 tác giả đó đây là chữ gì?
Vớ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) ∈ [IRN x RK]}, trong đó: x = (x1, x2, , xN) là vector đặc trưng N chiều của mẫu huấn luyện và t = (t1, t2, , tK) là vector mục tiêu K chiều tương ứng, nhiệm vụ của thuật toán là phải thiết lập được một cách tính toán trên mạng như thế nào đó để sao cho với mỗi vector đặc trưng đầu vào thì sai số giữa giá trị đầu ra thực sự của mạng và giá trị mục tiêu tương ứng là nhỏ nhất Chẳng hạn mạng có thể học để xấp xỉ một hàm t = f(x) biểu diễn mối quan hệ trên tập các mẫu huấn luyện (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ó
Trang 35Như 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
Phương pháp huấn luyện cho mạng và sự lựa chọn của đồ án
Đồ án sẽ chọn phương pháp học có giám sát, bởi vì học có giám sát có thể được xem như việc xấp xỉ một ánh xạ: X→ Y, trong đó X là tập các vấn đề và Y là tập các lời giải tương ứng cho vấn đề đó Các mẫu (x, y) với x = (x1, x2, , xn) ∈ X, y = (y1,
y1, , ym) ∈ Y được cho trước Rõ ràng hơn, ở đây ta có 1 tập các ảnh huấn luyện, và tập các đầu ra mong muốn Ta muốn tìm 1 ánh xạ f nào đó sao cho ứng với mỗi mẫu x trong tập huấn luyện ta cho ra đúng đầu y của tập đầu ra mong muốn
Học có giám sát trong các mạng neural thường được thực hiện theo các bước sau:
B1: Xây dựng cấu trúc thích hợp cho mạng neural như n neural đầu vào, m neural đầu ra, và khởi tạo các trọng số liên kết của mạng
B2: Đưa một vector x trong tập mẫu huấn luyện X vào mạng
B3: Tính vector đầu ra o của mạng
Trang 36 B4: So sánh vector đầu ra mong muốn y (Là kết quả được cho trong tập huấn luyện) với vector đầu ra o do mạng tạo ra; nếu có thể thì đánh giá lỗi
B5: Hiệu chỉnh các trọng số liên kết theo một cách nào đó sao cho ở lần tiếp theo khi đưa vector x vào mạng, vector đầu ra o sẽ gần với y hơn, tức là sự sai lệch hay lỗi so với lần học trước đó đã giảm
B6: Nếu cần, lặp lại các bước từ 2 đến 5 cho tới khi mạng đạt tới trạng thái hội tụ (trạng thái mạng ra đúng chính xác giá trị mong muốn) Việc đánh giá lỗi có thể thực hiện theo nhiều cách, cách dùng nhiều nhất là sử dụng lỗi tức thời, và nhiệm vụ của mỗi lần lặp là làm nhỏ dần lỗi này đến cực tiểu, công thức tính lỗi dựa theo công thức bình phương nhỏ nhất:
∑num_outputi = 0 (ti − yi)2(2.2) Trong đó:
E: Giá trị lỗi ở đầu ra t: Giá trị đầu ra mong muốn y: Giá trị đầu ra thực
Có hai loại lỗi trong đánh giá một mạng neural [11] Thứ nhất, gọi là lỗi rõ ràng (Apparent error), đánh giá khả năng xấp xỉ các mẫu huấn luyện của một mạng đã được huấn luyện Thứ hai, gọi là lỗi kiểm tra (Test error), đánh giá khả năng tổng quá hóa của một mạng đã được huấn luyện, tức khả năng phản ứng với các vector đầu vào mới Để đánh giá lỗi kiểm tra chúng ta phải biết đầu ra mong muốn cho các mẫu kiểm tra
Thuật toán tổng quát ở trên cho học có giám sát trong các mạng neural có nhiều cài đặt khác nhau, sự khác nhau chủ yếu là cách các trọng số liên kết được thay đổi trong suốt thời gian học như đã nói ở bước 5, trong thực tế đã có nhiều thuật toán giải quyết vấn đề này được đề xuất [9]:
- Thuật toán lan truyền ngược (Back propagation)
- Liên hợp giảm độ dốc (ConJugate gradient descent)
- Lan truyền nhanh (Quick propagation)
Trang 37- Delta–Bar–Delta
2.2.4 Thuật toán lan truyền ngược
Cũng như những thuật toán huấn luyện mạng được nêu ở trên, thuật toán này cũng được áp dụng vào mạng kết hợp với phương pháp gradient descent để cập nhật lại trong số theo khuynh hướng lỗi đầu ra giảm dần về cực tiểu Tuy nhiên thuật toán này
có thể nói là thuật toán gần gũi nhất với những kiến thức thông thường, đó là dựa vào đạo hàm để đưa lỗi về giá trị cực tiểu, thuật toán này cũng được chọn để cài đặt trong
đồ án
Giải thuật được chia làm 2 giai đoạn:
- Lan truyền tiến (Tính đầu ra của các neural)
- Lan truyền ngược (Truyền tín hiệu lỗi về các neural)
Để minh họa giải thuật, ở đây tác giả sử dụng một mạng neural gồm 4 lớp: 1 lớp đầu vào gồm 2 neural, lớp ẩn thứ nhất có 3 neural, lớp ẩn thứ hai có 2 neural và lớp đầu
Trang 38Hình 2.8 Các thành phần của neural nhân tạo
Để dạy cho mạng chúng ta cần phải có các mẫu Mỗi mẫu bao gồm hai thành phần đó là:
- Đầu vào x1, x2
- Đầu ra z là kết quả mong muốn
Bước 1: Lan truyền tiến
Chúng ta sẽ bắt đầu với hai đầu vào x1, x2 Từ đó chúng ta có thể tính được đầu
ra của mỗi neural trong mạng dựa vào công thức 2.1 Hình dưới minh họa cho sự lan truyền các giá trị trong mạng
Trang 39Hình 2.9 Minh họa lan truyền tiến
Sự lan truyền của các tín hiệu từ lớp đầu vào đến lớp ẩn Kí hiệu wmn biểu diễn trọng số của kết nối giữa đầu ra của neural m và là đầu vào của neural n
Trang 40Hình 2.10 Minh họa lan truyền tiến
Sự lan truyền của tín hiệu đến lớp đầu ra:
Hình 2.11 Minh họa lan truyền tiến Bước tiếp theo của giải thuật là so sánh giá trị đầu ra của mạng là y với giá trị z là kết quả mong muốn Hiệu giữa chúng ta gọi là tín hiệu lỗi của lớp đầu ra