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

Đề án tốt nghiệp hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

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 (774.44 KB, 70 trang )

Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

MỤC LỤC
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI..........................................3
1.1. GIỚI THIỆU ĐỀ TÀI.......................................................................................................4
1.1.1. Phát biểu đề tài.........................................................................................................4
1.1.2. Đối tượng nghiên cứu của đề tài.............................................................................4
1.1.3. Mục tiêu hướng tới của đề tài.................................................................................4
1.1.4. Giới hạn của đề tài...................................................................................................4
1.2. TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT NGƯỜI...............................................5
1.2.1. Gới thiệu về việc phát hiện khuôn mặt người.......................................................5
1.2.2 . Ứng dụng của phương pháp phát hiện khuôn mặt người...................................5
1.2.3. Các phương pháp tiếp cận phát hiện khuôn mặt..................................................6
1.2.4. Các thách thức lớn trong vấn đề phát hiện khuôn mặt người.............................9
1.2.5. Các vấn đề liên quan đến việc phát hiện khuôn mặt người...............................10
1.3. MÔI TRƯỜNG CÀI ĐẶT..............................................................................................12
1.3.1. Công nghệ .NET.....................................................................................................12
1.3.2. Ngôn ngữ C# (Csharp)..........................................................................................15

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.................................................16
2.1. GIỚI THIỆU VỀ MẠNG NƠRON................................................................................16
2.1.1. Các giai đoạn phát triển của mạng nơron...........................................................16
2.1.2. Các ứng dụng của mạng nơron nhân tạo............................................................17
2.2. CẤU TRÚC MẠNG NƠRON NHÂN TẠO..................................................................17
2.2.1. Mạng nơron nhân tạo............................................................................................17
2.2.2. Mô hình...................................................................................................................18
2.3. PHÂN LOẠI MẠNG NƠRON......................................................................................19
2.4. MẠNG HỌC...................................................................................................................20
2.4.1. Học có thầy (Học có giám sát)..............................................................................21
2.4.2. Học không có thầy.................................................................................................21
2.4.3. Học tăng cường (học thưởng-phạt)......................................................................21


2.5. THUẬT TOÁN LAN TRUYỀN NGƯỢC ĐỐI VỚI MẠNG LAN TRUYỀN THẲNG
(FEED – FORWARD NEURAL)..........................................................................................22
2.5.1. Cơ sở toán học........................................................................................................22

GVHD: ThS.Lưu Minh Tuấn

1

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

2.5.2. Thuật toán lan truyền ngược................................................................................23
2.5.3. Một số phương pháp cải tiến đối với thuật toán lan truyền ngược...................31
2.6. THIẾT KẾ MẠNG NƠRON..........................................................................................33
2.6.1. Chọn hàm truyền...................................................................................................33
2.6.1. Vấn đề về số lớp ẩn................................................................................................34
2.6.3. Số đơn vị trong lớp ẩn...........................................................................................35
2.6.4. Khởi tạo trọng........................................................................................................36
2.7. MỘT SỐ THUẬT TOÁN XỬ LÝ ẢNH SỐ..................................................................37
2.7.1. Thuật toán chuyển ảnh màu sang ảnh đa mức xám...........................................37
2.7.2. Histogram...............................................................................................................37
2.7.3. Lọc trung vị............................................................................................................38
2.8. KHÔNG GIAN MÀU RGB VÀ HSV............................................................................39
2.8.1. Không gian màu RGB...........................................................................................39
2.8.2. Không gian RGB chuẩn hóa.................................................................................40
2.8.3. Không gian màu HSV (hue, saturation, value)...................................................40

CHƯƠNG 3: KIẾN TRÚC HỆ THỐNG PHÁT HIỆN KHUÔN

MẶT....................................................................................................43
3.1. XÂY DỰNG MẠNG MÔ HÌNH NƠRON THỬ NGHIỆM..........................................43
3.1.1. Mô hình mạng nơron cho bài toán phân mẫu.....................................................43
3.1.2. Thử nghiệm mạng nơron với bài toán XOR và bài toán phân loại sinh viên. .44
3.2. KIẾN TRÚC CỦA HỆ THỐNG.....................................................................................46
3.2.1. Tiền xử lý ảnh phát hiện màu da..........................................................................46
3.2.2. Mô hình mạng nơron.............................................................................................50
3.2.3. Kiến trúc hệ thống.................................................................................................51
3.3. MỘT SỐ VẤN ĐỀ ĐÁNG QUAN TÂM TRONG KHI XÂY DỰNG HỆ THỐNG....54
3.3.1. Huấn luyện mạng...................................................................................................54
3.3.2. Lồng ghép các cửa sổ thừa....................................................................................55

CHƯƠNG 4: PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG
TRÌNH................................................................................................59
4.1. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG.....................................................................59
4.1.1. Xác định yêu cầu....................................................................................................59
4.1.2. Phân tích và thiết kế hệ thống..............................................................................59

GVHD: ThS.Lưu Minh Tuấn

2

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

4.1.3. Thiết kế cơ sở dữ liệu.............................................................................................62
4.2. CÀI ĐẶT CHƯƠNG TRÌNH.........................................................................................63
4.2.1. Giao diện chương trình.........................................................................................63

4.3. KẾT QUẢ THỰC NGHIỆM..........................................................................................66

CHƯƠNG 5: ĐÁNH GIÁ KẾT QUẢ..............................................67
5.1. KẾT QUẢ THU ĐƯỢC.................................................................................................67
5.1.1. Về mặt lý thuyết.....................................................................................................67
5.1.2. Về mặt thực tế........................................................................................................67
5.2. NHỮNG TỒN TẠI CỦA ĐỀ TÀI..................................................................................67
5.3. HƯỚNG PHÁT TRIỂN TRONG TƯƠNG LAI............................................................67

TÀI LIỆU THAM KHẢO..................................................................69

GVHD: ThS.Lưu Minh Tuấn

