Khóa luận Nghiên cứu các thuật toán nhận dạng cảm xúc khuôn mặt trên ảnh 2D

ĐẠI HỌC QUỐC GIA HÀ NỘI  
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ  
Đinh Xuân Nhất  
NGHIÊN CỨU CÁC THUẬT TOÁN NHẬN DẠNG  
CẢM XÚC KHUÔN MẶT TRÊN ẢNH 2D  
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
Ngành: Công nghệ thông tin  
HÀ NỘI – 2010  
ĐẠI HỌC QUỐC GIA HÀ NỘI  
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ  
Đinh Xuân Nhất  
NGHIÊN CỨU CÁC THUẬT TOÁN NHẬN DẠNG  
CẢM XÚC KHUÔN MẶT TRÊN ẢNH 2D  
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
Ngành: Công nghệ thông tin  
Cán bộ hướng dẫn: PGS TS. Bùi Thế Duy  
HÀ NỘI – 2010  
LỜI CẢM ƠN  
Lời đầu tiên em xin bày tỏ lòng biết ơn tới các thầy, cô giáo trong trường Đại  
học Công nghệ - Đại học Quốc gia Hà Nội. Các thầy cô đã dạy bảo, chỉ dẫn chúng em  
và luôn tạo điều kiện tốt nhất cho chúng em học tập trong suốt quá trình học đại học  
đặc biệt là trong thời gian làm khoá luận tốt nghiệp.  
Em xin bày tỏ lòng biết ơn sâu sắc tới PGS TS. Bùi Thế Duy, thầy đã hướng  
dẫn em tận tình trong học kỳ vừa qua.  
Tôi cũng xin cảm ơn những người bạn của mình, các bạn đã luôn ở bên tôi,  
giúp đỡ và cho tôi những ý kiến đóng góp quý báu trong học tập cũng như trong cuộc  
sống.  
Cuối cùng con xin gửi tới bố mẹ và toàn thể gia đình lòng biết ơn và tình cảm  
yêu thương nhất. Con xin dành tặng bố mẹ kết quả mà con đã đạt được trong suốt bốn  
năm học đại học. Con cám ơn bố mẹ nhiều.  
nội, ngày 25/05/2010  
Đinh Xuân Nhất  
i
TÓM TẮT  
Bài toàn nhận dạng cảm xúc đã bắt đầu được nghiên cứu từ những năm 1970  
nhưng kết quả đạt được vẫn còn nhiều hạn chế. Hiện nay vấn đế này vẫn đang được rất  
nhiều người quan tâm bởi tính hấp dẫn cùng những vấn đề phức tạp của nó. Mục tiêu  
của khóa luận này là nghiên cứu và đánh giá về các phương pháp nhận dạng mặt người  
trong việc nhận dạng ra 5 cảm xúc cơ bản: Vui, buồn, ghê tởm, dận giữ và tự nhiên  
trên ảnh tĩnh, chính diện.  
Từ khóa: Facial Expression Recognition, Principal Component Analysis,  
Neural Network, Decision Tree, Weka…  
ii  
MỤC LỤC  
LỜI CẢM ƠN ...................................................................................................................i  
TÓM TẮT ....................................................................................................................... ii  
DANH MỤC HÌNH ẢNH ................................................................................................v  
Chương 1. GIỚI THIỆU ...............................................................................................1  
1.1 Cấu trúc của khóa luận .....................................................................................1  
1.2 Nhận dạng cảm xúc khuôn mặt và ứng dụng ....................................................1  
1.3 Một số phương pháp nhận dạng cảm xúc khuôn mặt ........................................2  
1.3.1 Các phương pháp dựa trên đặc trưng của ảnh....................................2  
1.3.2 Phương pháp sử dụng Action Units ..................................................3  
1.3.3 Phương pháp dùng mô hình AAM kết hợp tương quan điểm ............4  
1.3.4 Mô hình tổng quan............................................................................4  
1.4 Các thách thức trong vấn đề nhận dạng cảm xúc khuôn mặt.............................5  
1.5 Các vấn đề liên quan ........................................................................................5  
Chương 2. MỘT SỐ LÝ THUYẾT CƠ BẢN ...............................................................7  
2.1 Giới thiệu về mạng nơron.................................................................................7  
2.1.1 Mạng Perceptron nhiều tầng (MPL – Multi Perceptron Layer)..........8  
2.1.2 Ánh xạ mạng lan truyền tiến.............................................................8  
2.1.3 Hàm sigmoid ..................................................................................11  
2.1.4 Thuật toán lan truyền ngược ...........................................................12  
2.2 Giới thiệu về PCA..........................................................................................19  
2.2.1 Một số khái niệm toán học..............................................................19  
2.2.2 Ma trận đại số.................................................................................22  
2.2.3 Eigenvector (Vectơ riêng)...............................................................23  
2.2.4 Eigenvalue (Giá trị riêng) ...............................................................23  
2.2.5 Phân tích thành phần chính (PCA)..................................................24  
Chương 3. CÁC PHƯƠNG PHÁP NHẬN DẠNG CẢM XÚC KHUÔN MT..........25  
iii  
3.1 Nhận dạng cảm xúc dựa trên PCA truyền thống.............................................25  
3.1.1 Trích chọn đặc trưng.......................................................................25  
3.1.2 Quá trình nhận dạng .......................................................................26  
3.2 Nhận dạng cảm xúc dựa trên PCA kết hợp các thuật toán học ........................27  
3.2.1 Mạng nơron....................................................................................27  
3.2.2 Cây quyết định ...............................................................................27  
Chương 4. THỰC NGHIỆM.......................................................................................29  
4.1 Môi trường thực nghiệm.................................................................................29  
4.2 Dữ liệu đầu vào..............................................................................................29  
4.3 Khảo sát và đánh giá ......................................................................................29  
4.3.1 Phương pháp PCA truyền thống .....................................................30  
4.3.2 Phương pháp sử dụng mạng nơron..................................................30  
4.3.3 Phương pháp sử dụng cây quyết định..............................................31  
4.4 Tổng kết.........................................................................................................32  
Chương 5. KẾT LUẬN...............................................................................................33  
PHỤ LỤC - MỘT SỐ THUẬT NGỮ ANH – VIỆT .......................................................34  
TÀI LIỆU THAM KHẢO...............................................................................................35  
iv  
DANH MỤC HÌNH ẢNH  
Hình 1: Mô hình nhận dạng cảm xúc.................................................................4  
Hình 2: Mô hình mạng lan truyền tiến...............................................................8  
Hình 3: Đồ thị hàm truyền sigmoid .................................................................11  
Hình 4: Lan truyền ngược ...............................................................................14  
Hình 5: Minh họa việc tính δj cho việc tính nút ẩn j.........................................17  
Hình 6: Ví dụ về 1 non-eigenvector và 1 eigenvector ......................................22  
Hình 7: Ví dụ về 1 eigenvector có tỉ lệ khác vẫn 1 là eigenvector....................23  
Hình 8: Ví dụ về trích chọn đặc trưng bằng PCA ............................................25  
Hình 9: Mô hình mạng nơron..........................................................................27  
Hình 10: Cây quyết định .................................................................................28  
v
Chương 1. GIỚI THIỆU  
1.1 Cấu trúc của khóa luận  
Với nội dung trình bày những lý thuyết cơ bản và cách áp dụng vào bài toán nhận  
dạng cảm xúc khuôn mặt, khóa luận được tổ chức theo cấu trúc như sau:  
Chương 1: Giới thiệu  
Giới thiệu sơ lược về các phương pháp nhận dạng cảm xúc, ứng dụng của  
nó trong cuộc sống hàng ngày, giới thiệu các phương pháp được sử dụng trong  
khóa luận này, mục tiêu và cấu trúc của khóa luận.  
Chương 2: Một số lý thuyết cơ bản  
Chương hai đi vào giới thiệu tổng quan về các lý thuyết cơ bản. Những kiến  
thức cơ bản này là tiền đề để người đọc hiểu được cách áp dụng vào bài toán  
nhận dạng cảm xúc và lớp các bài toán nhận dạng nói chung.  
Chương 3: Các phương pháp nhận dạng cảm xúc  
Chương này đi vào giới thiệu một số phương pháp nhận dạng cảm xúc sử  
dụng các lý thuyết cơ bản đã nêu ở chương hai  
Chương 4: Thực nghiệm  
Chương này phân tích về ưu, nhược điểm và so sánh, đánh giá giữa các  
phương pháp.  
Chương 5: Kết luận  
Chương này tổng kết lại những gì đã đạt được và chưa đạt được. Từ đó nêu  
lên những hướng nghiên cứu và phát triển tiếp theo.  
1.2 Nhận dạng cảm xúc khuôn mặt và ứng dụng  
Trong vài năm gần đây, cùng với sự phát triển về khoa học và công nghệ, tương  
tác người máy đã trở thành một lĩnh vực nổi bật nhằm cung cấp cho con người khả  
năng phục vụ của máy móc. Điều này bắt nguồn từ khả năng máy móc có thể tương  
tác được với con người. Máy móc cần các kỹ năng để trao đổi thông tin với con người  
và 1 trong những kỹ năng đó là khả năng hiểu được cảm xúc. Cách tốt nhất để một  
người biểu thị cảm xúc là qua khuôn mặt. Bài toàn nhận dạng cảm xúc khuôn mặt đã  
1
được bắt đầu nghiên cứu từ những năm 1970 nhưng kết quả đạt được đến nay vẫn còn  
nhiều hạn chế.  
Ứng dụng của nhận dạng cảm xúc trong cuộc sống hàng ngày là rất lớn, các hệ  
thống phát hiện trạng thái buồn ngủ dựa vào cảm xúc trên khuôn mặt được phát triển  
để cảnh báo cho người lái xe khi thấy dấu hiệu buồn ngủ, mệt mỏi. Các hệ thống kiểm  
tra tính đúng đắn của thông tin, các phần mềm điều khiển dựa vào cảm xúc, các thiết  
bị hỗ trợ người tàn tật,...  
Mục tiêu của khóa luận này là nghiên cứu 1 số phương pháp nhận dạng cảm xúc  
khuôn mặt dựa trên ảnh hai chiều và trực diện  
1.3 Một số phương pháp nhận dạng cảm xúc khuôn mặt  
Có nhiều phương pháp đã được nghiên cứu để giải quết bài toán này, điển hình  
là một số phương pháp sau: Sử dụng các đơn vị vận động trên khuôn mặt (Action units  
– AU), sử dụng PCA, AAM kết hợp tương quan điểm, sử dụng các phương pháp  
học,… Mỗi phương pháp đều có ưu và nhược điểm riêng. Đối với các phương pháp sử  
dụng PCA kết hợp mạng nơron, cần một tập dữ liệu chuẩn để huấn luyện. Việc xây  
dựng các tập huấn luyện này cũng tương đối khó khăn và tốn kém vì cần nhiều người  
làm mẫu, những người này phải có khả năng diễn đạt cảm xúc tốt, ngoài ra còn cần sự  
đánh giá của các chuyên gia tâm lý. Hiện nay có một số tập huấn luyện chuẩn thường  
được dùng như JAFFE (Japanese Female Facial Expression) hay Cohn-kanade.  
1.3.1 Các phương pháp dựa trên đặc trưng của ảnh  
Các kỹ thuật sử dụng trong phương pháp này là phân tích thành phần chính  
PCA, sau đó huấn luyện bằng các thuật toán học. PCA được Karl Pearson tạo ra năm  
1901. Đến những năm 80, Sirovich và Kirby đã phát triển kỹ thuật này để thể hiện  
khuôn mặt một cách hiệu quả. Đưa ra sự giống nhau giữa nhiều hình ảnh khuôn mặt  
khác nhau, kĩ thuật này tìm ra những thành phần cơ bản của sự phân bố trên khuôn  
mặt, thể hiện bằng các eigenvectors. Từng khuôn mặt trong một tập hợp các khuôn  
mặt sau đó có thể tính xấp xỉ bằng sự kết hợp tuyến tính giữa những eigenvector lớn  
nhất, được biết tới như eigenfaces.  
2
1.3.2 Phương pháp sử dụng Action Units  
Phương pháp này nhận dạng cảm xúc dựa trên các đơn vị chuyển động của  
khuôn mặt (AU). Có tất cả 64 AU, mỗi AU là sự kết hợp của một số các cơ trên khuôn  
mặt. Cảm xúc được nhận dạng bằng cách phát hiện tại một thời điểm có bao nhiêu AU  
xuất hiện trên khuôn mặt và với các AU xuất hiện cùng nhau tướng ứng với 1 cảm  
xúc.  
3
1.3.3 Phương pháp dùng mô hình AAM kết hợp tương quan điểm  
Phương pháp này sử dụng mô hình AAM để phát hiện khuôn mặt. Sau đó dựa  
vào tỷ lệ giữa 2 mắt, lông mày, miệng, mũi, … để nhận dạng cảm xúc. Khó khăn của  
phương pháp này là việc xác định ngưỡng tỉ lệ để xác định cảm xúc. Tuy nhiên  
phương pháp này có ưu điểm về tốc độ, dó đó thường đươc ứng dụng trong nhận dạng  
cảm xúc thời gian thực.  
1.3.4 Mô hình tổng quan  
Ảnh ứng viên  
Ảnh đầu vào  
Phát hiện  
Tiền xử lý ảnh  
khuôn mặt  
Ảnh đã  
tiền xử lý  
Cảm xúc  
Nhận dạng cảm xúc  
Hình 1: Mô hình nhận dạng cảm xúc  
4
1.4 Các thách thức trong vấn đề nhận dạng cảm xúc khuôn mặt  
Xác định cảm xúc khuôn mặt là một bài toán khó bởi vì con người ngoài 7 cảm  
xúc cơ bản, còn rất nhiều cảm xúc đa dạng khác. Hơn nữa vì nhận dạng cảm xúc dựa  
trên các đặc điểm của khuôn mặt nên thực tế không thể biết được cảm xúc đó là đúng  
hay không. Về phương pháp nhận dạng, cũng gặp khó khăn khi ảnh khuôn mặt không  
chính diện, quá bé, hay trong điều kiện ánh sáng không tốt.  
1.5 Các vấn đề liên quan  
Bên cạnh việc nhận dạng cảm xúc trong không gian 2D còn có một số vấn đề  
liên quan mật thiết.  
Nhận dạng cảm xúc trong không gian 3D[10]: Đây là vấn đề rất gần gũi với  
nhận dạng cảm xúc trong không gian 2D, tuy nhiên trong không gian 3D chúng ta có  
nhiều thông tin hơn, ngoài màu sắc, đặc trưng còn có hình dáng của khuôn mặt,…  
5
Nhận dạng cảm xúc trong video: Vấn đề này dễ dàng hơn vì chúng ta có rất  
nhiều thông tin về khuôn mặt dựa vào các khung hình liên tiếp, và vấn đề này cũng  
thực tiễn hơn nhiều so với nhận dạng cảm xúc trong không gian 2D.  
6
Chương 2. MỘT SỐ LÝ THUYẾT CƠ BẢN  
2.1 Giới thiệu về mạng nơron[6]  
Có thể nói, hiện nay, không có một định nghĩa chính thức nào cho mạng neural.  
Tuy nhiên phần lớn mọi người đều đồng tình rằng mạng neural là một mạng bao gồm  
rất nhiều bộ xử lý đơn giản (gọi là các unit), mỗi unit có vùng nhớ riêng của mình. Các  
unit được kết nối với nhau thông qua kênh thông tin (gọi là các connection), thường  
mang dữ liệu số (không phải là các ký hiệu), và được mã hóa theo một cách nào đấy.  
Các unit chỉ xử lý trên bộ dữ liệu của riêng nó và trên các đầu vào được đưa tới thông  
qua các liên kết. hạn chế của các phép xử lý cục bộ này là nó thường ở trạng thái nghỉ  
trong suốt quá trình học.  
Mt số mạng neural là các mô hình mạng neural sinh học, một số thì không,  
nhưng từ trước tới nay, thì tất cả các lĩnh vực của mạng neural đều được nghiên cứu  
xây dựng xuất phát từ các yêu cầu xây dựng các hệ thống nhận tạo rất phức tạp, hay  
các phép xử lý “thông minh”, và những gì tuơng tự như bộ não con người.  
Hầu hết các mạng neural đều có một vài quy tắc học nào đó mà thông qua đó  
các trọng số của các liên két được điều chỉnh dựa trên dữ liệu. Nói cách khác, các  
mạng neural “học” và các ví dụ và dựa trên các dữ liệu đó thì nó có khả năng tổng quát  
tri thức và đưa ra “nhận thức của mình”.  
Mạng neural là mô hình mạng ứng dụng các phương pháp xử lý song song và  
các thành phần mạng xử lý hoàn toàn đợc lập với nhau. Một vài nguời xem khả năng  
xử lý song song số lượng lớn và tính liên kết cao của mạng neural là các tính chất đặc  
trưugn của nó. Tuy nhiên với những yêu cầu như thế thì lại không có những mô hình  
đơn giản, ví dụ như mô hình hồi quy tuyến tính đơn giản, một mô hình được ứng dụng  
rất rộng rãi của mạng neural.  
Mạng neural có thể được áp dụng trong mọi trường hợp khi tồn tại một mối liên  
hệ giữa các biến độc lập (inputs) và các biến phụ thuộc (outputs), thậm chí là ngay cả  
khi mối quan hệ đó phứuc tạp. Một số lĩnh vực mà mạng neural đã được áp dụng thành  
công như dự đoán triệu chứng y học, dự đoán thị trường chứng khoán, đánh giá độ tin  
cậy tài chính, điều chỉnh điều kiện của cơ cấu máy móc.  
7
2.1.1 Mạng Perceptron nhiều tầng (MPL – Multi Perceptron Layer)  
MPL là một loại mạng lan truyền tiến được huấn luyện theo kiểu học có giám  
sát. Mạng là một cấu trúc gồm nhiều lớp trọng số. Ở đây ta chỉ xét đến loại mạng lan  
truyền khả vi. Đây là loại mạng có thể áp dụng phương pháp tính toán khá hiệu quả và  
mạnh gọi là lan truyền ngược lỗi , để xác định đạo hàm hàm li theo các trọng số và độ  
dc trong mạng. Đây là mt tính cht rt quan trọng của nhng mạng kiu này bi  
những đạo hàm này đóng vai trò trung tâm trong các giải thut học của các mạng đa  
lp. Vn đề lan truyn ngược sẽ được ta xét ti trong mt phn riêng sau này.  
2.1.2 Ánh xạ mạng lan truyền tiến  
Trong phn này ta sẽ nghiên cu mô hình mạng neural lan truyn tiến như là  
mt khung tng quát đại din cho các hàm ánh xạ phi tuyến gia tp các biến đầu vào  
và tp các biến đu ra.  
2.1.2.1 Mạng phân lớp  
Các mạng đơn lớp được xây dng da trên skết hp tuyến tính các biến đầu  
o đưc chuyển đổi bi mt hàm truyn phi tuyến.  
Ta có thxây dựng được các hàm tng quát hơn bằng cách nghiên cu nhng  
mô hình mạng có các lp các nút là liên tiếp, vi các kết ni ttt cả các nút thuc  
mt lp ti tt cả các nút thuc lp kế tiếp, và không cho phép bt kỳ mt loại kết ni  
nào khác. Nhng mạng phân lớp như thế này có thdphân ch hơn các cu trúc tng  
quát khác, và cũng dễ được mô phỏng bi phn mềm hơn.  
Hình 2: Mô hình mạng lan truyền tiến  
8
Các nút không phải là các nút nhp và nút xuất được gọi là các nút n. Trong  
mô hình chúng ta nghiên cu ở đây, có d nút nhp, M nút n và c nút xut.  
Kết quả ca nút n thứ j được tính như sau:  
d
(1)  
(1)  
j0  
(I.26)  
a   
w x w  
ji i  
j
i1  
Trong đó là trọng số của lớp đầu tiên, từ nút nhp i đến nút n j, và là trọng  
ngưỡng của nút n j.  
Giả sử đt mt biến cố đnh x0 = 1. Từ đó công thc (I.26) có thể được viết lại:  
d
(1)  
a   
w
x
(I.27)  
j
ji i  
i0  
Sau đó độ hoạt động zk của nút ẩn j được tính toán bng cách chuyển đổi tng  
tuyến tính (I.27) sử dụng hàm truyn g(.), tc là: zk = g(aj) (I.28)  
Kết xut của mạng được tính bng cách chuyển đổi độ hoạt động của các nút n  
sử dụng mt lp các nút th2. Vi mi nút xut k, ta có:  
M
(2)  
kj  
(2)  
k0  
a   
w
z w  
(I.29)  
(I.30)  
j
k
i1  
Đặt z0 =1 ta có:  
M
(2)  
kj  
a   
w
z
j
k
i0  
Sau đó giá trị này được cho qua hàm truyn phi tuyến cho ta kết xuất đầu ra  
~
của nút xut k: yk g  
ak  
(I.31)  
Ở đây ta sử dụng kí hiu để biu din hàm truyn của các nút xut nhm chỉ ra  
rng hàm này có thkhông trùng vi hàm đã được sử dụng trong lp n.  
Kết hp (I.27), (I.28), (I.30), (I.31) ta có công thc chung cho mô hình mạng  
trong hình trên:  
9
M
d
(2)  
kj  
(1)  
w x  
ji  
~
y g  
k
w
g
(I.32)  
i   
j0  
i0  
2.1.2.2 Kiến trúc mạng tổng quát  
Ta có thxây dựng được nhng ánh xạ mạng tng quát hơn bằng cách nghiên  
cu những sơ đồ mạng phc tạp hơn. Tuy nhiên ở đây thì ta chỉ gii hạn nghiên cu  
trong phạm vi các mạng lan truyn tiến.  
Mạng lan truyn tiến là mng không có mt kết ni quay lui nào trong mạng.  
Theo Bishop (1995): OVmt tng quát, mt mạng được gọi là lan truyn tiến  
nếu nó có thể gán các sliên tục cho tt cả các nút nhp, tt cả các nút n và nút xut  
sao cho mi nút chỉ có thnhận được các kết ni từ các nút nhp hoc các nút được  
gán số bé hơn.Õ  
Vi nhng mạng có tính chất như thế, kết xut của mạng là các hàm quyết định  
của các đầu vào, và vì thế toàn bộ mạng được gọi là mt ánh xạ hàm phi tuyến đa  
biến.  
Kết xut của nút k nh được như sau:  
z g w z  
(I.33)  
j
k
kj  
j
trong đó g(.) là mt hàm truyn phi tuyến, và j thuc tp tt cả các nút nhp và  
các nút gi kết ni ti nút k (Tham số trọng ngưỡng cũng đã được bao hàm trong  
tng này).  
Vi mt tp cho trước các giá trị đầu vào, áp dụng liên tục công thc (I.33) sẽ  
cho phép các kích hoạt của tt cả các nút trong mạng được ước lượng, bao gm cả các  
kích hoạt của các nút xut. Quá trình này được gọi là lan truyn tiến các tín hiu qua  
mạng.  
Nếu như các hàm truyn của tt cả các nút n trong mạng là tuyến tính, thì vi  
nhng mạng như thế ta luôn luôn tìm đưc mt mô hình mạng tương đương mà không  
có mt nút n nào. Nhng mạng này được gọi là mạng tuyến tính đa lớp và vì thế  
10  
không được đi sâu nghiên cứu, mà người ta chỉ chủ yếu nghiên cu các mạng đa lớp  
vi các hàm truyn của các nút n là phi tuyến.  
2.1.3 Hàm sigmoid  
Bây giờ chúng ta sẽ xem xét hàm truyn logistic dạng S, trong đó các đầu ra  
của nó nm trong khong (0,1), có phương trình như sau:  
1
g
a  
(I.34)  
1exp a  
Hình vẽ dưới đây biểu din mt hàm truyn sigmoid cho các nút trong mạng.  
Đây là mt hàm mũ có một đặc tính vô cùng quan trọng vì : khi x chạy tvô cùng ln  
đến vô cùng bé thì f(x) luôn chạy trong khong t0 đến 1. Giải thut học ở đây sẽ điều  
chỉnh trọng số của các kết ni gia các nút để hàm này ánh xạ giá trị của x sang dạng  
nhị phân, thông thường:  
f(x) > 0.9 : f(x) = 1  
f(x) < 0.1 : f(x) = 0.  
Hình 3: Đồ thị hàm truyền sigmoid  
Trong phn này chúng ta sẽ xem xét các mạng neural vi nút xut tuyến tính.  
Tuy nhiên điều này ng chng hạn chế lp các hàm mà mạng có thxp xỉ hoá. Vic  
sử dụng các hàm sigmoid tại các đầu ra sẽ gii hạn phạm vi có thể xảy ra của các nút  
11  
xut thành phạm vi có thể đạt tới được của hàm sigmoid (giá trị kết xut là t0 ti 1),  
và trong mt strường hp thì điều này có thể là không mong mun. Thm chí ngay  
cả khi giá trị xut mong mun là nm trong gii hạn của hàm sigmoid thì chúng ta vn  
phải chú ý rng hàm sigmoid g(.) là mt hàm đơn điệu tăng, do đó nó có thly nghch  
đảo được. Do vy mt giá trị xut y mong muốn đối vi mạng có nút xut thuc dạng  
sigmoid thì tương đương với mt giá trị xut g-1(y) đối vi mạng có nút xut tuyến  
tính.  
Mt nút n thuc dạng sigmoid có thxp xỉ mt nút n tuyến tính bt kì mt  
cách chính xác. Công vic này đạt được bng cách thiết kế cho tt cả các trọng số các  
cung đầu vào của nút, cũng như các trọng ngưỡng, sao cho rt nhỏ để mà tng của các  
giá trị nhp phải nm trên phn tuyến tính của đường cong sigmoid, gần đúng vi  
đường thng nguyên thu. Trọng strên cung xut tmt nút đến tng cha các nút kế  
tiếp có thể tạo ra tương đối ln để tái tỉ lvới độ hoạt động (và vi trọng ngưỡng để có  
được bước dịch chuyn phù hp nếu cn thiết). Tương tự, mt nút n dạng sigmoid có  
thể được tạo ra nhm xp xỉ mt hàm bc thang (step) bng vịêc đặt giá trị cho các  
trọng số và trọng ngưỡng rt ln.  
Bt kì mt ánh xạ hàm liên tục nào đều có thể được trình bày với độ chính xác  
tuỳ ý bi mt mạng neural hai lp trọng ssử dụng các nút n dạng sigmoid (Bishop,  
1995).  
Do đó chúng ta biết được rng nhng mạng neural vi nhiu tng nút xử lý  
ng có khả năng xấp xỉ hoá bi vì cng đã chứa đựng trong nó mạng neural hai tng  
như một trường hợp đặc bit. Điều này cho phép các tng còn lại được sp xếp để thc  
hin nhng biến đổi tuyến tính như đã thảo lun trên, và sbiến đổi đồng nht chính  
là mt trường hp dc bit của mt phép biến đổi tuyến tính (biết rng có đủ số nút n  
để không có sự gim bt vchiu xảy ra).  
2.1.4 Thuật toán lan truyền ngược  
Bây giờ chúng ta sẽ tp trung nghiên cu mt thut rt phbiến của mạng  
neural nhiu tng. Chúng ta sẽ xem xét cách mà mt mạng học mt ánh xạ tmt tp  
dliu cho trước.  
Chúng ta đã biết vic học dựa trên định nghĩa của hàm li, hàm li này sau đó  
sẽ đưc ti thiu hoá da vào các trọng số và các trọng ngưỡng trong mạng.  
12  
Trước tiên ta sẽ xem xét trường hp mạng sử dụng hàm ngưỡng. Vn đề cn  
bàn ở đây chính là cách để khi tạo các trọng scho mạng như thế nào. Công vic này  
thường được gọi là ‘credit assignment problem’. nếu mt nút đầu ra tạo ra một đáp số  
sai lch thì chúng ta phải quyết định xem liu nút n nào phải chịu trách nhim cho sự  
sai lệch đó, ng chính là vic quyết định trọng số nào cn phải điều chỉnh và điều  
chỉnh là bao nhiêu.  
Để giải quyết vn đề gán trọng số này, chúng ta hãy xem xét mt mạng vi các  
hàm truyn phân bit ,do đó giá trị tng trọng của các nút xut strở thành mt hàm  
phân bit của các biến nhp và của trọng số và trọng ngưỡng. Nếu ta coi hàm li, ví dụ  
có dạng sai strung bình bình phương, là mt hàm riêng bit cho các giá trị xut của  
mạng thì bn thân nó cũng chính là mt hàm phân bit của các trọng s.  
Do đó chúng ta có thể tính toán được đạo hàm hàm li theo các trọng s, và giá  
trị đo hàm này lại có thể dùng để làm cc tiu hoá hàm li bng cách sử dụng phương  
pháp giảm gradient (gradient descent) hoc các phương pháp tối ưu hoá khác.  
Giải thut ước lượng đạo hàm hàm lỗi được biết đến vi tên gọi lan truyn  
ngược, nó tương đương với vic lan truyn ngược li trong mạng. thut vlan  
truyn ngược được biết đến rt rng rãi và chi tiết qua các bài báo cũng như các cun  
sách của Rumelhart, Hinton và Williams (1986). Tuy nhiên gần đây một số ý tưởng  
tương tự cũng được mt số nhà ngiên cu phát trin bao gm Werbos (1974) và Parker  
(1985).  
Cn nói thêm rng giải thut lan truyn ngược được sử dụng trong mạng neural  
có ý nghĩa rt ln. Ví dụ như, kiến trúc của mạng perceptron nhiu tng ng thường  
được gọi là mạng lan truyn ngược. Khái nim lan truyn ngược ng thường đưc sử  
dụng để tả quá trình hun luyn của mạng perceptron nhiu tng sử dụng phương  
pháp gradient descent áp dụng trên hàm li dạng sai strung bình bình phương. Để  
làm rõ hơn về thut ngữ này chúng ta cn xem xét quá trình luyn mạng mt cách kĩ  
càng. Phn ln các giải thut luyn mạng đều liên quan đến mt thủ tục được lặp đi lp  
lại nhm làm ti thiu hàm li, bng cách điều chỉnh trọng strong mt chui các  
bước.  
Tại mi bước như vậy, chúng ta có thchia thành hai bước phân bit.  
Tại bước thnht, cn phải tính đạo hàm hàm li theo các trọng s. Chúng ta  
đã biết rng một đóng góp rt quan trọng của thut lan truyn ngược đó là vic cung  
cp một phương pháp hết sc hiu quả vmt tính toán trong việc đánh giá các đạo  
13  
hàm. Vì tại bước này li sẽ được lan truyn ngược trở lại mạng nên chúng ta sẽ sử  
dụng khái nim lan truyn ngược để đặc trưng riêng cho việc đánh giá đạo hàm này.  
Tại bước thhai, các đạo hàm sẽ được sử dụng trong vic tính toán sự điều  
chỉnh đối vi trọng s. Và kĩ thuật đơn giản nhất được sử dụng ở đây là kĩ thut  
gradient descent, thut này đưc Rumelhart et al. (1986) đưa ra lần đầu tiên.  
Một điều hết sc quan trọng là phải nhn thức được rng hai bước này là phân  
bit vi nhau. Do đó, quá trình xđầu tiên , được biết đến là quá trình lan truyn  
ngược các li vào trong mạng để đánh giá đạo hàm, có thể được áp dụng đối vi rt  
nhiu laọi mạng khác nhau chkhông chỉ đối vi riêng mạng perceptron nhiu tng.  
Nó cũng có thể được áp dụng vi các loại hàm li khác chkhông chỉ là hàm tính sai  
số bình phương cực tiu, và để đánh giá các đạo hàm khác này có thsử dụng các  
phương pháp kc như phương pháp ma trn Jacobian và Hessian mà chúng ta sẽ xem  
xét phn sau. Và cũng tương tự như vy thì ti bước thhai, việc điu chỉnh trọng số  
sử dụng các đạo hàm đã được tính trước đó có ththc hin vi nhiều phương pháp ti  
ưu hoá khác nhau, và rt nhiu trong số các phương pháp đó cho kết quả tốt hơn  
phương pháp gradient descend.  
2.1.4.1 Lan truyền ngược  
Hình 4: Lan truyền ngược  
Bây giờ chúng ta sẽ áp dụng giải thut lan truyn ngược cho bt kì mt mạng  
neural có cu hình lan truyn tiến tuỳ ý, sử dụng các hàm truyn phi tuyến tuỳ ý, và cả  
14  
hàm li có dạng tuỳ ý. Để minh hoạ chúng ta sẽ dùng mt mạng có cu trúc mt tng  
nút n dạng sigmoid và hàm li là hàm tính theo sai strung bình bình phương.  
Trong các mạng lan truyn tiến nói chung mi nút đều tình tng trọng hoá các  
đầu vào của nó theo công thc:  
a w z  
(I.35)  
j
ji  
i
i
Vi zi là giá trị nhp hoc là giá trị xut của mt nút có cung kết ni vi nút j và  
wji chính là trọng số của cung kết nối đó. Giá trị tng này được tính trên tt cả các nút  
có kết ni trc tiếp vi nút j. Chúng ta biết rng, trọng ngưỡng của nút cũng được đưa  
vào trong tng bng cách tạo ra thêm mt giá trị nhp cố định = 1. Tng trong (I.35)  
lại được biến đổi thông qua mt hàm truyn phi tuyến g(.) để đưa ra được gía trị xut  
zi của nút j theo công thc:  
   
