Tải bản đầy đủ (.doc) (65 trang)

Luan van thac si CNTT (bui the hung CNN for facerecognition)

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 (5.21 MB, 65 trang )

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

---------------

ĐỀ CƯƠNG LUẬN VĂN THẠC SĨ
Chuyên ngành: Công nghệ thông tin
Mã ngành: 8480201

Đề tài: Phương pháp nhận dạng khuôn mặt dựa trên mạng

nơron học sâu và ứng dụng ghi nhận cán bộ vào, ra
tại Viện khoa học công nghệ quân sự

HỌC VIÊN THỰC HIỆN:

BÙI THẾ HÙNG

HƯỚNG DẪN KHOA HỌC: TS. DƯƠNG THĂNG LONG

Hà Nội, 04/2019

0


MỞ ĐẦU
1. Tên đề tài: “Phương pháp nhận dạng khuôn mặt dựa trên mạng nơron học sâu và
ứng dụng ghi nhận cán bộ vào, ra tại Viện khoa học công nghệ quân sự”.
2. Đặt vấn đề.
2.1.
-



Tính cấp thiết của đề tài

Hiện nay, cùng với sự phát triển của xã hội, vấn đề an ninh bảo mật đang được yêu
cầu khắt khe tại mọi quốc gia trên thế giới. Các hệ thống nhận dạng con người
được ra đời với độ tin cậy ngày càng cao. Một trong các bài toán nhận dạng con
người rất được quan tâm hiện nay là nhận dạng mặt người

-

Bài tốn nhận dạng 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 liên quan đến nhận dạng mặt người có thể kể như: hệ thống
phát hiện tội phạm, hệ thống theo dõi nhân sự trong một đơn vị, hệ thống tìm kiếm
thơng tin trên ảnh, video dựa trên nội dung…

-

Đối với Viện khoa học công nghệ quân sự, vấn đề kiểm soát việc ra, vào cơ quan
của cán bộ nhân viên và khách đến làm việc là rất quan trọng nhằm đảm bảo an
ninh, an toàn trong khu vực quân sự. Hệ thống nhận dạng cũng giúp giảm bớt thời
gian xử lý cơng việc cho cán bộ kiểm sốt, giám sát, tăng độ chính xác khi xử lý
thơng tin mang lại hiệu quả cơng việc

-

Từ nhu cầu thực tế đó, học viên với sự giúp đỡ của TS. Dương Thăng Long lựa
chọn đề tài “Phương pháp nhận dạng khuôn mặt dựa trên mạng nơron học sâu
và ứng dụng ghi nhận cán bộ vào, ra tại Viện khoa học công nghệ quân sự”
làm đề tài nghiên cứu luận văn tốt nghiệp thạc sĩ chuyên ngành Công nghệ thông
tin.


2.2.
-

Mục tiêu nghiên cứu

Nghiên cứu mạng Neural nhân tạo và máy học chuyên sâu (Deep learning) –
Convolution Neural Network (CNN).

-

Hiện thực Convolution Neural Network cho bài toán nhận dạng mặt người.

-

Đề xuất phương pháp nhận dạng mặt người bằng máy học chuyên sâu cho từng
thành phần khuôn mặt rồi xây dựng bộ nhận dạng kết hợp từ các CNN
thành phần.

-

Xây dựng phần mềm thử nghiệm cho ứng dụng của đề tài.
1


2.3.

Đối tượng và phạm vi nghiên cứu

-


Phương pháp nhận dạng khuôn mặt.

-

Mạng nơron nhân tạo.

2.4.

Phương pháp nghiên cứu

Để thực hiện đề tài khoa học này, thì cần phải kết hợp hai phương pháp sau:
-

Phương pháp nghiên cứu lý thuyết: Tổng hợp, nghiên cứu các tài liệu về nhận dạng
khuôn mặt; nghiên cứu các phương pháp, thuật tốn nhận dạng khn mặt sử dụng
mạng nơron.

-

Phương pháp nghiên cứu thực nghiệm: Sau khi nghiên cứu lý thuyết, phát biểu bài
toán, đưa ra giải pháp xử lý; cài đặt thử nghiệm chương trình; đánh giá các kết quả
đạt được.

2.5.

Nội dung nghiên cứu

Với đề tài “Phương pháp nhận dạng khuôn mặt dựa trên mạng nơron học sâu và
ứng dụng ghi nhận cán bộ vào, ra tại Viện khoa học công nghệ quân sự”. Học viên

dự kiến thực hiện các nội dung nghiên cứu chính theo kế hoạch như sau:
-

Chương 1: Giới thiệu về nhận dạng khuôn mặt.

-

Chương 2: Phương pháp nhận dạng mặt người dựa trên mạng nơron học sâu.

-

Chương 3: Xây dựng ứng dụng thử nghiệm cho bài toán ghi nhận cán bộ vào, ra tại
Viện khoa học công nghệ quân sự.

2


CHƯƠNG I. GIỚI THIỆU VỀ NHẬN DẠNG KHUÔN MẶT
1.1.

Tổng quan về hệ thống nhận dạng khuôn mặt

1.1.1. Hệ thống nhận dạng khuôn mặt
Như chúng ta đã biết, con người khi sinh ra đã có những đặc điểm sinh học tự
nhiên riêng biệt phân biệt giữa người này với người kia, rất khó có thể trùng lặp. Các
đặc điểm đó có thể bị thay đổi trong cuộc sống trừ những tác động khách quan hoặc
chủ quan như: tai nạn, tổn thương, phẫu thuật chỉnh hình... Chính bởi yếu tố riêng biệt
đó, các nhà khoa học tập trung nghiên cứu, tìm hiểu đặc trưng sinh trắc của con người
và áp dụng vào các biện pháp giúp nhận dạng, xác định danh tính của mỗi người. Dựa
vào những đặc điểm sinh trắc học của con người, các hệ thống nhận dạng sinh trắc học