3

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1. GIỚI THIỆU ĐỀ TÀI
1.1.1. Phát biểu đề tài
Phát hiện khuôn mặt trong ảnh số là vấn đề đang được quan tâm và phát triển
nhanh chóng hơn 20 năm gần đây. Nhiều hướng tiếp cận, nhiều phương pháp đã được
nghiên cứu và đề xuất để phát hiện khuôn mặt trong các ảnh đơn màu hoặc ảnh màu
và trong chuỗi ảnh video. Tuy nhiên có nhiều vấn đề khó khăn thách thức đối với bài
toán phát hiện khuôn mặt trong ảnh. Chính vì vậy, đây vẫn là vấn đề mở và tiếp tục
thu hút sự nghiên cứu sâu hơn với các kỹ thuật mới được đề xuất.
Trong đề tài này em xin trình bày về vấn đề phát hiện khuôn mặt nguời trong

ảnh số sử dụng mạng nơron truyền thẳng.
1.1.2. Đối tượng nghiên cứu của đề tài
Đề tài này em tập trung nghiên cứu, đi sâu vào hai đối tượng chính đó là ảnh số
và mạng nơron truyền thẳng. Đối với ảnh số, xem xét một số phép xử lý ảnh số như:
chuyển ảnh màu về ảnh đa mức xám, histogram. Đối với mạng nơron, xem xét cơ sở
lý thuyết mạng nơron và ứng dụng vào việc tìm kiếm khuôn mặt người trong ảnh.
1.1.3. Mục tiêu hướng tới của đề tài
 Nghiên cứu về một số phép xử lý ảnh màu.
 Nghiên cứu cơ sở toán học, cơ sở lý thuyết và áp dụng mạng nơron nhân tạo
vào việc xác định khuôn mặt người có trong ảnh màu.
 Xây dựng chương trình thử nghiệm việc phát hiện khuôn mặt người trong
ảnh.
1.1.4. Giới hạn của đề tài
 Nghiên cứu về mạng nơron.
 Tìm hiểu một số thuật toán xử lý ảnh số.

GVHD: ThS.Lưu Minh Tuấn

4

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

 Ứng dụng mạng nơron vào việc xác định khuôn mặt trong ảnh.
 Cài đặt thử nghiệm trương trình.

1.2. TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT NGƯỜI
1.2.1. Gới thiệu về việc phát hiện khuôn mặt người

Xác định khuôn mặt người (Face Detection) là một kỹ thuật máy tính để xác
định các vị trí và các kích thước của các khuôn mặt người trong các ảnh bất kỳ (ảnh
kỹ thuật số). Kỹ thuật này nhận biết các đặc trưng của khuôn mặt và bỏ qua những
thứ khác, như: tòa nhà, cây cối, cơ thể, … .
1.2.2 . Ứng dụng của phương pháp phát hiện khuôn mặt người
Phát hiện khuôn mặt người có rất nhiều ứng dụng đã được và đang được thiết
kế trong cuộc sống, sau đây em xin đưa ra một số ứng dụng nổi bật sau:
 Hệ thống tương tác giữa người và máy: Giúp những người bị tật hoặc
khiếm khuyết có thể trao đổi. Những người dùng ngôn ngữ tay có thể giao
tiếp với những người bình thường. Những người bị bại liệt thông qua một
số ký hiệu nháy mắt có thể biểu lộ những gì họ muốn, …. Đó là các bài
toán điệu bộ của bàn tay (hand gesture), điệu bộ khuôn mặt, trạng thái cảm
xúc của con người … .
 Nhận dạng khuôn mặt người giúp cơ quan an ninh quản lý tốt con người.
Công việc nhận dạng có thể ở trong môi trường bình thường cũng như
trong bóng tối (sử dụng camera hồng ngoại).
 Hệ thống quan sát, theo dõi và bảo vệ. Các hệ thống camera sẽ xác định
đâu là con người và theo dõi con người đó xem họ có vi phạm gì không, ví
dụ xâm phạm khu vực không được vào, ….
 Tìm kiếm và tổ chức dữ liệu liên quan đến con người thông qua khuôn mặt
người trên nhiều hệ cơ sở dữ liệu lưu trữ thật lớn, như internet, các hãng
truyền hình, …. .

GVHD: ThS.Lưu Minh Tuấn

5

SVTH: Đặng Trần Quyết



Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

 Một số hãng máy ảnh đã ứng dụng bài toán xác định khuôn mặt người vào
máy chụp hình thế hệ mới để cho kết quả hình ảnh đẹp hơn, nhất là khuôn
mặt người.
Trong hai thập kỷ gần đây vấn đề này được rất nhiều nhà khoa học quan tâm
nghiên cứu, và đã có khá nhiều các giải pháp khác nhau được đưa ra nhằm giải quyết
bài toán phát hiện khuôn mặt trong ảnh đơn và chuỗi ảnh video. Tuy nhiên do tính
phức tạo và đa dạng nên trong thực tế chưa có một giải pháp toàn diện và trọn vẹn
cho vấn đề này.
1.2.3. Các phương pháp tiếp cận phát hiện khuôn mặt
1.2.3.1. Hướng tiếp cận dựa trên tri thức
Mã hóa các hiểu biết của con người về các loại khuôn mặt người thành các
luật. Thông thường các luật mô tả quan hệ của các đặc trưng. Trong hướng tiếp cận
này, các luật sẽ phụ thuộc rất lớn vào tri thức của những tác giả nghiên cứu về bài
toán xác định khuôn mặt người. Đây là hướng tiếp cận dạng top-down. Dễ dàng xây
dựng các luật cơ bản để mô tả các đặc trưng của khuôn mặt và các quan hệ tương
ứng. Ví dụ, một khuôn mặt thường có hai mắt đối xứng nhau qua trục thẳng đứng ở
giữa khuôn mặt và có một mũi, một miệng. Các quan hệ của các đặc trưng có thể
được mô tả như quan hệ về khoảng cách và vị trí. Thông thường các tác giả sẽ trích
đặc trưng của khuôn mặt trước tiên để có được các ứng viên, sau đó các ứng viên này
sẽ được xác định thông qua các luật để biết ứng viên nào là khuôn mặt và ứng viên
nào không phải khuôn mặt. Thường áp dụng quá trình xác định để giảm số lượng xác
định sai.
Một vấn đề khá phức tạp khi dùng hướng tiếp cận này là làm sao chuyển từ tri
thức con người sang các luật một các hiệu quả. Nếu các luật này quá chi tiết (chặt
chẽ) thì khi xác định có thể xác định thiếu các khuôn mặt có trong ảnh, vì những
khuôn mặt này không thể thỏa mãn tất cả các luật đưa ra. Nhưng các luật tổng quát
quá thì có thể chúng ta sẽ xác định lầm một vùng nào đó không phải là khuôn mặt mà