zi g a j (I.36)  
Bây giờ chúng ta cn phải xác định giá trị của các trọng strong mạng thông  
qua vic ti thiu hoá hàm li.  
ở đây ta sẽ coi cá hàm lỗi được viết như một tng của tt cả các li tại mi mu  
riêng bit.Tng này sẽ đưc tính trên tt cả các mu của tp hun luyn  
E En  
(I.37)  
n
Vi n là nhãn của tng mu.  
Chúng ta ng giả định rng li En có thể đưc thhiện như một hàm riêng của  
các biến đu ra, có nghĩa là :  
En = En(yc, …, yc)  
Mục đích của chúng ta ở đây chính là phải tìm ra mt hàm nhm để tính được  
đạo hàm của hàm li theo các trọng số và trọng ngưỡng của mạng.  
15  
Đối vi tng mu, ta sẽ coi như đã cung cp mt vector nhập tương ứng là đầu  
vàovà đã tính được các giá trị xut của các nút n cũng như nút xut theo các công  
thc (I.35), (I.36). Quá trình này thường được gọi là quá trình lan truyn tiến trong  
mạng.  
Bây giờ hãy xem xét vic tính đạo hàm của En theo cá trọng swji. Giá trị xut  
của các nút sẽ phụ thuc vào tng mu nhp n nào. Tuy nhiên để dễ nhìn, ta quy ước  
sẽ bỏ qua vic viết kí tn trên các biến nhp và xut. Trước tiên ta cn chú ý rng En  
phụ thuc vào trọng swji thông qua tng giá trị nhp ai của nút j. Do đó ta có thể đưa  
ra công thc tính các đạo hàm riêng như sau:  
En En  
a j  
wji aj wji  
*
(I.38)  
Từ (I.35) ta có:  
a j  
zi  
wji  
(I.39)  
Như vậy suy ra:  
n
E  
z i  
(I.40)  
j
w  
ji  
E n  
a j  
Trong đó j   
Từ công thức (I.40) ta thấy rằng để tính được đạo hàm chúng ta chỉ cn tính giá  
trị cho mi nút n và nút xut trong mạng và sau đó áp dụng công thc (I.40).  
Vi các nút xut thì vic tính δk là hết sức đơn giản.  
16  
Ta có:  
E n  
ak  
E n  
yk  
'
   
