Tải bản đầy đủ (.pdf) (41 trang)

Nghiên cứu về thuật toán logistic regression trong học máy và ứng dụng phân biệt giới tính dựa vào ảnh khuôn mặt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.58 MB, 41 trang )

PHẠM VIỆT LINH

TRƯỜNG ĐẠI HỌC VINH

NGHIÊN CỨU VỀ THUẬT TOÁN LOGISTIC REGRESSION TRONG HỌC MÁY
VÀ ỨNG DỤNG PHÂN BIỆT GIỚI TÍNH DỰA VÀO ẢNH KHN MẶT
KHĨA 24

PHẠM VIỆT LINH

NGHIÊN CỨU VỀ THUẬT TOÁN LOGISTIC REGRESSION TRONG
HỌC MÁY VÀ ỨNG DỤNG PHÂN BIỆT GIỚI TÍNH DỰA VÀO ẢNH
KHN MẶT

LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN

VĨNH LONG, 7/2018
1


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC VINH

PHẠM VIỆT LINH

LUẬN VĂN THẠC SỸ
Chuyên ngành: Công nghệ thông tin
Mã ngành: 8.48.02.01

NGHIÊN CỨU VỀ THUẬT TOÁN LOGISTIC REGRESSION
TRONG HỌC MÁY VÀ ỨNG DỤNG PHÂN BIỆT GIỚI TÍNH


DỰA VÀO ẢNH KHN MẶT

Người hướng dẫn: TS. TRẦN XUÂN SANG

VĨNH LONG, tháng 7/2018


LỜI CẢM ƠN
Trƣớc tiên, tơi xin bày tỏ lịng biết ơn chân thành và sâu sắc nhất tới Thầy
TS Trần Xn Sang đã tận tình hƣớng dẫn tơi trong suốt suốt q trình thực hiện
đề tài.
Tơi xin gửi lời cảm ơn sâu sắc tới quý Thầy Cô trong khoa công nghệ thông
tin trƣờng Đại học Vinh đã truyền đạt kiến thức quý báu cho tôi trong 2 năm học
vừa qua.
Tôi xin gửi lời cảm ơn các anh chị trong nhóm của anh Vũ Hữu Tiệp về
Machine Learning cơ bản. Nhiệt tình giúp đỡ trong q trình tơi làm luận văn.
Xin chân thành cảm ơn các anh chị và bạn bè, đặc biệt là các thành viên
trong lớp K24 Vĩnh Long đã ủng hộ, giúp đỡ và động viên tôi trong suốt thời
gian học tập vừa qua.
Mặc dù đã cố gắng hoàn thành luận văn trong phạm vi và khả năng cho
phép nhƣng chắc chắn sẽ không tránh khỏi những thiếu sót. Tơi kính mong nhận
đƣợc sự cảm thơng và tận tình chỉ bảo của q Thầy Cơ và các bạn.
Tơi xin chân thành cảm ơn!

Vĩnh Long, ngày 4 tháng 06 năm 2018
Học Viên

Phạm Việt Linh

1



LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là do tự bản thân thực hiện và là sản phẩm
của riêng tôi. Các số liệu và tài liệu trong luận văn là trung thực, các tin thứ cấp
sử dụng trong luận văn là có nguồn gốc và đƣợc trích dẫn rõ ràng.
Tơi hồn tồn chịu trách nhiệm về tính xác thực và nguyên bản của luận
văn.
Tác giả

Phạm Việt Linh

2


MỤC LỤC

LỜI CẢM ƠN ................................................................................................... 1
LỜI CAM ĐOAN ............................................................................................. 2
MỤC LỤC ......................................................................................................... 3
DANH MỤC CÁC TỪ VIẾT TẮT .................................................................. 5
MỞ ĐẦU ........................................................................................................... 6
CHƢƠNG 1....................................................................................................... 9
BÀI TOÁN PHÂN LỚP TRONG HỌC MÁY................................................. 9
1.1 Giới thiệu................................................................................................. 9
1.2 Các bƣớc thực hiện................................................................................ 10
1.3 Một số thuật toán ................................................................................... 11
1.1.3 Phân loại Bayes (Naive Bayes Classification) ............................... 11
1.1.3 Hồi quy logistic (Logistic Regression) .......................................... 11
1.1.3 Support Vector Machines (SVM) .................................................. 12

1.1.3 Phân tích thành phần chính (PCA)................................................. 12
1.4 Bài tốn nhận dạng giới tính dựa vào ảnh khuôn mặt .......................... 13
1.4.1 Giới thiệu bài tốn .......................................................................... 13
1.4.2 Giới thiệu mơ hình phân lớp .......................................................... 13
1.4.3 Tình hình nghiên cứu trong nƣớc................................................... 14
1.4.4 Tình hình nghiên cứu ngoài nƣớc .................................................. 14
CHƢƠNG 2..................................................................................................... 15
HỆ THỐNG PHÂN BIỆT GIỚI TÍNH DỰA VÀO ẢNH KHN MẶT .... 15
2.1 Thuật toán Logistic Regression............................................................. 15
2.2 Một số ứng dụng của thuật toán Logistic Regression ........................... 23
2.3 Hƣớng tiếp cận xây dựng hệ thống ....................................................... 24
2.4 Tiền xử lý .............................................................................................. 24
2.5 Trích chọn đặc trƣng của ảnh khn mặt bằng PCA ............................ 24
CHƢƠNG 3..................................................................................................... 32
THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ ................................................. 32
3.1 Dữ liệu thử nghiệm ............................................................................... 32
3.2 Thử nghiệm với lập trình Python .......................................................... 32
KẾT LUẬN ................................................................................................. 38
TÀI LIỆU THAM KHẢO ........................................................................... 39