GVHD: ThS.Lưu Minh Tuấn

6

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

lại xác định là khuôn mặt. Và cũng khó khăn mở rộng yêu cầu từ bài toán để xác định
các khuôn mặt có nhiều tư thế khác nhau.
1.2.3.2. Hướng tiếp cận dựa trên đặc trưng không thay đổi
Mục tiêu các thuật toán đi tìm các đặc trưng mô tả cấu trúc khuôn mặt người
mà các đặc trưng này sẽ không thay đổi khi tư thế khuôn mặt, vị trí đặt thiết bị thu
hình hoặc điều kiện ánh sáng thay đổi.
Đây là hướng tiếp cận theo kiểu bottom-up. Các tác giả cố gắng tìm các đặc
trưng không thay đổi của khuôn mặt người để xác định khuôn mặt người. 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. Có nhiều nghiên cứu đầu tiên xác định các đặc trưng
khuôn mặt rồi chỉ ra có khuôn mặt trong ảnh hay không. Các đặc trưng như: lông
mày, mắt, mũi, miệng, và đường viền của tóc được trích bằng phương pháp xác định
cạnh. Trên cơ sở các đặc trưng này, xây dựng một mô hình thống kê để mô tả quan
hệ của các đặc trưng này và xác định sự tồn tại của khuôn mặt trong ảnh. Một vấn đề
của các thuật toán theo hướng tiếp cân đặc trưng cần phải điều chỉnh cho phù hợp
điều kiện ánh sáng, nhiễu, và bị che khuất. Đôi khi bóng của khuôn mặt sẽ tạo thêm
cạnh mới, mà cạnh này lại rõ hơn cạnh thật sự của khuôn mặt, vì thế nếu dùng cạnh
để xác định sẽ gặp khó khăn.
Trong phương pháp này người ta sử dụng:



Các đặc trưng khuôn mặt: sử dụng một số đặc trưng như góc mắt, miệng và
tâm mắt, về quan hệ hình học, độ cong của đường trên khuôn mặt, trích các
đoạn giống mắt … để xác định khuôn mặt người.



Các đặc trưng về kết cấu: thông thường là dựa vào màu da, tóc và một số
khác để xác định kết cấu.



Các đặc trưng về màu da: sử dụng tính chất sắc màu của da của khuôn mặt
người để tìm ra khuôn mặt.

GVHD: ThS.Lưu Minh Tuấn

7

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo



Đa đặc trưng: sử dụng đặc trưng toàn cục như màu da, kích thước, hình
dáng … , sau đó từ đặc trưng toàn cục phân tích để tìm ra các đặc trưng cục
bộ như: mắt, lông mày, mũi, miệng, tóc để tìm ra khuôn mặt.


1.2.3.3. Hướng tiếp cận dựa trên so khớp mẫu
Dùng các mẫu chuẩn của khuôn mặt người (các mẫu này được chọn lựa và
lưu trữ) để mô tả cho khuôn mặt người hay các đặc trưng khuôn mặt (các mẫu này
phải chọn làm sao cho tách biệt nhau theo tiêu chuẩn mà các tác giả định ra để so
sánh). Các mối tương quan giữa dữ liệu ảnh đưa vào và các mẫu dùng để xác định
khuôn mặt người.
Trong so khớp mẫu, các mẫu chuẩn của khuôn mặt (thường là khuôn mặt được
chụp thẳng) sẽ được xác định trước hoặc xác định các tham số thông qua một hàm.
Từ một ảnh đưa vào, tính các giá trị tương quan so với các mẫu chuẩn về đường viền
khuôn mặt, mắt, mũi và miệng. Thông qua các giá trị tương quan này mà các tác giả
quyết định có hay không có tồn tại khuôn mặt trong ảnh. Hướng tiếp cận này có lợi
thế là rất dễ cài đặt, nhưng không hiệu quả khi tỷ lệ, tư thế, và hình dáng thay đổi (đã
được chứng minh). Nhiều độ phân giải, đa tỷ lệ, các mẫu con, và các mẫu biến dạng
được xem xét thành bát biến về tỷ lệ và hình dáng.
1.2.3.4. Hướng tiếp cận dựa trên diện mạo
Trái ngược hẳn với so khớp mẫu, các mô hình (hay các mẫu) được học từ một
tập ảnh huấn luyện trước đó. Sau đó hệ thống (mô hình) sẽ xác định khuôn mặt
người. Hay một số tác giả còn gọi hướng tiếp cận này là hướng tiếp cận theo phương
pháp học.
Một các tổng quát, các phương pháp theo hướng tiếp cận này áp dụng các kỹ
thuật theo hướng xác suất thống kê và máy học để tìm những đặc tính liên quan của
khuôn mặt và không phải là khuôn mặt. Các đặc tính đã được học ở trong hình thái
các mô hình phân bố hay các hàm biệt số nên dùng có thể dùng các đặc tính này để

GVHD: ThS.Lưu Minh Tuấn

8

SVTH: Đặng Trần Quyết



Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