ra đời nhằm giải quyết nhiều vấn đề có liên quan tới bảo mật, an ninh, khoa học hay
các nhu cầu khác trong cuộc sống.
Các đặc trưng sinh trắc khuôn mặt là những đặc điểm riêng trên khuôn mặt mỗi
người gần như không thay đổi theo thời gian, các đặc điểm này phân biệt giữa người
này và người kia, rất khó có thể xảy ra trùng lặp. Dựa trên nhận xét thực tế, con người
dễ dàng nhận biết các khuôn mặt và các đối tượng trong các tư thế khác nhau và điều
kiện ánh sáng khác nhau, thì phải tồn tại các thuộc tính hay đặc trưng khơng thay đổi.
Chính vì thế, việc xác định danh tính, nhận dạng khn mặt người thơng qua các đặc
trưng sinh trắc học đó sẽ đảm bảo được độ chính xác, tin cậy cao.
Bản thân con người có thể nhận dạng ảnh khn mặt của mọi người một cách dễ
dàng. Thậm chí, ảnh đó có thể nằm trong một ảnh nền phức tạp. Tuy nhiên, đối với hệ
máy thì việc nhận dạng này là một cơng việc rất phức tạp và khó khăn. Chính vì vậy,
trong những năm gần đây, lĩnh vực nhận dạng khuôn mặt đã nhận được sự quan tâm
nghiên cứu lớn từ các nhà khoa học nhằm tạo ra các hệ hỗ trợ quyết định phục vụ
trong rất nhiều lĩnh vực của cuộc sống.
Nhiệm vụ của hệ thống nhận dạng khuôn mặt là xử lý tự động thông tin từ các ảnh
khn mặt để tìm ra độ tương tự giữa các khn mặt và đưa ra quyết định về tính đồng
nhất giữa chúng. Cấu trúc của hệ thống nhận dạng khuôn mặt được thể hiện như Hình
1.1

3


Hình 1.1. Cấu trúc tổng quát của hệ thống nhận dạng khn mặt
Q trình nhận dạng khn mặt hoạt động bằng cách sử dụng một ứng dụng và thiết bị
máy tính chụp ảnh một khn mặt cá nhân (cũng có thể được lấy từ khung hình từ một
video) và so sánh nó với hình ảnh trong cơ sở dữ liệu được lưu trữ trước đó (Hình 1.1).
Trường hợp  ảnh đầu vào (image input) gồm cả  khơng gian có chứa khn mặt người
muốn định danh thì chúng ta cần phát hiện vùng ảnh chỉ chứa khn mặt của người đó
(face detection).  Ảnh khn mặt có thể  được tiền xử  lý (cân chỉnh ­ face alignment)

nhằm đảm bảo chất lượng cho nhận dạng. Khn mặt của mỗi người được trích chọn
và biểu diễn thơng qua một véc­tơ  đặc trưng (feature extraction) nhằm mơ tả  những
đặc điểm riêng biệt của khn mặt của người đó và để  so sánh với các khn mặt
khác. Việc so sánh khn mặt đầu vào với cơ  sở  dữ  liệu các khn mặt đã được lưu
trữ  (existing database) trở thành việc tính tốn mức độ  gần nhau giữa các véc­tơ  đặc
trưng (feature matching), từ đó tìm ra khn mặt giống nhất trong cơ sở dữ liệu. Nếu
mức độ  gần nhất của khn mặt tìm được dưới một ngưỡng cho phép thì định danh
người đó.
Hệ thống nhận dạng khuôn mặt cần đảm bảo các yêu cầu sau:
-

Độ chính xác nhận dạng có thể chấp nhận được đối với yêu cầu của bài toán nhận
dạng.

-

Tốc độ vận hành cao đối với các CSDL lớn và số lượng các yêu cầu có thể giải
quyết được.

-

Đơn giản trong việc cài đặt, lựa chọn thiết bị và vận hành.

-

An toàn với người sử dụng.

1.1.2. Một số hướng tiếp cận trong nhận dạng khn mặt
Nhận dạng khn mặt là q trình xác định danh tính tự động cho từng đối
tượng người trong ảnh/video dựa vào nội dung. Rất nhiều hướng tiếp cận đã được đề

4


xuất để giải quyết bài tốn này. Nhìn chung, quy trình giải quyết bài tốn thường bao
gồm các cơng đoạn cơ bản như: thu nhận hình ảnh; tiền xử lý, tăng cường chất lượng
hình ảnh; phát hiện, căn chỉnh, crop ảnh khn mặt; nhận dạng (trích chọn đặc trưng
và phân lớp) khuôn mặt.
Các hướng tiếp cận trước đây chủ yếu dựa trên đặc trưng và luôn cố gắng đưa ra các
định nghĩa tường minh để biểu diễn khuôn mặt dựa trên các tỷ lệ khoảng cách, diện
tích và góc. Một biểu diễn khuôn mặt được định nghĩa tường minh hướng tới mục tiêu
xây dựng một không gian đặc trưng trực quan. Tuy nhiên, trong thực tế các biểu diễn
định nghĩa tường minh thường khơng chính xác. Để khắc phục điều đó, các hướng tiếp
cận sau này được đề xuất dựa trên ý tưởng sử dụng các mơ hình học máy thống kê có
khả năng học để lựa chọn các đặc trưng khn mặt từ một tập mẫu cho trước, điển
hình như: phương pháp PCA (Principal Component Analysis), trong đó mỗi khuôn
mặt được biểu diễn dưới dạng tổ hợp các eigenvectors, eigenfaces, và fisherfaces;
phương pháp sử dụng các mơ hình mạng nơron tích chập CNN (Convolutional Neural
Network).
Hiện tại, hiệu quả của các mơ hình nhận dạng khn mặt đã được cải thiện đáng kể
dựa trên việc sử dụng kết hợp các mơ hình học sâu để tự động phát hiện các đặc trưng
trên khuôn mặt và các kỹ thuật phân lớp thống kê. Nhìn chung các ứng dụng nhận
dạng khn mặt thường mong muốn tìm được một biểu diễn ít chiều, có khả năng tổng
qt hóa tốt đối với những khn mặt mới mà mạng chưa được huấn luyện bao giờ.
Trong [1], Florian Schroff và cộng sự đã đề xuất kiến trúc mạng học sâu FaceNet với
hàm chi phí bộ ba ( triplet loss function) được định nghĩa trực tiếp trên các biểu diễn.
Các cải tiến quan trọng của FaceNet bao gồm: đề xuất hàm chi phí bộ ba; thủ tục lựa
chọn các bộ ba trong khi huấn luyện; cho phép học từ các tập dữ liệu khổng lồ để tìm
ra kiến trúc mạng thích hợp. Tính đến thời điểm FaceNet ra đời, thuật toán này đã lập
nên kỷ lục mới trong nhận dạng khuôn mặt dưới nhiều điều kiện ảnh khác nhau. Tuy
nhiên, FaceNet huấn luyện với một số lượng lớn hình ảnh (hơn 200 triệu ảnh của 8

triệu đối tượng), lớn gấp nhiều lần so với các bộ dữ liệu hiện có. Để xây dựng bộ dữ
liệu lớn như vậy rất khó thực hiện trong các phịng thiết bị, học thuật do đòi hỏi kiến
trúc máy lớn.
1.2.