3


DANH MỤC HÌNH ẢNH
Hình 2.1 Ví dụ về kết quả thi dựa trên số giờ ơn tập ................................................ 18
Hình 2. 2 Các activation function khác nhau............................................................ 18
Hình 2. 3 Tại sao Linear Regression khơng phù hợp? ............................................. 19
Hình 2. 4 Dữ liệu và hàm sigmoid tìm được. ............................................................ 20
Hình 2.5 Hai class với dữ liệu hai chiều. .................................................................. 20
Hình 2. 6 Hàm sigmoid với dữ liệu có chiều là 2. .................................................... 21

Hình 2. 7 Logistic Regression với dữ liệu hai chiều. ................................................ 21
Hình 2.8 Ảnh đầu vào................................................................................................ 26
Hình 3. 1 Các ví dụ mẫu trong AR Face database thu gọn ...................................... 32
Hình 3. 2 Ví dụ về kết quả tìm được bằng Logistic Regression ................................ 37

4


DANH MỤC CÁC TỪ VIẾT TẮT
Thuật ngữ

Viết tắt

Machine Learning

ML

Support Vector Machine

SVM

Principal Component Analysis

PCA

5


MỞ ĐẦU
1. Sự cần thiết của vấn đề nghiên cứu

Machine learning là một phƣơng pháp phân tích dữ liệu mà sẽ tự động hóa
việc xây dựng mơ hình phân tích. Sử dụng các thuật toán lặp để học từ dữ liệu,
machine learning cho phép máy tính tìm thấy những thơng tin giá trị ẩn sâu mà
khơng đƣợc lập trình một cách rõ ràng nơi để tìm.
Khía cạnh lặp lại của machine learning là quan trọng bởi vì khi các mơ hình
này đƣợc tiếp xúc với dữ liệu mới thì chúng có thể thích ứng một cách độc lập.
Chúng học từ các tính tốn trƣớc đó để tạo ra những quyết định cũng nhƣ kết quả
lặp lại và đáng tin cậy. Đó là một ngành khoa học khơng mới - nhƣng hiện nay đang
dành đƣợc nhiều mối quan tâm để phát triển bùng nổ. Những ứng dụng của
Machine learning trong đời sống hàng ngày nhƣ:


Phát hiện gian lận.



Các kết quả tìm kiếm trên web.



Quảng cáo theo thời gian thực trên các trang web và các thiết bị di động.



Phân tích tình cảm dựa trên văn bản.



Điểm số tín dụng và lời mời chào tiếp theo tốt nhất.




Dự đoán những hƣ hỏng của thiết bị.



Những mơ hình định giá mới.



Phát hiện xâm nhập mạng.



Nhận dạng qua pattern (mẫu) và hình ảnh.



Lọc bỏ các email spam.

Một ứng dụng phổ biến của machine learning hiện nay là việc nhận dạng
pattern (mẫu) bởi vì nó có thể đƣợc sử dụng để nhận ra nhiều loại hình ảnh khác

6


nhau. Ví dụ, Bƣu điện Mỹ sử dụng machine learning để nhận dạng chữ viết
tay. Cảnh sát nhận dạng đối tƣợng tình nghi qua hình dạng, khn mặt.
Các thuật tốn học máy đƣợc ứng dụng trong các bài toán nhận dạng nhƣ nhận dạng
khuôn mặt, nhận dạng ký tự, nhận dạng chữ ký, nhận dạng ký tụ viết tay, nhận dạng

thƣ rác… bằng các thuật toán học máy nhƣ hồi quy tuyến tính, cây quyết định, hồi
quy ridge, K Nearest Neighbor…. [1].
Nhận dạng khuôn mặt đang đƣợc ứng dụng trong nhiều lĩnh vực thƣơng mại,
bảo mật, phát hiện tội phạm. Có rất nhiều phƣơng pháp nhận dạng khác nhau đƣợc
xây dựng để nhận dạng một ngƣời trên thế giới. Tuy nhiên việc nhận dạng đƣợc một
ngƣời trong thế giới bao la là một việc vơ cùng khó khăn bởi vậy để nhận dạng
đƣợc ta phải xây dựng một cơ sở dữ liệu đủ lớn mới có thể nhận dạng đƣợc với độ
chính xác cao trong khoảng thời gian ngắn nhất. Muốn thực hiện đƣợc với độ chính
xác cao trong thời gian ngắn nhất ta có thể tích hợp nhận diện giới tính dựa vào ảnh
khn mặt [1].
2. Mục tiêu nghiên cứu
2.1. Mục tiêu tổng quát
Nghiên cứu về thuật toán Logistic Regression trong học máy và ứng dụng để
giải quyết bài tốn phân biệt giới tính dựa vào ảnh khn mặt.
2.2. Mục tiêu cụ thể
Đề tài tập trung vào 3 mục tiêu chính sau:
-