xác định khuôn mặt người. Đồng thời, bài toán giảm số chiều thường được quan tâm
để tăng hiệu quả tính toán cũng như hiệu quả xác định.
Các tiếp cận khác trong hướng tiếp cận dựa trên diện mạo là tìm một hàm biệt
số (như: mặt phẳng quyết định, siêu phẳng để tách dữ liệu, hàm ngưỡng) để phân biệt
hai lớp dữ liệu: khuôn mặt và không phải khuôn mặt. Bình thường, các mẫu ảnh
được chiếu vào không gian có số chiều thấp hơn, rồi sau đó dùng một hàm biệt số
(dựa trên các độ đo khoảng cách) để phân loại hoặc xây dựng mặt quyết định phi
tuyến bằng mạng nơron đa tầng. Hoặc dùng SVM (Support Vectơr Machine) và các
phương thức kernel, chiếu hoàn toàn các mẫu vàokhông gian có số chiều cao hơn để
dữ liệu bị rời rạc hoàn toàn và ta có thể dùng một mặt phẳng quyết định phân loại các
mẫu khuôn mặt và không phải khuôn mặt.
Ba phương pháp đầu cho phép xây dựng các hệ thống có tốc độ xử lý nhanh
nhưng kết quả không cao. Ngược lại các phương pháp dựa trên kỹ thuật học thường
cho kết quả đầu ra cao hơn hẳn các phương pháp còn lại nhưng lại khó có thể áp dụng
trong các hệ thống thời gian thực do tính toán nhiều và phức tạp.
1.2.4. Các thách thức lớn trong vấn đề phát hiện khuôn mặt người
Việc nhận biết đối tượng là bài toán xác định cửa sổ con của ảnh có thuộc về tập
các ảnh của đối tượng quan tâm hay không. Do đó, đường biên quyết định của tập ảnh
đối tượng phức tạp sẽ làm tăng độ khó của bài toán và có thể tăng số lỗi nhận biết. Giả
sử ta muốn phát hiện khuôn mặt nghiêng trong mặt phẳng ảnh, ngoài các khuôn mặt
thẳng. Việc thêm các khuôn mặt nghiêng vào tập các ảnh ta muốn nhận biết làm tăng
độ biến thiên của tập, và có thể làm tăng độ phức tạp của đường biên quyết định của
tập ảnh. Độ phức tạp này làm bài toán nhận biết khó hơn. Việc thêm ảnh mới vào tập
ảnh đối tượng có thể làm đường biên quyết định đơn giản hơn và dễ học hơn. Có thể
tưởng tượng điều này là đường biên quyết định được làm trơn bằng việc thêm các ảnh
vào tập. Có nhiều nguồn biến đổi trong bài toán nhận biết đối tượng, và cụ thể trong
bài toán nhận biết khuôn mặt. Có các nguồn biến đổi sau:


GVHD: ThS.Lưu Minh Tuấn

9

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

 Biến đổi trong mặt phẳng ảnh: loại biến đổi ảnh khuôn mặt đơn giản nhất có
thể được biểu diễn độc lập với khuôn mặt, bằng cách quay, dịch chuyển, biến
đổi tỷ lệ và lấy đối xứng ảnh.
 Biến đổi độ sáng và ngữ cảnh: biến đổi do đối tượng và môi trường gây ra, cụ
thể các thuộc tính bề mặt của đối tượng và các nguồn sáng. Các thay đổi về
nguồn sáng nói riêng có thể biến đổi hoàn toàn vẻ bề ngoài của khuôn mặt.
 Biến đổi nền: Nhiều nhà nghiên cứu cho răng với kỹ thuật nhận dạng mẫu hiện
nay, tiếp cận dựa trên khung nhìn để nhận biết đối tượng chỉ thích hợp cho các
đối tượng có “đường biên ảnh có thể dự đoán được”. Khi đối tượng có hình
dáng dự đoán được, ta có thể trích ra window chỉ chứa các pixel bên trong đối
tượng, và bỏ qua nền.


Biến đổi hình dáng: với khuôn mặt, loại biến đổi này bao gồm biểu lộ tình
cảm khuôn mặt, miệng và mắt mở hay đóng, và hình dáng khuôn mặt của từng
người.

1.2.5. Các vấn đề liên quan đến việc phát hiện khuôn mặt người
Bên cạnh vấn đề phát hiện mặt người, có nhiều vấn đề khác có quan hệ mật thiết
với phát hiện mặt người mà nhiều khi gây ra nhầm lẫn nếu không được tìm hiểu một

cách kỹ càng.
Những vấn đề đó bao gồm:
 Định vị khuôn mặt hay xác định vị trí khuôn mặt: Đây là vấn đề rất gần với
vấn đề phát hiện mặt người. Nếu như phát hiện mặt người trong ảnh là phải trả
lời các câu hỏi có tồn tại khuôn mặt trong ảnh hay không ? Nếu tồn tại thì tồn
tại bao nhiêu khuôn mặt? Vị trí của khuôn mặt ở đâu ? Thì vấn đề định vị mặt
người chỉ trả lời cho câu hỏi vị trí mặt người ở đâu trong một ảnh đã biết trước
là có một mặt người . Như vậy có thể thấy, định vị khuôn mặt là một phần
công việc của phát hiện mặt người.

GVHD: ThS.Lưu Minh Tuấn

10

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo



Phát hiện các đặc trưng của khuôn mặt: Đây là vấn đề cũng rất gần với vấn đề
định vị khuôn mặt. Nó cũng giả thiết rằng chỉ có một khuôn mặt trong ảnh. Và
việc phát hiện đặc trưng khuôn mặt là tìm ra vị trí của các đặc trưng như đôi
mắt, mũi, miệng, môi, tai… .

 Bám sát khuôn mặt: Mục đích của vấn đề này là ước lượng liên tục sự thay đổi
về vị trí và huớng của khuôn mặt trong một chuỗi ảnh thời gian thực.
 Nhận biết trạng thái khuôn mặt: Mục tiêu của vấn đề này là nhận biết trạng
thái của khuôn mặt con người (hạnh phúc, tức giận, đau khổ…). Đây là vấn đề

rất khó và thú vị vì trạng thái khuôn mặt của từng người có thể là rất khác
nhau trong cùng một trạng thái tâm lý.
 Nhận dạng khuôn mặt: Trong vấn đề này, chúng ta phải đối sánh khuôn mặt
cần nhận dạng với các khuôn mặt có sẵn trong thư viện và tìm ra nhưng thông
tin cần thiết về khuôn mặt cần nhận dạng nếu nó có đăc trưng tương đồng với
khuôn mặt nào đó trong thư viện.
 Thẩm tra và xác minh khuôn mặt: Đây là vấn đề nằm trong vấn đề nhận dạng
khuôn mặt. Thông thường sau khi nhận dạng khuôn mặt, người ta phải tiến
hành một giai đoạn nữa gọi là thẩm tra và xác minh tính đúng đắn của khuôn
mặt được nhận dạng. Nó cho phép tăng sự đúng đắn của vấn đề nhận dạng
khuôn mặt.
Trong những vấn đề nêu trên, có thể thấy nhận biết khuôn mặt và nhận dạng
khuôn mặt là hai vấn đề cơ bản và có thể chứa đựng các vấn đề còn lại. Và thông
thường, nhận biết khuôn mặt sẽ là giai đoạn đầu của hệ thống nhận dạng khuôn mặt. Sự
khác nhau cơ bản giữa phát hiện khuôn mặt với nhận dạng khuôn mặt đó là: Nếu như
nhận dạng khuôn mặt là phân biệt những khuôn mặt khác nhau trong tập danh mục các
khuôn mặt, còn nhận biết khuôn mặt đó là phân lớp đuợc đâu là danh mục các khuôn
mặt và đâu là danh mục các ảnh không phải khuôn mặt.