(I.41)  
k   
g ak  
En  
.
Để tính ra (I.41) ta cần tìm ra công thức tính g’(a) và  
y  
Để tính được δ cho cá nút n, ta cn sử dụng công thc tính đo hàm riêng:  
En  
a j  
En  
ak  
ak aj  
j   
(I.42)  
k
Trong đó giá trị tổng được tính trên các nút k mà nút j kết ni đến. Vic sp xếp  
các nút cũng như các trọng số được minh hoạ trong Hình 6.  
Hình 5: Minh họa việc tính δj cho việc tính nút ẩn j  
Chú ý rng các nút có nhãn k này có thbao gm cả nút nhp và nút xut.  
Bây giờ chúng ta có công thc lan truyn ngược như sau:  
j g'  
a j  
w   
(I.43)  
kj  
k
k
17  
Công thc này nói lên rng giá trị của δ đối vi mt nút n có thể đựơc tính từ  
vic lan truyn ngược các giá trị δ của các nút ẩn cao hơn trong mạng, như được minh  
hoạ trong hình 5. Bi vì chúng ta đã biết đựơc các giá trị δ của các nút xut nên ta có  
thể áp dụng (I.43) mt cách đệ quy nhm tính ra các giá trị δ cho tt cả các nút n  
trong mạng, mà không quan tâm đến cu hình của nó.  
Chúng ta có thtng kết lại giải thut lan truyn ngược nhm tính đạo hàm  
hàm li En theo các trọng strong 4 bước:  
Đưa vector nhập xn vào mạng và lan truyn tiến nó trong mạng sử dụng  
và để tìm ra giá trị xut cho tt cả các nút n cũng nnút xut.  
Tính δ cho tt cả các nút xut sử dụng công thc  
Lan truyn ngựơc các d bng công thc để thu được δ cho mi nút n  
trong mạng.  
En  
wji  
áp dụng  
j zi để tính các đạo hàm.  
Đạo hàm của li tng E có thể thu được bng cách lặp đi lặp lại các bước trên  
đối vi trng mu trong tp hun luyn và sau đó tính tng trên tt cả các li.  
Trong quá trình tính đạo hàm trên chúng ta đã giả định rng mi nút n ng  
như xuất đếu có chung mt hàm truyn g(.). Tuy nhiên điều này hoàn toàn có thể tính  
được vi trường hp mi nút khác nhau đếu có các hàm truyn riêng, đơn giản bng  
ch đánh du dạng của hàm g(.) ng vi tng nút.  
2.1.4.2 Hiệu quả của lan truyền ngược  
Mt trong những đặc tính quan trọng nht của lan truyn ngược chính là ở khả  
năng tính toàn hiu quả ca nó.  
Đặt w là tng số các trọng số và trọng ngưỡng. Do đó mt phép tính hàm li  
(cho mt mu nhp nào đó) cn O(w) thao tác vi w đủ ln. Điều này cho phép số  
lượng trọng số có thlớn hơn số lượng nút, trnhng mạng có quá ít kết ni. Do vy,  
hiu quả ca vic tính toán trong lan truyn ngược sẽ liên quan đến vic tính giá trị của  
tng trong công thc (I.35), còn vic tính toán các hàm truyn thì tng phí khá nhỏ.  
Mi lượt tính tng trong (I.35) cn đến mt phép nhân và mt phép cng, dn đến chi  
phí tính toán toàn bộ sẽ bng O(w).  
Vi tt cả w trọng số thì sẽ có w đạo hàm cn tính toán. Vi mi ln tính đạo  
m như vậy cn phải thc hin tìm biu thc hàm li, xác định công thc tính đạo  
18  
hàm và sau đó tính toán chúng theo giải thut lan truyn ngược, mi công việc đó sẽ  
đòi hỏi O(w) thao tác. Như vậy toàn bộ quá trình tính toán tt cả các đạo hàm sẽ tỉ lệ  
vi O(w2). Giải tht lan truyn ngược cho phép các đạo hàm được tính trong O(w) thao  
tác. Điều này ng dn đến rng cả hai pha lan truyn ngược và lan truyn tiến đều cn  
O(w) thao tác, vic tính đạo hàm theo công thc (I.43) ng cn O(w) thao tác.Như  
vy giải thut lan truyn ngược đã làm giảm độ phc tạp tính toán tO(w2) đến O(w)  
đối vi mi vector nhp. Vì quá trình luyn mạng, dù có sử dụng lan truyn ngược, có  
thcn rt nhiu thi gian, nên việc đạt được hiu quả như vậy là hết sc quan  
trọng.Vi tng sN mu luyn, slượng các bước tính toán để đánh giá hàm li trên  
toàn btp dliu sẽ là N ln bước tính toán của mt mu.  
2.2 Giới thiệu về PCA  
Phần này giúp người đọc hiểu được phép phân tích thành phần chính (PCA).  
PCA là một kỹ thuật hữu ích trong các ứng dụng nhận dạng mặt và nén ảnh, và là một  
kỹ thuật phổ biến để tìm mẫu trong các dữ liệu nhiều chiều[4].  
Trước khi đi vào tìm hiểu PCA, tôi xin giới thiệu về các khái niệm toán học sẽ  
được sử dụng trong PCA. Các khái niệm đó bao gồm: Độ lệch chuẩn (Standard  
deviation), phương sai (variance), hiệp phương sai (covariance), vec tơ riêng  
(eigenvector), giá trị riêng (eigenvalue).  
2.2.1 Một số khái niệm toán học  
2.2.1.1 Độ lệch chuẩn  
Để hiểu độ lệch chuẩn, chúng ta cần một tập dữ liệu. Giả sử ta có tập  
X = [1 2 4 6 12 15 25 45 68 67 65 98]  
X là ký hiệu đại diện cho tập số, mỗi số riêng biệt được ký hiệu Xi (Ví dụ X3 =  
4). Phần tử đầu tiên là X1 và n là số lượng phần tử của tập hợp. Khi đó trung bình của  
mẫu có công thức:  
Là ký hiệu trung bình của mẫu, tuy nhiên trung bình mẫu không nói lên  
được nhiều điều ngoại trừ cho ta biết nó là một điểm giữa. Ví dụ với 2 tập dữ liệu  
[0 8 12 20] và  
[8 9 11 12]  
19  
có trung bình mẫu bằng nhau nhưng lại khá khác nhau. Sự khác biệt ở đây chính là  
khoảng cách của dữ liệu. Và độ lệch chuẩn là đại lượng để đo khoảng cách này. Ta có  
thể hiêu độ lệch chuẩn là khoảng cách trung bình từ trung bình mẫu đến các điểm của  
dữ liệu. Ta có công thức:  
Tập hợp 1  
Tập hợp 2  
Ta có thể dễ dàng nhận thấy tập dữ liệu 1 có độ lệch chuẩn lớn hơn có khoảng  
cách lớn hơn tập dữ liệu 2.  
20  
2.2.1.2 Phương sai  
Phương sai là một đại lượng khác dùng để đo khoảng cách của dữ liệu. Ta có  
công thức:  
Dễ thấy phương sai chính là bình phương độ lệch chuẩn.  
2.2.1.3 Hiệp phương sai  
Ta thấy rằng 2 đại lượng độ lệch chuẩn và phương sai chỉ sử dụng được trong 1  
chiều. Trong thực tế dữ liệu có thể có rất nhiều chiều. Một ví dụ đơn giản ta có dữ liệu  
về cân nặng và điểm số của toàn bộ sinh viên trong lớp K51-KHMT. Đối với dữ liệu  
này, độ lệch chuẩn và phương sai chỉ tính được trên từng chiều riêng biệt và ta không  
thấy được mối liên hệ giữa 2 chiều này.  
Tương tự phương sai, hiệp phương sai là đại lượng đo sự biến thiên giữa 2  
chiều. Nếu tính hiệp phương sai giữa 1 chiều với chính nó ta được phương sai của  
chiều đó. Nếu tập dữ liệu có 3 chiều x, y, z ta có thể tính hiệp phương sai của từng cặp  
chiều (x, y), (y, z), (z, x). Công thức của hiệp phương sai tương tự công thức của  
phương sai. Công thức của phương sai được khai triển như sau:  
Và công thức của hiệp phương sai:  
Từ công thức hiệp phương sai ta thấy, nếu  
dương thì X, Y đồng  
biến,  
âm thì X, Y nghịch biến, nếu bằng 0 thì X, Y độc lập.  
21  
2.2.1.4 Ma trận hiệp phương sai  
Hiệp phương sai đó sự biến thiên giữa 2 chiều, do đó đối với tập dữ liệu có n  
chiều ta có  
giá trị hiệp phương sai khác nhau. Và để thuận tiện cho việc  
tính toán ta biểu diễn các giá trị này thông qua một ma trận gọi là ma trận hiệp phương  
sai. Định nghĩa của ma trận như sau:  
Trong đó  
là 1 ma trận với n hàng, n cột và Dimx là chiều thứ x. Ví dụ  
ma trận hiệp phương sai của 1 tập dữ liệu có 3 chiều x, y, z:  
2.2.2 Ma trận đại số  
Phần này giới thiệu về 2 khái niệm là nền tảng được sử dụng trong PCA đó là  
vectơ riêng (eigenvector) và giá trị riêng (eigenvalue).  
Hình 6: Ví dụ về 1 non-eigenvector và 1 eigenvector  
22  
Hình 7: Ví dụ về 1 eigenvector có tỉ lệ khác vẫn 1 là eigenvector  
2.2.3 Eigenvector (Vectơ riêng)  
Ta có thể nhân 2 ma trận với điều kiện kích cỡ phù hợp và eigenvector là 1  
trường hợp đặc biệt của phép nhân này. Quan sát 2 phép nhân ma trận với vector trên  
hình 3.1. Ở ví dụ thứ nhất vectơ kết quả không phải là một bội số của vectơ gốc trong  
khi ở ví dụ thứ 2 vectơ kết quả bằng 4 lần vectơ gốc. Ta thấy rằng vectơ  
(trong ví dụ 2) biểu diễn 1 mũi tên từ điểm (0, 0) đến điểm (3, 2) và ma trận còn lại  
được hiểu là ma trận chuyển đổi. Nếu ta nhân ma trận này về bên trái của vectơ thì  
vectơ mới nhận được chính là vectơ cũ bị tịnh tiến đi 1 lượng. Đó là tính biến đổi của  
vectơ riêng.  
Các tính chất của vectơ riêng:  
Chỉ các ma trận vuông (n x n) mới có vectơ riêng.  
Không phải mọi ma trận vuông đều có vectơ riêng.  
Nếu 1 ma trận vuông (n x n) có vectơ riêng thì sẽ có n vectơ riêng.  
Nếu nhân vectơ riêng với 1 số thì kết quả sau khi nhân với ma trận  
chuyển đổi, vectơ kết quả vẫn là vectơ ban đầu  
Tất cả các vectơ riêng của 1 ma trận đều trực giao với nhau  
2.2.4 Eigenvalue (Giá trị riêng)  
Giá trị riêng là một khái niệm liên quan chặt chẽ đến vectơ riêng. Thực tế chúng  
ta đã thấy 1 giá trị riêng trong hình 3.1. Chú ý trong cả 2 ví dụ trên, số được nhân với 2  
vectơ riêng bằng nhau và bằng 4. 4 được gọi là giá trị riêng ứng với 1 vectơ riêng (2  
23  

Tải về để xem bản đầy đủ

pdf 42 trang yennguyen 30/05/2025 120
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Nghiên cứu các thuật toán nhận dạng cảm xúc khuôn mặt trên ảnh 2D", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_nghien_cuu_cac_thuat_toan_nhan_dang_cam_xuc_khuon.pdf