Nghiên cứu về thuật tốn Logistic Regression trong học máy .

-

Nghiên cứu trích chọn đặc trƣng của ảnh khn mặt.

- Nghiên cứu và cài đặt thuật tốn Logistic Regression trong python để phân
biệt giới tính dựa vào ảnh khuôn mặt; so sánh và đánh giá hiệu quả của các thuật
toán tỷ lệ nhận dạng.
3. Đối tượng và phạm vi nghiên cứu

7



3.1. Đối tượng nghiên cứu
3.1.1. Nghiên cứu lý thuyết
- Nghiên cứu các tài liệu về bài toán nhận dạng mặt ngƣời đã cơng bố ở trong
và ngồi nƣớc;
- Nghiên cứu tài liệu về trích chọn đặc trƣng ảnh khn mặt cho hệ thống nhận
dạng.
- Nghiên cứu về thuật toán Logistic Regression trong học máy để ứng dụng
phân biệt giới tính dựa vào ảnh khuôn mặt.
3.1.2. Nghiên cứu thực nghiệm
- Nghiên cứu xây dựng cơ sở dữ liệu thuật toán Logistic Regression trong học máy
- Nghiên cứu ngơn lập trình python và cài đặt để ứng dụng phân biệt giới tính dựa
vào ảnh khn mặt.
3.2 Phạm vi nghiên cứu
Bài tốn phân biệt giới tính dựa vào ảnh khn mặt.có thể đƣợc thực hiện bằng
các thuật toán nhận dạng khác nhau nhƣ Linear Regression và Perceptron Learning
Algorithm (PLA) Trong phạm vi luận văn này, chúng tơi tập trung giải quyết bài
tốn sử dụng thuật toán Logistic Regression.
4. Nội dung nghiên cứu
- Nghiên cứu tổng quan về bài toán phân lớp.
- Nghiên cứu các thuật toán tiền xử lý để nâng cao chất lƣợng ảnh.
- Nghiên cứu các phƣơng pháp để trích chọn đặc trƣng của ảnh mặt ngƣời.
- Nghiên cứu thuật toán Logistic Regression.
- Nghiên cứu ngơn ngữ lập trình python để cài hệ thống nhận dạng.

8


CHƯƠNG 1

BÀI TOÁN PHÂN LỚP TRONG HỌC MÁY
1.1 Giới thiệu
Bài toán phân lớp (classification) và bài toán gom cụm (cluster) là hai bài toán
lớn trong lĩnh vực Machine Learnig (ML). Bài tốn phân lớp là q trình phân lớp
một đối tƣợng dữ liệu vào một hay nhiều lớp đã cho trƣớc nhờ một mơ hình phân
lớp (model). Mơ hình này đƣợc xây dựng dựa trên một tập dữ liệu đƣợc xây dựng
trƣớc đó có gán nhãn (hay cịn gọi là tập huấn luyện). Quá trình phân lớp là quá
trình gán nhãn cho đối tƣợng dữ liệu.
Nhƣ vậy, nhiệm vụ của bài tốn phân lớp là cần tìm một mơ hình phần lớp để
khi có dữ liệu mới thì có thể xác định đƣợc dữ liệu đó thuộc vào phân lớp nào. Có
nhiều bài tốn phân lớp dữ liệu nhƣ phân lớp nhị phân (binary), phân lớp đa lớp
(multiclass), phân lớp đa trị.
Bài toán phân lớp nhị phân là bài toán gắn nhãn dữ liệu cho đối tƣợng vào một
trong hai lớp khác nhau dựa vào việc dữ liệu đó có hay khơng có các đặc trƣng
(feature) của bộ phân lớp
Bài tốn phân lớp đa lớp là q trình phân lớp dữ liệu với số lƣợng lớp lớn hơn
hai. Nhƣ vậy với từng dữ liệu chúng ta phải xem xét và phân lớp chúng vào những
lớp khác nhau chứ không phải là hai lớp nhƣ bài toán phân lớp nhị phân. Và thực
chất bài toán phân lớp nhị phân là một bài toán đặt biệt của phân lớp đa lớp.
Ứng dụng của bài toán này đƣợc sử dụng rất nhiều và rộng rãi trong thực tế ví
dụ nhƣ bài tốn nhận dạng khn mặt, nhận diện giọng nói, phát hiện email
spam…
Và đối với các bài toán phân lớp dữ liệu chúng ta sử dụng các thuật tốn học
có giám sát (supervised learning) để xây dựng mơ hình cho bài tốn này. Sau đây
chúng ta sẽ tìm hiểu khái quát về quá trình phân lớp dữ liệu và sơ bộ về các phƣơng
pháp phân lớp sử dụng trong bài toán này.

9