Giới thiệu về mạng nơron

1.2.1. Mạng nơron sinh học
5


Não bộ con người là một mạng lưới khoảng 10 11 tế bào thần kinh hay còn gọi là
nơron. Chúng có cấu trúc và chức năng tương đối đồng nhất. Các nhà nghiên cứu sinh
học về bộ não con người đã đưa ra kết luận rằng các nơron là đơn vị đảm nhiệm những
chức năng nhất định trong hệ thần kinh bao gồm não, tuỷ sống và các dây thần kinh.
Hình 1.2 chỉ ra cấu tạo của hệ thống tế bào sinh học này.

Hình 1.2. Mạng nơron sinh học
Cấu trúc của một nơron được chia thành 3 phần chính: Phần thân, hệ thống dây
thần kinh tiếp nhận và sợi trục thần kinh ra. Hệ thống dây thần kinh tiếp nhận tạo
thành một mạng lưới dày đặc xung quanh thân tế bào (chiếm diện tích khoảng 0.25
mm2). Chúng là đầu vào để đưa các tín hiệu điện đến thân tế bào. Thân tế bào có nhân
bên trong sẽ tổng hợp các tín hiệu vào và sẽ làm thay đổi điện thế của bản thân nó. Khi
điện thế này vượt quá một mức ngưỡng thì nhân tế bào sẽ kích thích đưa một xung
điện ra sợi trục thần kinh ra. Sợi trục thần kinh ra có thể dài một vài centimet đến vài
met. Nó có thể phân thành nhiều nhánh theo dạng hình cây để nối với các dây thần
kinh vào của nhiều tế bào khác hoặc có thể nối trực tiếp đến thân tế bào của duy nhất
một nơron. Việc kết nối này được thực hiện nhờ các khớp nối. Số khớp nối của mỗi
nơron có thể lên tới hàng trăm ngàn. Người ta tính tốn rằng mạng lưới dây thần kinh
ra và các khớp nối chiếm khoảng 90% diện tích bề mặt nơron. Các tín hiệu điện truyền

trên các sợi dây thần kinh cũng như hiệu điện thế của nhân tế bào là kết quả của quá
trình phản ứng và giải phóng của các chất hữu cơ được đưa ra từ các khớp nối dẫn đến
dây thần kinh vào. Xung điện đưa ra sợi trục axon sẽ truyền tới các khớp nối với đầu
vào của các nơron khác và sẽ kích thích giải phóng các chất truyền điện. Tuỳ theo việc
tăng hay giảm hiệu thế mà người ta chia thành hai loại khớp nối là khớp nối kích thích
6


và khớp nối ức chế. Cường độ tín hiệu mà một tế bào thần kinh nhận được phụ thuộc
chủ yếu vào mức độ liên kết của khớp nối. Các nghiên cứu chỉ ra rằng quá trình học
của mạng nơron sinh học chính là việc thay đổi mức độ liên kết của các khớp nối.
Chính cấu trúc mạng nơron và mức độ liên kết của các khớp nối đã tạo nên chức năng
của hệ thần kinh con người. Quá trình phát triển của hệ thần kinh là một quá trình
“học” liên tục. Ngay từ khi chúng ta sinh ra, một số cấu trúc thần kinh đơn giản đã
được hình thành. Sau đó các cấu trúc khác lần lượt được xây dựng thêm nhờ q trình
học. Do đó cấu trúc mạng nơron liên tục biến đổi để ngày càng phát triển hoàn thiện.
Một vấn đề đặt ra là dựa trên những kết quả nghiên cứu về hệ thần kinh con người
chúng ta có thể mơ phỏng, xây dựng lên các hệ thần kinh nhân tạo nhằm phục vụ cho
một chức năng nào đó khơng. Nghiên cứu trả lời câu hỏi này đã đưa ra một hướng phát
triển mới: Mạng nơron nhân tạo.
1.2.2. Mạng nơron nhân tạo
Mạng neural nhân tạo (Artificial Neural Network – ANN) là mơ hình xử lý
thơng tin được mơ phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật hay
còn gọi là mạng neural sinh học. Cấu tạo từ số lượng lớn các neural được kết nối với
nhau để xử lý thông tin. ANN giống như bộ não con người, được học bởi kinh nghiệm
thông qua huấn luyện, có khả năng lưu giữ những kinh nghiệm tri thức và sử dụng
những tri thức đó trong việc dự đoán các dữ liệu chưa biết. ANN được giới thiệu năm
1943 bởi nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits.

1.2.2.1. Cấu trúc tổng quan của mạng nơron nhân tạo (ANN)

