Trang 1 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUY NHƠN LÊ NHƯ THƯƠNG MÔ HÌNH GAN VÀ ỨNG DỤNG TẠO MẪU ẤN PHẨM TRÒ CHƠI THIẾU NHI ĐỀ ÁN THẠC SĨ KHOA HỌC MÁY TÍNH Trang 2 BỘ GIÁO DỤC VÀ Đ
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUY NHƠN
LÊ NHƯ THƯƠNG
MÔ HÌNH GAN VÀ ỨNG DỤNG TẠO MẪU ẤN PHẨM TRÒ CHƠI THIẾU NHI
ĐỀ ÁN THẠC SĨ KHOA HỌC MÁY TÍNH
Bình Định – Năm 2023
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC QUY NHƠN
LÊ NHƯ THƯƠNG
MÔ HÌNH GAN VÀ ỨNG DỤNG TẠO MẪU ẤN PHẨM TRÒ CHƠI THIẾU NHI
Ngành: KHOA HỌC MÁY TÍNH
Mã số: 8480101
Người hướng dẫn: TS LÊ XUÂN VINH
Trang 3LỜI CAM ĐOAN
Tôi là học viên cao học khóa 24B, chuyên ngành khoa học máy tính
trường Đại học Quy Nhơn, xin cam đoan rằng đề tài “Mô hình Gan và ứng dụng tạo mẫu ấn phẩm trò chơi thiếu nhi” là công trình nghiên cứu tự thực
hiện dưới sự hướng dẫn của giảng viên TS Lê Xuân Vinh
Tất cả nội dung, kết quả nghiên cứu trong đề tài đều là trung thực và chính xác Các thông tin, số liệu và kết quả nghiên cứu được trích dẫn, tham khảo đều được ghi rõ nguồn gốc và có sự đồng ý của tác giả Các công trình nghiên cứu, bài báo, sách, và nguồn trích dẫn khác đều được kính trọng và ghi công đầy đủ trong phần tài liệu tham khảo
Tôi xin chịu trách nhiệm trước pháp luật về tính xác thực và trung thực của công trình nghiên cứu của mình, và sẵn sàng nhận mọi hình thức kỷ luật nếu phát hiện có bất kỳ sự gian lận nào trong công trình này
Tác giả luận văn
Lê Như Thương
Trang 4LỜI CẢM ƠN
Trước hết, tôi muốn bày tỏ lòng biết ơn sâu sắc và chân thành nhất đến
TS Lê Xuân Vinh, người đã hướng dẫn, hỗ trợ, và chia sẻ kiến thức quý báu
cho tôi trong quá trình thực hiện đề tài “Mô hình Gan và ứng dụng tạo mẫu
ấn phẩm trò chơi thiếu nhi”
Lời cảm ơn chân thành cũng được gửi đến các thầy cô giáo là giảng viên trường Đại học Quy Nhơn và các bạn bè đồng nghiệp, những người đã không ngừng giúp đỡ, chia sẻ kinh nghiệm và kiến thức, tạo điều kiện thuận lợi nhất để tôi có thể hoàn thành đề án này
Tôi cũng muốn gửi lời cảm ơn đến gia đình, bạn bè và những người thân yêu khác, đã luôn ủng hộ, động viên tinh thần và tạo điều kiện tốt nhất về mọi mặt để tôi có thể tập trung vào công việc nghiên cứu của mình
Cuối cùng, tôi xin bày tỏ lòng kính trọng và biết ơn đến các tác giả của những tài liệu, sách, bài báo khoa học mà tôi đã tham khảo trong quá trình nghiên cứu để hoàn thiện đề tài này Tất cả đã góp phần lớn vào việc hoàn thành đề tài, giúp tôi rút ra được nhiều kiến thức và kinh nghiệm quý giá
Chân thành cảm ơn!
Trang 5MỤC LỤC
Trang
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC HÌNH vi
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Tổng quan tình hình nghiên cứu đề tài 2
4 Đối tượng và phạm vi nghiên cứu 4
4.1 Đối tượng nghiên cứu 4
4.2 Phạm vi nghiên cứu 4
5 Nội dung nghiên cứu 4
6 Phương pháp nghiên cứu 4
Chương 1 KIẾN THỨC CƠ SỞ CỦA HỌC MÁY VÀ HỌC SÂU 5
1.1 Giới thiệu 5
1.1.1 Khái niệm 5
1.1.2 Ứng dụng của học máy 5
1.1.3 Phân loại các phương pháp học máy 6
1.1.4 Các bước tiến hành trong bài toán học máy 7
1.2 Mạng Nơron (Neural) 9
1.2.1 Khái niệm 9
1.2.2 Mô hình mạng nơron nhân tạo 11
1.2.3 Quy tắc delta 12
1.2.4 Thuật toán lan truyền ngược 15
1.3 Học sâu (Deep Learning) 19
1.3.1 Giới thiệu về Deep Learning 19
1.3.2 Cấu trúc mạng CNN 20
1.4 Kết luận chương 1 34
Chương 2 MÔ HÌNH GAN 35
2.1 Giới thiệu chung về GAN 35
2.2 Kiến trúc của GAN 36
2.2.1 Generator 38
Trang 62.2.2 Discriminator 39
2.3 Hàm mất mát 39
2.4 Quá trình huấn luyện GAN 41
2.5 Mô hình Deep Convolutional GAN (DC GAN) 42
2.5.1 Cấu trúc mạng 42
2.5.2 Hàm mất mát của DC GAN 47
2.5.3 Một số vấn đề lưu ý khi xây dựng mô hình và train DC GAN 47
2.6 Kết luận chương 2 47
Chương 3 ỨNG DỤNG GAN TẠO MẪU ẢNH TRÒ CHƠI 48
THIẾU NHI 48
3.1 Giới thiệu và phân tích bài toán 48
3.2 Xây dựng chương trình thử nghiệm 49
3.2.1 Tập dữ liệu 49
3.2.2 Chuẩn bị môi trường và thư viện 49
3.2.3 Xây dựng mô hình discriminator và generator 52
3.2.4 Huấn luyện mô hình discriminator và generator 54
3.2.5 Huấn luyện mô hình DCGAN 56
3.3 Kiểm tra và đánh giá kết quả 57
3.4 Kết luận chương 3 65
KẾT LUẬN 66
DANH MỤC TÀI LIỆU THAM KHẢO 67 QUYẾT ĐỊNH GIAO TÊN ĐỀ TÀI ĐẾ ÁN THẠC SĨ (BẢN SAO)
Trang 7DANH MỤC CÁC CHỮ VIẾT TẮT
AI Artificial Intelligence ANN Artificial Neural Network CNN Convolutional Neural Network
DL Deep Learning GAN Generative Adversarial Networks
ML Machine Learning
Trang 8DANH MỤC CÁC HÌNH
Hình 1.1: Cấu trúc mạng CNN 20
Hình 1.2: Ma trận đầu vào/ra 21
Hình 1.3: Filter phát hiện cạnh 22
Hình 1.4: Feature map trên không gian ảnh 22
Hình 1.5: Zero Padding 24
Hình 1.6: Avarage Pooling và Max Pooling 25
Hình 1.7: Nguồn: Andrew Ng Machine Learning course (Coursera) 28
Hình 1.8: Nguồn: Andrew Ng Machine Learning course (Coursera) 29
Hình 1.9: Bias và variance 30
Hình 1.10: Nguồn: Srivastava, Nitish, et al “Dropout: a simple way to prevent neural networks from overfitting”, JMLR 2014 32
Hình 2.1: Mô hình Generator và Discriminator 36
Hình 2.2: Kiến trúc mạng GAN 36
Hình 2.3: Sơ đồ kiến trúc của generator 38
Hình 2.4: Sơ đồ kiến trúc của Discriminator 39
Hình 2.5: Generator của DCGAN với các lớp tích chập phân đoạn 43
Hình 2.6: Discriminator DCGAN với lớp tích chập có bước 44
Hình 2.7: Một ví dụ về phép tính tích chập 44
Hình 2.8: Một ví dụ về tích chập phân đoạn 46
Hình 3.1: Ảnh sinh ra từ generator ở epchos thứ 10 58
Hình 3.2: Ảnh sinh ra từ generator ở epchos thứ 100 58
Hình 3.3: Ảnh sinh ra từ generator ở epchos thứ 500 59
Hình 3.4: Ảnh sinh ra từ generator ở epchos thứ 1000 59
Hình 3.5: Ảnh thật 60
Hình 3.6: Ảnh giả 60
Hình 3.7: Biểu đồ mất mát của bộ sinh (generator) và bộ phân biệt discriminator 61
Hình 3.8: Biểu đồ Score của Real và Fake 61
Trang 9MỞ ĐẦU
1 Lý do chọn đề tài
Ngày nay, thế giới chúng ta đang chứng kiến về tốc độ lan tỏa của công nghệ 4.0 rất mạnh mẽ Trong đó, phải nói tới lĩnh vực được xã hội quan tâm chính là AI (trí tuệ nhân tạo) Mơ ước làm cho máy tính có trí thông minh giống con người đã có từ lâu Trí tuệ nhân tạo đang đi vào cuộc sống của mỗi con người, của mỗi quốc gia Trí tuệ nhân tạo có thể biến những điều tưởng chừng như không thực hiện được thành hiện thực Chẳng hạn như những robot hoạt động trong lĩnh vực quân sự, những căn nhà thông minh,…
Trong những năm gần đây, khả năng tính toán của máy tính đã được nâng cao đáng kể và việc thu thập lượng dữ liệu khổng lồ trở nên dễ dàng hơn Kết quả là, Machine Learning đã phát triển một cách đáng kể và mở ra một lĩnh vực mới được biết đến với tên gọi là Deep Learning (DL) Nhờ vào học sâu này, trí tuệ nhân tạo đã được mở rộng và tiến bộ Học sâu được áp dụng rộng rãi trong các vấn đề thực tế của học máy và đã mở rộng phạm vi tổng thể của trí tuệ nhân tạo Học sâu đã thay đổi cách thức con người làm việc bằng cách cho phép các thiết bị máy móc có khả năng hoạt động giống hoặc gần giống con người Ví dụ như ô tô không người lái, chăm sóc sức khoẻ chất lượng cao hơn và đề xuất phim hay hơn, Tất cả điều này chỉ có thể trở thành hiện thực trong thời đại hiện tại nhờ vào các kỹ thuật của học sâu
Một trong những kỹ thuật đang được nghiên cứu và ứng dụng rộng rãi vào đời sống thực tế chính là mô hình Generative Adversarial Networks (GAN) Mô hình GAN được sử dụng để tạo ra rất nhiều sản phẩm hay, ví dụ làm cho máy tính có thể sáng tác nhạc, vẽ tranh, sáng tạo trong lĩnh vực nghệ thuật - điều mà bạn nghĩ chỉ có con người mới có thể làm được
Trang 10Trò chơi điện tử là một lĩnh vực phát triển mạnh mẽ, đặc biệt là trò chơi thiếu nhi Việc tạo ra những trò chơi có hình ảnh sinh động, đa dạng sẽ giúp thu hút sự chú ý của trẻ em và người chơi, có những trải nghiệm tuyệt vời khi chơi và đồng thời cũng giúp cho các nhà phát triển trò chơi có thêm công cụ
để tạo ra các trò chơi hấp dẫn và độc đáo
Thay vì chúng ta hay thuê các họa sĩ để vẽ, tạo ra những mẫu ảnh của các trò chơi thiếu nhi, chúng ta có thể sử dụng mô hình GAN để sinh ra những mẫu ảnh trò chơi từ mẫu các họa sĩ vẽ mà không vi phạm bản quyền cũng như việc làm này giúp cho quá trình sản xuất trò chơi trở nên nhanh chóng, tiết
kiệm được chi phí rất lớn Chính vì vậy, tôi chọn tìm hiểu về: “Mô hình Gan
và ứng dụng tạo mẫu ấn phẩm trò chơi thiếu nhi” làm đề tài nghiên cứu
2 Tổng quan tình hình nghiên cứu đề tài
Ian Goodfellow và đồng nghiệp của mình đã giới thiệu về GAN qua một báo cáo khoa học vào năm 2014 [2] Trong khoảng thời gian này, đa số mọi người tập trung vào chức năng sinh dữ liệu của GAN Sau đó, vì những ứng dụng hữu ích tuyệt vời của GAN, do đó GAN được khai thác nhiều hơn
Những kết quả nghiên cứu tiêu biểu: Alec Radford [3] giới thiệu vềhọc đại diện không giám sát với các mạng đối thủ tạo ra tích chập sâu được gọi là DCGAN đã minh họa cách huấn luyện các GAN ổn định trên quy mô lớn Họ
đã trình diễn các mô hình để tạo ra các ví dụ mới về phòng ngủ Tero Karras [4], đã nghiên cứu về sự phát triển tiến bộ của GAN để cải thiện chất lượng,
độ ổn định và sự thay đổi chứng minh việc tạo ra các bức ảnh thực tế hợp lý
về khuôn mặt người Trên thực tế, chúng trông rất thật đến mức có thể gọi kết quả là đáng chú ý Do đó, kết quả nhận được rất nhiều sự chú ý của giới truyền thông Các thế hệ khuôn mặt được đào tạo dựa trên các ví dụ về người nổi tiếng, nghĩa là có các yếu tố của những người nổi tiếng hiện có trong các khuôn mặt được tạo, khiến chúng có vẻ quen thuộc nhưng không hoàn toàn
Trang 11Grigory Antipov [5] đã đề xuất một phương pháp mới để dự báo sự lão hóa khuôn mặt con người dựa trên điều kiện tuổi tác Dựa trên khuôn mặt hiện tại,
mô hình GAN sẽ sinh ra các biến thể theo từng độ tuổi của con người Andrew Brock, và cộng sự [6] đề xuất về đào tạo GAN quy mô lớn để tổng hợp hình ảnh tự nhiên có độ trung thực cao chứng minh việc tạo ra các bức ảnh tổng hợp bằng kỹ thuật BigGAN của họ mà thực tế không thể phân biệt được với các bức ảnh thực Yanghua Jin và các cộng sự [7] hướng tới việc tạo nhân vật anime tự động với GAN, khám phá việc đào tạo các mô hình GAN chuyên về bộ dữ liệu hình ảnh khuôn mặt anime, giải quyết vấn đề từ cả khía cạnh dữ liệu và mô hình, bằng cách thu thập tập dữ liệu rõ ràng, phù hợp hơn
và tận dụng ứng dụng DRAGAN theo kinh nghiệm, phù hợp Với phân tích định lượng và nghiên cứu điển hình, chứng minh dẫn đến một mô hình chất lượng cao và ổn định Phillip Isola và cộng sự [8] đã nghiên cứu mô hình GAN có điều kiện như một giải pháp cho các vấn đề dịch từ ảnh sang ảnh Han Zhang [9] đã tổng hợp hình ảnh từ văn bản thành hình ảnh thực tế với các mạng đối thủ tạo ra được xếp chồng lên nhau chứng minh việc sử dụng GAN,
cụ thể là StackGAN của họ để tạo ra các bức ảnh trông giống như thật từ các
mô tả bằng văn bản về các đối tượng đơn giản như chim và hoa Ting-Chun Wang [10] công bố về tổng hợp hình ảnh độ phân giải cao và thao tác ngữ nghĩa với các GAN có điều kiện để chứng minh việc sử dụng các GAN có điều kiện để tạo ra các hình ảnh chân thực được cung cấp một hình ảnh ngữ nghĩa hoặc bản phác thảo làm đầu vào Rui Huang [11] đã nghiên cứu việc tổng hợp các góc nhìn từ một khuôn mặt và có nhiều ứng dụng trong lĩnh vực nhận dạng khuôn mặt Christian Ledig [12] công bố công trình nghiên cứu về aenh siêu phân giải ảnh đơn thực tế bằng cách sử dụng GAN chứng minh việc
sử dụng GAN, cụ thể là mô hình SRGAN của họ, để tạo ra hình ảnh đầu ra với độ phân giải pixel cao hơn, đôi khi cao hơn nhiều
Trang 123 Mục tiêu nghiên cứu
- Nghiên cứu về ý tưởng, cấu trúc của mô hình, các thuật toán được sử dụng trong mô hình GAN
- Cài đặt chương trình tạo mẫu ảnh trò chơi thiếu nhi
4 Đối tượng và phạm vi nghiên cứu
4.1 Đối tượng nghiên cứu
- Nghiên cứu cơ sở lý thuyết và thuật toán GAN
4.2 Phạm vi nghiên cứu
- Ứng dụng GAN trong việc tạo mẫu ảnh trò chơi thiếu nhi
5 Nội dung nghiên cứu
- Lý thuyết và thuật toán GAN
- Ứng dụng sinh ảnh mẫu trò chơi thiếu nhi bằng mô hình GAN
6 Phương pháp nghiên cứu
Phương pháp nghiên cứu của đề tài là lý thuyết kết hợp với thực nghiệm Tiến hành nghiên cứu dựa trên việc tìm hiểu tài liệu, cài đặt thử
nghiệm sau đó đánh giá kết quả thực nghiệm
Trang 13Chương 1 KIẾN THỨC CƠ SỞ CỦA HỌC MÁY VÀ HỌC SÂU
Trong chương này, chúng tôi trình bày khái niệm tổng quát như học máy, mạng nơron, học sâu nhằm tạo tiền đề tìm hiểu về mô hình GAN
1.1 Giới thiệu
1.1.1 Khái niệm
Học máy (ML), là một lĩnh vực con của trí tuệ nhân tạo (AI) và khoa học máy tính, chuyên về việc khai thác, xử lý và sử dụng dữ liệu cùng với thuật toán để mô phỏng quá trình học hỏi của con người, từ đó nâng cao độ chính xác trong quá trình thực hiện Đến thời điểm hiện tại, đã xuất hiện nhiều định nghĩa khác nhau về học máy Tom Mitchell, một giáo sư nổi bật tại Đại học Carnegie Mellon, đã đưa ra một định nghĩa rõ ràng và chi tiết về học máy như sau:
Định nghĩa 1.1 Một chương trình máy tính sẽ được coi là “học” từ dữ
liệu/kinh nghiệm E trong bối cảnh tập nhiệm vụ T và chỉ số đánh giá P, nếu
nó cải thiện khả năng thực hiện nhiệm vụ T, dựa trên chỉ số P, thông qua dữ liệu hoặc kinh nghiệm E
1.1.2 Ứng dụng của học máy
Một số ứng dụng tiêu biểu của học máy:
Xử lý hình ảnh: bài toán xử lý ảnh sẽ giải quyết một số vấn đề phân tích
thông tin từ hình ảnh hay thực hiện một số phép biến đổi Một số ví dụ cơ bản cho lĩnh vực này như ứng dụng gắn thẻ hình ảnh, nhận dạng ký tự, ô tô tự lái…
Nhận dạng giọng nói: nhận dạng giọng nói là việc chuyển đổi giọng
nói thành văn bản Nó được biết đến với máy nhận dạng giọng nói hoặc nhận dạng giọng nói tự động
Trang 14Khai phá dữ liệu: là quá trình khám phá ra các thông tin có giá trị hoặc
đưa ra các dự đoán từ dữ liệu Ứng dụng của khai phá dữ liệu như phát hiện bất thường, phát hiện các quy luật, gom nhóm, dự đoán,…
Phân tích văn bản: là công việc trích xuất hoặc phân lọi thông tin từ
văn bản Các văn bản ở đây có thể là các tài liệu, email, …
Chẩn đoán y khoa: Machine Learning có khả năng được áp dụng vào
những phương pháp và công cụ chẩn đoán bệnh Nó có thể khai thác và kết hợp các dấu hiệu lâm sàng để dự đoán diễn biến của các bệnh tật, cung cấp thông tin cho bác sĩ nhằm lập ra kế hoạch để điều trị và theo sát tình hình bệnh nhân cho phù hợp
Phân tích thị trường chứng khoán: Trong ngành tài chính, phân tích
chứng khoán tập sẽ trung vào thực hiện những giao dịch tự động có thời gian ngắn hạn với một lượng lớn giao dịch Người dùng trong những chiến lược này chú tâm vào việc phát triển các thuật toán giao dịch dành cho mã chứng khoán dựa trên lượng giao dịch và mối tương quan lịch sử, cũng như các yếu
tố kinh tế khác, để xây dựng các chiến lược khai thác chênh lệch giá
Dịch vụ ngân hàng tài chính: Machine Learning mang lại nhiều tiềm
năng trong lĩnh vực ngân hàng và tài chính, có vai trò quan trọng rất trong sự phổ biến của những dịch vụ tài chính Nó giúp các ngân hàng và tổ chức tài chính dự đoán và ngăn chặn việc đóng các tài khoản trước khi sự cố xảy ra, theo dõi hành vi chi tiêu của khách hàng, phân tích xu hướng thị trường, có thể huấn luyện để giám sát mô hình chi tiêu của khách hàng
1.1.3 Phân loại các phương pháp học máy
Có một số phương pháp học máy được sử dụng rộng rãi, bao gồm: học
có giám sát, học không giám sát, học bán giám sát và học tăng cường
Học có giám sát (Supervised Learning): Đây là kỹ thuật dự đoán giá trị
Trang 15hoặc nhãn cho dữ liệu mới dựa trên các quy tắc học được từ các đặc điểm của tập dữ liệu huấn luyện Trong phương pháp này, tập dữ liệu huấn luyện phải
có những giá trị đầu ra đã xác định từ trước Học có giám sát chủ yếu được sử dụng để giải quyết hai loại bài toán: bài toán hồi quy (regression problem) và bài toán phân lớp (classification problem)
Học không giám sát (Unsupervised Learning): Phương pháp này áp dụng các thuật toán học máy để phân tích và gom nhóm dữ liệu không có nhãn Những thuật toán này có khả năng tìm ra các mô hình hoặc nhóm dữ liệu tiềm ẩn mà không yêu cầu sự can thiệp từ con người
Học bán giám sát (Semi-supervised Learning): Kỹ thuật này là sự kết hợp giữa học có giám sát và học không giám sát, nó sử dụng dữ liệu đã được gán nhãn và dữ liệu chưa được gán nhãn để huấn luyện
Học tăng cường (Reinforcement Learning): Đây là quá trình học từ chuỗi các hành động, tiến trình từng bước nhằm đạt được kết quả lý tưởng khi hoàn thành chuỗi các thao tác Học tăng cường chủ yếu được áp dụng trong việc phát triển các ứng dụng game và các hệ thống điều khiển tự động
1.1.4 Các bước tiến hành trong bài toán học máy
Một bài toán học máy trải qua các bước sau:
Bước 1: Thu thập dữ liệu
Đầu tiên, ta thu thập và tổng hợp dữ liệu để tạo ra tập dữ liệu huấn luyện Tập dữ liệu này sẽ được sử dụng để huấn luyện mô hình học máy
Bước 2: Tiền xử lý dữ liệu
Sau khi thu thập dữ liệu, ta cần tiền xử lý dữ liệu để loại bỏ các giá trị thiếu, xử lý nhiễu và chuẩn hóa dữ liệu Do đó, bước này là một bước quan trọng
để cải thiện chất lượng dữ liệu và giảm thiểu sai sót khi huấn luyện mô hình
Trang 16Bước 3: Chọn mô hình
Lựa chọn một mô hình phù hợp với bài toán cần giải quyết Có nhiều loại mô hình khác nhau trong học máy, bao gồm các mô hình phân loại, dự đoán và phân cụm Bước này cần phân tích và đánh giá tính hiệu quả, độ chính xác, khả năng mở rộng, khả năng tính toán và sử dụng các thuật toán khác nhau
Bước 4: Đào tạo mô hình
Chấp nhận tập dữ liệu đào tạo vào mô hình và điều chỉnh các tham số của
nó để nó có thể tiên đoán đúng các giá trị đầu ra Quy trình này được tiến hành thông qua các thuật toán đào tạo mô hình như Gradient Descent, Random Forest, Neural Network, Support Vector Machine,…
Thông thường, tập dữ liệu được phân chia thành ba phần như dưới đây:
• Tập đào tạo (Training set): khoảng 60%, sử dụng để học trong quá trình đào tạo
• Tập xác thực (Cross validation set): khoảng 20%, sử dụng để xác nhận
mô hình trong quá trình đào tạo
• Tập thử nghiệm (Test set): khoảng 20%, sử dụng để kiểm tra tính thích hợp của mô hình sau khi đã đào tạo
Bước 5: Đánh giá mô hình
Sau khi huấn luyện, ta đánh giá hiệu suất của mô hình bằng cách sử dụng tập dữ liệu kiểm tra Nếu mô hình không đạt được hiệu suất mong đợi,
ta có thể quay trở lại bước huấn luyện mô hình và thay đổi các thông số để tối
ưu hóa hiệu suất
Bước 6: Sử dụng mô hình
Cuối cùng, sau khi đánh giá và chọn ra mô hình tốt nhất, ta sử dụng mô
Trang 17hình để dự đoán hoặc phân loại các dữ liệu mới
Tóm lại, quá trình thực hiện bài toán học máy bao gồm nhiều bước phức tạp, bắt đầu từ việc thu thập dữ liệu, tiền xử lý dữ liệu, lựa chọn mô hình, huấn luyện mô hình, đánh giá hiệu suất của mô hình và triển khai mô hình trên các ứng dụng thực tế Để đảm bảo mô hình hoạt động hiệu quả và đáp ứng được các yêu cầu của người dùng, mô hình cần được cập nhật và điều chỉnh thường xuyên
1.2 Mạng Nơron (Neural)
1.2.1 Khái niệm
“Neural” là từ chỉ tính chất của “neuron” (nơ-ron), và “network” ám chỉ một cấu trúc dạng đồ thị, từ đó “neural network” (NN) được hình thành như một hệ thống tính toán bắt chước sự hoạt động của các nơron trong hệ thần kinh sinh học
Mạng nơron nhân tạo hoặc Artificial Neural Network (ANN), còn được gọi là mạng nơron hoặc neural network, là một cấu trúc dùng để xử lý thông tin, mô phỏng theo cách mà các hệ nơron sinh học xử lý thông tin Được cấu thành từ một lượng đáng kể các yếu tố (hay còn gọi là các phần tử xử lý hoặc nơron) được kết nối với nhau qua các liên kết (được biết đến như là trọng số liên kết), chúng tập hợp và hoạt động như một hệ thống thống nhất nhằm giải quyết những vấn đề cụ thể Trong đó, một nơron đóng vai trò là đơn vị cơ bản trong việc xử lý thông tin, và là một phần quan trọng của mạng nơron
Các yếu tố cơ bản tạo nên một nơron nhân tạo gồm có:
Nhóm các đầu vào: Đây chính là các tín hiệu đầu vào (input signals) cho nơron, thường xuất hiện dưới hình thức của một vector m chiều Nói cách
khác, nhóm các tín hiệu đầu vào vào x j tương ứng với các trọng số wj , với j
= 1, , n
Trang 18Hàm tổng hợp, thường được gọi là hàm Summing, thường được dùng
để tính tổng của tích giữa các tín hiệu đầu vào và trọng số kết nối tương ứng
Ngưỡng, còn được biết đến như độ lệch hoặc bias, thường được thêm vào như một phần của quá trình truyền
Hàm truyền đạt, còn được gọi là hàm kích hoạt (Transfer function), thường được ký hiệu là f Hàm này được sử dụng để chuyển đổi giá trị đạt được từ tổng hợp của tín hiệu đầu vào Nó giới hạn phạm vi giá trị đầu ra của mỗi nơron, lấy giá trị đầu vào từ kết quả của hàm tổng hợp và độ lệch đã được xác định Thông thường, giá trị đầu ra của mỗi nơron bị hạn chế trong khoảng [0,1] hoặc [-1, 1] Có nhiều loại hàm truyền, bao gồm:
- Hàm kích hoạt nhị phân (Binary step): Trong đó, 0 đóng vai trò như một ngưỡng, đạt đến một mức “kích thích” đủ cao để kích hoạt hoạt động tại nơron
1 0 ( )
Trang 19Mạng perceptron một lớp có khả năng biểu diễn các hàm logic như AND,
OR và NOT, nhưng lại không thể biểu diễn được hàm XOR Điều này chỉ ra rằng mô hình perceptron một lớp không phải là phương tiện thích hợp để giải quyết bài toán này Tuy nhiên, khuyết điểm này có thể được khắc phục bằng việc
sử dụng mạng nơron perceptron đa lớp (Multi Layer Perceptron - MLP)
1.2.2 Mô hình mạng nơron nhân tạo
Có nhiều cấu trúc khác nhau của mạng nơron nhân tạo, ví dụ như mạng nơron hồi quy một lớp hoặc mạng nơron truyền thẳng một lớp, Tuy nhiên, ở đây chúng ta sẽ tập trung vào mạng truyền thẳng nhiều lớp mạng perceptron nhiều lớp (Multilayer Perceptron – MLP), đây là phiên bản phát triển của mô hình perceptron với việc bổ sung một số lớp ẩn và các nơron trong lớp ẩn này
sử dụng hàm hàm kích hoạt (hàm truyền) phi tuyến Mạng MLP với một lớp
ẩn là loại mạng nơron nhân tạo nó được sử dụng phổ biến, vì có khả năng xấp xỉ các hàm liên tục đã được định nghĩa trên miền giới hạn cũng như các hàm rời rạc có số điểm hữu hạn
Cấu trúc tổng quát của một mạng MLP có thể được mô tả như sau:
- Đầu vào của mạng là vectơ (x1, x2, , xn) trong không gian n chiều, đầu ra là vectơ (y1, y2, ., ym) trong không gian có m chiều Ở các bài toán phân loại, thông thường n là kích thước của mẫu đầu vào và số lớp cần phân loại là m
Trang 20- Mỗi nơron trong lớp sau được kết nối với tất cả các nơron trong lớp trước đó
- Đầu ra của nơron trong lớp trước được sử dụng làm đầu vào cho các nơron ở lớp sau
- Hoạt động của mạng MLP diễn ra như sau: ở lớp đầu vào, các nơron nhận tín hiệu vào để tiến hành xử lý việc tính tổng trọng số và gửi qua hàm truyền, sau đó cho ra kết quả là giá trị của hàm truyền; kết quả này được chuyển tiếp cho các nơron thuộc lớp ẩn thứ nhất; các nơron ở đây tiếp tục nhận tín hiệu này làm đầu vào, tiếp tục xử lý, gửi kết quả cho lớp ẩn thứ hai; Quá trình này tiếp tục cho tới khi các nơron cuối cùng cho ra kết quả
Đối với kí hiệu, chúng ta có thể hiểu wijđược dùng để chỉ trọng số từ
nút thứ j đến nút thứ i Giả sử có n tín hiệu vào xj( j 1, , ) n , khi đó giá trị
Rm nếu các trọng số được xác lập phù hợp Như vậy, quá trình xác định các trọng số được gọi là “học” hay “đào tạo” Thông tin được cung cấp cho quá trình đào tạo là một tập dữ liệu đào tạo bao gồm các cặp giá trị đầu vào – đầu
Trang 21Chúng ta, sẽ đi so sánh giá trị thu được qua mạng nơron tương ứng với đầu vào q
x đó là q ( 1q, , q) m
m
o o o R và y q để điều chỉnh bộ trọng số Có thể hiểu quá trình đào tạo mạng mô tả dưới góc độ toán học là bài toán: cho một hàm được xác định bởi cấu trúc mạng, phải tìm một hàm tối ưu thuộc lớp
đã cho dựa trên cơ sở là một tập dữ liệu mẫu
Với ý tưởng cơ bản là tìm bộ trọng số thích hợp để tối ưu mạng, giảm thiểu hàm lỗi Đối với hàm lỗi sẽ được định nghĩa là các lỗi trên tập mẫu:
1
N q q
Đối với mạng nơron đơn, nút thứ i có giá trị ra tương ứng với mẫu k là
ở đây fi là hàm kích hoạt Lưu ý, trong quy tắc delta, hàm kích hoạt phải là hàm khả vi
Các w i ij, 1, , ;m j 1, ,n được xem là các biến của hàm lỗi E Xem w như là điểm gồm các thành phần w Giá trị hàm E sẽ tiến về phía ij điểm cực tiểu nếu điểm w tiến đến vị trí làm cho đạo hàm của E tại đó bằng
không Tương tự hàm một biến, hướng di chuyển của w sẽ ngược hướng của đạo hàm tại điểm đang xét Và vector đạo hàm là tổng các vector thành phần nên mỗi w phải được cập nhật giá trị mới theo công thức ij
Trang 22q q
i j q
x
Ở đây chúng ta đã dùng nhiều hàm kích hoạt khác nhau cho mỗi nút
Có thể dùng chung hàm kích hoạt thông dụng đó là hàm sigmoid vì ta tính đạo hàm đơn giản
Trang 231.2.4 Thuật toán lan truyền ngược
Thuật toán lan truyền ngược là học theo phương pháp lan truyền ngược sai số là một trong số những kết quả nghiên cứu quan trọng nhất đối với sự phát triển của mạng nơron nhân tạo Thuật toán này được áp dụng cho mạng truyền thẳng nhiều lớp trong đó các nơron có thể sử dụng các hàm truyền là các hàm liên tục có các dạng khác nhau
Ở phần trước, theo quy tắc delta khi học mẫu thứ q, trọng số w ij sẽ được
các lớp ẩn, ta có thể xét trường hợp mạng có một lớp ẩn gồm có m nút, n đầu vào và p đầu ra Khi đó trọng số kết nối từ nút k đến nút ẩn thứ i là wik
Bình phương lỗi đối với mẫu thứ q tại nút ra thứ j 2
o y
Gọi v là trọng số kết nối từ nút ẩn thứ i đến nút ra thứ j ij
Trang 24Dùng quy tắc delta, tính giá trị cập nhật cho các trọng số v tại nút ra ij thứ j Đầu ra của các nút thuộc lớp ẩn xem là đầu vào cho nút ra này Khi đó,
E o
Do ảnh hưởng của
q i
o đối với giá trị hàm lỗi E q
liên quan đến tất cả các nút ra trên
Trang 25E o
chính là 1
'
q j m q
j i
Trang 26(2) thay đổi trọng số mỗi khi một mẫu q trong tập đào tạo được sử dụng
w
w
q q
Bước 1 Đầu tiên khởi tạo bộ trọng số, chọn tốc độ học
Bước 2 Cho mạng nhận giá trị đầu vào là mẫu x q
Bước 3 Truyền dữ liệu lần lượt qua các lớp, tính các giá trị
1w
w
ik i o k
Trang 27q q q
v o
Bước 8 Tiến hành tăng mẫu q+1 và quay lại bước 2
Chú ý, quá trình đào tạo chúng ta có thể căn cứ vào giá trị của hàm lỗi hoặc
số lần lặp
1.3 Học sâu (Deep Learning)
1.3.1 Giới thiệu về Deep Learning
Học sâu là một chi nhánh của học máy áp dụng mạng nơron với nhiều tầng hơn để phân tích dữ liệu Mạng nơron sâu xem xét dữ liệu thông qua các biểu diễn đã được học, giống như cách một con người tiếp cận một vấn đề Trong học máy truyền thống, thuật toán được truyền đưa ra một tập hợp các đặc trưng liên quan để xem xét Tuy nhiên, với học sâu, thuật toán nhận dữ liệu thô và tự xác định những đặc trưng quan trọng Hiệu suất của mạng học
sâu thường tăng lên khi số lượng dữ liệu dùng để huấn luyện chúng tăng lên
Học sâu, hoặc Deep Learning, về bản chất, là một ngành của trí tuệ nhân tạo (AI) mà nỗ lực mô phỏng hệ thống thần kinh của con người Điều này cần được ghi nhớ - không phải chỉ là một cụm từ trống rỗng - khi bạn đang trình bày hoặc dạy về Deep Learning cho người khác, đặc biệt khi họ
không có kiến thức kỹ thuật vững vàng
Giống như cách mà con người học từ những kinh nghiệm, một thuật toán học sâu có thể lặp lại một công việc nhiều lần, và tự điều chỉnh sau mỗi lần để cải thiện hiệu suất Thuật ngữ “học sâu” dùng để nói về những mạng nơron có nhiều tầng, điều này giúp nâng cao khả năng học của chúng Học sâu có thể giải quyết nhiều vấn đề yêu cầu “suy luận” để giải quyết Phương pháp này thường yêu cầu nhiều dữ liệu và tài nguyên hơn so với các phương pháp truyền thống, nhưng đổi lại, nó cung cấp độ chính xác cao hơn
Trang 28Mạng nơron tích chập (CNN - Convolutional Neural Network) là một trong số các mô hình học sâu hàng đầu hiện nay CNN đã giúp chúng ta phát triển các hệ thống thông minh có độ chính xác cao như bây giờ Tiếp theo, chúng ta sẽ khám phá sâu hơn về cấu trúc của mạng CNN
Đây là lớp chính của mạng tích chập (CNN), có vai trò quan trọng trong việc thực hiện các tính toán Stride, padding, filter map và feature map được coi là những yếu tố quan trọng nhất trong lớp
Cơ chế của CNN là tạo ra các filter áp dụng vào từng vùng hình ảnh Các filter map này được gọi là ma trận ba chiều, bên trong chứa các tham số dưới dạng những con số
Stride là sự dịch chuyển filter map theo pixel dựa trên giá trị từ trái sang phải
Padding: Đây là các giá trị 0 được thêm vào tại biên của lớp đầu vào
Trang 29Feature map: Sau mỗi lần quét, một quá trình tính toán sẽ được thực hiện Feature map sẽ thể hiện kết quả sau mỗi lần filter map quét qua input
Trong minh họa dưới đây, dữ liệu đầu vào được biểu diễn dưới dạng một ma trận với kích thước 8x8x1, đi kèm với bộ lọc kích thước 2x2x1, và Feature Map có kích thước 7x7x1 Các giá trị trên Feature Map được xác định thông qua việc tính tổng của tích của các phần tử tương ứng từ bộ lọc 2x2x1
và phạm vi nhận diện (receptive field) trên hình ảnh Để thu thập tất cả các giá trị Feature Map, bạn cần di chuyển bộ lọc từ trên xuống dưới và từ bên trái sang bên phải Do đó, bạn sẽ nhận thấy rằng quy trình convolution giữ nguyên thứ tự không gian của các pixel: chẳng hạn, pixel của dữ liệu đầu vào
ở góc trên bên trái sẽ tương ứng với một điểm ở góc trái trên Feature Map
Hình 1.2: Ma trận đầu vào/ra
Lớp tích chập có chức năng chính là phát hiện đặc trưng cụ thể của bức ảnh Các đặc trưng này có thể là các yếu tố cơ bản như góc, cạnh, màu sắc hoặc những yếu tố phức tạp hơn như kết cấu của bức ảnh Nhờ việc di chuyển
bộ lọc xuyên suốt bức ảnh, chúng ta có thể phát hiện các đặc trưng này ở bất
kỳ vị trí nào trên bức ảnh và vẫn có thể nhận diện chúng ngay cả khi bức ảnh được xoay theo các hướng khác nhau Trong ví dụ sau đây, chúng ta sử dụng một bộ lọc kích thước 5x5 để khám phá góc và cạnh, với giá trị một chỉ được
Trang 30áp dụng tại các điểm biểu diễn cho góc cong
Hình 1.3: Filter phát hiện cạnh
Một yếu tố quan trọng đáng kể trong lớp tích chập là kích cỡ của bộ lọc (filter) Kích thước này ảnh hưởng trực tiếp tới số tham số cần được học ở mỗi lớp tích chập, và cũng xác định receptive field của lớp đó Một kích cỡ filter thường gặp là 3x3
Thường, kích cỡ filter trong lớp tích chập là các số lẻ, chẳng hạn như 3x3 hoặc 5x5 Khi chọn kích cỡ filter lẻ, các điểm dữ liệu trên feature map sẽ tiến hành xác định được một tâm điểm ở lớp trước đó Ngược lại, nếu chọn kích thước filter chẳn như 2x2 hoặc 4x4, sẽ gặp khó khăn việc xác định vị trí tương ứng của những giá trị trên feature map trên không gian hình ảnh
Hình 1.4: Feature map trên không gian ảnh
Trang 31Có những trường hợp đặc biệt, như khi filter có kích thước 1x1 hoặc kích thước của nó bằng với kích thước ma trận đầu vào, lớp tích chập mang một ý nghĩa rất đặc biệt Mỗi điểm như là một đặc trưng duy nhất được đánh giá qua kích thước filter 1x1, thực hiện chức năng giảm (hoặc tăng) số chiều nếu số feature map ở lớp sau ít hơn (hoặc nhiều hơn) lớp trước Cấu trúc này
đã được áp dụng trong các kiến trúc mạng thông dụng như nnception networks Trong trường hợp filter có kích thước bằng với ảnh đầu vào, lớp tích chập hoạt động giống như một lớp fully connected
Ngoài ra, chúng ta cần chú ý tham số stride, biểu thị số pixel mà bộ lọc phải dịch chuyển mỗi khi đi qua bức ảnh Trong ví dụ dưới đây, với stride được đặt là 2, bộ lọc sẽ dịch chuyển qua 2 pixel mỗi khi áp dụng phép tích chập
Khi sử dụng phép convolution, ma trận đầu vào sẽ thu gọn hơn, dẫn đến giảm số lượng tầng trong mô hình CNN và dẫn đến việc khổng thể xây dựng deep nets mà mong muốn Để khắc phục điều trên, bạn có thể bổ sung padding cho ma trận đầu vào nhằm bảo đảm kích thước ma trận sau mỗi tầng convolution không thay đổi Nhờ thế, bạn dễ dàng xây dựng mô hình với số lượng tầng convolution mong muốn Cách dễ dàng và đơn giản nhất để chế padding là sử dụng dãy số từ 0, hoặc có thể sử dụng với reflection padding hoặc symmetric padding
Trang 32Hình 1.5: Zero Padding
Do đó, sau khi đưa một bức ảnh vào lớp tích chập, chúng ta thu được đầu ra là một chuỗi các ảnh, mỗi ảnh tương ứng với một bộ lọc đã được áp dụng trong phép tích chập Các trọng số của các bộ lọc này được khởi tạo một cách ngẫu nhiên lần đầu, và chúng sẽ trải qua quá trình cải thiện dần trong suốt quá trình huấn luyện
Lớp kích hoạt phi tuyến ReLU
Lớp kích hoạt phi tuyến ReLU được xây dựng với mục đích đảm bảo tính phi tuyến của mô hình huấn luyện sau khi đã thực hiện một loạt các phép tính toán tuyến tính thông qua các lớp tích chập
Trước khi áp dụng hàm ReLU, các hàm như sigmoid hay tanh được sử dụng rộng rãi Tuy nhiên, có thể vì tính toán đơn giản, khắc phục hiện tượng vanishing gradient và mang lại kết quả tốt, cho nên hàm ReLU được ưa chuộng Hàm ReLU cũng như các hàm kích hoạt khác, thông thường đặt ngay phía sau tầng convolution Hàm ReLU sẽ gán giá trị 0 cho các giá trị âm và các giá trị đầu vào nếu lớn hơn 0 sẽ được giữ nguyên Công thức của ReLU là:
( ) max(0, )
f x x
Tuy nhiên, cũng có một vài vấn đề chẳng hạn không có đạo hàm tại điểm 0 và có cũng có khả năng cho ra giá trị lớn đến vô cùng Nếu không cẩn
Trang 33thận trong việc khởi tạo trọng hay chúng ta thiết lập learning rate quá lớn, các
nơ rơn trong tầng này có thể rơi vào trạng thái gọi là chết, nghĩa là luôn có giá trị bé hơn 0
Lớp lấy mẫu
Lớp lấy mẫu thông thường được sử dụng sau lớp tích chập và lớp ReLU nhằm mục đích giảm kích thước của ảnh đầu vào trong khi vẫn giữ nguyên dữ liệu quan trọng Việc giảm kích thước ảnh đầu vào cho phép giảm
số lượng tham số và tăng hiệu suất tính toán Lớp lấy mẫu cũng sử dụng cửa trượt cho phép lướt qua lại toàn khu vực ảnh tương tự với lớp tích chập, tuy nhiên thay vì phép tích chập, lớp sử dụng phép lấy mẫu Cụ thể, nó sẽ giữ nguyên một giá trị đại diện duy nhất chứa tất cả dữ liệu của phần ảnh kia
Các loại pooling layer thông dụng bao gồm max pooling và average pooling, đều chính đều nhằm mục đích giảm kích thước của lớp trước nó Sử dụng một bộ lọc 2x2, để tính giá trị max hoặc trung bình cho vùng ảnh trước
đó chúng ta phải di chuyển bộ lọc này trên các vùng ảnh mà có kích thước tương tự
Hình 1.6: Avarage Pooling và Max Pooling
Vị trí tuyệt đối của các đặc trưng trong không gian ảnh sẽ không còn quan trọng, nhưng vị trí tương đối giữa các đặc trưng vẫn đủ để có thể phân
Trang 34loại đối tượng cho nên có lý do để sử dụng lớp pooling Thêm vào đó, lớp pooling có khả năng giảm kích thước đáng kể, giúp hạn chế hiện tượng overfitting và có thể thời gian huấn luyện sẽ giảm
Lớp kết nối đầy đủ
Đây là lớp chịu trách nhiệm phát sinh kết quả cuối cùng sau khi đã nhận được dữ liệu từ các lớp convolutional và pooling Tại thời điểm này, chúng ta sẽ có được một mô hình có khả năng đọc thông tin từ hình ảnh Để
có thể kết hợp chúng và tạo ra nhiều đầu ra hơn, chúng ta sẽ sử dụng lớp kết nối đầy đủ
Ngoài ra, nếu lớp này nhận dữ liệu hình ảnh, thì nó sẽ chuyển chúng thành các mảnh chưa được sắp xếp theo chất lượng để xác định hình ảnh chất lượng cao nhất
1.3.3 Các kỹ thuật cơ bản trong Deep Learning
Trong quá trình học sâu, bạn sẽ gặp một số phương pháp để tối ưu hóa quá trình huấn luyện mô hình, cũng như nhiều khái niệm quan trọng sẽ xuất hiện khi bạn làm việc với deep learning Đầu tiên, chúng ta sẽ bàn về ý nghĩa của việc vector hóa, sau đó chúng ta sẽ thảo luận về kỹ thuật mini-batch gradient descent khi đối mặt với lượng dữ liệu lớn, bias, variance, cách phân tích bias-variance trong mô hình, cùng với các biện pháp khắc phục vấn đề high bias và high variance Chúng ta cũng sẽ giải thích kỹ thuật dropout nhằm ngăn ngừa overfitting, cũng như những vấn đề liên quan đến vanishing và exploding gradient Cuối cùng, chúng ta sẽ nói về một số hàm kích hoạt thông dụng và lựa chọn hàm kích hoạt phù hợp
Vectorization
Vectorization, tức là việc diễn đạt bài toán dưới dạng vector, không chỉ làm cho mã nguồn ngắn gọn hơn mà còn làm gia tăng tốc độ tính toán khi
Trang 35chúng ta thực hiện các phép tính trên vector và ma trận so với việc dùng vòng lặp for
Khi bạn phải nhân hai vector, bạn cần thực hiện 10,000,000 phép nhân Giả định rằng máy tính chỉ có thể thực hiện tối đa 1,000 phép nhân cùng một lúc Nếu dùng vòng lặp for, thì mỗi lần chỉ thực hiện một phép nhân, do đó để nhân hai vector mất 10,000,000 đơn vị thời gian Ngược lại, thư viện numpy tối ưu hóa quá trình này bằng cách cho phép máy tính thực hiện 1,000 phép tính cùng một lúc, giảm thời gian xuống còn 10,000 đơn vị thời gian để có thể hoàn thành phép nhân hai vector Do đó, sử dụng Vectorization thường giúp quá trình tính toán diễn ra nhanh hơn
Mini-batch gradient descent
Trong trường hợp với dữ liệu vào có kích thước lớn và số lượng lớn hơn 5000, với hàm loss ta tính đạo hàm cho toàn bộ dữ liệu sẽ tốn nhiều thời gian Để giải quyết vấn đề này, việc giảm độ dốc theo lô nhỏ đã được phát triển
Thông qua số lượng dữ liệu trong mỗi bước tính đạo hàm trong gradient descent, người ta có thể chia làm ba loại như sau:
- Giảm độ dốc hàng loạt (Batch gradient descent): Sử dụng toàn bộ dữ liệu trong tập huấn luyện để tính toán đạo hàm cho mỗi step
- Giảm độ dốc theo lô nhỏ (Mini-batch gradient descent): Sử dụng một phần dữ liệu trong tập huấn luyện để tính toán đạo hàm cho từng bước
- Giảm độ dốc ngẫu nhiên (Stochastic gradient descent): Chỉ sử dụng một điểm dữ liệu trong tập huấn luyện để tính toán đạo hàm cho mỗi bước
Ví dụ, điểm thi tuyển sinh đại học, cao đẳng của trường trung học phổ thông có điểm thi trung bình là 24 điểm Giảm dần độ dốc hàng loạt tương tự
Trang 36như công việc tính điểm trung bình của tất cả các học sinh thi tuyển sinh đại học, cao đẳng năm nay, kết quả sẽ gần bằng 24 (ví dụ 24.5) Chúng ta sẽ chọn ngẫu nhiên bất kì một số học sinh thông qua Mini-batch ví dụ 32, để tính điểm trung bình, kết quả sẽ có sai số so với 24 (ví dụ 22) Tuy nhiên, ngẫu nhiên giống như tính điểm trung bình chỉ dựa trên một học sinh duy nhất, kết quả có khả năng sẽ khác xa con số 24 (ví dụ 18 hoặc 29) Sự khác biệt giữa điểm trung bình của mini-batch hoặc ngẫu nhiên và điểm trung bình của toàn trường được gọi là nhiễu trong dữ liệu Nói một cách đơn giản, công việc chỉ lấy một hoặc một phần dữ liệu không thể đại diện cho toàn bộ dữ liệu
Vì vậy, để hàm hàm loss với hệ số learning rate sao cho phù hợp, độ dốc gốc theo đợt sẽ giảm đều Do nhiễu trong dữ liệu, mini-batch vẫn giảm nhưng dao động và stochastic cũng giảm nhưng dao động rất lớn
Hình 1.7: Nguồn: Andrew Ng Machine Learning course (Coursera)
Hình dưới đây mô tả quá trình cập nhật hệ số ở trong gradient descent Điểm đỏ thể hiện giá trị nhỏ nhất mà chúng ta muốn tìm, trong khi các điểm ở ngoài cùng biểu thị giá trị ban đầu của hệ số trong gradient descent Rõ ràng, với dữ liệu không có nhiễu, phương pháp batch gradient descent sẽ thực hiện việc cập nhật theo một đường thẳng Tuy nhiên, phương pháp mini-batch yêu cầu thời gian lâu hơn và có xu hướng đi chệch khỏi con đường trực tiếp để đến được điểm đỏ Trong khi đó, phương pháp stochastic sẽ di chuyển theo
Trang 37quỹ đạo vòng vèo để cuối cùng đạt được điểm đỏ Vì dữ liệu quá nhiễu, thuật toán gradient descent có thể chỉ tập trung xung quanh điểm đỏ mà không bao giờ tiếp cận được điểm nhỏ nhất (minimum point)
Hình 1.8: Nguồn: Andrew Ng Machine Learning course (Coursera)
Trong trường hợp số lượng dữ liệu trong bộ huấn luyện nhỏ hơn 2000,
ta thường sử dụng batch gradient descent Với số lượng dữ liệu lớn hơn, batch gradient descent được ưa chuộng Phương pháp này giải quyết được vấn
mini-đề của batch gradient descent khi xử lý với một lượng dữ liệu lớn hơn, đồng thời giảm nhiễu và có thể sử dụng vectorization so với stochastic gradient descent, do đó thường được sử dụng trong học sâu
Một số thông số quan trọng trong mini-batch gradient descent bao gồm:
o batch_size: Kích thước của mỗi mini-batch, tương ứng với số lượng dữ liệu được sử dụng để tính toán và tiến hành cập nhật lại
hệ số
o steps_per_epoch: Với số lần thực hiện ở bước 2 trong gradient descent trong mỗi epoch Thông thường hay mặc định là tổng số lượng dữ liệu chia cho batch_size Đơn giản là mỗi epoch sẽ sử dụng tất cả các dữ liệu để tính toán gradient descent
Trang 38o epochs: Số lượng epoch thực hiện trong quá trình huấn luyện
Do đó, với số lần đã thực hiện được ở bước 2 trong gradient descent trong quá trình huấn luyện là: steps_per_epoch*epochs
Ngoài ra, còn có hai khái niệm quan trọng liên quan đến biến thiên (bias) và phương sai (variance) Bias đại diện cho sai khác giữa giá trị trung bình do mô hình dự đoán và giá trị thực tế của dữ liệu Phương sai (Variance) biểu thị sự phân tán của những giá trị mà giá trị thực tế so với mô hình dự đoán
Nếu mô hình quá đơn giản, tức là high bias và low variance sẽ xảy ra Tuy nhiên, nếu mô hình quá phức tạp, tức là high variance và low bias sẽ xảy
ra Đây là tradeoff giữa bias và variance Do đó, để huấn luyện một mô hình tốt, giữa bias và variance cần phải cân bằng