1.2 Các bước thực hiện
Để xây dựng đƣợc mơ hình phân lớp và đánh giá đƣợc mơ hình chúng ta phải
trải quá các quá trình nhƣ dƣới đây:
Bước 1: Chuẩn bị tập dữ liệu huấn luyện (dataset) và rút trích đặc trưng
(feature extraction)
Công đoạn này đƣợc xem là công đoạn quan trọng trong các bài tốn về
Machine Learning. Vì đây là input cho việc học dể tìm ra mơ hình của bài toán.
Chúng ta phải biết cần chọn ra những đặt trƣng tốt (good features) của dữ liệu, lƣợc
bỏ những đặc trƣng không tốt của dữ liệu, gây nhiễu (noise). Ƣớc lƣợng số chiều
của dữ liệu bao nhiêu là tốt hay nói cách khác là chọn bao nhiêu feature. Nếu số
chiều q lớn gây khó khăn cho việc tính tốn thì phải giảm số chiều của dữ liệu
nhƣng vẫn giữ đƣợc độ chính xác của dữ liệu (reduce demension).
Ở bƣớc này chúng ta cũng chuẩn bị bộ dữ liệu để test trên mơ hình. Thơng
thƣờng sẽ sử dụng cross-validation (kiểm tra chéo) để chia tập datasets thành hai
phần, một phần phục vụ cho training (training datasets) và phần còn lại phục vụ
cho mục đích testing trên mơ hình (testing dataset). Có hai cách thƣờng sử dụng
trong cross-validation là splitting và k-fold.
Bước 2: Xây dựng mơ hình phân lớp (classifier model)
Mục đích của mơ hình huấn luyện là tìm ra hàm f(x) và thơng qua hàm f tìm
đƣợc để chúng ta gán nhãn cho dữ liệu. Bƣớc này thƣờng đƣợc gọi là học hay
training.
f(x) = y Trong đó: x là các feature hay input đầu vào của dữ liệu còn y là nhãn
lớp hay output đầu ra.
Thông thƣờng để xây dựng mơ hình phân lớp cho bài tốn này chúng ta sử
dụng các thuật toán học giám sát (supervised learning) nhƣ KNN, Neural Network,
Support Vector Machines (SVM), Decision Tree, Navie Bayers.
Bước 3: Kiểm tra dữ liệu với mơ hình (make prediction)

10



Sau khi đã tìm đƣợc mơ hình phân lớp ở bƣớc 2, thì ở bƣớc này chúng ta sẽ
đƣa vào các dữ liệu mới để kiểm tra trên mơ hình phân lớp.
Bước 4: Đánh giá mơ hình phân lớp và chọn ra mơ hình tốt nhất
Bƣớc cuối cùng chúng ta sẽ đánh giá mơ hình bằng cách đánh giá mức độ lỗi
của dữ liệu testing và dữ liệu traning thông qua mơ hình tìm đƣợc. Nếu khơng đạt
đƣợc kết quả mong muốn của chúng ta thì phải thay đổi các tham số (turning
parameter) của các thuật tốn học để tìm ra các mơ hình tốt hơn và kiểm tra, đánh
giá lại mơ hình phân lớp. Và cuối cùng chọn ra mơ hình phân lớp tốt nhất cho bài
tốn của chúng ta.
1.3 Một số thuật toán
1.3.1 Phân loại Bayes (Naive Bayes Classification)
Phân loại Bayes là một nhóm các phân loại xác suất đơn giản dựa trên việc áp
dụng định lý Bayes với các giả định độc lập (naive) giữa các đặc tính.
Trong đó:
P(A|B) là xác suất có điều kiện A khi biết B, P(A) là xác suất giả thuyết A (tri
thức có đƣợc về giải thuyết A trƣớc khi có dữ liệu B), P(B|A) là xác suất có điều
kiện B khi biết giả thuyết A, P(B) là xác suất của dữ liệu quan sát B không quan tâm
đến bất kỳ giả thuyết A nào. Thuật toán này đƣợc áp dụng trong một số bài toán nhƣ:
Đánh dấu một email là spam hay không. Phân loại bài viết tin tức thuộc lĩnh
vực cơng nghệ, chính trị hay thể thao. Kiểm tra một đoạn văn bản mang cảm xúc
tích cực hay tiêu cực. Sử dụng cho các phần mềm nhận diện khuôn mặt.
1.3.2 Hồi quy logistic (Logistic Regression)
Hồi quy logistic là một cách thống kê mạnh mẽ để mơ hình hóa một kết quả nhị
thức với một hoặc nhiều biến giải thích. Nó đo lƣờng mối quan hệ giữa biến phụ
thuộc phân loại và một hoặc nhiều biến độc lập bằng cách ƣớc tính xác suất sử dụng
một hàm logistic, là sự phân bố tích lũy logistic.

11



Thuật toán này đƣợc sử dụng trong một số trƣờng hợp:
-

Điểm tín dụng (quyết định có cho khách hàng vay vốn hay không)

-

Đo mức độ thành công của chiến dịch marketing

-

Dự đoán doanh thu của một sản phẩm nhất định

-

Dự đoán động đất