Một ANN gồm ba tầng lớp đầu vào (input layer), các lớp ẩn (hidden layers) và
cuối cùng là lớp đầu ra (output layer) được mô tả trong Hình 1.3, trong đó, lớp ẩn gồm
nhiều neural nhận dữ liệu đầu vào từ các lớp trước đó để xử lý và chuyển đổi các dữ
liệu này cho các lớp tiếp theo. Một ANN có thể có nhiều lớp ẩn hoặc khơng có lớp ẩn.
Mỗi node trong mạng gọi là một neural. Mỗi neural nhận các dữ liệu đầu vào xử
lý chúng và trả ra một kết quả duy nhất. Kết quả đầu ra của neural này có thể làm dữ
liệu đầu vào của các neural khác.

7


Hình 1.3. Cấu trúc của một ANN.
Hình 1.4 mơ tả quá trình xử lý của một neural trong ANN. Trong đó input là dữ
liệu đầu vào, output là kết quả đầu ra. Trọng số liên kết hay trọng số (connection
weights hay gọi tắt là weights) là thành phần rất quan trọng, thể hiện mức độ quan
trọng đối với quá trình xử lý dữ liệu từ lớp này sang lớp khác. Quá trình học của ANN
thực ra là quá trình điều chỉnh trọng số của các dữ liệu đầu vào.

Hình 2.3. Quá trình xửa lý của một nơron trong ANN
8


Hàm tổng tính tổng của tích trọng số và dữ liệu vào. Hàm tính tổng một neural
của dữ liệu đầu vào của lớp thứ i.

Hàm kích hoạt hay hàm chuyển đổi tính tốn đầu ra của một neural để chuyển đến
lớp tiếp theo trong mạng neural. Hàm kích hoạt phi tuyến được sử dụng vì mạng chỉ sử
dụng các hàm kích hoạt tuyến tính có thể lược giản thơng qua các biến đổi đại số thành
mơ hình perceptron một lớp (là mơ hình ANN đơn giản nhất, khơng có lớp ẩn). Một số
hàm kích hoạt phi tuyến thường dùng là ReLU (Rectified Linear Unit), sigmoid,

logistic, Gaussian, tanh, softmax. Hình 2.4.

(a)

(b)

(c)
Hình 1.4. Đồ thị các hàm kích hoạt: (a). Hàm Tanh; (b). Hàm ReLU;
(c). Hàm Sigmoid
9


Kết quả xử lý đầu ra hàm tổng của neural đơi khi q lớn, hám kích hoạt thường
dùng để xử lý đầu ra này trước khi chuyển đến lớp tiếp theo. Đơi khi thay vì sử dụng
hàm kích hoạt, ta thường sử dụng giá trị ngưỡng để kiểm soát đầu ra của neural. Nếu
đầu ra của một neural nhỏ hơn ngưỡng thì sẽ khơng được chuyển đến lớp tiếp theo.
Mạng nơron nhân tạo hiện chỉ mới là sự mô phỏng hết sức đơn giản cấu trúc của
mạng nơron sinh học. Giữa mạng nơron nhân tạo và mạng nơron sinh học có 3 điểm
chung là:
-

Mạng được xây dựng bằng các phần tử tính tốn đơn giản liên kết lại với nhau
một cách phức tạp và hoạt động theo nguyên tắc song song.

-

Chức năng của mạng được xác định qua cấu trúc mạng, quá trình xử lý bên trong
các phần tử và mức độ liên kết giữa các phần tử.

-


Mức độ liên kết giữa các phần tử được xác định thông qua q trình học của
mạng (hay cịn gọi là q trình huấn luyện mạng).
Điểm khác nhau về căn bản giữa Mạng nơron nhân tạo và mạng nơron sinh học là

ở tốc độ tính tốn, độ phức tạp và tính song song.Tuy xét về tốc độ xử lý của các máy
tính hiện đại là cao hơn rất nhiều so với tốc độ xử lý của não bộ con người nhưng bộ
não lại có thể đồng thời kích hoạt tồn bộ các nơron để làm nhiều công việc khác
nhau. Điều này mạng nơron nhân tạo không thể thực hiện được. Với sự phát triển
nhanh chóng của khoa học như hiện nay thì ta có thể hi vọng sẽ có những bước đột
phá mới trong lĩnh vực mô phỏng mạng nơron sinh học.

1.2.2.2. Một số dạng mạng nơron
-

Mạng liên kết đầy đủ (fully connected) nếu mọi đầu ra của một lớp liên kết với mọi
neural của lớp tiếp theo.

-

Mạng lan truyền thẳng (feedforward network) nếu không tồn tại liên kết giữa các
neural thuộc cùng một lớp.

-

Mạng phản hồi (feedback network) nếu tồn tại đầu ra của một neural liên kết
ngược lại làm đầu vào của một neural cùng lớp.

-


Mạng hồi quy (recurrent network) nếu các mạng phản hồi có các vịng lặp kín.

1.2.2.3. Ứng dụng của mạng nơron nhân tạo (ANN)
Mạng nơron thích hợp với các ứng dụng so sánh và phân loại mẫu, dự báo và điều
khiển. Dưới đây là một số ứng dụng cụ thể của công nghệ mạng nơron:

10


-

Khơng gian vũ trụ: Trình điều khiển máy bay khơng người lái, chế độ tự bay nâng
cao; mô phỏng các đường bay và các bộ phận của máy bay; hệ thống điều khiển
của máy bay và hệ thống phát hiện sai hỏng.

-

Dự đốn tài chính kinh tế: Dự đốn giá cả biến động cổ phiếu. Dự đoán cấp số
thời gian trong thị trường tài chính. Các ứng dụng về điều hành vốn. Dự đoán thị
trường ngoại hối. Đánh giá dự đốn rủi ro. Dự đốn tình hình kinh tế. Đánh giá
hiệu suất vốn vay và vốn đầu tư.

-

Hoạt động ngân hàng: Dự đoán khả năng phá sản. Hệ thống thẻ đọc ngân hàng,
thẻ tín dụng.