GVHD: ThS.Lưu Minh Tuấn

11

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

1.3. MÔI TRƯỜNG CÀI ĐẶT
1.3.1. Công nghệ .NET

1.3.1.1. Nền tảng của .NET
Nền tảng .NET là bộ khung phát triển ứng dụng mới, nó cung cấp một giao
diện lập trình ứng dụng(Application programming interface – API) mới mẻ cho các
dịch vụ và hệ điều hành Window. Một số dịch vụ như COM+, công nghệ ASP, XML,
và thiết kế hướng đối tượng, hỗ trợ các giao thức dịch vụ web mới như SOAP,
WSDL, UDDL với trọng tâm là Internet, tất cả tích hợp trong kiến trúc DNA
Nền tảng .NET bao gồm bốn nhóm sau:
 Một tập hợp các ngôn ngữ, bao gồm C#, Visual Basic.Net, C++, một tập
hợp các công cụ phát triển bao gồm Visual Studio .Net, một tập đầy đủ các
thư viện phục bị cho việc xây dựng các ứng dụng web, các dịch vụ web và
các ứng dụng Windows, còn có CLR – Common Language Runtime (ngôn
ngữ thực thi dùng chung) để thực thi các đối tượng được xây dựng trên bộ
khung này.


Một tập các Server xí nghiệp .Net như SQL Server, Exchange, BizTalk…
chúng cung cấp các chức năng cho việc lưu trữ dữ liệu quan hệ, thư điện
tử, thương mại điện tử B2B,… .



Các dịch vụ thương mại miễn phí.

 .NET cho các thiết bị không phải PC như điện thoại , thiết bị game.
1.3.1.2. .NET Framework
Thành phần .Net Framework là thành phần quan trọng nhất trong bộ .Net, là
cốt lõi và tinh hoa của môi trường, con IDE (Integrated Development Enviroment)
chỉ là công cụ để phát triển dựa trên nền tảng đó thôi. .Net Framework được thiết kế
đầy đủ để đáp ứng:


GVHD: ThS.Lưu Minh Tuấn

12

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

 Để cung cấp một môi trường lập trình hướng đối tượng vững chắc, trong đó

mã nguồn đối tượng được lưu trữ và thực thi một cách cục bộ. Thực thi cục
bộ nhưng được phân tán tren Internet, hoặc thực thi từ xa.
 Để cung cấp một môi trường thực thi mã nguồn mà tối thiểu được việc đóng

gói phần mềm và sự tranh chấp về phiên bản.
 Để cung cấp một môi trường thực thi mã nguồn mà đảm bảo việc thực thi an

toàn mã nguồn, bao gồm cả việc mã nguồn được tạo bởi hãng thứ ba hay
bất kỳ hãng nào tuân thủ .Net.
 Để cung cấp một môi trường thực thi mã nguồn mà loại bỏ được những lỗi

thực hiện các script hay môi trường thông dịch.
 Để cho người phát triển có kinh nghiệm vững chắc có thể nắm vững nhiểu

kiểu ứng dụng khác nhau từ những ứng dụng trên nền Window đến những
ứng dụng dựa trên web.
.Net hỗ trợ tích hợp ngôn ngữ, tức là có thể kế thừa các lớp, bắt các biệt lệ, đa
hình thông qua nhiều ngôn ngữ. .NET Framework thực hiện được việc này nhờ đặc tả
Common Type System – CTS ( hệ thống kiểu chung) mà tất cả các thành phần .Net

đều tuân theo. Ví dụ, mọi thứ trong .Net đều là đối tượng, thừa kế từ lớp gốc
System.Object.
.Net còn bao gồm Common Language Specification – CLS (đặc tả ngôn ngữ
chung). Nó cung cấp các qui tắc cơ bản mà ngôn ngữ muốn tích hợp phải thỏa mãn.
CLS chỉ ra các yêu cầu tối thiểu của ngôn ngữ hố trợ .Net. Trình biên dịch tuân theo
CLS sẽ tạo ra các đối tượng có thể tương hợp với các đối tượng khác. Bộ thư viện lớp
của khung ứng dụng (Framework Class Libraty – FCL) có thể dùng bởi bất kỳ ngôn
ngữ nào tuân theo CLS.
.Net Framework nằm ở tầng trên của hệ điều hành. .Net Framework bao gồm:
 Bốn ngôn ngữ chính thức: C#, VB.Net, C++, Jscript.Net.

GVHD: ThS.Lưu Minh Tuấn

13

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

 Common Language Runtime – CLR, nền tảng hướng đối tượng cho phát

triển ứng dụng Window và web mà các ngôn ngữ có thể chia sẻ sử dụng.
 Bộ thư viện Framework Class Library – FCL.

Hình 1.1 Kiến trúc khung ứng dụng .Net
Thành phần quan trọng nhất của .Net Framework là CLR, nó cung cấp môi
trường cho ứng dụng thực thi, CLR là một máy ảo, tương tự máy ảo Java. CRL kích
hoạt đối tượng, thực hiện kiểm tra bảo mật, cáp phát bộ nhớ, thực thi và thu dọn
chúng.

Hình 1.1 tầng trên của CRL bao gồm:
- Các lớp cơ sở.
- Các dữ liệu XML.
- Các lớp dịch vụ web, web form và Windows form.