1.3.3 Support Vector Machines (SVM)
SVM là phƣơng pháp phân loại nhị phân. Cho một tập các điểm thuộc 2 loại
trong mơi trƣờng N chiều, SVM cố gắng tìm ra N-1 mặt phẳng để phân tách các
điểm đó thành 2 nhóm.
Ví dụ, cho một tập các điểm thuộc 2 loại nhƣ hình bên dƣới, SVM sẽ tìm ra
một đƣờng thẳng nhằm phân cách các điểm đó thành 2 nhóm sao cho khoảng cách
giữa đƣờng thẳng và các điểm xa nhất có thể.
Xét về quy mơ, một số vấn đề lớn nhất đã đƣợc giải quyết bằng cách sử dụng
SVM (với việc thực hiện sửa đổi phù hợp) ví dụ nhƣ hiển thị quảng cáo, phát hiện
giới tính dựa trên hình ảnh, phân loại hình ảnh có quy mơ lớn ...
1.3.4 Phân tích thành phần chính (Principal Component Analysis - PCA)
PCA là một thuật toán thống kê sử dụng phép biến đổi trực giao để biến đổi

một tập hợp dữ liệu từ một không gian nhiều chiều sang một không gian mới ít chiều
hơn (2 hoặc 3 chiều) nhằm tối ƣu hóa việc thể hiện sự biến thiên của dữ liệu.
Phép biến đổi tạo ra những ƣu điểm sau đối với dữ liệu:
Giảm số chiều của không gian chứa dữ liệu khi nó có số chiều lớn, khơng thể
thể hiện trong không gian 2 hay 3 chiều.
Xây dựng những trục tọa độ mới, thay vì giữ lại các trục của khơng gian cũ,
nhƣng lại có khả năng biểu diễn dữ liệu tốt tƣơng đƣơng, và đảm bảo độ biến thiên
của dữ liệu trên mỗi chiều mới.
Tạo điều kiện để các liên kết tiềm ẩn của dữ liệu có thể đƣợc khám phá trong
không gian mới, mà nếu đặt trong không gian cũ thì khó phát hiện vì những liên kết
này không thể hiện rõ.

12


Đảm bảo các trục tọa độ trong không gian mới luôn trực giao đôi một với
nhau, mặc dù trong không gian ban đầu các trục có thể khơng trực giao.
Một số ứng dụng của PCA bao gồm nén, đơn giản hóa dữ liệu để dễ dàng học
tập, hình dung. Lƣu ý rằng kiến thức miền là rất quan trọng trong khi lựa chọn có
nên tiếp tục với PCA hay khơng. Nó khơng phù hợp trong trƣờng hợp dữ liệu bị
nhiễu. [1]
1.4 Bài tốn nhận dạng giới tính dựa vào ảnh khn mặt
1.4.1 Giới thiệu bài tốn
Bài tốn nhận dạng giới tính dựa vào ảnh khn mặt thực ra là bài tốn phân
loại nhị phân cịn đƣợc gọi là binary classification nếu các label của input
data đƣợc chia thành một số hữu hạn nhóm. Ví dụ nhƣ ảnh đầu vào là nam hay nữ;
Gmail xác định xem một email có phải là spam hay khơng; các hãng tín dụng xác
định xem một khách hàng có khả năng thanh tốn nợ hay khơng. Ba ví dụ phía trên
đƣợc chia vào loại này.
1.4.2 Giới thiệu mơ hình phân lớp

Hai mơ hình tuyến tính (linear models) Linear Regression và Perceptron
Learning Algorithm (PLA) chúng ta đã biết đều có chung một dạng: y=f(wTx) với
f(s) là một hàm kích hoạt. Với f(s)=s trong Linear Regression, và f(s)=sgn(s) trong
PLA. Trong linear regression, tích vơ hƣớng wTx đƣợc trực tiếp sử dụng để dự đoán
output y, loại này phù hợp nếu chúng ta cần dự đoán một giá trị thực của đầu ra
không bị chặn trên và dƣới. Trong PLA, đầu ra chỉ nhận một trong hai giá
trị 1 hoặc −1, phù hợp với các bài toán binary classification. Ví dụ: xác suất là nam
nếu biết ảnh đầu vào, xác suất thi đỗ nếu biết thời gian ôn thi, xác suất ngày mai có
mƣa dựa trên những thơng tin đo đƣợc trong ngày hơm nay,… Mơ hình mới này
của chúng ta có tên là logistic regression. Mơ hình này giống với linear regression ở
khía cạnh đầu ra là số thực, và giống với PLA ở việc đầu ra bị chặn (trong

13


đoạn [0,1][0,1]). Mặc dù trong tên có chứa từ regression, logistic regression thƣờng
đƣợc sử dụng nhiều hơn cho các bài tốn classification.
1.4.3 Tình hình nghiên cứu trong nước
Có rất nhiều luận văn, đề tài viết về nhận dạng nhƣ nhận dạng khuôn mặt, nhận
dạng biển số xe, nhận dạng ký tự, nhận dạng ký tự viết tay, nhận dạng chữ ký, nhận
dạng vân tay... Một số luận văn đã đƣợc báo cáo và thông qua nhƣ nhận dạng khuôn
mặt của Mai Hữu Lợi Trƣờng Đại học Sƣ phạm Kỹ thuật Tp.Hồ Chí Minh, 2011,
Giải pháp nhận dạng mặt ngƣời dùng Gabor Wavelets (face recognition algorithm
using gabor wavelets): Luận văn thạc sĩ/ Võ Thiện Lĩnh. TP.Hồ Chí Minh: Trƣờng
đại học sƣ phạm kỹ thuật, 2009, nhận dạng khuôn mặt sử dụng phƣơng pháp biên
đổi EIGENFACES và mạng Nơron của Trƣơng Công Lợi chuyên nghành khoa học
máy tính ở Đà Nẵng năm 2013.
1.4.4 Tình hình nghiên cứu ngồi nước
Có rất nhiều đề tài nghiên cứu về lĩnh vực này thậm chí có một số ngƣời nghiên
cứu nhận dạng giới tính thứ 3 dựa vào ảnh khuôn mặt nhƣng đặc biệt là 2 hãng công