-

Hệ thống phịng thủ: Hệ thống điều khiển vũ khí dị tìm mục tiêu, nhận dạng mục

tiêu. Điều khiển đường đạn. Xử lý và nhận dạng tín hiệu ảnh, radar, siêu âm.

-

Điện tử viễn thơng: Dự đốn chuỗi mã. Bố trí mạch tích hợp trên chip.Phân tích
lỗi mạch tích hợp. Nhìn bằng máy. Nhận dạng và tổng hợp tiếng nói. Nhận dạng
chữ viết tay và chữ ký. Xử lý ảnh, nén ảnh và nén số liệu.Các dịch vụ thơng tin
tự động. Dịch ngơn ngữ nói thời gian thực. Hệ thống xử lý thanh toán của khách
hàng. Định tuyến và chuyển mạch cho mạng ATM.

-

Quá trình sản xuất và người máy: Điều khiển quá trình sản xuất. Thiết kế và phân
tích sản phẩm. Chuẩn đốn và giám sát q trình máy móc. Hệ thống kiểm định
chất lượng. Hệ thống lập kế hoạch và điều hành. Điều khiển vận động và hệ thống
nhìn của robot.

-

Y tế: Phân tích tế bào ung thư vú. Phân tích điện não đồ. Thiết kế bộ phận thay
thế. Tối ưu hoá thời gian cấy ghép. Dị tìm và đánh giá các hiện tượng y học.

-

Vận tải: Hệ thống chuẩn đoán phanh xe tải. Hệ thống định tuyến và lịch trình cho
các phương tiện giao thơng.

-

Giải trí: Các hiệu ứng chuyển động, các trị chơi.


1.2.3. Quá trình học của mạng nơron.
Quá trình học của mạng neural là q trình lan truyền thơng tin để làm thay đổi
các trọng số tốt nhất có thể. Mạng neural được huấn luyện hay được học theo ba
phương pháp học có giám sát, học khơng giám sát và học tăng cường.

1.2.3.1. Học có giám sát
Học có giám sát (supervised learning) là phương pháp học từ một tập dữ liệu
huấn luyện ta đã biết trước nhãn của dữ liệu cần học và số lớp cần phân loại của bộ dữ
11


liệu được đem đi huấn luyện. Đây là phương pháp học phổ biến nhất trong các
phương pháp học của mạng neural. Mục đích của phương pháp này là từ tập dữ liệu
đã gán nhãn qua quá trình học tạo ra một hàm số thật tốt để khi có dữ liệu mới ta có
thể tính hay dự đốn được nhãn tương ứng của dữ liệu đó.
Ví dụ như nhận dạng chữ số viết tay, Hình 1.5. Tập dữ liệu huấn luyện gồm hàng
nghìn chữ số viết tay của hàng nghìn người khác nhau . Ta đưa các bức ảnh chữ số
viết tay này vào thuật tốn học và chỉ cho nó biết mỗi bức ảnh tương ứng với chữ số
nào. Sau q trình học một mơ hình hay một hàm số được tạo ra, khi nhận được bức
ảnh mà mơ hình chưa nhìn thấy bao giờ hay khơng nằm trong tập huấn luyện thì nó sẽ
đưa ra dự đốn chữ số trong bức ảnh đó

Hình 1.5. Bộ cơ sở dữ liệu chữ viết tay của MNIST
Phương pháp học giám sát chia ra thành hai loại chính là:
-

Phân loại (classification): Nếu nhãn của các dữ liệu đầu vào được chia thành
một số hữu hạn nhóm. Như các bài tốn nhận dạng chữ số viết tay, dị tìm
khn mặt người,..


-

Hồi quy (regression): Nếu nhãn của các dữ liệu đầu vào không được chia thành
các nhóm mà là một giá trị thực cụ thể. Ví dụ như bài tốn dự đốn giá của một
căn nhà, giá trị dinh dưỡng của một món ăn,…

1.2.3.2. Học không giám sát
Học không giám sát (Unsupervised Learning) là phương pháp học từ một tập
dữ liệu cần học ta không biết trước nhãn của dữ liệu, cũng như số lớp đầu ra. Thuật
toán sẽ dựa vào cấu trúc của dữ liệu để phân nhóm hay giảm chiều của dữ liệu,… Học
khơng giám sát có liên quan chặt chẽ đến việc ước lượng mật độ trong thống kê. Cách
12


học này khơng sử dụng tri thức từ bên ngồi trong q trình học nên cịn được gọi là tự
tổ chức.
Mạng neural điển hình cho cách học này là Seft – Organizing Map (SOM). Một
số thuật tốn học khơng giám sát khác như k-means, Hieararchical Agglomerative
Clustering (HAC), Fuzzy Cognitive Map (FCM),….Các hướng tiếp cận bài tốn học
khơng giám sát là:
-

Phân cụm (cluster): Chia dữ liệu thành các cụm nhỏ dựa trên sự liên quan của
các dữ liệu trong mỗi cụm.

-

Liên kết (association): Bài toán khám phá ra quy luật của bộ dữ liệu cho trước.


Phần lớn ứng dụng học không giám sát vào các bài tốn ước lượng như mơ hình
hóa thống kê, nén, lọc, phân nhóm,…