Các lớp này được gọi chung là FCL, Framework Class Libarary, cung cấp API
hướng đối tượng cho tất cả các chức năng của .NET Framework.
Các lớp cơ sở tương tự với các lớp trong Java. Các lớp này hỗ trợ các thao tác
nhập xuất, thao tác chuỗi, văn bản, quản lý bảo mật, truyền thông qua mạng, quản lý
tiểu trình và các chức năng tổng hợp khác… .
Trên mức này là lớp dữ liệu và XML. Lớp dữ liệu hỗ trợ việc thao tác các dữ
liệu trên cơ sở dữ liệu. Các lớp này bao gồm các lớp SQL (Structure Query

GVHD: ThS.Lưu Minh Tuấn

14

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

Language) cho phép ta thao tác dữ liệu thông qua một giao tiếp SQL chuẩn. Ngoài ra
còn một tập hợp các lớp gọi là ADO.Net cũng cho phép thao tác dữ liệu. Lớp XML
hỗ trợ thao tác dữ liệu XML, tìm kiếm và diễn dịch XML.
Trên lớp dữ liệu và XML là mỗi lớp hỗ trợ xây dựng các ứng dụng Window,
ứng dụng Web và dịch vụ web.
1.3.2. Ngôn ngữ C# (Csharp)
C# là một ngôn ngữ được dẫn xuất từ C và C++, lập trình đơn giản, an toàn,
hiện đại, hướng đối tượng, có khả năng thực thi cao trong môi trường .NET. Ta có thể

tóm tắt những đặc điểm của C# như sau:
 C# là một ngôn ngữ đơn giản với khoảng 80 từ khóa, hơn 10 kiểu dữ liệu dựng
sẵn.
 C# là một ngôn ngữ hướng đối tượng, hỗ trợ đầy đủ những khái niệm trụ cột
của hướng đối tượng như: thừa kế, đa hình, đóng gói.
 C# là ngôn ngữ hiện đại được thể hiện như: xử lý ngoại lệ, thu gom bộ nhớ tự
động, bảo mật ...
 C# hỗ trợ khái niệm giao diệm ( interface ) như Java. Một lớp chỉ có thể kế
thừa duy nhất một lớp cha nhưng có thể cài đặt giao diện.
 C# là một ngôn ngữ mạnh mẽ với C# bạn có thể tạo ra mọi ứng dụng trên máy
tính.

GVHD: ThS.Lưu Minh Tuấn

15

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1. GIỚI THIỆU VỀ MẠNG NƠRON
2.1.1. Các giai đoạn phát triển của mạng nơron
Được phân chia thành 3 giai đoạn như sau:


Giai đoạn1: Tiền Perceptron (1940 – 1960)
Trong giai đoạn này mạng chưa đủ phức tạp nên chưa thể giải được những
bài toán khó, phức tạp.

Những điểm nổi bật trong giai đoạn này là:
-

Lần đầu tiên McCulloch và Pitts giới thiệu mô hình toán học của mạng
nơron vào năm 1943.

- Năm 1957 định nghĩa Perceptron.
- Năm 1960 Windrow đóng góp chính thuật toán trung bình bình phương bé
nhất (LSM) cho mô hình Adaline/Madaline.


Giai đoạn 2: Giai đoạn hậu Perceptron
Trong giai đoạn này mô hình Perceptron được phát huy với những thuật học
truyền thẳng và liên kết suy rộng. Đã tìm thêm nhiều cấu trúc mới, ứng dụng
mới, trong đó có:
- Mạng truyền thẳng với thuật toán lan truyền ngược.
- Mạng dùng cho các hàm cơ sở xuyên tâm.
- Mạng Hofield hồi qui.
- Bộ nhớ liên hợp hai chiều.
- Công trình mạng thích nghi của Grossberg và Kohonen.



Giai đoạn 3: Gần đây và hiện nay
Tiếp tục suy rộng và đưa vào thực tiễn nhiều mô hình thuật toán hoàn chỉnh

hơn. Những vấn đề chính hiện nay phải làm là:

GVHD: ThS.Lưu Minh Tuấn


16

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

- Đánh giá xác thực những hạn chế của mạng nơron.
- Các khả năng suy rộng khác nhau.
-

Phối hợp công nghệ mạng nơron với công nghệ logic mờ và các thuật
toán di truyền.

-

Cài đặt các mạng nơron nhân tạo bằng phần cứng chuyên dụng.

2.1.2. Các ứng dụng của mạng nơron nhân tạo
Lĩnh vực nghiên cứu của mạng nơron rất rộng, chủ yếu trong các vùng sau:
 Lĩnh vực 1: Phân lớp (Classification), tách cụn (Classtering), dự đoán
(diagnoisis) và liên kết. Đây là lĩnh vực tìm thấy nhiều ứng dụng nhất và cũng
được nghiên cứu sôi động nhất.
 Lĩnh vực 2: Các bài toán tối ưu. Vấn đề chính ở đây là tìm ra những thuật toán
huấn luyện mạng sao cho góp phần tìm nghiệm cho nhiều bài toán tối ưu toàn
cục.
 Lĩnh vực 3: Hồi qui và tổng quát hóa. Qua hồi qui tuyến tính và phi tuyến tính
người ta cố gắng tìm ra các đường thẳng hoặc các đường hồi qui phi tuyến tính
trơn sao cho khớp mẫu.
 Lĩnh vực 4: Hoàn chỉnh dạng và nhận dạng. Bài toán là hoàn chỉnh “đủ” dữ

liệu ban đầu sau khi đã bị mất đi một phần. Người ta quan tâm tới hai lớp mô
hình: Markov và máy Bozlman và mạng Hopfield. Trong bài toán nhận dạng,
người ta cho trước một mẫu và phải tìm kiếm trong các mẫu còn lại xem mẫu
nào giống với mẫu cho trước. Bài toán nhận dạng còn bao hàm cả bài toán
phát hiện đối tượng để nhận dạng.

2.2. CẤU TRÚC MẠNG NƠRON NHÂN TẠO
2.2.1. Mạng nơron nhân tạo
Mạng nơron nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng nơron,
neural network, là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin

GVHD: ThS.Lưu Minh Tuấn

17

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