nghệ lớn Microsoft và facebook đã cho ra đời ứng dụng dự đốn giới tính và tuổi
dựa trên khn mặt đƣợc nhiều ngƣời sử dụng thích thú.

14


CHƯƠNG 2
HỆ THỐNG PHÂN BIỆT GIỚI TÍNH DỰA VÀO ẢNH KHN MẶT
2.1 Thuật tốn Logistic Regression
Hàm logistic đƣợc phát minh khoảng 1844 bởi một nhà toán học ngƣời Pháp,
và sau đó đƣợc phát minh lại vào khoảng 1920, tức là trƣớc cả thời đại của khoa học
máy tính. Mặc dù vậy, hàm logistic đƣợc sử dụng rộng rãi trong các thuật toán máy
học nhƣ logistic regression, neural network… Bài này chỉ ra ý nghĩa đằng sau hàm
logistic trong ngữ cảnh logistic regression.
2.1.1 Tổng quan
Trong cơng trình gốc, hàm logistic đƣợc định nghĩa là lời giải của phƣơng trình vi
phân sau:
d
 (t )   (t )(1   (t ))
dt

với điều kiện biên  (0) 

1
.
2

Lời giải cho phƣơng trình vi phân này là:
 (t ) 


et
et  ec

Chọn ec  1 , ta đƣợc công thức quen thuộc của hàm logistic:
 t  

1
et

1  e  t 1  et

Nhƣ vậy có thể định nghĩa logistic là hàm có đạo hàm là   t  1    t   . Theo
tính chất này thì logistic là một trƣờng hợp đặc biệt của các hàm sigmoid. Trên thực
tế, ngƣời ta cũng hay dùng từ sigmoid để chỉ trƣờng hợp đặc biệt của nó là hàm
logistic.
Từ một góc nhìn khác, nếu P là một số thực nằm trong khoảng từ 0 đến 1:
0  p  1 thì ngƣời ta định nghĩa hàm logit (hay log-odd) của p là:
 p 
log it  p   log 

 1 p 

15


Đây gọi là hàm logit, đƣợc phát minh vào khoảng năm 1944. Do định nghĩa
bằng hàm logarithm nên tập xác định của hàm logit đƣợc giới hạn trong (0,1). Dễ
dàng ta cũng thấy:
Nói cách khác, hàm logistic là hàm ngƣợc của hàm logit:   x   logit 1  x 
2.1.2 Hàm logistic trong logistic regression

Còn nhớ trong logistic regression, ta giả sử xác suất của input x thuộc
lớp y=1 tuân theo hàm logistic:





p y  1x 

1
1  exp  T x





Thực ra công thức này không phải ngẫu nhiên mà có, nó xuất phát từ một giả
sử sâu xa hơn về phân bố của dữ liệu, nhƣ sẽ thấy sau đây.
Giả sử ta có tập dữ liệu {( xi , yi )}iN1 trong đó X i 

d

và yi {0,1} . Ở đây ta muốn

xây dựng phân bố xác suất p ( y  1x) , mà ta biết rằng:
p ( yX ) 

p ( y ) p ( Xy )
(1)
p( x)


Kí hiệu xác suất prior p( y  1)   . Giả sử thêm:
p( Xy)  N (x;  y , )

Điều này nghĩa là ta giả sử dữ liệu của lớp 0 và lớp 1 tuân theo 2 phân bố
Gaussian khác nhau nhƣng có cùng covariance . Đây là giả sử quan trọng nhất bên
dƣới mơ hình logistic regression (cũng nhƣ Linear Discriminant Analysis).
Ngồi ra có một giả sử nhỏ nữa là ta sẽ xem nhƣ chỉ có 2 lớp 0 và 1, khi đó
p( y  0)  1  p( y  1)  1   .