1.2.3.3. Học tăng cường.
Học tăng cường (Reinforcement Learning) là phương pháp học giúp cho một hệ
thống tự động xác định hành động dựa trên hồn cảnh để đạt lợi ích cao nhất. Học tăng
cường bằng cách thử nghiệm dữ liệu để khám phá ra hành động nào là tốt nhất. Hành
động đó khơng chỉ có lợi ích tốt cho bước hiện tại mà cịn cho các bước tiếp theo. Hai
đặc điểm quan trọng để phân biệt học tăng cường là tìm kiếm thử - sai (trialand-error
search) và bồi dưỡng chậm (delayed reward).
Môi trường học thường được biểu diễn dưới dạng Quy trình quyết định markov
(Markov Decision Process - MDP) trạng thái hữu hạn. Và các thuật toán học tăng
cường liên quan đến các kỹ thuật quy hoạch động.
Một cách hình thức, mơ hình học tăng cường bao gồm: Tập các trạng thái của môi
trường, tập các hành động và tập các điểm số. Học tăng cường khai thác những gì nó
đã biết và khám phá môi trường mới, những hành động mới.
Hiện tại, học tăng cường chủ yếu được áp dụng vào Lý thuyết trị chơi, thuật tốn
cần xác định hành động tiếp theo để đạt số điểm tốt nhất. Ví dụ, AlphaGo của Google
đánh cờ vây thắng con người, trong khi cờ vây có độ phức tạp cao xấp xĩ .
AlphaGo kết hợp cả học có giám sát và học tăng cường, Hình 1.6

13


Hình 1.6. AlphaGo của Google.
1.2.4. Một số thuật tốn mạng nơron.

1.2.4.1. Thuật toán lan truyền ngược.
Với thuật toán Lan truyền ngược (Backpropagation Algorithm), giả sử L(W, b, X,
Y) là một hàm lỗi của bài tốn, trong đó W, b là tập hợp tất cả các ma trậntrọng số giữa

các lớp và hướng của mỗi lớp. X, Y là cặp dữ liệu huấn luyện, X là tập hợp các điểm
dữ liệu, Y là nhãn của các điểm dữ liệu tương ứng trong X. Đầu ra dự đoán y của dữ
liệu đầu vào x của mạng neural truyền thẳng đa lớp được tính như sau:

a(0) = x,
zi(l) = wi(l)Ta(l - 1) + bi(l)
z(l) = w(l)Ta(l - 1) + b(l)
a(l) = f( z(l) )
y = a(L)
Với l = 1,…,L là số thứ tự của lớp, a là kết quả của hàm kích hoạt tại mỗi node
của một lớp.
Bước này được gọi là truyền thẳng vì cách tính tốn được thực hiện từ lớp đầu
tiên đến lớp cuối của mạng neural.
Phương pháp phổ biến nhất để tối ưu mạng neural truyền thẳng đa lớp là trượt
dốc. Để có thể áp dụng trượt dốc, ta cần tính được đạo hàm của hàm lỗi theo từng ma
trận trọng số w (l) và vector hướng b (l)

14


Ví dụ, hàm lỗi ta sử dụng là hàm lỗi trung bình bình phương (Mean Square Error
-MSE)

Với N là số cặp dữ liệu (x, y) trong tập huấn luyện.
Theo công thức thì việc tính đạo hàm của hàm lỗi theo trọng số và hướng một cách
trực tiếp là cực kỳ phức tạp, vì hàm lỗi khơng phụ thuộc trực tiếp vào các hệ
số.
Phương pháp phổ biến nhất để tính đạo hàn của hàm lỗi có tên là lan truyền
ngược. Lan truyền ngược giúp tính đạo hàm ngược từ lớp cuối cùng đến lớp đầu tiên.
Lớp cuối cùng được tính trước vì nó gần hơn với đầu ra dự đốn và hàm lỗi. Việc tính

tốn đạo hàm của các lớp trước được thực hiện dựa trên nguyên tắc xích, tức là đạo
hàm của hàm hợp

Với z = f(x) và y = g(x)
Với một cặp điểm dữ liệu huấn luyện (x, y) và hàm lỗi

chỉ xét cho cặp điểm

này, ta có thể tính đạo hàm của hàm lỗi theo ma trận trọng số và hướng. Đạo hàm của
hàm lỗi theo chỉ một thành phần của ma trận trọng số của lớp cuối cùng

2.
Trong đó, đặt:

thường là 1 đại lượng dễ tính tốn

15


Tương tự, ta cũng có đạo hàm của hàm lỗi theo chỉ một thành phần của hướng
của lớp cuối cùng
Hình 1.7 mơ

phỏng cách tính lan truyền ngược,

với đạo hàm

theo hệ số ở các lớp l thấp hơn,

lớp cuối có


thể là lớp đầu ra, d (l) là số node

trong lớp ẩn

thứ l.

Dựa vào Hình 1.7, ta có thể tính được đạo hàm của hàm lỗi theo hệ số của các
lớp thấp hơn

Hình 1.7. Mơ phỏng cách tính lan truyền ngược

Với:

16


Trong đó:

là hàng thứ j của ma trận trọng số W(l+1) và wj(l+1) là cột thứ j của W(l+1)
Dấu ∑ xuất hiện vì aj(l) đóng góp vào việc tính tất cả các zk(l+1) và aj(l) = f(aj(l)) nên ta có
thể nhận thấy việc chọn một hàm lỗi có đạo hàm đơn giản sẽ rất có ích trong việc tính
tốn.
Tương tự, suy ra:

Từ các cơng thức trên, thấy rằng việc tính ej(l) là rất quan trọng. Và theo cơng
thức để tính được ej(l)ta

cần tính được các ej(l+1) hay nói cách khác thì ta cần


tính ngược giá trị này từ lớp cuối đến lớp đầu.
1.2.4.2

.

Lan truyền ngược cho trượt dốc ngẫu nhiên

Theo lý thuyết ta sẽ tính lan truyền ngược cho trượt dốc ngẫu nhiên bằng cách
đạo hàm theo từng hệ số wi,j(l), bi(l). Nhưng việc tính tốn như vậy rất mất thời gian. Vì
vậy trong lập trình, ta tìm cách thu gọn chúng về dạng ma trận và vector để tăng tốc
thuật toán.
Đặt:
17


Ta có thuật tốn lan truyền ngược cho trượt dốc ngẫu nhiên như sau:
-

Thuật toán 1: Thuật toán lan truyền ngược cho trượt dốc ngẫu nhiên

Bước 1: Tính truyền thẳng. Tính giá trị đầu ra dự đốn cho một điểm dữ liệu x.
Trong q trình tính tốn, lưu các a(l) tại mỗi lớp.
Bước 2: Tại lớp đầu ra, tính:

Bước 3: Từ bước 2, suy ra:

Bước 4: Với l = L – 1, L – 2,…,1, tính:

Trong đó, dấu ʘ là phép nhân từng thành phần của hai ma trận với nhau cho
ra ma trận kết quả

Bước 5: Cập nhật đạo hàm cho ma trận trọng số và vector hướng :

1.2.4.3. Lan truyền ngược cho trượt dốc theo batch và mini-batch
Trong thực tế, trượt dốc theo mini-batch được sử dụng nhiều nhất vì các bài
tốn thực tế đều có cơ sở dữ liệu rất lớn. Nếu lượng dữ liệu là nhỏ thì trượt dốc theo
batch được sử dụng trực tiếp.
Giả sử tập dữ liệu huấn luyện có N cặp điểm dữ liệu, ta sẽ lấy M cặp điểm dữ
liệu trong mỗi lần tính tốn (nếu M = N ta có lan truyền ngược cho trượt dốc theo
batch, mỗi lần tính tốn là một kì). Khi đó, cặp dữ liệu đầu vào là một ma trận (X,Y).
Trong đó:
18


Với d(0) = d là chiều của dữ liệu đầu vào (khơng tính hướng).
Kết quả trả ra của hàm kích hoạt sau mỗi node thuộc lớp thứ l sẽ có dạng là một
ma trận:

Thuật toán lan truyền ngược để cập nhật hệ số như sau:
-

Thuật toán 2: Thuật toán lan truyền ngược cho trượt dốc theo batch và mini-batch

Bước 1: Tính truyền thẳng. Tính giá trị đầu ra dự đốn cho tồn bộ batch hoặc mini
batch. Trong q trình tính toán, lưu ma trận A (l) tại mỗi lớp. Mỗi cột của A

(l)

tương

ứng với một điểm dữ liệu.

Bước 2: Tại lớp đầu ra, tính:

Bước 3: Từ bước 2, suy ra:

Bước 4: Với l = L – 1, L – 2,…,1, tính:

Trong đó, dấu ʘ là phép nhân từng thành phần của hai ma trận với nhau cho
ra ma trận kết quả
Bước 5: Cập nhật đạo hàm cho ma trận trọng số và vector hướng :

19


1.2.5. Hàm softmax
Hàm softmax là một hàm kích hoạt, thường được sử dụng ở lớp cuối cùng để
phân loại. Chúng ta cần một mơ hình xác suất sao cho với mỗi điểm dữ liệu đầu vào x,
ai thể hiện xác suất để dữ liệu đầu vào đó rơi vào lớp thứ i . Điều kiện cần là các ai phải
dương và tổng của chúng phải bằng 1. Để có thể thỏa mãn điều kiện này ta phải nhìn
vào các zi và dựa trên quan hệ giữa các zi để tính tốn các giá trị ai. Giá trị zi càng lớn
thì xác suất dữ liệu rơi vào lớp thứ i càng cao, điều này chỉ ra rằng chúng ta cần một
hàm đồng biến ở đây.
Hàm softmax được định nghĩa như sau:

Giá trị zi có thể nhận giá trị âm hoặc dương. Vì vậy hàm trơn đơn giản e zi có thể
chắc chắn biến zi thành một giá trị dương, và hơn nữa còn là hàm đồng biến. Để đảm
bảo tổng các ai luôn bằng một, ta đem chia e zi cho

. Từ đó, ta có được định

nghĩa về hàm softmax.

Hàm softmax, tính tất cả các ai dựa vào tất cả các zi thỏa mãn tất cả các điều
kiện đã xét là dương, tổng bằng 1, và giữ được thứ tự của zi. Với định nghĩa này,
khơng có xác suất ai nào hoàn toàn bằng 0, hoặc hoàn toàn bằng 1, mặc dù chúng có
thể rất gần 0 hoặc 1 khi zi rất nhỏ hoặc rất lớn.
Lúc này, ta có thể giả sử rằng:

P( yk = i|xk;W) = ai
Trong đó, P( yk = i|xk;W) được hiểu là xác suất để điểm dữ liệu x rơi vào lớp thứ i nếu
biết tham số mơ hình W .

20


Hinh 1.8. Mơ hình hàm Softmax cho mạng Nơron
1.3.

Một số phương pháp trích trọn đặc trưng khn mặt

1.3.1. Phương pháp trích chọn CNN
Trong những năm gần đây, sự phát triển mạnh mẽ của cơng nghệ học sâu (deep
learning) với mạng nơron tích chập (convolutional neural network ­ CNN) và được
ứng dụng thành cơng trong nhiều bài tốn thực tế. CNN là một cấu trúc mạng nơron
nhân tạo gồm ba loại lớp nơron: lớp nơron tích chập (convolution layer), lớp nơron
gộp chung (pooling layer) và lớp nơron kết nối đầy đủ  (fully connection layer). Hai
lớp nơron đầu (tích chập và gộp chung) thực hiện vai trị trích chọn đặc trưng của ảnh
khn mặt, trong khi lớp thứ ba (kết nối đầy đủ) thực hiện vai trị ánh xạ các đặc trưng
được trích chọn thành đầu ra cuối cùng, tức là định danh của người được nhận dạng.
Lớp nơron tích chập đóng vai trị quan trọng trong CNN, bao gồm một chồng các phép
tốn tích chập, là một loại phép tuyến tính chun biệt. Lớp nơron gộp chung đóng vai
trị làm giảm số  chiều của khơng gian  đặc trưng  được trích chọn (hay cịn gọi là

subsampling) nhằm tăng tốc độ  xử  lý của q trình nhận dạng. Q trình học mạng
nơron là điều chỉnh các tham số học của mạng (trainable parameters) gồm các trọng số
liên kết của lớp nơron tích chập và lớp nơron kết nối đầy đủ. Thuật tốn học điển hình
của mạng nơron dạng này là lan truyền ngược sai số với mục tiêu giảm thiểu sai số kết
quả nhận dạng của mạng. Ngồi ra, mạng cịn có các tham số cần phải thiết lập trước