của các hệ nơron sinh học. Nó được tạo lên từ một số lượng lớn các phần tử (gọi là
phần tử xử lý hay nơron) kết nối với nhau thông qua các liên kết (gọi là trọng số liên
kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó.
Một mạng nơron nhân tạo được cấu hình cho một ứng dụng cụ thể ( nhận dạng
mẫu, phân loại dữ liệu,...) thông qua một quá trình học từ tập các mẫu huấn luyện. Về
bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các nơron.
2.2.2. Mô hình
Ta tìm hiểu mô hình của một nơron nhân tạo sau:

xj


yj

wj
Bộ Tổng

xn

Hàm kích hoạt
f(.)

wn

Đầu vào

Trọng số liên kết

bk

yn

Ra

Hình 2.1 Cấu tạo của một nơron
Thành phần mạng nơron bao gồm:
xi : các đầu vào .
wj : các trọng số tương ứng với các đầu vào .
bk : trọng ngưỡng hay độ lệch (bias) .
yj : đầu ra của nơron .
f(x): hàm chuyển (hàm kích hoạt).

Về mặt toán học ta có tổng các thông tin vào có trọng số là:
Net =

GVHD: ThS.Lưu Minh Tuấn

�w

18

j

* xj

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

Đây chính là thành phần tuyến tính của nơron. Hàm kíc hoạt f(.) đóng vai trò biến
đổi u sang tín hiệu đầu ra
y = f(Net)
Sau đây là một số hàm kích hoạt thông dụng:
Hàm truyền

Đồ thị

Định nghĩa

θ


1khi( x � )

f ( x)  �
0khi( x � )


Hàm bước nhị phân

+1

f(x) = x

Hàm đồng nhất
-1
+1

Hàm sigmoid

f(x) =

1
1  e x

f(x) =

1  e x
1  e x

0


+1

Hàm sigmoid lưỡng cực
0

Hình 2.2 Một số hàm hay dùng

2.3. PHÂN LOẠI MẠNG NƠRON
Theo kiểu liên kết nơron: Ta có mạng truyền thẳng (feed - forward neural) và
mạng hồi qui (recurrent NN):
Mạng truyền thẳng (feed - forward neral):

GVHD: ThS.Lưu Minh Tuấn

19

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

Trong mạng này bao gồm tầng vào, tầng ra, và một số tầng ẩn. Khác so với
mạng hồi qui.
Dòng dữ liệu từ đơn vị đầu vào đến đơn vị đầu ra chỉ được truyền thẳng. Việc
xử lý dữ liệu có thể mở rộng ra nhiều lớp, nhưng không có các liên kết phản
hồi. Nghĩa là, các liên kết mở rộng từ các đơn vị đầu ra tới các đơn vị đầu vào
trong cùng một lớp hay các lớp trước đó là không cho phép. Hay nói một cách
khác các nơron không tạo thành đồ thị có chu trình với các đỉnh của nơron.
Mạng hồi qui:
Có chứa các liên kết ngược. Khác với mạng truyền thẳng, mạng này cho phép

các nơron trong mạng có thể tạo thành chu trình. Vì các thông tin ra của các
nơron được truyền lại cho các nơron đã góp phần kích hoạt chúng, nên mạng
hồi qui còn có khả năng lưu trữ các trạng thái trong của nó dưới dạng các
ngưỡng kích hoạt ngoài các trọng số liên kết nơron .
Cách chia thứ hai là theo số lớp: Các nơron có thể tổ chức thành các lớp sao
cho mỗi nơron của lớp này chỉ được nối với các nơron của lớp tiếp theo,
không cho phép liên kết các nơron trong cùng một lớp, hoặc từ nơron lớp dưới
lên lớp trên. Không cho phép các liên kết nơron nhảy qua một lớp.

2.4. MẠNG HỌC
Chức năng của mạng nơron được thể hiện qua các thông số sau:
- Số tín hiệu vào, số tín hiệu ra.
-

Số lớp nơron.

-

Số nơron trên mỗi lớp ẩn.

-

Số lượng liên kết của mỗi nơron ( liên kết đầy đủ, liên kết bộ phận, liên kết ngẫu
nhiên).

-

Các trọng số liên kết nơron.

GVHD: ThS.Lưu Minh Tuấn


20

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

Hình trạng mạng thường cố định, các trọng số được quyết định bởi thuật toán huấn
luyện, tiến trình điều chỉnh các trọng số liên kết sao cho mạng cho ra các kết quả mong
muốn này chính là quá trình học của mạng. Có rất nhiều thuật toán đã đưa ra để tìm ra
tập trọng số liên kết này sao cho tối ưu nhất. Các thuật toán được chia làm ba loại
chính: học có thầy, học không có thầy, học tăng cường.
2.4.1. Học có thầy (Học có giám sát)
Mạng được huấn luyện bằng cách cung cấp cho nó các cặp mẫu đầu vào và các
đầu ra mong muốn (target values). Các cặp được cung cấp bởi "thầy giáo", hay bởi hệ
thống trên đó mạng hoạt động. Sự khác biệt giữa các đầu ra thực tế so với các đầu ra
mong muốn được thuật toán sử dụng để thích ứng các trọng số trong mạng. Điều này
thường được đưa ra như một bài toán xấp xỉ hàm số - cho dữ liệu huấn luyện bao gồm
các cặp mẫu đầu vào x, và một đích tương ứng t, mục đích là tìm ra hàm f(x) thoả mãn
tất cả các mẫu học đầu vào. Tức là ta cung cấp cho mạng một tập mẫu học {(X s,Zs)}
với Xs là tín hiệu và Zs là kết quả mong muốn. Sau mỗi lần X s qua mạng ta lại so sánh
kết quả của mạng với kết quả Z s để điều chỉnh lại các trọng số trong mạng. Quá trình
này sẽ tiếp tục cho đến khi thỏa mãn một yêu cầu nào đó.
2.4.2. Học không có thầy
Là việc mạng học mà không cần bất cứ một sự giám sát nào của con người trong
quá trinh học. Trong việc học này tập dữ liệu huấn luyện được cho dưới dạng {X s} là
vectơ đặc trưng của mẫu huấn luyện. Nhiệm vụ của mạng là phải chia tập dữ liệu trên
thành các nhóm con mỗi nhóm chứa các vectơ đầu vào có đặc trưng giống nhau.
Như vậy với học không giám sát, số lớp phân loại chưa được biết trước, và tùy

theo tiêu chuẩn đánh giá độ tương tự giữa các mẫu mà ta có thể có các lớp phân loại
khác nhau.
2.4.3. Học tăng cường (học thưởng-phạt)
Là sự tổ hợp của cả hai mô hình trên. Phương pháp này cụ thể như sau: với vectơ
đầu vào, quan sát vectơ đầu ra do mạng tính được. Nếu kết quả được xem là “tốt” thì

GVHD: ThS.Lưu Minh Tuấn

21

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

mạng sẽ được thưởng theo nghĩa tăng các trọng số kết nối lên; ngược lại mạng sẽ bị
phạt, các trọng số kết nối không thích hợp sẽ được giảm xuống.

2.5. THUẬT TOÁN LAN TRUYỀN NGƯỢC ĐỐI VỚI MẠNG LAN
TRUYỀN THẲNG (FEED – FORWARD NEURAL)
2.5.1. Cơ sở toán học
Trước khi đi vào nghiên cứu thuật toán ta xét một số công thức toán học sau được
dùng để tính toán lỗi :
1. Giả sử y là một hàm của biến x1, x1 là một hàm của biến x2, ... , xn là hàm một
hàm của biến x khi đó để tính ảnh hưởng của y tới x ta dùng qui tắc chuỗi sau:

y �
y �
x


x

* 1 *.....* n

x �
x1 �
x2

w

(2.1)

2. Giả sử y là hàm của các biến trung gian x i, xi là hàm của zj. Nếu ta cần biết
thay đổi của y so với zj ta có công thức sau:

y

y �
x
 �(
* i)

zj

xi �
zj

(22)

1

3. Xét hàm f(x) = 1  1 . Ta có f’(x) = f(x)*[1 - f(x)]
ex
(Hoặc hàm f(x) =

(2.3)

e x  e x
. Ta có f’(x) = [ 1 - f(x)2 ])
x
x
e e

4. Một phần quan trọng trong thuật toán lan truyền ngược đó là Gradient.
Gradient được định nghĩa như sau:
Cho f(x) là một hàm khả vi liên tục trong không gian các vectơ thực n-chiều.
Trong lân cận đủ nhỏ của vectơ x = ( x 1, x2,...,xn ) thì hàm f(.) tăng nhanh nhất
theo hướng của vectơ gradient:
��
f �
f

f �
�f  �
,
,...,

��

x


x

x
n
� 1
2


GVHD: ThS.Lưu Minh Tuấn

22

(2.4)

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

2.5.2. Thuật toán lan truyền ngược
2.5.2.1. Nguyên tắc huấn luyện chung
Ta xét một mạng nơron có n đầu vào là X 1, X2, ... ,Xn. Có m đầu ra là O1,
O2, ... ,Om . Thực chất việc huấn luyện mạng là tìm bộ trọng số w j sao cho mạng nơron
có khả năng đáp ứng theo mong muốn. Có thể coi việc huấn luyện mạng là tạo cho
mạng khả năng của một thiết bị xấp xỉ thông tin.
Để huấn luyện mạng người ta đưa vào một tập mẫu có đầu vào là X (k) (kích thích
mẫu) k = 1,2,... là tập các mẫu huấn luyện và đầu ra mong muốn là T (k). Sau khi đưa tập
mẫu vào tính toán cho ra giá trị O (k). Các giá trị O(k) sẽ được so sánh với T(k). Các phần
tử của vectơ trọng số wj , i = 1,2,..,n có trong n nơron của mạng được hiệu chỉnh theo
từng bước huấn luyện qua mỗi mẫu sao cho tổng sai lệch Ek 




1 (k )
T  O( k )
2



2

là nhỏ

nhất.
Như vậy thực chất của quá trình huấn luyện mạng là quá trình giải bải toán tối
ưu tham số wj. Hình 2.3 diễn tả nguyên lý huấn luyện một mạng nơron
X(k)

T(k)

Hệ thống thực

Mạng Nơron

Wj
Cơ cấu huấn luyện
mạng

O(k)


E(k)

Hình 2.3 Nguyên tắc huấn luyện mạng

GVHD: ThS.Lưu Minh Tuấn

23

SVTH: Đặng Trần Quyết


Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

Từ công thức tính gradient ta sẽ có ý tưởng về cách cập nhật trọng số w. Bởi
hàm f(.) tăng nhanh theo hướng của vectơ gradient ta có thể làm giảm lỗi nhiều nhất
bằng cách đi ngược chiều gradient.
Ta xét trong không gian n-chiều lỗi tồn tại một mặt lỗi. Nều ta cắt mặt lỗi này
theo một mặt song song với một trục biểu diễn trọng số w nào đó thì mặt lỗi sẽ có dạng
như trong hình sau:
Lỗi trung bình bình phương

Hình 2.4 Mặt lỗi khi bị cắt bởi một mặt phẳng song song với trục w
Phóng to phần cực tiểu của mặt cắt lỗi này ta có:

GVHD: ThS.Lưu Minh Tuấn

24

SVTH: Đặng Trần Quyết



Nghiên cứu xây dựng hệ thống phát hiện khuôn mặt con người dựa trên mạng Nơron nhân tạo

Lỗi trung bình
bình phương
3

1

2
Giá trị trọng

Hình 2.5 Độ dốc mặt lỗi
Ta xét 3 điểm tại gần đường cong lỗi đánh số 1, 2, 3. Tại mỗi điểm xét ta vẽ ra 3
tiếp tuyến với đường cong đó. Ta có nhận xét sau: nếu độ dốc của tiếp tuyến âm tương
ứng với điểm 1 ta cần tăng trọng số. Ngược lại với điểm 2 ta cần giảm trọng số. Với độ
dốc lớn (tính theo trị tuyệt đối) tương ứng với điểm 3 ta cần dời trọng nhiều, nếu nhỏ
thì dời ít.
Độ dốc tiếp tuyến với đường cong lỗi trong mặt cắt theo trục w gọi là đạo hàm
riêng của hàm lỗi E lấy theo trọng số đó bằng qui tắc chuỗi đã trình bày ở trên. Kí hiệu

E
. Hay nói cách khác cần cập nhật trong số một lượng là w = w + w . Trong đó

w
w =   *


E
với  là hệ số học (0<  <1).


w

2.5.2.2. Thuật toán
Xét một mạng nơron truyền thẳng tổng quát như hình 2.9 dưới đây
Mạng nơron này gồm M lớp j = 1,2,...,M. Nj là số nơron trong lớp thứ j. Giá trị
p là chỉ số mẫu huấn luyện thứ p với p =1,2,.... Mạng có N 0 đầu vào là Xp1, Xp2, ... ,

GVHD: ThS.Lưu Minh Tuấn

25

SVTH: Đặng Trần Quyết


×