Xuất phát từ giả sử này, ta sẽ dần dần xây dựng mơ hình logistic regression,
đặc biệt là công thức (1).
Thật vậy. Do ta quan tâm đến việc phân lớp, nên ta sẽ xem xét tỉ số log-odd
sau:
log(

p( y  1x)
p( y  0x)

16

(2)


Vector

sẽ thuộc lớp 1 nếu tỉ số này lớn hơn 0 (vì khi đó

p ( y  1x)  p ( y  0x) ), và thuộc lớp 0 nếu tỉ số này nhỏ hơn 0.


Nhƣ vậy có thể thấy trong không gian

d

, tỉ số log-odd trong (2) tạo thành

một siêu phẳng có phƣơng trình  T x  0 . Đây chính là siêu phẳng phân tách 2 lớp 0
và 1, các điểm nằm trên siêu phẳng này (nghĩa là các điểm x sao cho  T x  0  0) )
có xác suất thuộc về lớp 0 và lớp 1 đều bằng nhau [1].
2.1.3 Ví dụ [1]
Một nhóm 20 sinh viên dành thời gian trong khoảng từ 0 đến 6 giờ cho việc ôn
thi. Thời gian ôn thi này ảnh hƣởng đến xác suất sinh viên vƣợt qua kỳ thi nhƣ thế
nào?
Kết quả thu đƣợc nhƣ sau:
Hours
0.5

Pass
0

Hours
2.75

Pass
1

0.75

0


3

0

1

0

3.25

1

1.25

0

3.5

0

1.5

0

4

1

1.75


0

4.25

1

1.75

1

4.5

1

2

0

4.75

1

2.25

1

5

1


2.5

0

5.5

1

Mặc dù có một chút bất cơng khi học 3.5 giờ thì trƣợt, cịn học 1.75 giờ thì lại
đỗ, nhìn chung, học càng nhiều thì khả năng đỗ càng cao. PLA khơng thể áp dụng
đƣợc cho bài tốn này vì khơng thể nói một ngƣời học bao nhiêu giờ thì 100% trƣợt
hay đỗ, và thực tế là dữ liệu này cũng khơng linearly separable (điệu kiện để PLA
có thể làm việc). Chú ý rằng các điểm màu đỏ và xanh đƣợc vẽ ở hai tung độ khác
nhau để tiện cho việc minh họa. Các điểm này đƣợc vẽ dùng cả dữ liệu đầu vào x và
đầu ra y. Khi ta nói linearly seperable là khi ta chỉ dùng dữ liệu đầu vào x.

17


Chúng ta biểu diễn các điểm này trên đồ thị để thấy rõ hơn:

Hình 2.1 Ví dụ về kết quả thi dựa trên số giờ ôn tập
.
Nhận thấy rằng cả linear regression và PLA đều không phù hợp với bài tốn
này, chúng ta cần một mơ hình flexible hơn.
Mơ hình Logistic Regression
Đầu ra dự đoán của:
Linear Regression:f(x)=wTx
PLA:f(x)=sgn(wTx)
Đầu ra dự đoán của logistic regression thƣờng đƣợc viết chung dƣới

dạng:f(x)=θ(wTx)
Trong đó θ đƣợc gọi là logistic function. Một số activation cho mô hình tuyến
tính đƣợc cho trong hình dƣới đây:

Hình 2. 2 Các activation function khác nhau.
Đƣờng màu vàng biểu diễn linear regression. Đƣờng này không bị chặn nên
không phù hợp cho bài tốn này. Có một trick nhỏ để đƣa nó về dạng bị
chặn: cắt phần nhỏ hơn 0 bằng cách cho chúng bằng 0, cắt các phần lớn hơn 1 bằng
cách cho chúng bằng 1. Sau đó lấy điểm trên đƣờng thẳng này có tung độ bằng 0.5

18


làm điểm phân chia hai class, đây cũng không phải là một lựa chọn tốt. Giả sử có
thêm vài bạn sinh viên tiêu biểu ôn tập đến 20 giờ và tất nhiên thi đỗ. Khi áp dụng
mơ hình linear regression nhƣ hình dƣới đây và lấy mốc 0.5 để phân lớp, tồn bộ
sinh viên thi trƣợt vẫn đƣợc dự đốn là trƣợt, nhƣng rất nhiều sinh viên thi đỗ cũng
đƣợc dự đoán là trƣợt (nếu ta coi điểm x màu xanh lục là ngưỡng cứng để đƣa ra kết
luận). Rõ ràng đây là một mơ hình khơng tốt. Anh chàng sinh viên tiêu biểu này
đã kéo theo rất nhiều bạn khác bị trƣợt.

Hình 2. 3 Tại sao Linear Regression khơng phù hợp?
Đƣờng màu đỏ (chỉ khác với activation function của PLA ở chỗ hai class là 0
và 1 thay vì -1 và 1) cũng thuộc dạng ngưỡng cứng (hard threshold). PLA khơng
hoạt động trong bài tốn này vì dữ liệu đã cho không linearly separable.
Các đƣờng màu xanh lam và xanh lục phù hợp với bài toán của chúng ta hơn.
Chúng có một vài tính chất quan trọng sau:
Là hàm số liên tục nhận giá trị thực, bị chặn trong khoảng (0,1) (0,1).
Nếu coi điểm có tung độ là 1/2 làm điểm phân chia thì các điểm càng xa điểm
này về phía bên trái có giá trị càng gần 0. Ngƣợc lại, các điểm càng xa điểm này về

phía phải có giá trị càng gần 1. Điều này khớp với nhận xét rằng học càng nhiều thì
xác suất đỗ càng cao và ngƣợc lại.

19


