NHIỆM VỤ VÀ NỘI DUNG: Nhiệm vụ chính của luận văn là nghiên cứu bài toán phân loại dữ liệu một lớp, tập trung cho dữ liệu hình ảnh và các phương pháp học dựa vào đặc trưng sâu.. Tôi xin
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học: PGS TS Lê Hồng Trang
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1 Chủ tịch: PGS.TS Trần Minh Quang
2 Thư ký: TS Phan Trọng Nhân
3 Phản biện 1: TS Nguyễn Thị Ái Thảo
4 Phản biện 2: PGS.TS Nguyễn Tuấn Đăng
Trang 3
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: NGUYỄN VĂN ĐỨC MSHV: 1970014
Ngày, tháng, năm sinh: 21/01/1996 Nơi sinh: Đồng Nai Chuyên ngành: Khoa học Máy tính Mã số: 8480101
I TÊN ĐỀ TÀI:
Phân loại dữ liệu một lớp và ứng dụng trong bài toán phát hiện bất thường One-class classification and its application in anomaly detections
II NHIỆM VỤ VÀ NỘI DUNG: Nhiệm vụ chính của luận văn là nghiên cứu bài toán
phân loại dữ liệu một lớp, tập trung cho dữ liệu hình ảnh và các phương pháp học dựa vào đặc trưng sâu Luận văn cần đề xuất được một mô hình cải tiến và đánh giá trên các tập dữ liệu chuẩn về bài toán phát hiện bất thường trong sản xuất công nghiệp Các nội dung chính của luận văn bao gồm :
- Nghiên cứu tổng quan về bài toán phân lớp một lớp, các ứng dụng thực tiễn Các phương pháp, mô hình đã đề xuất
- Tổng hợp, phân tích các mô hình học dựa trên các đặc trưng sâu cho bài toán phân lớp một lớp, và các kết quả thực nghiệm trên các tập dữ liệu chuẩn cho bài toán phát hiện bất thường trong sản xuất công nghiệp
- Đề xuất một mô hình cải tiến, thực nghiệm và đánh giá kết quả thu được
- Viết một bài báo cho các kết quả đạt được và gửi tham dự báo cáo ở một hội nghị khoa học quốc tế phù hợp với chủ đề nghiên cứu
III NGÀY GIAO NHIỆM VỤ: 06/09/2021
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 05/12/2022
V CÁN BỘ HƯỚNG DẪN: PGS TS Lê Hồng Trang
Trang 4Để hoàn thiện được đề tài nghiên cứu này, em đã cố gắng và nỗ lực hết mình Tuynhiên bênh cạnh đó cũng phải kể đến là sự hỗ trợ, giúp đỡ tận tình của gia đình, bạn
bè và thầy cô Nhân dịp này, em xin gửi lời cảm ơn tất cả mọi người đã hỗ trợ emtrong thời gian qua Em xin trân trọng gửi đến thầy Lê Hồng Trang - thầy là người đãtrực tiếp hướng dẫn, cung cấp tài liệu cần thiết và động viên em trong suốt quá trìnhthực hiện lời cảm ơn chân thành nhất Em xin cảm ơn ban giám hiệu cùng toàn thểthầy cô trường đại học Bách Khoa đặc biệt là khoa Khoa học và Kỹ thuật máy tính đãtạo điều kiện và hỗ trợ em hoàn thành tốt nghiên cứu này
Một lần nữa xin cảm ơn tất cả mọi người!
iv
Trang 5Phát hiện bất thường là bài toán được ứng dụng nhiều trong các lĩnh vực khác nhauhiện nay đặc biệt là khi dữ liệu có được chỉ thuộc một lớp dữ liệu Thách thức cho bàitoán này là khá lớn khi mà mô hình sẽ không được huấn luyện để nhận biết được cácbất thường khác như bài toán phân loại nhiều lớp bình thường Trong nghiên cứu này,tác giả đã trình bày các kết quả đạt được từ các nghiên cứu trước và đề xuất cải tiếnhướng xử lý được cho là tốt nhất hiện tại Phương pháp được đề xuất cũng được thựcnghiệm trên các dữ liệu chuẩn nổi tiếng đánh giá cho loại bài toán bất thường một lớpnày (như MVTec và BTAD) Các kết quả thực nghiệm khả quan củng cố cho hướng
đi hiện tại là đúng đắn và có thể phát triển thêm trong tương lai sắp tới
v
Trang 6Tôi xin cam đoan toàn bộ số liệu và kết quả có được trong luận văn thạc sĩ với đề tài
"Phân loại dữ liệu một lớp và ứng dụng trong bài toán phát hiện bất thường" đều làtrung thực và chưa từng được công bố trước đây Các số liệu được trình bày và phântích được tôi thu nhập từ nhiều nguồn khác nhau và được trích dẫn đầy đủ và ghi rõnguồn gốc Nếu phát hiện có sự gian lận sao chép kết quả nghiên cứu của nghiên cứutrước, tôi xin hoàn toàn chịu trách nhiệm
Học viên:
Nguyễn Văn Đức
vi
Trang 7Lời cảm ơn iv
2.1 Tổng quan về bài toán 3
2.2 Học máy và bài toán phân loại dữ liệu 4
2.3 Mục tiêu và phạm vi nghiên cứu 5
2.4 Các nền tảng 6
2.5 Dữ liệu 27
2.6 Cách thức đánh giá 30
3 Các cách tiếp cận phổ biến cho bài toán phát hiện bất thường với dữ liệu một lớp 33 3.1 Các thành phần trong bài toán dữ liệu một lớp 33
3.2 Các phương pháp đã được đề xuất 34
vii
Trang 84 Một mô hình một lớp đề xuất 43
4.1 Mô hình chắt lọc dữ liệu cải tiến 43
4.2 Thực nghiệm và kết quả 46
An Improved Reverse Distillation Model for Unsupervised Anomaly tion Paper 53
Trang 9Danh sách hình vẽ
1.1 Các mốc nghiên cứu về one-class classification qua thời gian [1] 1
2.1 Kiến trúc mạng nơ-ron nhân tạo nhiều lớp 7
2.2 Hàm sigmoid 10
2.3 Hàm tanh so với sigmoid 11
2.4 Hàm ReLu so với sigmoid 12
2.5 Hàm Leaky ReLu so với ReLU 13
2.6 Hàm sốy = x2 15
2.7 Chuỗi các lớp xử lý của mạng nơ-ron tích chập cho bài toán nhận dạng chũ viết tay [2] 18
2.8 Làm phẳng ma trận hình ảnh 3x3 thành véc-tơ 9x1 19
2.9 Tích chập một tấm hình kích thước 5x5x1 với kernel 3x3x1 để có được đặc trưng tích chập 3x3x1 20
2.10Thực thi lớp tích chập với độ dài trượt là 2 và same padding 21
2.11Tích chập một tấm hình kích thước 5x5x1 với kernel 3x3x1 để có được đặc trưng tích chập 3x3x1 22
2.12Cách hoạt động của max pooling 23
2.13Tầng kết nối đầy đủ được thể hiện tại lớp ở cuối phía sau tầng Flatten 24
2.14Kiến trúc mạng ResNet 34 (ngoài cùng bên phải) [3] 26
2.15Các biến thể của mạng ResNet 27
2.16Một góc nhìn về kiến trúc mạng ResNet 34 27
2.17Khối tích chập conv1 28
Trang 102.18Khối tích chập conv1 và Max pooling 28
2.19Ảnh ví dụ được lấy từ tập dữ liệu MVTec AD [4] 29
2.20Số lượng bài báo sử dụng BTAD qua các năm [5] 30
2.21Ảnh ví dụ được lấy từ tập dữ liệu BTAD [5] 31
2.22Minh họa đường cong ROC [6] 32
3.1 Chiến lược đào tạo được sử dụng trng OCCNN [7] 35
3.2 Hình ảnh thể hiện các thành phần khác nhau của kiến trúc mạng OCGAN [8] 37 3.3 Chắt lọc tri thức với các mạng GAN 38
3.4 Học lũy tiến của KDGAN [9] 39
3.5 Kiến trúc mô hình chắt lọc ngược [10] 41
4.1 Mô hình chắt lọc tri thức nguyên bản 43
4.2 Cải tiến đầu tiên cho mô hình chắt lọc dữ liệu 44
4.3 Cải tiến thứ hai cho mô hình chắt lọc dữ liệu 45
4.4 Kết quả quan sát được các tập dữ liệu Bottle, Wood, Toothbrush, Zipper, và Hazelnut 51
Trang 114.3 Kết quả đánh giá với tập MVTec sử dụng độ đo AUROC và PRO (phần 1) 49
4.4 Kết quả đánh giá với tập MVTec sử dụng độ đo AUROC và PRO (phần 2) 50
4.5 Kết quả thực nghiệm trên tập BTAD[5] sử dụng độ đo AUROC ở mức độmẫu (sample level) 50
4.6 Kết quả thực nghiệm trên tập BTAD[5] sử dụng độ đo AUROC và PRO ởmức pixel (pixel level) 50
Trang 12Chương 1
MỞ ĐẦU
Phân loại dữ liệu một lớp (one-class classification) là một nhánh thuộc lớp bài toánphân loại (classification), học có giám sát Ngày càng nhiều nghiên cứu về nhánh bàitoán này vì khả năng áp dụng thực tiễn cao Có nhiều cách tiếp cận và bài toán sinh ra
từ lớp bài toán này Các khảo sát mới đây đã cho một bức tranh tóm tắt các các nghiêncứu nổi bật về nhóm bài toán này như Hình1.1
Hình 1.1: Các mốc nghiên cứu về one-class classification qua thời gian [1]
Trên thực tế hiện nay, không nhiều bài toán có đủ dữ liệu cho toàn bộ các lớp Một
số lĩnh vực đặc thù trong công nghiệp còn chỉ có dữ liệu cho sản phẩm hoàn thiện
mà họ đã sản xuất ra, làm sao với các ảnh chụp mà cho biết được sự bất thường ở sảnphẩm nào là điều rất khó khăn Hướng nghiên cứu về one-class classification sẽ giảiquyết được vấn đề này One-class classification là bài toán mà dữ liệu yêu cầu ban đầu
để huấn luyện mô hình chỉ cần tập trung vào 1 lớp Ngày càng nhiều nghiên cứu về
Trang 13nhánh bài toán phân loại dữ liệu một lớp thuộc lớp bài toán phân lớp này vì khả năng
áp dụng thực tiễn cao Có nhiều cách tiếp cận và bài toán sinh ra từ lớp bài toán này.Trong những năm gần đây (từ 2017), các phương pháp dựa trên học sâu được quantâm hơn hẳn Học sâu đã cho thấy được kết quả rất ấn tượng và luôn dẫn đầu về độchính xác cho các bài toán phân loại về xử lý hình ảnh và ngôn ngữ tự nhiên Tuynhiên, kết quả cho các bài toán one-class classification vẫn còn hạn chế Đã có nhiềunghiên cứu sử dụng học sâu để giải quyết lớp bài toán này và cho được các kết quảtiềm năng nhưng vẫn còn một số hạn chế cần cải thiện thêm Hạn chế đầu tiên là độchính xác chưa thực sự cao như các lớp bài toán đầy đủ nhãn và dữ liệu cho mỗi lớp.Hạn chế nữa là cũng như các tất cả mạng học sâu nói chung thì việc giải thích kếtquả đưa ra từ học sâu là rất khó khăn Giải thích được kết quả từ mô hình là rất cầnthiết trong thực tế vì đảm bảo được tính an toàn, bảo mật và tối ưu hiệu năng Do vậy,phần luận văn sắp tới sẽ được định hướng nghiên cứu về áp dụng học sâu vào bài toánone-class classification thiên về hướng giải thích được kết quả Bên cạnh đó, luận văncũng sẽ ứng dụng giải thuật đã nghiên cứu vào một ứng dụng để chứng minh tính thựctiễn của nó
Đóng góp chính của luận văn có thể được liệt kê như sau:
• Tổng hợp các phương pháp đã có cho bài toán phát hiện bất thường với dữ liệumột lớp đã và đang được áp dụng
• Đề xuất hướng xử lý có tính khả thi cao, hiệu quả đối với dạng bài toán này trongthực tế
• So sánh với các phương pháp trước đây trên các tập dữ liệu chuẩn thực tế thì môhình được đề xuất đều cho kết quả tốt hơn hẳn
Hai tập dữ liệu nổi tiếng thực tiễn hiện tại đang được dùng để đánh giá bài toánnày là MVTec AD [4] và BeanTech AD [5]
Trang 14Chương 2
GIỚI THIỆU
Trong thời đại hiện nay, việc xử lý dữ liệu không chỉ đơn thuần là để làm báo cáo,trích lọc thông tin mà còn là các bài toán yêu cầu cao về hiện thực các bài toán vềnhận dạng hình ảnh, âm thanh, phân loại thuộc tính, phát hiện bất thường, v.v thaythế hoặc thậm chí cần tốt hơn con người Đại đa số các thuật toán nói chung và thuậntoán về phân loại nói riêng hiện tại cần một lượng lớn dữ liệu đã được gán nhãn sẵn.Mục đích là để dạy cho các mô hình có thể học được các đặc trưng từ dữ liệu đó, đểlàm sao mà khi có dữ liệu mới vào thì nó sẽ phân loại đúng phân lớp mà ta cần Bàitoàn phân loại nhị phân (binary classification) được cho là miền nghiên cứu rộng rãinhất của phân nhóm học mấy có giám sát, ít nhất là với việc ứng dụng của nó đối vớicác loại dữ liệu không phải là hình ảnh Cho một ví dụ, trong các mô hình phát hiệnthư rác hoặc độc hại, dữ liệu cho mỗi lớp được giới hạn ở mức khá, mỗi trường hợp
cụ thể đều chắc chắn là một biến thể của thư điện tử Tùy nhiên, một vấn đề thú vịđược mở ra nếu ta cố gắng ứng dụng các kinh nghiệm có được này với phân loại hìnhảnh Ta có thể có hàng nghìn, hàng triệu tấm hình về xe hơi mà ta muốn mô hình cóthể nhận dạng được vị trí của chúng, nhưng nếu trường hợp tấm hình không có xe hơithì sao? Không quá khó để ta nhân ra rằng là không gióng như dữ liệu về bài toán thưđiện tử rác, số lượng trường hợp mà không chứa xe hơi là vô cùng lớn, gần như là vô
Trang 15tận Do vậy mà ta cần giải quyết bài toán là chỉ với những dữ liệu về xe hơi mà ta có,
ta có thể huấn luyện mô hình để nó biết rằng dữ liệu đó đang có chứa xe hơi hay làkhông Luôn nhớ điều kiện là ta chỉ có 1 lớp dữ liệu, cụ thể ở trường hợp này thì takhông có dữ liệu về những trường hợp không có xe hơi khác, nó là vô vàng trườnghợp, chứa núi, rừng, sông biển, xe đạp, xe máy, máy bay, v.v Thách thức này chúng ta
sẽ cùng thảo luận cách xử lý trong bài nghiên cứu này
Như chúng ta đã biết, Học Máy (Machine Learning) là một nhánh của lĩnh vực trí tuệnhân tạo (AI) và khoa học dữ liệu Học Máy tập trung sử dụng dữ liệu và các giảithuật để bắt chước cách học của con người, làm sao để mà dần nâng cao độ chính xáccủa mô hình bằng hoặc thậm chí vượt hơn khả năng của con người Học máy bao gồm
• Semi-supervised learning (học bán giám sát): Cuối cùng, đây là nhánh ’lai’ giữa
2 nhánh bên trên, ta sẽ có bộ dữ liệu gồm cả đã gán nhãn và chưa gán nhãn, màthông thường số lượng nhãn được gãn sẵn sẽ ít hơn
Phân loại dữ liệu và hồi quy là hai nhánh con lớn của Supervised learning Cácgiải thuật dùng trong phân loại dữ liệu được dùng để xác định lớp (class) mà các mẫuquan sát mới thuộc về trên cơ sở các đặc trưng đã biết từ tập huấn luyện Trong phânloại dữ liệu, mô hình được học từ tập dữ liệu nhất định sau đó mới phân loại dữ liệumới vào số lớp hoặc nhóm phù hợp Chẳng hạn như bài toán đánh giá một email cụthể có là spam hay không, ta có thể đánh số là 0 và 1 tương ứng cho là có spam và
Trang 16không spam Không giống như hồi quy (đầu ra là một số thực), đầu ra của Phân loại
dữ liệu là một lớp cụ thể (như 0 hoặc 1 ở ví dụ trước đó)
Phân loại dữ liệu một lớp là một trường hợp khác của phân loại dữ liệu, lúc nàymặc dù dữ liệu ta có được là toàn bộ đều được gán nhãn nhưng nó chỉ hoàn toàn thuộc
về một lớp hoặc nhóm nào đó Lấy ví dụ như phân loại bài toán có hay không vết dơtrên mặt bàn Dữ liệu ta có được sẽ là toàn bộ hình ảnh là mặt bàn rất đẹp và được xácđịnh là đều không có vết dơ nào cả Nhiệm vụ của chúng ta sẽ là giúp cho máy họcbiết được đây là hình ảnh của bàn bình thường, còn nếu chứa thêm vết nào lạ trên đóđều là có vết dơ cả Các phương pháp phân loại dữ liệu truyền thống (như DecisionTree, SVM, KNN, v.v.) đều yêu cầu có dữ liệu ở cả bên mặt bàn bị dơ Do đó cách tiếpcận trước đây là cố gắng thu thập, tạo thêm hình ảnh các mặt bàn bị dơ càng nhiềucàng tốt Tuy vậy thì độ chính xác khi kiểm thử trên dữ liệu mặt bàn bình thường mới
và bị dơ mới thì cho độ chính xác không cao Lý do chính đến từ việc ta không thể thuthập, tạo được hết tất cả các dạng mặt bàn bị dơ, có rất nhiều khía cạnh làm dơ mặtbàn (có thể cả bị thủng, bị lỗi màu, v.v.) Do vậy từ những năm 2017, phương phápdựa trên học sâu (Deep Learning, Mạng nơ-ron nhân tạo) được nghiên cứu nhiều hơn
về sự nỗi trội của các giải thuật này (tham khảo thêm Hình1.1)
Mục tiêu nghiên cứu
Đề tài tập trung nghiên cứu ba phần chính là lớp bài toán one-class classification(phân loại một lớp), mạng học sâu và ứng dụng vào bài toán phát hiện bất thường Đềtài này mang tính ứng dụng cao vì:
• Dữ liệu thực tế không được gán nhãn đầy đủ các lớp và đa số chỉ có được dữ liệunhãn bình thường, không có hoặc có rất ít dữ liệu cho nhóm bất thường
• Cho được kết quả đầu ra xác định được vị trí bất thường, đây cũng là điểm mới
vì không phải giải thuật nào cũng cho được hình ảnh trực quan như vậy
Trang 17Giới hạn nghiên cứu
Đề tài tập trung nghiên cứu lớp bài toán one-class classification, áp dụng các mạnghọc sâu có thể giải thích được kết quả vào các bài toán phát hiện bất thường tronglĩnh vực xử lý hình ảnh Trong giai đoạn luận văn, đề tài sẽ điều chỉnh thử nghiệmvới nhiều tham số khác nhau để đạt độ chính xác tốt nhất với bài toán phát hiện bấtthường Các số liệu được thu thập từ năm 2010 và các kĩ thuật được cải tiến từ 2021.Thực nghiệm Triển khai mô hình với sự hỗ trợ từ các thư viện Pytorch, TensorFlow,Pandas, v.v Các nghiên cứu và ứng dụng của đề tài này đều mới xuất hiện và nghiêncứu trong những năm gần đây cho thấy sự quan tâm, ý nghĩa và tính thực tiễn của đềtài rất cao
Mạng nơ-ron nhân tạo
Các thuật toán về mạng ron (neural networks) thường được biết đến là mạng ron nhân tạo (artificial neural networks - ANNs) hoặc các mạng nơ-ron được môphỏng (similated neural networks - SNNs) Mạng nơ-ron nhân tạo là tập con của Họcmáy (Machine learning) và là "trái tim’ quan trọng của các giải thuật học sâu (deeplearning) Tên và cấu trúc của chúng được lấy cảm hứng từ bộ não của con người, bấtchước cách các nơ-ron thần kinh sinh học kết nối với nhau Hiện nay, học máy cũngnhư học sâu đang trở thành vũ khí đắc lực để xử lý các vấn đề trong hầu hết các bàitoán trong các lĩnh vực như xử lý giọng nói, nhận dạng hình ảnh, xử lý ngôn ngữ tựnhiên
nơ-Hình2.1thể hiện kiến trúc cơ bản của mạng nơ-ron nhân tạo Thông thường mạngnơ-ron và các biến thể của nó đều gồm 3 thành phần chính:
• Input layer: lớp mạng đầu vào, đây là lớp tiếp nhận input đầu vào trước khi đi vàomạng nơ-ron
• Multiple hidden layers: đây là lớp quan trọng trong mạng, nó gồm nhiều thành
Trang 18Hình 2.1: Kiến trúc mạng nơ-ron nhân tạo nhiều lớp
phần liên quan khác như trọng số (weight), hàm kích hoạt (activation function),v.v giúp biến đổi và tạo ra các đặc trưng mới
• Output layer: đây là lớp cuối cùng, cũng là lớp trích xuất ra kết quả dự báo từmạng nơ-ron
Các loại mạng nơ-ron nhân tạo
Qua thời gian, mạng nơ-ron được cải tiến, biến đổi thành nhiều loại biến thể khácnhau Tuy nhiên về cơ bản hiện nay có các loại mạng phổ biến như sau:
1 Mạng nơ-ron truyền thẳng (Feed-Forward Neural Networks): Đây được xem làmạng nơ-ron đơn giản nhất, nguyên thủy nhất Mạng này truyền thông tin chỉtheo 1 hướng, qua các node đầu vào và tiếp tục được xử lý theo hướng duy nhấtcho đến khi nó đặt được đầu ra cuối cùng Mạng nơ-ron truyền thẳng này có thể
có nhiều lớp ẩn để thực hiện các chức năng khác nhau, và loại này thường được
sử dụng nhiều nhất trong công nghệ nhận dạng khuôn mặt
Trang 192 Mạng nơ-ron hồi quy (Recurrent Neural Networks): đây là một loại mạng nơ-ronphức tạp hơn, mạng nơ-ron hồi quy lấy đầu ra từ một quá trình xử lý của mộtnode và truyền thông tin ngược trở lại mạng Cách này giúp mạng học "kĩ hơn",qua đó cải thiện được kết quả Mỗi node đều lưu lại các thông tin đã nhận được vàcác thông tin này được tái sử dụng trong tương lai Điều này đặc biệt quan trọngđối với các mạng mà dự đoán chưa được chính xác Hệ thống sẽ cố gắng tìm hiểu
lý do học chưa tốt và cải thiện cho phù hợp Loạn mạng nơ-ron này thường được
sử dụng trong các ứng dụng về xử lý ngôn ngữ tự nhiên và âm thanh
3 Mạng nơ-ron tích chập (Convolutional Neural Networks): mạng nơ-ron tích chậpthường được viết tắt là CNN, nó có một vài lớp chứa dữ liệu thành dạng danhmục (categories) Mạng nơ-ron loại này có lớp đầu vào, lớp đầu ra và vô số lớptích chập ở tầng giữa Những lớp tích chập này tạo các đặc trưng ghi lại các khuvực/khía cạnh của tấm ảnh và được chia nhỏ hơn nữa cho đến khi chúng đủ thôngtin để tạo ra kết quả đầu ra Các tầng giữa có thể được gộp lại hoặc kết nối dàyđặc với nhau Các mạng dạng này có hiệu quả rất cao đặc biệt là cho các ứngdụng về nhận dạng hình ảnh
4 Mạng nơ-ron giải chập (Deconvolutional Neural Networks): mạng nơ-ron giảichập hoặc động ngược lại với mạng nơ-ron tích chập Ứng dụng của nó là để pháthiện các thành phần (items) mà có thể được nhận dạng là quan trọng bên dưới 1mạng nơ-ron tích chập Các items này có thể đã bị loại bỏ trong quá trình thực thimạng tích chập Loại mạng nơ-ron này được sử dụng rộng rãi để phân tích hoặc
xử lý hình ảnh
5 Mạng nơ-ron mô-đun (Modular Neural Networks): mạng nơ-ron dạng mô-đun
sẽ chưa một vài mạng hoạt động độc lập với nhau Các mạng này thường khôngtương tác với nhau trong quá trình phân tích Thay vào đó, các quy trình này đượcthực hiện để cho phép các quá trình tính toán phức tạp được thực hiện hiệu quảhơn Tương tự như các kiến trúc chia nhỏ khác, mục tiêu của mạng này là sự độc
Trang 20lập Kiến trúc này để mỗi mô-đun chịu trách nhiệm về một phần cụ thể trong bứctranh tổng thể lớn hơn.
Hàm kích hoạt
Thông thường các node trong mạng sẽ được liên kết với nhau và giao tiếp bằng cácphép tính dựa trên các trọng số tương ứng Kết quả đầu ra của mỗi node không chỉphụ thuộc vào dữ liệu đầu vào và trọng số mà còn dựa phần lớn vào các hàm kích hoạt(activation function) Các hàm này ta có thể hiểu là hàm được sử dụng để lấy kết quả
từ một node nào đó Nó còn có tên gọi khác là hàm chuyển đổi (transfer function).Các hàm kích hoạt thường sẽ là các hàm phi tuyến (None-linear Activation Func-tions) Để giải thích vì sao cần các hàm phi tuyến này thì ta cần nghĩ tới nếu không
có nó thì sao Một mạng nơ-ron không dùng hàm kích hoạt, hay nói cách khác là cáchàm đó đều tuyến tính thì tích của các hàm tuyến tính với nhau thì đều là tuyến tính.Tuyến tính chỉ biểu diễn được cho duy nhất một đường thẳng Nhưng theo chúng ta
đã biết thì đại đa số dữ liệu thực tế đều không tuyến tính với nhau Do đó chỉ dùngphép biến đổi đơn giản này thì mạng nơ-ron của chúng ta sẽ không khác gì là đang sửdụng mô hình tuyến tính thông thường Các hàm kích hoạt phi tuyến sẽ góp phần làm
đa dạng được cách biến đổi, trong quá trình học thì mô hình sẽ thử nhiều cách hoànthiện dần dần và sẽ tìm được cách kết hợp tốt nhất các lớp với nhau và cho ra kết quảtốt hơn nhiều
Các hàm kích hoạt phổ biến hiện nay
• Hàm Sigmoid
Mục đích chính tại sao chúng ta sử dụng hàm sigmoid là bởi vì nó biến đổi đầu
ra chỉ trong khoảng0 đến 1 Nhờ đó nó đặc biệt hữu ích khi sử dụng cho các môhình mà chúng ta muốn dự đoán xác suất như là một đầu ra Vì xác suất của bất
kì đối tượng nào cũng chỉ tồn tại trong khoảng từ 0 đến 1 Hàm sigmoid là mộthàm khả vi Điều này có nghĩa là chúng ta có thể tìm đạo hàm/độ dốc (slope) củađường cong sigmoid tại hai điểm bất kỳ Hàm sigmoid là hàm đơn điệu nhưngđạo hàm của nó lại không Công thức và hình dáng đường cong sigmoid được
Trang 21Hình 2.2: Hàm sigmoid
cho ở hình2.2
1 + exp(−x)Các chiến lược hiện tại huấn luyện mô hình đều dùng gradient, do vậy hàmsigmoid được lựa chọn là điều không phải bàn cải Tuy vậy thì hàm sigmoid cóthể khiến mạng nơ-ron bị kẹt trong lúc đào tạo vì đạo hàm 2 phía vô cùng là tiến
về 0, đồng nghĩa mô hình học chậm hoặc không học được gì Hàm softmax là 1cải tiến tổng quát hơn của hàm sigmoid và được dùng cho các bài toán phân loạinhiều lớp
Trang 22Hình 2.3: Hàm tanh so với sigmoid
tuyến tính Hình2.3so sánh hàm tanh và hàm sigmoid
tanh(x) = 1 − exp(−2x)
1 + exp(−2x)
Ưu điểm của hàm tanh là các đầu vào giá trị âm sẽ được ánh xạ mạnh hơnsigmoid (nơi mà các giá trị này gần về 0 hơn) và các đầu vào 0 sẽ được ánh xạgần 0 hơn trong đồ thị tanh Hàm tanh cũng là hàm khả vi và đơn điệu trong khiđạo hàm của nó lại không đơn điệu Hàm tanh chủ yếu được dùng cho bài toánphân loại giữa 2 lớp khác nhau Cả hàm tanh và hàm sigmoid đều được sử dụngtrong mạng truyền thẳng
• Hàm ReLU
Hàm ReLU (Rectified Linear Unit) là hàm kích hoạt được sử dụng nhiều nhấttrên thế giới hiện nay Nó được sử dụng trong hầu hết tất cả các mạng tích chập
Trang 23Hình 2.4: Hàm ReLu so với sigmoid
hay học sâu Hình2.4là công thức và so sánh nó với hàm sigmoid
ReLU(x) = max(x,0)
Như chúng ta có thể thấy, ReLU được chỉnh sửa 1 nữa dưới so với hàm tuyếntính thông thường Giá trị hàm bằng 0 nếu đầu vào nhỏ hơn 0 và bằng chính đầuvào nếu nó lớn hơn hoặc bằng 0 Đầu ra của hàm ReLU là trong khoảng từ0 đếndương vô cùng Hàm ReLU và đạo hàm của nó đều đơn điệu Có một vấn đề vớihàm ReLU đó là tất cả giá trị âm sẽ trở thành0 ngay lập tức Điều này làm giảmkhả năng học của mô hình khi được huấn luyện từ dữ liệu thích hợp Điều cócũng có nghĩa là bất kỳ đầu vào âm nào cũng trở thành 0 ngày lập tức (được thểhiện trong hình) làm cho việc ánh xạ các giá trị này không còn phù hợp
• Hàm Leaky ReLU
Hàm Leaky ReLU được sinh ra để giải quyết vấn đề mà hàm ReLU gặp phải (đãđược đề cập bên trên) Hàm Leaky ReLU giúp tăng khả năng của hàm ReLU,thông thường giá trị của α trong hình 2.5 là 0.01 hoặc cao hơn Khi giá trị αkhông phải là 0.01 ta có thể gọi bằng tên khác là Randomized ReLU Phạm vigiá trị của hàm Leaky ReLU bây giờ là từ âm vô cùng đến dương vô cùng Cả
Trang 24Hình 2.5: Hàm Leaky ReLu so với ReLU
Leaky và Randomized ReLU đều là các hàm đơn điệu, do đó đạo hàm của chúngcũng là đơn điệu
Quá trình huấn luyện
Trước khi bắt đầu huấn luyện, ta cần định nghĩa được hàm mất mát (Loss function).Hàm mất mát là một hàm cho chúng ta biết mạng thần kinh của chúng ta tốt như thếnào đối với một tác vụ nhất định Một cách dễ hiểu nhât là lấy từng mẫu dữ liệu trongtập huấn luyện cho nó đi qua mô hình và trừ giá trị của nó với giá trị số thực ở lớp mà
ta muốn nó thuộc về, sau đó lấy bình phương Đây cũng là hàm Euclid thường thấytrong các bài toán phân loại thông thường như ở công thức 2.1 Công thức 2.2 cũng
là hàm mất mát phổ biến thường gặp (Entropy), nhưng để tìm hiểu đơn giản ta sẽ tậptrung vào hàm Euclid, đối với hàm Entropy thì cũng được xử lý tương tự
Ở công thức2.1y là viết tắt của con số mà ta muốn lấy được từ mô hình mạng, ˆy là
số mà ta thực sự nhận được bằng các đưa dữ liệu đi qua toàn bộ các lớp trong mạng,
Trang 25i là chỉ mục, tức số thứ tự của mẫu trong tập huấn luyện Lấy ví dụ về bộ phân loạichó và mèo Chugns ta có một bộ dữ liệu gồm các bức ảnh về chó và mèo được đánhnhãn là 1 nếu là chó, đánh nhãn là 0 nếu nó là con mèo Nhãn này tương ứng với giátrịy - tức là con số mầt muốn có được từ mô hình mạng Để tính toán hàm mất mát,
ta sẽ duyệt qua toàn bộ mẫu dữ liệu trong tập huấn luyện, tính toán ray cho mẫu đó,sau đó ghép vào công thức được định nghĩa bên trên Nếu hàm mất mát có giá trị lớnthì mạng của chúng ta chưa hoạt động tốt, ta cần con số càng nhỏ càng tốt Khi này ta
có thể tính toán lại công thức, thay đổi mô hình, số lớp, các bộ tham số cũng như hàmkích hoạt để giúp làm giảm giá trị hàm mất mát
Khi bắt đầu huấn luyện mạng nơ-ron, ta khởi tạo các trọng sô một cách ngẫu nhiên.Hiển nhiên là, nó sẽ không mang lại kết quả tốt Trong quá trình huấn luyện, luôn luôn
sẽ bắt đầu bằng một mạng nơ-ron hoạt động kém và kết thúc với mạng có độ chínhxác cao Đối với hàm mất mát, chúng ta luôn muốn giá trị của hàm sẽ nhỏ hơn đáng
kể khi kết thúc huấn luyện Việc cải thiện mạng là luôn luôn có thể thực hiện được, vì
ta có thể thay đổi các hàm bằng việc thay đổi trọng số Chúng ta muốn tìm một hàmkhác mà hoạt động tốt hơn các giá trị khởi tạo ban đầu
Bài toán của việc huấn luyện la bài toán tối thiểu hàm mất mát Vậy tại sao lại tốithiểu thay vì tối đa, bởi vì việc cắt giảm hàm mất mát luôn dễ hơn là tối ưu hóa Córất nhiều thuật toán tối ưu, những thuật toán này có thể dựa trên đạo hàm (gradient)hoặc là không, tức là chúng có thể không chỉ sử dụng thông tin có được từ các hàm
mà còn là giá trị đạo hàm của nó Một trong những giải thuật dựa trên đạo hàm đơngiản nhất mà ta sẽ cùng tìm hiểu tiếp theo được gọi là Stochastic Gradient Descent.Đầu tiên, chúng ta cần nhờ rằng đạo hàm đối với một biến Xét một hàm số đơngiản f (x) = x Nếu chúng ta nhớ các phép toán từ trường phố thông thì đạo hàm của
nó là 1 đối với mọi giá trị x Điều này có nghĩa là gì, đạo hàm là tốc độ thay đổi củahàm số khi chúng ta thực hiện một bước vô cùng nhỏ theo chiều dương Điều đó cónghĩa là hàm của chúng ta thay đổi bao nhiêu xấp xỉ với đạo hàm của hàm đó đối vớimột biến x nhân với số lượng chung ta muốn thay đổi biến đó Phép tính gần đúng
đó sẽ chính xác khi bước chúng ta đi là vô cùng nhỏ và đây là khái niệm đạo hàm rất
Trang 26Hình 2.6: Hàm sốy = x2
quan trọng Hãy xem xét một hàm phức tạp hơn một chút f (x) = x như hình2.6
Từ các quy tắc tính toán, chúng ta biết rằng đạo hàm của các hàm đó là 2x Thật
dễ dàng để kiểm tra rằng bây giờ nếu chúng ta bắt đầu ở một giá trị nào đó của x vàthực hiện một số bước epsilon, thì hàm của chúng ta đã thay đổi bao nhiêu sẽ khôngchính xác bằng công thức đã cho ở trên Giờ đây, gradient là một véc-tơ của các đạohàm riêng, có các phần tử chứa đạo hàm đối với một số biến mà hàm phụ thuộc vào.Với các hàm đơn giản mà chúng ta đã xem xét cho đến bây giờ, véc-tơ này chỉ chứamột phần tử Bởi vì chúng ta chỉ sử dụng hàm mà chỉ nhận một đầu vào Với các hàmphức tạp hơn (như hàm mất mát của chúng ta), gradient sẽ chứa các đạo hàm tươngứng với từng biến mà chúng ta muốn Làm thế nào chúng ta có thể sử dụng thông tinnày, được cung cấp cho chúng ta bởi các công cụ phái sinh, để tối thiểu hóa một sốhàm chức năng? Hãy quay lại hàm f (x) = x2 của chúng ta Rõ ràng, điểm cực tiểu
Trang 27của hàm đó là tại điểm x = 0, nhưng làm thế nào máy tính biết được điều đó? Giả sử,chúng ta bắt đầu với một số giá trị ngẫu nhiên của x và giá trị này là 2 Đạo hàm củahàm trong x = 2 bằng 4 Điều đó có nghĩa là chúng ta thực hiện một bước theo hướngdương, hàm của chúng ta sẽ thay đổi tỷ lệ thuận với 4 Vì vậy, nó sẽ tăng lên Thay vào
đó, chúng ta muốn tối thiếu hóa hàm của chúng ta, vì vậy chúng ta có thể thực hiệnmột bước theo hướng ngược lại, hướng âm, để chắc chắn rằng giá trị hàm của chúng
ta sẽ giảm, ít nhất là một chút Câu hỏi đặt ra là chúng ta sẽ di chuyển với một bước
là bao nhiêu Đạo hàm của chúng ta chỉ đảm bảo rằng hàm sẽ giảm nếu bước vô cùngnhỏ Nói chung, bạn muốn kiểm soát mức độ lớn của bước bạn thực hiện với một sốloại siêu tham số Siêu tham số này được gọi là tỷ lệ học (learning rate) và ta sẽ nói
về nó sau Bây giờ hãy xem điều gì xảy ra nếu chúng ta bắt đầu tại điểm x = -2 Đạohàm bây giờ bằng -4, có nghĩa là nếu tiến một bước nhỏ theo hướng dương thì hàmcủa chúng ta sẽ thay đổi tỷ lệ thuận với -4, do đó nó sẽ giảm Đó chính xác là những
gì chúng ta muốn
Vì chúng ta muốn tối thiểu hóa hàm mục tiêu, chúng ta sẽ thực hiện một bước theohướng ngược chiều của độ dốc gradient Hãy áp dụng ý tưởng này, tong mạng nơ-ron,chúng ta nghĩ về đầu vàox và đầu ra y là số cố định Biến mà chúng ta sẽ lấy đạo hàmcủa chúng ta là trọng sốw, vì đây là những giá trị mà chúng ta muốn thay đổi để cảithiện mô hình mạng Nếu chúng ta tính toán độ dốc của hàm mất mát w.r.t trọng sốcủa chúng và thực hiện các bước nhỏ theo hướng ngược lại của độ dốc, thì hàm mấtmát của chúng ta sẽ giảm dần cho đến khi nó hội tụ về một cực tiểu cục bộ nào đó.Thuật toán này được gọi là Gradient Descent Quy tắc cập nhật trọng số trên mỗi lầnlặp của Gradient Descent như công thức2.3sau:
wj=wj− α ∗ ∆L
α trong công thức 2.3chính là tỷ lệ học (learning rate) hay còn gọi là tốc độ học
Nó có nhiệm vụ kiểm soát độ lớn của từng bước mà chúng ta muốn cập nhật các trọng
số qua từng bước Đây là siêu tham số quan trọng nhất trong việc điều chỉnh khi huấnluyện mạng nơ-ron Nếu ta chọn learning rate quá lớn, nhiều khả năng nó sẽ "nhảy"
Trang 28mạnh qua các điểm cực tiểu và không bao giờ hội tụ được Nếu chọn learning rate quánhỏ, ta có thể mất rất nhiều thời gian để đạt đến điểm cực tiểu Có nhiều kỷ thuật đểtìm tốc độ học tối ưu, tuy nhiên cũng sẽ không có cách nào toàn diện và đây là ý quantrọng mà các nhà nghiên cứu cũng như người huấn luyện cần nắm trước khi sử dụngcách tối ưu này.
Hai khái niệm tiếp theo chúng ta cần biết đến là lan truyền xuôi và Lan truyềnngược Lan truyền xuôi (feed-forward): Với mô hình mạng nơ-ron thông thường, nhất
là mạng nơ-ron truyền thẳng, các node được kết nối với nhau theo một hướng từ đầuđến cuối Lan truyền xuôi đề cập đến việc tính toán và lưu trữ các biến trung gian (baogồm cả đầu ra) cho mạng nơ-ron theo thứ tự từ lớp đầu vào đến lớp đầu ra Chiều đi
từ đầu vào đến đầu ra của một tấm hình hay dữ liệu được gọi là việc lan truyền xuôi.Lan truyền ngược (back-propagation): Lan truyền ngược đề cập đến phương pháp tínhtoán độ dốc (gradient) của các tham số trong mạng đang huấn luyện Phương phápnày đi qua mạng theo hướng ngược lại (từ lớp đầu ra đến lớp đầu vào) theo quy tắcdây chuyền từ các phép tính Thuật toán lan truyền ngược yêu cầu phải lưu trữ các giátrị đạo hàm riêng trong lúc tính toán và cập nhật cho trọng số các node lần lượt từ sau
ra trước
Mạng Nơ-ron tích chập - Convolutional Neural Network
Mạng Nơ-ron tích chập (hay còn được gọi là ConvNet hoặc CNN) là một thuật toánhọc sâu có thể nhận vào hình ảnh đầu vào, gán các giá tri quan trọng (trọng số và độlệch có thể học được) cho các khía cạnh/đối tượng khác nhau trong hình ảnh và có thểphân biệt cái này với cái kia Yêu cầu tiền xử lý trong ConvNet thấp hơn nhiều so vớicác thuật toán phân loại khác Mặc dù ở các phương thức ban đầu, các bộ lọc đượcthiết kế thủ công, nhưng nếu được huấn luyện đủ tốt, mạng nơ-ron tích chập có khảnăng học được các đặc trưng quan trọng của các đối tượng này cực kỳ tốt
Kiến trúc của mạng nơ-ron tích chập tương tự như kiến trúc mô hình kết nối củacác tế bào thần kinh trong bộ não con người và được lấy cảm hứng từ nó Các tế bàothần kinh riêng lẻ chỉ tập trung vào một vùng hạn chế của lĩnh vực xử lý ảnh được
Trang 29Hình 2.7: Chuỗi các lớp xử lý của mạng nơ-ron tích chập cho bài toán nhận dạng chũviết tay [2]
biết đến như là trường tiếp nhận Một tập hợp các trường như vậy chồng lên nhau đểbao phủ toàn bộ khu vực trực quan Nhờ vậy mà mạng nơ-ron tích chập có thể baoquát được nhiều khía cạnh khác nhau của cùng một bức ảnh khi số lượng lớp trongmạng là đủ sâu Kiến trúc tổng quát và mô tả về mạng nơ-ron tích chập được mìnhhọa thông qua bài toán phân loại chữ viết tay được thể hiện ở hình2.7
Một tấm hình sẽ không gì khác là một ma trận các giá trị pixel, do vậy thông thườngthay vì để thành một ma trận thì trước tiên làm phẳng nó (như ví dụ ở hình 2.8) vàđưa nó vào lớp mạng nơ-ron cho mục đích phân loại Tuy vậy cách làm này vô tình đãlàm mất đi mối liên kết giữa các pixel trong một tấm ảnh Thử hình dung một vật thể
ta đang quan tâm nằm ở 1 phía của tấm hình, khi làm phẳng nó thì ngay cả mắt ngườicũng không nhận ra được vật thể đó khi mà nó không còn là một tấm ảnh
Mạng nơ-ron tích chập không làm phẳng đầu vào như vậy, nó có khả năng nắm bắtđược các yếu tố liên kết không gian và thời gian của một tấm ảnh thông qua các bộlọc (filters) liên quan Kiến trúc này phù hợp hơn đối với dữ liệu ảnh, đồng thời giúplàm giảm số lượng tham số liên quan cũng như khả năng tái sử dụng lại các trọng số.Nói cách khác, mạng nơ-ron tích chập có thể được huấn luyện để hiểu rõ được độ tinh
Trang 30lý hơn mà không làm mất đi các đặc tính quan trọng của tấm ảnh Điều này đặc biệtquan trọng khi mà chúng ta thiết kế kiến trúc mạng học tốt không chỉ các đặc trưngcủa ảnh mà còn có thể mở rộng cho các tập dữ liệu kích thước lớn hơn.
Trong hình minh họa ở 2.9, phần image là hình ảnh ban đầu với kích thước 5x5
Trang 31Hình 2.9: Tích chập một tấm hình kích thước 5x5x1 với kernel 3x3x1 để có được đặctrưng tích chập 3x3x1
Phân tử tham gia vào việc thực hiện tác vụ tích chập cho phần đầu tiên của lớp tíchchập được gọi là Kernel/Filter K, ở ví dụ này chúng tôi chọn K là ma trận 3x3x1.Kernel K sẽ được di chuyển 9 lần theo chiều trái qua phải, trên xuống dưới với độ dàisải chân Stride Length là 1 Mỗi lần thao tác xong một lần tích chập giữaK và 1 vùngtương ứng cùng kích thước P của tấm ảnh thì sẽ được nhích qua 1 bước với độ dàibằng với Stride Length Bộ lọc K di chuyển sang phải cho đến khi nó bao phủ đượctoàn bộ chiều rộng của tấm hình Sau đó, nó tiếp tục di chuyển xuống phần đầu bêntrái của tấm ảnh với giá trị Stride Length và lặp lại quá trình này cho đến khi toàn bộtấm ảnh được duyệt qua
Mục tiêu của việc tính toán tích chập là trích xuất các đặc trưng cấp cao chẳng hạnnhư cạnh, góc từ ảnh đầu vào Mạng tích chập không bị giới hạn bởi chỉ 1 lớp tíchchập mà có thể là nhiều lớp xếp chồng lên nhau Thông thường, lớp tích chập đầu tiênchịu trách nhiệm nắm bắt các đặc trưng mức thấp như cạnh, màu, hướng gradient của
Trang 32Hình 2.10: Thực thi lớp tích chập với độ dài trượt là 2 và same padding
ảnh Sau đó với các lớp tích chập tiếp theo, kiến trúc này sẽ thích ứng và cho ra đượccác đặc trưng cao hơn, giúp cho mạng nơ-ron học tốt hơn toàn bộ tấm ảnh, tương tựnhư cách chúng ta suy nghĩ
Có hai loại kết quá sau khi thực hiện tác vụ tích chập Một là đặc trưng tích chập
sẽ bị giảm kích thước so với đâu vào và còn lại là tăng kích thước hoặc giữ nguyên.Tham số padding (phần đệm) sẽ hiện thực phần này, nếu padding có giá trị là 1 (samepadding), tức là tấm ảnh sẽ được thêm vào các giá trị bên ngoài trước khi được bộ lọc
K duyệt qua thì kết quả đầu ra sẽ bằng với kích thước tấm ảnh ban đầu (xem ví dụ tạihình2.10
Trang 33Hình 2.11: Tích chập một tấm hình kích thước 5x5x1 với kernel 3x3x1 để có đượcđặc trưng tích chập 3x3x1
Lớp pooling
Lớp poolling chịu trách nhiệm giảm kích thước dữ liệu Điều này để giảm sức mạnhtính toán không cần thiết khi xử lý dữ liệu thông qua việc giảm chiều dữ liệu nhưngvẫn giữ được các đặc trưng quan trọng Có hai loại Pooling: Max Pooling và AveragePooling Max Pooling trả về giá trị lớn nhất từ phần hình ảnh được Kernel bao phủ.Mặt khác, average pooling trả về giá trị trung bình của tất cả các giá trị từ phần hìnhảnh được bao phủ bởi Kernel Max Pooling cũng hoạt động như một bộ khử giảmnhiễu Nó loại bỏ hoàn toàn các giá trị nhiễu cùng với việc giảm kích thước Mặtkhác, Average Pooling chỉ đơn giản thực hiện giảm kích thước như một cơ chế giảmchiều dữ liệu Do đó, chúng ta có thể nói rằng Max Pooling hoạt động tốt hơn nhiều
so với Average Pooling Hình2.12minh họa lớp max pooling với bộ lọc2x2 và stridebằng 2
Trang 34Hình 2.12: Cách hoạt động của max pooling
Lớp kết nối đầy đủ - Fully-Connected layer
Thêm một lớp Kết nối đầy đủ là một cách (thường) dễ và thường thấy để học các kếthợp phi tuyến tính của các đặc trưng cấp cao được biểu diễn bằng đầu ra của lớp tíchchập Lớp Kết nối đầy đủ học một hàm có thể phi tuyến tính trong không gian đó.Giờ đây, chúng ta đã chuyển đổi hình ảnh đầu vào thành một dạng phù hợp cho mạngnơ-ron đa tầng, chúng ta sẽ làm phẳng hình ảnh này thành một vectơ cột Đầu ra đượcđưa vào mạng nơ-ron truyền thẳng và quá trình lan truyền ngược được áp dụng chomỗi lần lặp đào tạo Trải qua nhiều vòng lặp, mô hình có thể phân biệt giữa các đăctrưng nổi bật và cấp thấp nhất định trong hình ảnh và phân loại chúng bằng kỹ thuậtphân lớp Softmax
Mạng ResNet - Residual Network
Các nhà nghiên cứu quan sát thấy rằng thật hợp lý khi khẳng định "càng sâu càngtốt" khi nói đến các mạng thần kinh nơ-ron tích chập Điều này nghe thật có lý, vìcác mô hình sẽ có thêm nhiều khả năng hơn (tính linh hoạt của mạng giúp thích ứngvới mọi không gian tăng lên vì chúng có không gian tham số lớn hơn để khám phá).Tuy nhiên, người ta nhận thấy rằng khi tăng tới một độ sâu nhất định, hiệu suất mạng
bị giảm xuống Đây là một trong những điểm nghẽn của các mạng ra đời trước đó.Chúng không thể đi sâu như mong muốn vì chúng bắt đầu mất khả năng khái quáthóa
Trang 35Hình 2.13: Tầng kết nối đầy đủ được thể hiện tại lớp ở cuối phía sau tầng Flatten
ResNet được giới thiệu vào năm 2015 và giành được vị trí thứ 1 trong cuộc thiILSVRC cùng năm với tỉ lệ lỗi top 5 chỉ3.57% ResNet còn đứng vị trí đầu tiên trongcuộc thi ILSVRC và COCO 2015 với các bài toán tương ứng trên các tập ImageNet
và Coco Một trong những vấn đề mà ResNets giải quyết là sự biến mất của đạo hàm(vanishing gradient) nổi tiếng đã biết Điều này là do khi mạng quá sâu, độ dốc từ nơitính toán hàm mất mát dễ dàng co lại về0 sau một số lớp từ quy tắc dây chuyền Điềunày dẫn đến các trọng số không bao giờ cập nhật các giá trị của nó và do đó, không
có quá trình học nào được thực hiện Với ResNets, độ dốc có thể truyền trực tiếp từcác lớp sau đến các bộ lọc ban đầu bỏ qua các kết nối ở giữa Do đó ResNet là mộtmạng tích chập được thiết kế để làm việc với hàng trăm hoặc hàng nghìn lớp chập
Kiến trúc mạng ResNet
Vì mạng ResNets có thể có các kích thước khác nhau, tùy thuộc vào độ lớn của từnglớp của mô hình và số lượng lớp của nó, ta sẽ nghiên cứu về ResNet 34 để giải thíchcấu trúc sau các mạng này Hình 2.14 thể hiện kiến trúc mạng ResNet 34, chúng ta
Trang 36có thể thấy rằng ResNet (cột ngoài cùng bên phải) bao gồm một bước tích chập vàpooling, theo sau là 4 lớp có hành vi tương tự Mỗi tầng đều tuân thủ theo cùng mộtmẫu chung Chúng thực hiện tích chập 3x3 với kích thước bản đồ đặc trưng cố định(F) [64, 128, 256, 512] tương ứng, bỏ qua đầu vào sau mỗi 2 lần tích chập Hơn nữa,kích thước chiều rộng (W) và chiều cao (H) không đổi trong toàn bộ lớp.
Để ý các đường nét đứt, chính xác là do đã có sự thay đổi về kích thước của kíchthước đầu vào (tất nhiên là có sự giảm bớt do việc tích chập) Chú ý rằng sự giảm giữacác lớp này đạt được bằng cách tăng giá trị stride, từ 1 lên 2, ở lần chập đầu tiên củamỗi lớp thay vì theo sau một lớp pooling Bảng2.15là một tóm tắt về kích thước đầu
ra ở từng lớp và kích thước của các kernel tích chập ở mọi điểm trong cấu trúc.Kiến trúc mạng ResNet 34 được thể hiện trong hình 2.16 Bước đầu tiên tìm hiểuResNet trước khi bước vào các hành vi của các lớp chung là block, trên hình được kýhiệu là Conv1 Block Conv1 bao gồm một phép tích chập + phép chuẩn hóa batch +phép toán max pooling Vì vậy, đầu tiên có một phép toán tích chập Trong Hình2.17,chúng ta có thể thấy rằng tác giả ResNet sử dụng kích thước kernel là 7 và kích thướcbản đồ đặc trưng feature map là 64 Ta cần suy luận rằng họ đã đệm các giá trị0 3lần trên mỗi chiều Khi tính đến điều này, có thể thấy trong Hình2.18rằng kích thướcđầu ra của phép tính đó sẽ có kích thước là (112x122) Vì mỗi bộ lọc tích chập (kíchthước 64) đang cung cấp một kênh trong khối lượng đầu ra và kết thúc với kích thướcđầu ra (112x112x64)
Bước tiếp theo là batch normalization, đây là một phép nhân ma trận về phần tử
và do đó, nó không làm thay đổi kích thước đâu ra Cuối cùng, chúng ta có phép maxpooling (3x3) với stride là 2 Chúng ta cũng có thể suy ra rằng số đệm (pad) ban đầuđược thêm vào, vì vậy kích thước cuối cùng có kích thước như mong muốn
Các tầng của mạng ResNet
Mỗi tầng/lớp của ResNet bao gồm một số khối Điều này là do khi ResNets đi sâuhơn, chúng thường làm điều đó bằng cách tăng số lượng hoạt động trong một khối,nhưng tổng số lớp vẫn giữ nguyên cụ thể là 4 Một phép tính toán ở đây đề cập đếnmột phép tích chập, một phép chuẩn hóa nhóm (batch normalization) và một hàm kích
Trang 37Hình 2.14: Kiến trúc mạng ResNet 34 (ngoài cùng bên phải) [3]