ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỒ ÁN MÔN HỌC
MÁY HỌC VÀ ỨNG DỤNG
PHÂN LỚP CẢM XÚC MẶT NGƯỜI BẰNG
MẠNG NƠ-RON NHÂN TẠO
GV hướng dẫn: PGS. TS. Vũ Thanh Nguyên
HV thực hiện: Phan Thị Trinh
MSHV: CH1301067
Thành phố Hồ Chí Minh - 2014
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
MỤC LỤC
Trang
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 2
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
DANH MỤC CÁC BẢNG BIỂU
Trang
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 3
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Trang
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 4
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
1 CHƯƠNG 1
TỔNG QUAN
1.1. Giới thiệu
Nhận dạng mặt người được ứng dụng trong rất nhiều lĩnh vực như bảo mật,
chứng thực cá nhân, giao tiếp Internet và giải trí máy tính. Mặc dù nhận dạng mặt
người tự động đã được nghiên cứu rất sớm từ những năm 1960, bài toán này vẫn
còn nhiều vấn đề chưa được giải quyết. Những năm gần đây đã có những tiến bộ
đang kể trong lĩnh vực này nhờ sự cải tiến trong kỹ thuật phân tích và lấy mẫu
một cái máy. Tuy nhiên, với sức mạnh của các bộ vi xử lý ngày nay, đã cho phép
robot giao tiếp với con người theo một cách mới, đó là hình ảnh (thị giác) và âm
thanh. Trong tương lai, robot có thể “nhìn thấy” con người xung quanh nó và giao
tiếp lại một cách rất “người” như thể hiện cảm xúc, điệu bộ, … Do đó, nhiều dự án
ở nước ngoài đã được nghiên cứu nhằm điểu khiển robot có tính cách người hơn
(humanoid robot), nghĩa là robot có thể hiểu được cảm xúc và cử chỉ của con người.
Để thực hiện ý tưởng đó, đòi hỏi chúng ta phải tạo cho robot một hệ thống tự động
nhận biết cảm xúc mặt người. Ngoài ra, việc ứng dụng nhận dạng trạng thái con
người trong điều tra tội phạm cũng là vấn đề đáng được quan tâm. Hệ thống có thể
tự động nhận dạng mặt người trong một dòng video thực và tiếp tục nhận dạng
những cảm xúc của mặt người trong thời gian thực. Nói cách khác, hệ thống tự
động kiểm tra mặt người và nhận dạng ra các cảm xúc mặt người: bình thường
(neutral), buồn (sadness), vui (joy), giận dữ (angry), ngạc nhiên (surprise), sợ hãi
(fear), ghê tởm (disgust).
1.2. Bài toán nhận dạng biểu lộ cảm xúc khuôn mặt và những khó khăn
1.2.1. Bài toán nhận dạng biểu lộ cảm xúc khuôn mặt
Bài toán nhận dạng cảm xúc khuôn mặt yêu cầu như sau:
Nhập (Input): một bức ảnh hoặc một chuỗi các ảnh.
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 6
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
Xuất (Output): Cảm xúc của người có trong ảnh: bình thường (neutral), buồn
(sadness), vui (joy), giận dữ (angry), ngạc nhiên (surprise), sợ hãi (fear), ghê tởm
(disgust).
Hình 1.1. Ví dụ nhận diện cảm xúc mặt người
1.2.2. Những khó khăn của nhận dạng cảm xúc khuôn mặt
Bài toán nhận dạng cảm xúc mặt người dù đã được nghiên cứu từ những năm
70, nhưng kết quả đạt được vẫn còn hạn chế vì gặp rất nhiều khó khăn như:
a. Điều kiện chiếu sáng: Ảnh được chụp trong các điều kiện chiếu sáng
khác nhau sẽ gây khó khăn trong việc phân tích đặc trưng của ảnh.
b. Khuôn mặt có thêm nhiều thành phần khác: Các thành phần này có thể là
Định vị khuôn mặt là một pha xử lý để tự động tìm thấy những vùng có mặt
người từ một ảnh hoặc một chuỗi các ảnh liên tiếp. Nó có thể là một công cụ dò tìm
những khuôn mặt trong mỗi khung hình hoặc dò tìm khuôn mặt trong khuôn mặt
đầu tiên sau đó theo dõi khuôn mặtnày trong các khung hình còn lại của video.
Bước 2: Rút trích đặc trưng và biểu diễn lại dữ liệu về khuôn mặt
Khuôn mặt được định vị ở bước 1, bước tiếp theo rút trích và biểu diễn lại
những thay đổi của khuôn mặt gây ra bởi biểu lộ của khuôn mặt. Có 2 cách tiếp cận:
phương pháp dựa vào các đặc điểm hình học và phương pháp dựa vào diện mạo của
cả khuôn mặt.
- Phương pháp dựa vào đặc điểm hình học (Geometric feature-based
methods): dựa vào hình dạng và vị trí các thành phần cấu tạo nên khuôn
mặt(miệng, mắt, lông mày, mũi, trán, gò má), những thành phần này và
những điểm đặc trưng của khuôn mặt sẽ được rút trích và xây dựng nên một
vector đặc trưng biểu diễn cho khuôn mặt.
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 8
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
- Phương pháp dựa vào diện mạo của cả khuôn mặt (Appearance-base
methods): với phương pháp này thì các phương pháp lọc ảnh như là Gabor
wavelets được áp dụng trên toàn bộ mặt hoặc trên từng vùng của mặt để rút
ra các vector đặc trưng.
Bước 3:Phân lớp biểu lộ khuôn mặt
Dựa vào những đặc trưng ở bước 2, hệ thống sẽ thực hiện việc phân lớp biểu
lộ khuôn mặt : các phương pháp phân lớp thường được sử dụng ở bước này
như :mạng Nơ-ron, eigenface, Support Vector Machine (SVM), phân lớp Bayes, mô
hình Markov ẩn (HMM),….
1.4. Các ứng dụng
Bài toán nhận dạng cảm xúc mặt người có thể áp dụng rộng rãi trong nhiều
lĩnh vực khác nhau. Các ứng dụng của nhận dạng cảm xúc mặt người như sau:
- Hệ thống giao tiếp thông qua cảm xúc: Thông qua một số ký hiệu nháy mắt,
những người bị bại liệt có thể biểu lộ được những gì họ muốn, cái nhìn của
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
1) CHƯƠNG 2
RÚT TRÍCH ĐẶC TRƯNG CỦA KHUÔN MẶT
BẰNGPHƯƠNG PHÁP PHÂN TÍCH THÀNH PHẦN
CHÍNH
2.1.Thuật toán PCA (Principal Component Analysis)
2.1.1.Khái niệm PCA
Phương pháp PCA là phương pháp nhằm làm giảm số chiều của một tập các
vectơ sao cho vẫn đảm bảo được tối đa thông tin quan trọng nhất của tập dữ liệu
huấn luyện. Như vậy, phương pháp PCA tìm cách giữ lại những thành phần thống
kê quan trọng nhất của tập mẫu.
Về bản chất, PCA tìm một không gian mới theo hướng biến thiên mạnh nhất
của các vector trong không gian gốc. Và trong không gian mới người ta hi vọng
việc phân loại sẽ mang lại kết quả tốt hơn không gian ban đầu.
Ưu điểm của thuật toán PCA:
- Tìm được đặc tính tiêu biểu của đối tượng cần nhận dạng mà không cần phải
xác định các thành phần và mối quan hệ giữa các thành phần đó.
- Thực hiện tốt với các ảnh đầu vào có độ phân giải cao do PCA sẽ thu gọn
ảnh đầu vào thành một ảnh mới có kích thước nhỏ hơn nhiều.
- Khối lượng tính toán không nhiều
- PCA có tính mở nên có thể kết hợp với các phương pháp khác ( như mạng
nơ-ron, Support Vector Machine-SVM…) để mang lại hiệu quả nhận dạng
cao.
Nhược điểm của PCA:
- PCA phân loại theo chiều biến thiên lớn nhất của các vector, tuy nhiên không
phải lúc nào theo chiều này cũng mang lại hiệu quả cao nhất cho nhận dạng.
Đây là nhược điểm cơ bản của PCA
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 11
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
- PCA rất nhạy với nhiễu, vì vậy nhiệm vụ tiền xử lí (lọc nhiễu, chuẩn hóa…)
→ =
với k << n
Theo công thức
W = T * A (2.1)
Với T là một phép biến đổi tuyến tính, và là một ma trận kích thước k x n
11 12 13 1
21 22 23 2
1 2 3
n
n
k k k kn
t t t t
t t t t
T
t t t t
=
i i
x xΦ = −
(2.3)
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 12
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
- Bước 3: tạo thành ma trận NxM
1 2
]
M
Α =[ΦΦ Φ
(2.4)
- Bước 4: tính ma trận hiệp phương sai
1
1
M
T T
n n
i
C AA
M
=
= Φ Φ =
∑
(2.5)
- Bước 5: tính các trị riêng của C
1 2 n
λ > λ > > λ
- Bước 6: tính các vector riêng của C
1 2
, , ,
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
để nhận dạng, nên ta chỉ chọn K vector riêng ứng với K trị riêng lớn nhất để
tạo cơ sở U(
1 2
, , ,
k
u u u
) với K << N. Các vector
$
x x−
biểu diễn trong U là:
$
1
K
i i
i
x x b u
=
− =
∑
(2.7)
Khi đó U đã được giảm số chiều, và phép biến đổi tuyến tính R
N
→ R
K
là:
1
1
2
2
(2.8)
Trong bài toán nhận dạng, giả sử ảnh vào có kích thước 128 x 128 thì ma
trận hiệp phương sai C = A.A
T
có kích thước là 128
2
=16384, do đó khối lượng tính
toán sẽ rất lớn. Do đó thay vì tính trực tiếp các vector riêng từ C, ta có thể tính các
vector riêng của ma trận
C’ = A
T
.A (2.9)
C’ sẽ có kích thước là MxM (M là số mẫu). Ta sẽ chứng minh như sau: gọi
v
i
,δ
i
lần lượt là vector riêng và trị riêng của C’:
A
T
.A.v
i
= δ
i
.v
i
(2.10)
Nhân cả hai vế của (3.39) với A:
A.A
T
3.1.1. Giới thiệu chung
Mạng nơ-ron (Nơ-ron Networks) trong một vài năm trở lại đây đã được
nhiều người quan tâm và đã áp dụng thành công trong nhiều lĩnh vực khác nhau,
như tài chính, y tế, địa chất và vật lý. Thật vậy, bất cứ ở đâu có vấn đề về dự báo,
phân loại và điều khiển, mạng nơ-ron đều có thể ứng dụng được. Sự thành công
nhanh chóng của mạng nơ-ron có thể là do một số nhân tố chính sau:
Năng lực: mạng nơ-ron là những kỹ thuật mô phỏng rất tinh vi, có khả năng
mô phỏng các hàm cực kỳ phức tạp. Đặc biệt, mạng nơ-ron hoạt động phi tuyến.
Trong nhiều năm, mô hình tuyến tính là kỹ thuật được sử dụng rộng rãi trong hầu
hết các lĩnh vực, vì thế mô hình tuyến tính có tính chiến lược tối ưu hóa được biết
nhiều nhất.
Để sử dụng mạng nơ-ron, người sử dụng mạng nơ-ron thu thập các dữ liệu
đặc trưng, sau đó gọi các thuật toán huấn luyện để có thể tự học cấu trúc của dữ
liệu. Mạng nơ-ron dựa trên việc mô phỏng cấp thấp hệ thống nơ-ron sinh học.
Trong tương lai với sự phát triển mô phỏng nơ-ron sinh học, chúng ta có thể có loại
máy tính thông minh thật sự.
3.1.2. Mô hình của một nơ-ron nhân tạo
Mặc dù hiểu biết của con người về kiến trúc và hoạt động của não còn chưa đầy
đủ, người ta tạo ra được các máy có một số tính năng tương tự não nhờ mô phỏng
các đặc điểm:
1. Tri thức thu nhận được nhờ quá trình học
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 16
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
2. Tính năng có được nhờ kiến trúc mạng và tính chât kết nối
Các loại mô phỏng này có tên chung là mạng nơ-ron nhân tạo hay gọn hơn mạng
nơ-ron và viết tắt là ANN hoặc gọn hơn là NN. Trong ứng dụng chúng thường được
tích hợp với các hệ khác.
Đặc điểm chính của ANN
1. Phi tuyến. Cho phép xử lý phi tuyến:
2. Cơ chế ánh xạ vào → ra (x → d(x)) cho phép học có giám sát
vi biên độ cho phép của tín hiệu đầu ra trong một khoảng giá trị hữu hạn. Mô hình
nơ-ron trong hình còn bao gồm một hệ số hiệu chỉnh tác động từ bên ngoài b
k
. Hệ
số hiệu chỉnh có tác dụng tăng lên hoặc giảm đi đầu vào thực của hàm kích hoạt, tùy
theo nó dương hay âm.
Hình 3.4. Mô hình phi tuyến tính của nơ-ron.
Dưới dạng công thức toán học, chúng ta có thể mô tả một nơ-ron k bằng cặp
công thức sau:
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 18
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
0
m
k kj j
j
u w x
=
=
∑
với
0
0
1
w
k k
x
b
= +
Trong công thức, chúng ta đã thêm một kết nối mới. Đầu vào của nó là
0
1x = +
(3.16)
Và trọng số của nó là
0k k
w b=
(3.17)
Như vậy chúng ta vẽ lại mô hình của nơ-ron k như hình dưới. Trong hình
này, nhiệm vụ của hệ số hiệu chỉnh là thực hiện hai việc: thêm một tín hiệu đầu vào
cố định là 1 và thêm một trọng số kết nối mới bằng giá trị của hệ số b. Mặc dầu các
mô hình trong hai hình là khác nhau về hình thức nhưng tương tự về bản chất toán
học.
3.1.3. Các kiểu hàm kích hoạt
Hàm kích hoạt, ký hiệu bởi
ϕ
(v), xác định đầu ra của nơ-ron. Dưới đây là
các kiểu hàm kích hoạt cơ bản:
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 19
1 neu v≥ 0
0 neu v< 0
ϕ
1 neu vk≥ 0
0 neu vk< 0
yk=
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
3.1.3.1. Hàm ngưỡng:
Đối với loại hàm này, chúng ta có:
(3.18)
Trong các tài liệu kỹ thuật, dạng hàm ngưỡng này thường được gọi là hàm
2
v
v v v
v
ϕ
≥ +
= + ≥ > −
≤ −
(3.21)
Dạng hàm này có thể được xem như một xấp xỉ của một bộ khuếch đại phi tuyến.
3.1.3.3. Hàm sigma:
Hàm sigma là dạng chung nhất của hàm kích hoạt được sử dụng trong cấu trúc
mạng nơ-ron nhân tạo. Nó là một hàm tăng và nó thể hiện một sự trung gian giữa
tuyến tính và phi tuyến. Một ví dụ của hàm này là hàm logistics xác định như sau:
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 21
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
1
( )
1 exp( )
v
av
− <
(3.23)
Hàm này thường được gọi là hàm signum. Với dạng tương ứng cho hàm sigma
chúng ta có thể sử dụng hàm tang hyperbol như sau
( ) tanh( )v v
ϕ
=
(3.24)
Việc cho phép một hàm kích hoạt kiểu sigma nhận các giá trị âm như trong công
thức trên đem lại nhiều lợi ích về giải tích.
3.1.4. Phản hồi (feedback)
Sự phản hồi có mặt trong một hệ thống bất kỳ khi nào đầu ra của một phần
tử trong hệ thống có ảnh hưởng đến đầu vào của phần tử đó, tức là sẽ có một hay
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 22
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
nhiều đường đi khép kín trong việc truyền tín hiệu của hệ thống. Phản hồi xảy ra
hầu như mọi nơi của hệ thống thần kinh động vật. Hơn nữa, nó đóng một vai trò
chính trong việc nghiên cứu một lớp quan trọng của mạng neuron đó là các mạng
hồi quy (recurrent network). Hình4.4 (a) cho ta đồ thị luồng tín hiệu của một hệ
thống phản hồi đơn- vòng lặp, ở đó tín hiệu đầu vào
( )
j
x n
, và tín hiệu đầu ra
( )
k
y n
là các hàm của biến thời gian rời rạc n. Hệ thống được giả định là tuyến tính, bao
l
y n w x n l
∞
+
=
= −
∑
(3.27)
Chúng ta coi A/(1-AB) là toán tử đóng vòng lặp (closed-loop operator) của
hệ thống, và AB như toán tử mở vòng lặp (open- loop operator). Nói chung, toán tử
mở vòng lặp là không giao hoán (AB
≠
BA).
Hình 3.6.Đồ thị luồng tín hiệu của một hệ thống phản hồi vòng lặp đơn.
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 23
Giảng viên hướng dẫn: PGS. TS. VŨ THANH NGUYÊN Máy học và ứng dụng
Xem xét ví dụ hệ thống phản hồi đơn vòng lặp trong hình 4.4 (b), với A là
một trọng số có định w, và B là một toán tử đơn vị trễ z
-1
, mà đầu ra của nó trễ so
với đầu vào một đơn vị thời gian. Như vậy chúng ta có thể biểu diễn toán tử đóng
vòng lặp của hệ thống như sau:
1 1
1
(1 )
1 1
A w
w wz
AB wz
− −
l
k
l
y n w z
∞
−
=
=
∑
(3.30)
Từ định nghĩa của z
-1
chúng ta có
1
[ ( )] ( )
j j
z x n x n l
−
= −
(3.31)
ở đó
( )
j
x n l−
là một mẫu của tín hiệu đầu vào và đã bị trễ l đơn vị thời gian. Chúng
ta có thể biểu diễn tín hiệu đầu ra
( )
k
y n
như một phép tính tổng các mẫu hiện tại và
là phân kỳ, nghĩa là hệ thống không ổn định.
Nếu |w| =1 thì sự phân kỳ là tuyến tính, và nếu |w|>1 thì sự phân kỳ có dạng hàm
mũ.
Tính ổn định luôn rất quan trọng trong việc nghiên cứu các hệ thống hồi quy.
Trường hợp |w| <1 tương ứng với một hệ thống có một bộ nhớ vô hạn theo nghĩa là
đầu ra của hệ thống phụ thuộc vào các mẫu của đầu vào mở rộng vô hạn về quá
khứ. Hơn nữa, bộ nhớ là suy giảm dần tức là ảnh hưởng của một mẫu quá khứ giảm
theo hàm mũ của thời gian.
3.1.5. Kiến trúc mạng Nơ-ron:
Trong bộ não con người, các tế bào thần kinh liên kết với nhau thông qua các
kết nối thần kinh tạo thành những mạng lưới với kiến trúc vô cùng phức tạp và đa
dạng. Đối với mạng Neuron nhân tạo, chúng ta có ba lớp kiến trúc cơ bản sau:
3.1.5.1. Các mạng tiến (FeedForward) đơn mức:
Trong một mạng Neuron phân mức, các neuron được tổ chức dưới dạng các
mức. Với dạng đơn giản nhất của phân mức, chúng ta có một mức đầu vào gồm các
nút nguồn chiếu trực tiếp tới các mức đầu ra gồm các neu (các nút tính toán). Như
vậy, mạng thực sự là không có chu trình. Nó được minh họa trong hình 3.5 dưới cho
trường hợp ba nút với cả mức đầu ra và mức đầu vào. Một mạng như vậy được gọi
là mạng đơn mức. “Đơn mức” tức là chỉ có một mức, chính là mức đầu ra gồm các
nút tính toán (các neuron). Chúng ta không tính mức đầu vào của các nút nguồn vì
không có tính toán nào được thực hiện ở đây.
Học viên thực hiện: PHAN THỊ TRINH – CH1301067, Lớp Cao học khóa 8, ĐHCNTT Trang 25