Hình 2. 4 Dữ liệu và hàm sigmoid tìm được.
Nếu nhƣ chỉ có hai output là „fail‟ hoặc „pass‟, điểm trên đồ thị của hàm
sigmoid tƣơng ứng với xác suất 0.5 đƣợc chọn làm hard threshold (ngƣỡng cứng).
Ví dụ với dữ liệu 2 chiều
Chúng ta xét thêm một ví dụ nhỏ nữa trong không gian hai chiều. Giả sử chúng ta
có hai class xanh-đỏ với dữ liệu đƣợc phân bố nhƣ hình dƣới.

Hình 2.5 Hai class với dữ liệu hai chiều.

20


Với dữ liệu đầu vào nằm trong không gian hai chiều, hàm sigmoid có dạng nhƣ thác
nƣớc dƣới đây:

Hình 2.6 Hàm sigmoid với dữ liệu có chiều là 2.
Kết quả tìm đƣợc khi áp dụng mơ hình logistic regression đƣợc minh họa nhƣ
hình dƣới với màu nền khác nhau thể hiện xác suất điểm đó thuộc class đỏ. Đỏ hơn
tức gần 1 hơn, xanh hơn tức gần 0 hơn.

Hình 2.7 Logistic Regression với dữ liệu hai chiều.

21



Nếu phải lựa chọn một ngưỡng cứng (chứ không chấp nhận xác suất) để phân
chia hai class, chúng ta quan sát thấy đƣờng thẳng nằm trong khu vực xanh lục là
một lựa chọn hợp lý.
2.1.4 Một vài tính chất của Logistic Regression
Logistic Regression thực ra đƣợc sử dụng nhiều trong các bài tốn
Classification. Mặc dù có tên là Regression, tức một mơ hình cho fitting, Logistic
Regression lại đƣợc sử dụng nhiều trong các bài tốn Classification. Sau khi tìm
đƣợc mơ hình, việc xác định class yy cho một điểm dữ liệu xx đƣợc xác định bằng
việc so sánh hai biểu thức xác suất:
P(y=1|x;w); P(y=0|x;w)P(y=1|x;w); P(y=0|x;w). Nếu biểu thức thứ nhất lớn

hơn thì ta kết luận điểm dữ liệu thuộc class 1, ngƣợc lại thì nó thuộc class 0.
Vì tổng hai biểu thức này ln bằng 1 nên nói một cách gọn hơn, ta chỉ cần
xác định xem P(y=1|x;w)P(y=1|x;w) lớn hơn 0.5 hay khơng. Nếu có, class 1.
Nếu khơng, class 0. Boundary tạo bởi Logistic Regression có dạng tuyến tính.
Thật vậy, theo lập luận ở phần trên thì chúng ta cần kiểm tra:
P(y=1|x;w)>0.5⇔11+e−wTx>0.5⇔e−wTx<1
⇔ wTx>0 P(y=1|x;w)>0.5⇔11+e−wTx>0.5⇔e− wTx <1⇔ wTx >0

Nói cách khác, boundary giữa hai class là đƣờng có phƣơng trình wTx. Đây
chính là phƣơng trình của một siêu mặt phẳng. Vậy Logistic Regression tạo ra
boundary có dạng tuyến tính.

2.1.5 Kết luận
Ƣu điểm của thuật toán Logistic Regression so với PLA là nó khơng cần
có giả thiết dữ liệu hai class là linearly separable. Tuy nhiên, boundary tìm
đƣợc vẫn có dạng tuyến tính. Vậy nên mơ hình này chỉ phù hợp với loại dữ

22



liệu mà hai class là gần với linearly separable. Một kiểu dữ liệu mà Logistic
Regression không làm việc đƣợc là dữ liệu mà một class chứa các điểm nằm
trong 1 vịng trịn, class kia chứa các điểm bên ngồi đƣờng trịn đó. Kiểu dữ
liệu này đƣợc gọi là phi tuyến (non-linear).
Một hạn chế nữa của Logistic Regression là nó yêu cầu các điểm dữ liệu
đƣợc tạo ra một cách độc lập với nhau. Trên thực tế, các điểm dữ liệu có thể
bị ảnh hƣởng bởi nhau. Ví dụ: có một nhóm ơn tập với nhau trong 4 giờ, cả
nhóm đều thi đỗ (giả sử các bạn này học rất tập trung), nhƣng có một sinh
viên học một mình cũng trong 4 giờ thì xác suất thi đỗ thấp hơn. Mặc dù vậy,
để cho đơn giản, khi xây dựng mơ hình, ngƣời ta vẫn thƣờng giả sử các điểm
dữ liệu là độc lập với nhau.
Khi biểu diễn theo Neural Networks, Linear Regression, PLA, và
Logistic regression có dạng nhƣ sau:

Hình 2.8 Biểu diễn Linear Regression, PLA, và Logistic Regression

2.2 Một số ứng dụng của thuật toán Logistic Regression
- Đánh giá credit (quyết định có cho khách hàng vay tiền hay khơng)
- Dự đốn mức độ thành cơng của chiến dịch marketing.
- Dự đoán động đất
- Dự đoán nợ xấu
- nhận dạng giới tính

23


×