Nhận diện khuôn mặt bằng phương pháp máy học CNN. Tìm hiểu khái niệm chung về máy học, sau đó tìm hiểu mô hình CNN và áp dụng vào nhận diện khuôn mặt. tài liệu giúp giáo viên và sinh viên làm đề tài tiểu luận hoặc nghiên cứu khoa học cấp trường ở các trường Trung cấp, Cao đẳng.
Trang 1MỤC LỤC
LỜI CẢM ƠN 3
MỞ ĐẦU 4
1 Lý do chọn đề tài 4
2 Mục đích nghiên cứu 5
3 Nhiệm vụ nghiên cứu 5
4 Đối tượng và phạm vi nghiên cứu 5
5 Phương pháp nghiên cứu 5
6 Đóng góp đề tài 5
7 Cấu trúc đề tài 5
NỘI DUNG 7
CHƯƠNG I: CƠ SỞ LÝ THUYẾT VỀ MÁY HỌC 7
1.1 Tổng quan về phương pháp máy học 7
1.2 Mạng nơ ron (Neural) 8
1.2.1 Mạng Nơ-ron nhân tạo 8
1.2.2 Kiến trúc mạng nơ ron 12
1.2.3 Huấn luyện mạng neural 14
1.2.4 Thuật toán huấn luyện mạng 16
CHƯƠNG 2: MẠNG NƠ RON TÍCH CHẬP (CONVOLUTION NEURAL NETWORKS – CNNs) 18
2.1 Phương pháp CNN 18
2.1.1 Các thành hần chính và mô hình hoạt động của CNN 18
2.1.2 Ưu điểm của CNN 22
2.2 Các tầng chính trong mạng CNN 23
2.2.1 Pooling 23
2.2.2 ReLU 25
2.2.3 Fully-connected 25
2.3 Kiến trúc mạng CNN 25
2.4 Cách chọn tham số cho CNN 26
CHƯƠNG 3: NHẬN DIỆN KHUÔN MẶT BẰNG CNN 27
3.1 Phương pháp nhận diện khuôn mặt bằng CNN 27
3.1.1 Giới thiệu 27
3.1.2 Cấu trúc của hệ thống 27
Trang 23.2 Thực nghiệm nhận diện khuôn mặt 31
3.2.1 Môi trường thực nghiệm 31
3.2.2 Tổ chức thực hiện 32
3.2.3 Các bước thực hiện 37
C KẾT LUẬN 39
TÀI LIỆU THAM KHẢO 40
Trang 3LỜI CẢM ƠN
Chúng tôi xin gửi lời cảm ơn sâu sắc tới quý Thầy Cô trong hội đồng khoahọc trường CĐ Bình Phước đã giúp đỡ và động viên chúng tôi tận tình trong thờigian chúng tôi thực hiện đề tài Những lời hướng dẫn và động viên của quý Thầy
Cô thực sự là những bài học quý báu đối với chúng tôi và giúp cho chúng tôi có thểhoàn thành tốt đề tài
Cảm ơn quý Thầy Cô cùng khoa/tổ chuyên môn đã tận tình chia sẻ kinhnghiệm và giúp đỡ chúng tôi trong công tác cũng như giúp chúng tôi hoàn thành đềtài nghiên cứu này
Trong quá trình thực hiện đề tài này, chúng tôi đã tham khảo một số tài liệucủa một số tác giả, xin tỏ lòng cảm ơn các tác giả
Mặc dù cố gắng hoàn thành đề tài với tất cả sự nỗ lực của bản thân, nhưngvới kiến thức còn hạn chế đề tài cũng không tránh khỏi những sai sót, chúng tôi rấtmong nhận được sự góp ý tận tình của quý Thầy Cô và các bạn
Người thực hiện đề tài: Đinh Thúy Chiều – Bùi Hùng Cường
Trang 4MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, xã hội loài người chứng kiến sự phát triển mạnh mẽ và sôi động củacông nghệ thông tin trong mọi lĩnh vực trong đó có lĩnh vực trí tuệ nhân tạo và thịgiác máy tính, nhận diện đối tượng Những năm gần đây, lĩnh vực này đã đưa ranhiều ứng dụng rất quan trọng giúp ích cho cuộc sống của chúng ta Trong đó việcnghiên cứu về máy học và những ứng dụng của máy học như: nhận diện khuônmặt, nhận diện chữ viết tay, nhận diện đối tượng… đang được các nhà nghiên cứudành sự quan tâm đặc biệt và đầu tư nhiều nguồn lực vào lĩnh vực này
Nhận diện khuôn mặt là một trong những cách thức để giám sát an ninh, antoàn xã hội là cần thiết ở mọi nơi, một số địa điểm/đơn vị cần mức độ an toàn hơnmức bình thường như: cửa hàng siêu thị, tòa nhà công ty, chung cư cao cấp, cơquan công an, doanh trại quan đội…
Nhận diện danh tính qua khuôn mặt không chỉ đặc biệt quan trong trongngành an ninh mà còn có thể áp dụng cho nhiều lĩnh vực khác nhau như: điểmdanh học sinh/sinh viên trong ngành giáo dục, giám sát trẻ nhỏ trong lớp học….Nhận diện khuôn mặt có hai yếu tố chính đó là phát hiện khuôn mặt trongảnh và nhận diện danh tính khuôn mặt Phát hiện khuôn mặt đã có mặt trên nhiềuđiện thoại di động đời mới, còn nhận diện khuôn mặt là nhận diện danh tính xemngười đó là ai từ thư viện ảnh Nhận diện khuôn mặt là bài toán khó cần được đàosâu nghiên cứu vì nó có nhiều thử thách Điểm thử thách là mỗi khuôn mặt đều cócùng mắt, mũi, miệng và có cùng khuôn dạng Như vậy làm sao để áp dụng xử lýảnh và máy học vào nhận dạng, trong phạm vi đề tài tác giả sẽ tìm hiểu mộtphương pháp máy học có độ chính xác cao và tốc độ chạy nhanh, phù hợp với thờigian thực đó là phương pháp mạng nơ ron tích chập (CNN)
Do quá trình nghiên cứu cũng như kiến thức và tài liệu còn nhiều hạn chế nên
Trang 5đề tài còn nhiều thiếu sót, chưa được đầy đủ Mong nhận được sự góp ý của quýThầy Cô để đề tài được thực sự hoàn chỉnh hơn.
2 Mục đích nghiên cứu
Nghiên cứu tổng quan về phương pháp máy học
Nghiên cứu về một giải thuật trong máy học để áp dụng vào nhận diện khuôn mặt người
Viết chương trình thực nghiệm trên ngôn ngữ lập trình python
3 Nhiệm vụ nghiên cứu
Nghiên cứu phương pháp máy học để xem cách học nào phù hợp nhất với bàitoán nhận diện khuôn mặt
Ứng dụng phương pháp học sâu mạng nơ ron tích chập (CNNs) vào phươngpháp nhận diện khuôn mặt
4 Đối tượng và phạm vi nghiên cứu
Nghiên cứu phương pháp được sử dụng trong hệ thống nhận diện khuôn mặt:Phương pháp sử dụng mạng nơ ron tích chập
Nghiên cứu ngôn ngữ lập trình python áp dụng cho bài toán
5 Phương pháp nghiên cứu
Phương pháp phân tích và tổng hợp tài liệu để tìm hiểu về phương pháp máyhọc và nhận diện khuôn mặt dựa trên giải thuật của máy học
Phương pháp nghiên cứu thực tiễn áp dụng của đề tài
6 Đóng góp đề tài
Tài liệu bổ ích cho lĩnh vực máy học
Sử dụng để có thể phát triển với tập dữ liệu lớn hơn trong quá trình nhận diệnkhuôn mặt để kiểm soát người lạ ra vào ở các cơ quan
Nâng cao khản năng tư duy xây dựng thuật toán và viết chương trình
7 Cấu trúc đề tài
Chương 1: Giới thiệu tổng quan về phương pháp máy
Trang 6Chương 2: Mạng nơ ron tích chập (Convolutional Neural Networks –CNNs).Chương 3 Thực nghiệm nhận diện khuôn mặt
Trang 7NỘI DUNG CHƯƠNG I: CƠ SỞ LÝ THUYẾT VỀ MÁY HỌC 1.1 Tổng quan về phương pháp máy học
Máy học (Machine Learning - ML) là một công nghệ phát triển từ lĩnhvực trí tuệ nhân tạo Các thuật toán ML là các chương trình máy tính có khả nănghọc hỏi về cách hoàn thành các nhiệm vụ và cách cải thiện hiệu suất theo thời gian
ML vẫn đòi hỏi sự đánh giá của con người trong việc tìm hiểu dữ liệu cơ sở và lựachọn các kĩ thuật phù hợp để phân tích dữ liệu Đồng thời, trước khi sử dụng, dữliệu phải sạch, không có sai lệch và không có dữ liệu giả
Các mô hình ML yêu cầu lượng dữ liệu đủ lớn để "huấn luyện" và đánh giá
mô hình Trước đây, các thuật toán ML thiếu quyền truy cập vào một lượng lớn dữliệu cần thiết để mô hình hóa các mối quan hệ giữa các dữ liệu Sự tăng trưởngtrong dữ liệu lớn (big data) đã cung cấp các thuật toán ML với đủ dữ liệu để cảithiện độ chính xác của mô hình và dự đoán
Học sâu, một tập con của máy học, sử dụng các lớp, bậc của mạng nơ-ronnhân tạo để thực hiện quá trình máy học Các mạng nơ-ron được xây dựng giốngnhư bộ não của con người, với các nút rơ-ron được kết nối với nhau như một trangweb
Học sâu không có nghĩa là máy học thêm kiến thức chuyên sâu, nó có nghĩa
là máy sử dụng các lớp khác nhau để học hỏi từ dữ liệu Độ sâu của mô hình đượcbiểu thị bằng số lớp trong mô hình Trong khi các chương trình truyền thống xâydựng các phân tích dữ liệu theo cách tuyến tính, thì chức năng phân tầng của các
hệ thống học sâu cho phép các máy xử lí dữ liệu theo cách tiếp cận phi tuyến Lớpđầu tiên của mạng nơ-ron sẽ xử lí dữ liệu đầu vào thô, như là xử lý ảnh gốc banđầu và chuyển nó sang lớp tiếp theo làm đầu ra Lớp thứ hai xử lí thông tin của lớp
Trang 8trước bằng cách thêm thông tin bổ sung như địa chỉ IP của người dùng hoặc rúttrích đặc trưng ảnh và chuyển qua kết quả.
Một trong những mô hình Deep Learning tiên tiến giúp chúng ta xây dựngđược những hệ thống thông minh với độ chính xác cao đó là mạng nơ ron
1.2 Mạng nơ ron (Neural)
1.2.1 Mạng Nơ-ron nhân tạo
Mạng Neural nhân tạo, Artificial Neural Network (ANN) gọi tắt là mạng nơron, là một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của hệ nơron sinh học Trong Deep learning, Neural networks để chỉ mạng nơ ron nhân tạo,
là sự kết hợp giữa các nơ ron nhân tạo với nhau Mỗi liên kết kèm theo một trọng
số nào đó đặc trưng cho đặc tính kích hoạt ức chế giữa các nơ ron 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ănglưu giữ những kinh nghiệm hiểu biết và sử dụng những tri thức đó trong việc dựđoán các dữ liệu chưa biết
Kiến trúc chung của một mạng nơron nhân tạo (ANN) gồm 3 thành phần đólà: Tầng nhập (Input Layer), tầng ẩn (Hidden Layer) và tầng xuất (Output Layer).Trong đó, tầng ẩn (Hidden Layer) gồm các nơron nhận dữ liệu input từ các nơron ởlớp (Layer) trước đó và chuyển đổi các input này cho các lớp xử lý tiếp theo.Trong một ANN có thể có nhiều tầng ẩn
Tầng input layer (tầng vào): Tầng này nằm bên trái cùng của mạng, thể hiện cho các đầu vào của mạng
Tầng output layer (tầng ra): Là tầng bên phải cùng và nó thể hiện cho những đầu racủa mạng
Tầng hidden layer (tầng ẩn): Tầng này nằm giữa tầng vào và tầng ra nó thể hiện cho quá trình suy luận logic của mạng
Trang 9Mỗi một Neural Network chỉ có duy nhất một tầng vào và một tầng ra nhưng lại córất nhiều tầng ẩn
Hình 1.1 Mô hình mạng nơ ron nhân tạo ANN
Hình 1.2 Kiến trúc tổng quát của một ANNTrong đó các Processing Elements (PE) của ANN gọi là nơ ron, mỗi nơ ron nhậncác dữ liệu vào (Inputs) xử lý chúng và cho ra một kết quả (Output) duy nhất Kếtquả xử lý của một nơron có thể làm Input cho các nơron khác
- Quá trình xử lý thông tin của một ANN:
Trang 10Hình 1.3 Qúa trình xử lý thông tin trong ANN+ Inputs (dữ liệu vào): Mỗi Input tương ứng với một thuộc tính (attribute) của dữliệu (patterns).
+ Output (kết quả): Kết quả của một ANN là một giải pháp cho một vấn đề
+ Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan trọng củamột ANN, nó thể hiện mức độ quan trọng (độ mạnh) của dữ liệu đầu vào đối vớiquá trình xử lý thông tin (quá trình chuyển đổi dữ liệu từ Layer này sang layerkhác) Quá trình học của ANN thực ra là quá trình điều chỉnh các trọng số của các
dữ liệu đầu vào để có được kết quả mong muốn
+ Summation Function (Hàm tổng): Tính tổng trọng số của tất cả các input đượcđưa vào mỗi nơron Hàm tổng của một nơron đối với n input được tính theo côngthức sau:
+ Transfer Function (Hàm chuyển đổi): Hàm chuyển đổi của một nơron cho biếtkhả năng kích hoạt của nơron đó còn gọi là kích hoạt bên trong (internalactivation) Các nơron này có thể sinh ra một output hoặc không (nói cách khác làoutput của một nơ ron có thể được chuyển đến layer tiếp trong mạng hoặc không)
Trang 11Mối quan hệ giữa hàm kích hoạt và kết quả (output) được thể hiện bằng hàmchuyển đổi (Transfer Function).
Việc lựa chọn hàm chuyển đổi có tác động lớn đến kết quả của ANN Hàm chuyển đổi phi tuyến được sử dụng phổ biến trong ANN là sigmoid function
YT = 1/(1 + e-Y)Trong đó :
YT: Hàm chuyển đổi
Y: Hàm tổng
Kết quả của Sigmoid Function thuộc khoảng [0,1] nên còn gọi là hàm chuẩn hóa.Kết quả xử lý tại các Nơron (Output) đôi khi rất lớn, vì vậy transfer function được
sử dụng để xử lý output này trước khi chuyển đến layer tiếp theo Đôi khi thay vì
sử dụng Transfer Function người ta sử dụng giá trị ngưỡng (Threshold value) đểkiểm soát các output của các nơron tại một layer nào đó trước khi chuyển cácoutput này đến các layer tiếp theo Nếu output của một nơron nào đó nhỏ hơn giátrị ngưỡng thì nó sẽ không được chuyển đến Layer tiếp theo.
Trang 121.2.2 Kiến trúc mạng nơ ron
Ma trận trọng số cho các phần tử trong vector đầu vào W:
Trang 14vào mạng
Dữ liệu từ tất cả các nút trong tầng nhập được tích hợp - ta gọi là tổng trọng số –
và chuyển kết quả cho các nút trong tầng ẩn Các nút trong lớp xuất nhận các tínhiệu tổng trọng hóa từ các nút trong lớp ẩn
1.2.3 Huấn luyện mạng neural
Mạng neural nhân tạo phỏng theo việc xử lý thông tin của bộ não người, dovậy đặc trưng cơ bản của mạng là có khả năng học, khả năng tái tạo các hình ảnh
và dữ liệu khi đã học Trong trạng thái học thông tin được lan truyền theo hai chiềunhiều lần để học các trọng số Có 3 kiểu học chính, mỗi kiểu học tương ứng vớimột nhiệm vụ học trừu tượng Đó là học có giám sát (có mẫu), học không giám sát
và học tăng cường Thông thường loại kiến trúc mạng nào cũng có thể dùng đượccho các nhiệm vụ
a Học có giám sát
Một thành phần không thể thiếu của phương pháp này là sự có mặt của mộtngười thầy (ở bên ngoài hệ thống) Người thầy này có kiến thức về môi trường thểhiện qua một tập hợp các cặp đầu vào - đầu ra đã được biết trước Hệ thống học (ởđây là mạng neural) sẽ phải tìm cách thay đổi các tham số bên trong của mình (cáctrọng số và các ngưỡng) để tạo nên một ánh xạ có khả năng ánh xạ các đầu vàothành các đầu ra mong muốn Sự thay đổi này được tiến hành nhờ việc so sánhgiữa đầu ra thực sự và đầu ra mong muốn
b Học không giám sát
Trong học không có giám sát, ta được cho trước một số dữ liệu x và hàm chiphí cần được cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu x và đầu ra củamạng, f – hàm chi phí được quyết định bởi phát biểu của bài toán Phần lớn cácứng dụng nằm trong vùng của các bài toán ước lượng như mô hình hóa thống kê,nén, lọc, phân cụm
Trang 15d Ví dụ
Giả sử chúng ta muốn dạy nơron phân biệt chữ A và B Khi đưa input là Achúng ta muốn nơron cho output là 1, còn khi input là B thì nơron phải cho outputbằng 0
Hãy bắt đầu bằng cách cho các trọng số (weigh) những giá trị ngẫu nhiên,lúc này nơron chưa biết gì hết Bây giờ hãy input chữ A Nơron sẽ lấy tổng cótrọng số của các inputs và so sánh kết quả với 0 Nếu kết quả dương thì output là 1,
âm thì output là 0 Khả năng nơron đoán đúng là 50%, vì các trọng số đang có giátrị hoàn toàn ngẫu nhiên Nếu nơron đoán đúng thì chúng ta không cần làm gì cả,nhưng khi nơron đoán sai (output bằng 0), thì chúng ta phải tăng các trọng số của
Trang 16các inputs đang hoạt động (các inputs khác không) lên, sao cho lần tới tổng cótrọng số sẽ vượt quá ngưỡng và tạo nên output là 1.
Ngược lại, khi đưa chữ B vào và nơron đoán sai (output bằng 1), thì ta phải giảmcác weights của các inputs đang hoạt động xuống, sao cho lần tới tổng có trọng số
sẽ nhỏ hơn threshold và buộc nơron phải cho output bằng 0
Như vậy, khi dạy chữ B thành công rồi thì nơron có quên đi chữ đã học trước đó là
A không ? Không, vì khi input là các chữ khác nhau thì nhóm các đường inputsđang hoạt động cũng khác nhau hoặc là không hoàn toàn trùng nhau Nhớ là chúng
ta chỉ biến đổi weights của các inputs đang hoạt động thôi Chúng ta chỉ việc lập đilập lại quá trình dạy như trên cho tới khi nơron học thuộc bài mới thôi
1.2.4 Thuật toán huấn luyện mạng
Trong phạm vi đề cập những gì liên quan đến kiến thức cơ sở để làm đề tài,chúng tôi chỉ xin trình bày những vấn đề có liên quan, những kiến thức được sửdụng phục vụ cho việc hoàn thành đề tài
Trong đề tài này, chúng tôi đã sử dụng mạng feed-forward và thuật toán lan truyềnngược sai số Back Propagation để xử lý bài toán
a Thuật toán lan truyền ngược Back Propagation
Đây là phương pháp thông dụng nhất để huấn luyện cho các mạng nơron truyền thẳng nhiều lớp Có thể áp dụng cho các mạng truyền thẳng với các hàmchuyển và các hàm lỗi khả vi
Tiêu chuẩn huấn luyện: Làm cho sai số đầu ra càng nhỏ càng tốt
Triết lý của phương pháp: dựa trên đầu ra để điều chỉnh trọng số của lớp ra,sau đó dựa trên tính toán của lớp ra để điều chỉnh trọng số của lớp ẩn
Huấn luyện mạng neural nhiều lớp sử dụng thuật toán Lan truyền ngược gồm hai quá trình: Quá trình truyền tuyến tính và quá trình truyền ngược:
Quá trình truyền tuyến tính: Dữ liệu từ lớp nhập qua lớp ẩn và đến lớp xuất để:
Trang 17 Thay đổi giá trị của trọng số liên kết W của các neural trong mạng biểudiễn được dữ liệu học.
Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính được và kếtquả dự đoán của mạng gọi là lỗi (học có giám sát)
Quá trình truyền ngược: Giá trị lỗi sẽ được truyền ngược lại sao cho quá
trình huấn luyện (học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất.
b Những hạn chế của phương pháp lan truyền ngược
Ngoài những thành công của giải thuật học lan truyền ngược, vẫn còn cómột số khía cạnh làm cho giải thuật trở nên chưa được bảo đảm là mọi lúc đều tốt.Khó khăn chủ yếu là ở quá trình huấn luyện lâu Có thể do tốc độ học và động lựckhông tối ưu Sự sai sót trong việc huấn luyện nói chung xuất hiện từ hai nguồn:mạng liệt và những cực tiểu địa phương
Mạng liệt: xảy ra khi những trọng số được điều chỉnh tới những giá trị rấtlớn Tổng đầu vào của một đơn vị ẩn hoặc đơn vị đầu ra có thể bởi vậy mà đạt giátrị rất cao (hoặc dương hoặc âm), và qua hàm kích hoạt sigmoid, đơn vị sẽ có mộtgiá trị kích hoạt rất gần 0 hoặc rất gần 1 Giá trị hiệu chỉnh trọng số gần 0, và quátrình huấn luyện có thể đi đến một trạng thái dừng ảo
Cực tiểu địa phương: bề mặt sai số của mạng rất phức tạp đầy những ngọnđồi và những thung lũng Bởi vì sự hạ độ dốc, mạng có thể bị mắc bẫy tại một cựctiểu địa phương khi có nhiều cực tiểu thấp hơn gần bên cạnh Những phương phápthống kê có thể giúp để tránh cái bẫy này, nhưng chúng làm chậm Một phương ánkhác là tăng thêm số lượng đơn vị ẩn Như vậy sẽ làm việc trong không gian sai sốnhiều chiều, nên cơ hội gặp bẫy nhỏ hơn Tuy nhiên việc tăng cũng có giới hạntrên, khi vượt qua giới hạn này, cơ hội mắc bẫy lại tăng lên
Trang 18CHƯƠNG 2: MẠNG NƠ RON TÍCH CHẬP (CONVOLUTION NEURAL NETWORKS – CNNs)
2.1 Phương pháp CNN
Mạng neural tích chập (Convolutional Neural Network) là một trong những
mô hình Depep Learning tiên tiến giúp ta xây dựng được những hệ thống thông
minh với độ chính xác cao như hiện nay
Về cơ bản CNN là một kiểu mạng ANN truyền thẳng, trong đó kiến trúc chínhgồm nhiều thành phần được ghép nối với nhau theo cấu trúc nhiều tầng đó là:Convolution, Pooling, ReLU và Fully connected
2.1.1 Các thành hần chính và mô hình hoạt động của CNN
Trước khi đi vào các thành phần cơ bản của CNN, ta xem xét một ví dụ vềcách thức xử lý thông tin đầu vào của một ANN truyền thẳng để từ đó rút ra tácdụng của các thành phần có trong mạng CNN
Hình 2.1: Ví dụ mạng cách thức xử lý ANN với cấu trúc full connectedHình 2.1 mô tả một ví dụ với dữ liệu đầu vào là một bức ảnh có kích thước
200 *200 được xử lý bằng ANN với kết nối đầy đủ giữa hai tầng liên tiếp (fullconnected) Như vậy giả sử số neural tầng ẩn là 40000 thì tổng số tham số (mà cụthể hơn ở đây là các trọng số liên kết W giữa các neural tầng nhập với tầng ẩn) cầnphải ước lượng lên đến 1.6 tỉ Điều này gây khó khăn cho việc huấn luyện ANN
Trang 19trên hai yếu tố:(1) chi phí để xây dựng dữ liệu huấn luyện lớn và (2) thời gian huấnluyện lâu.
Hình 2.2: Ý tưởng CNN
Từ thực tế đặt ra ở trên người ta thấy rằng để giảm số lượng tham số cần giảm sốlượng kết nối giữa các lớp Từ đây thành phần convolution được áp dụng – ý tưởngchính là mỗi neural chỉ cần kết nối tới một vùng cục bộ của ảnh thay vì trên toàn
bộ ảnh
● Tầng chập (Convolution)
Tầng Convolution (Conv) là tầng quan trọng nhất trong cấu trúc của CNN.Conv dựa trên lý thuyết xử lý tín hiệu số, việc lấy tích chập sẽ giúp trích xuất đượcnhững thông tin quan trọng từ dữ liệu Ta có thể hình dung phép tính này đượcthực hiện bằng cách dịch chuyển một cửa sổ mà ta gọi là kernel trên ma trận đầuvào, trong đó kết quả mỗi lần dịch chuyển được tính bằng tổng tích chập (tích củacác giá trị giữa 2 ma trận tại vị trí tương ứng)
Để dễ hình dung, ta có thể xem tích chập như một cửa sổ trượt áp đặt lên một matrận như sau:
Trang 20Hình 2.3 Minh họa cửa sổ chậpTrong hình trên, ma trận bên trái là một hình có kích thước 5x5, mỗi giá trị trong
ma trận tương đương với một điểm ảnh: 0 là màu trắng, 1 là màu đen (đối với ảnhxám thì giá trị màu biến thiên trong khoảng từ 0 đến 255)
Khi được áp dụng phép tính Conv vào xử lý ảnh người ta thấy rằng Conv sẽ giúpbiến đổi các thông tin đầu vào thành các yếu tố đặc trưng (nó tương ứng như bộphát hiện – detector các đặc trưng về cạnh, hướng, đốm màu …) Hình 4 là minhhọa việc áp dụng phép tính Conv trên ảnh trong đó (a) là kết quả biến đổi hình ảnhkhi thực hiện phép Conv khác nhau cho ra kết quả khác nhau, (b) là trực quan hóacác kernel dùng để detector các đặc trưng về cạnh, hướng, đốm màu
Hình 2 4: Ví dụ Conv
Để dễ hình dung, ta xét bài toán thực hiện tính giá trị đầu ra của một ảnh cókích thước W_1*H_1 * D_1 ( ở đây D_1 được gọi là chiều sâu của ảnh thực chất
là giá trị tại 3 kênh màu tương ứng với ảnh RGB) Khi đó một Conv như một cửa
sổ trượt (sliding window, có tên gọi là kernel, filter hay feature detector ) – cửa sổ