1. Trang chủ
  2. » Luận Văn - Báo Cáo

Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)

170 964 6
Tài liệu đã được kiểm tra trùng lặp

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 170
Dung lượng 6,01 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 2

LỜ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 3

NHẬ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 4

NHẬ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 6

Vấ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 7

4.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 8

5.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 9

DANH 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 10

Hì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 11

Hì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 12

Hì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 13

DANH 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 14

GIỚ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 15

1.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 16

Dự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 17

Có 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 18

có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 19

o 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 22

MẠ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 23

Hì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 24

Hì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 26

Hì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 27

nhị 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 28

Hì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 29

2.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 30

2.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 31

2.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 32

Hì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 33

Có 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

- Đầ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 34

Sự 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 35

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

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 38

Hì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 39

Hì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 40

Hì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

Ngày đăng: 19/11/2014, 00:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Face Detection. http://en.wikipedia.org/wiki/Face_detection, ngày truy cập: 15/5/2014 Link
7. Mạng nơ–ron. http://vi.wikipedia.org/wiki/M%E1%BA%A1ng_n%C6%A1–ron, ngày truy cập: 15/5/2014.8. Artificial Neural Network.http://en.wikipedia.org/wiki/Biological_neural_network, ngày truy cập:7/7/2014 Link
10. Perceptron. http://en.wikipedia.org/wiki/Perceptron, ngày truy cập: 16/5/2014 Link
12. Backpropagation. http://en.wikipedia.org/wiki/Backpropagation, ngày truy cập: 17/5/2014 Link
15. Pixel. http://vi.wikipedia.org/wiki/Pixel, ngày truy cập: 20/5/2014 Link
17. Cao Hào Thi, không rõ năm, Tương quan và hồi quy tuyến tính. Không rõ địa danh.18. Bình phương tối thiểu.http://vi.wikipedia.org/wiki/B%C3%ACnh_ph%C6%B0%C6%A1ng_t%E1%BB%91i_thi%E1%BB%83u, ngày truy cập: 20/5/2014 Link
22. Phạm Hoài Vũ, Phân tích ma trận: QR decomposition. http://phvu.net/2011/03/19/qr–decomposition/, ngày truy cập: 22/5/2014 Link
23. Phạm Hoài Vũ, Ma trận chiếu trong ĐSTT. http://phvu.net/2011/04/26/ma–tr%E1%BA%ADn–chi%E1%BA%BFu–trong–dstt/, ngày truy cập:22/5/2014 Link
24. Phạm Hoài Vũ, Thuật toán QR tìm trị riêng. http://phvu.net/2011/04/29/thu%E1%BA%ADt–toan–qr–tim–tr%E1%BB%8B–rieng/, ngày truy cập: 22/5/2014 Link
25. Phạm Hoài Vũ, Chuẩn của vector và ma trận. http://phvu.net/2010/12/07/matrix–norm/, ngày truy cập: 22/5/2014 Link
26. The Database of Faces. http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html, ngày truy cập: 22/5/2014 Link
27. Haar–like features, http://en.wikipedia.org/wiki/Haar–like_features, ngày truy cập: 22/5/2014 Link
28. Dot product, http://mathinsight.org/dot_product_matrix_notation, ngày truy cập: 12/6/2014 Link
29. Covariance matrix, http://en.wikipedia.org/wiki/Covariance_matrix, ngày truy cập 12/6/2014 Link
2. Minh–Hsuan Yang, năm 2002, Detecting Faces in Images: A survey Khác
3. Trần Phước Long, Nguyễn Văn Lượng, năm 2003, Nhận dạng mặt người dựa vào thông tin xuất hiện trên ảnh. Bậc tốt nghiệp: Cử nhân. Trường Đại học Khoa Học Tự Nhiên TPHCM Khác
4. Không rõ họ tên, ngày viết. Hệ thống phát hiện khuôn mặt dựa trên mạng neural và phương pháp vân vùng màu da. Bậc tốt nghiệp: Cử nhân. Trường Đại Học Bách Khoa Hà Nội Khác
5. O.S. Eluyode and Dipo Theophilus Akomolafe, năm 2002, Comparative study of biological and artificial neural networks Khác
6. Carlos Gershenson, không rõ năm, ArtificialNeural Networksfor Beginners Khác
9. Hoàng Minh Tuấn, không rõ năm, Mạng neural nhân tạo và giải thuật lan truyền ngược. Đại học Thái Nguyên Khác

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Nhận diện và phát hiện mặt người - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Hình 1.1. Nhận diện và phát hiện mặt người (Trang 16)
Bảng 1.1. Một số hướng tiếp cận - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Bảng 1.1. Một số hướng tiếp cận (Trang 16)
Bảng 2.2. Một số hàm kích hoạt  Có thể mô tả kiến trúc của mạng neural perceptoron nhiều lớp như sau: - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Bảng 2.2. Một số hàm kích hoạt Có thể mô tả kiến trúc của mạng neural perceptoron nhiều lớp như sau: (Trang 33)
Hình 2.7. Mạng neural dùng trong minh họa thuật toán lan truyền ngược  Mỗi neural gồm hai thành phần chính: - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Hình 2.7. Mạng neural dùng trong minh họa thuật toán lan truyền ngược Mỗi neural gồm hai thành phần chính: (Trang 37)
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 - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
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 (Trang 47)
Hình 3.11. Một số đường thẳng đi qua tất cả các điểm  Hình  3.11  nói  lên  rằng,  ta  có  thể  vẽ  được  vô  số  các  đường  thẳng  gọi  là  “trung  bình”  đi  qua  các  điểm - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Hình 3.11. Một số đường thẳng đi qua tất cả các điểm Hình 3.11 nói lên rằng, ta có thể vẽ được vô số các đường thẳng gọi là “trung bình” đi qua các điểm (Trang 63)
Bảng 3.1. Số liệu thống kê thị trường bất động sản  Nhà có giá 160 ngàn đô la bán được 126 căn - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Bảng 3.1. Số liệu thống kê thị trường bất động sản Nhà có giá 160 ngàn đô la bán được 126 căn (Trang 64)
Hình dưới đây thể hiện đoạn sai số đó: - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Hình d ưới đây thể hiện đoạn sai số đó: (Trang 66)
Hình 3.15. Sơ đồ về hồi quy tuyến tính - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Hình 3.15. Sơ đồ về hồi quy tuyến tính (Trang 66)
Hình sau đây minh họa ý tưởng của PCA: - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Hình sau đây minh họa ý tưởng của PCA: (Trang 76)
Hình 4.4. Các mẫu ảnh trong cơ sở dữ liệu - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Hình 4.4. Các mẫu ảnh trong cơ sở dữ liệu (Trang 78)
Hình ảnh dưới đây minh họa cho việc vừa làm: - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
nh ảnh dưới đây minh họa cho việc vừa làm: (Trang 96)
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  Mô hình này được diễn giải gồm 3 giai đoạn: - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
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 Mô hình này được diễn giải gồm 3 giai đoạn: (Trang 97)
Hình 5.2. Minh họa tập dữ liệu X cần phân lớp - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Hình 5.2. Minh họa tập dữ liệu X cần phân lớp (Trang 98)
Hình 5.4. Mô hình bài toán phân lớp mặt người - Dò tìm phát hiện mặt người bằng mạng neural nhân tạo và PCA (Thuần code)
Hình 5.4. Mô hình bài toán phân lớp mặt người (Trang 99)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w