21


khi áp dụng  như kích  thước của nhân trong phép tích chập, độ  trượt của phép tích
chập, hàm kích hoạt, phương pháp tính của lớp nơron gộp chung và các tham số khác.
Hiện nay có nhiều nghiên cứu ứng dụng CNN trong nhận dạng khn mặt với các
cải tiến ngày một hiệu quả và chất lượng cao hơn,  ứng dụng đa dạng vào các bài tốn
thực tế.  Nhằm tăng hiệu quả  cao hơn, các  nhà nghiên cứu đã  đề  xuất một kiến trúc
CNN với quy mơ “rất sâu” gồm 11 khối với 37 lớp nơron, 8 khối đầu đóng vai trị
trích chọn đặc trưng và 3 khối sau thực hiện chức năng phân lớp để  nhận dạng. Kiến
trúc CNN này được chạy trên quy mơ dữ  liệu học mạng rất lớn (LFW và YTF với
hàng nghìn định danh và hàng triệu bức  ảnh) và cho kết quả  (98.95% trên LFW và
97.3% trên YTF) tốt hơn so với các mơ hình CNN khác.
Trong các phương pháp nhận dạng khn mặt hiện nay dựa trên mạng nơron tích
chập (CNN), một cặp khn mặt so sánh được độc lập đưa vào CNN để trích chọn đặc
trưng. Đối với cả  hai khn mặt, các phép nhân (kernels) giống nhau của nơron tích
chập được áp dụng và do đó biểu diễn của một khn mặt được cố định bất kể nó được
so sánh với ai. Tuy nhiên, đối với con người chúng ta, thường tập trung vào các đặc
điểm khác nhau của khn mặt khi so sánh nó với những người khác. Vì vậy, các nhà
nghiên cứu đã đề xuất một cấu trúc CNN mới gọi là tích chập tương phản, đặc biệt tập
trung vào các đặc điểm khác biệt giữa hai khn mặt để so sánh, nghĩa là các đặc điểm
tương phản giữa chúng. Kết quả thử nghiệm cho thấy rằng phép tích chập tương phản
được đề xuất này cải thiện đáng kể so với CNN thơng thường và hứa hẹn tính ưu việt
trong  ứng dụng. Phép tích chập tương phản có lợi thế  nhờ  vào việc sinh tự  động kết

quả  tích chập dựa trên cặp khn mặt được đưa vào tính tốn. Phép tích chập tương
phản này có thể được kết hợp vào bất kỳ loại kiến trúc CNN nào. 
1.3.2. Phương pháp PCA

22


Hình 1.9. Khơng gian mới (p1,p2) theo hướng phân bố mạnh nhất của các vector trong
khơng gian (x1,x2) tìm theo PCA.
PCA là một thuật toán để được sử dụng để tạo ra một ảnh mới từ ảnh ban đầu.
Ảnh mới này có kích thước nhỏ hơn rất nhiều so với ảnh đầu vào và vẫn mang những
đặc trưng cơ bản nhất của ảnh cần nhận dạng. PCA không cần quan tâm đến việc tìm
ra các đặc điểm cụ thể của thực thể cần nhận dạng và mối quan hệ giữa các đặc điểm
đó. Tất cả các chi tiết đó đều được thể hiện ở ảnh mới được tạo ra từ PCA.
Về bản chất, PCA tìm ra một khơng gian mới theo hướng biến thiên mạnh nhất
của một tập hợp các vector trong không gian cho trước. Trong không gian mới, người
ta hy vọng rằng việc phân loại sẽ mang lại kết quả tốt hơn so với không gian ban đầu.
1.3.2.1.
-

Đánh giá phương pháp PCA

Ưu điểm của phương pháp PCA
 Tìm được cá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 đó.
23


 Thuật tốn có thể thức hiện tốt với các ảnh có độ phân giải cao, do PCA sẽ thu
gọn ảnh thành một ảnh có kích thước nhỏ hơn.

 PCA 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 hơn.
-

Nhược điểm của phương pháp PCA
 PCA phân loại theo chiều phân bố lớn nhất của tập vector. Tuy nhiên, chiều
phân bố lớn nhất không phải lúc nào cũng mang lại hiệu quả tốt nhất cho bài
toán nhận dạng. Đây là nhược điểm cơ bản của PCA.
 PCA rất nhạy với nhiễu.

1.3.3. Phương pháp phân tách tuyến tính LDA
Phương pháp PCA ở trên cịn có nhược điểm là chỉ làm nổi bật lên các đặc
trưng của từng ảnh mà chưa quan tâm đến các ảnh đó là của cùng một người hay của
những người khác nhau. Phương pháp phân tách tuyến tính có thể khắc phục được
những nhược điểm đó. Nhiệm vụ chính của phương pháp là tính sự biến thiên giữa các
ảnh của những người khác nhau và tính sự biến thiên giữa các ảnh của cùng một
người, sau đó tìm một phép biến đổi để làm cực đại tỉ số của hai sự biến thiên trên.
Nghĩa là, tập ảnh huấn luyện sẽ được biến đổi sang một không gian mới sao cho sự
khác nhau (khoảng cách) giữa các ảnh của những người khác nhau được tăng lên tối
đa, còn sự giống nhau giữa các ảnh của cùng một người được làm cực tiểu. Hình 1.6 là
một ví dụ minh họa trực quan ý nghĩa của phép biến đổi này. Hình 1.6 (a) là một cách
biến đổi khơng tốt khi các hình chiếu của các điểm thuộc hai lớp vẫn lẫn lộn với nhau;
Hình 1.6 (b) là một cách biến đổi khá tốt khi hình chiếu của các điểm thuộc cùng một
lớp gần nhau, cịn hình chiếu của các điểm khác lớp xa nhau.

24


×