1. Trang chủ
  2. » Luận Văn - Báo Cáo

Mô hình gan và ứng dụng tạo mẫu ấn phẩm trò chơi thiếu nhi

76 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô Hình Gan Và Ứng Dụng Tạo Mẫu Ấn Phẩm Trò Chơi Thiếu Nhi
Tác giả Lê Như Thương
Người hướng dẫn TS. Lê Xuân Vinh
Trường học Trường Đại Học Quy Nhơn
Chuyên ngành Khoa Học Máy Tính
Thể loại Đề Án Thạc Sĩ
Năm xuất bản 2023
Thành phố Bình Định
Định dạng
Số trang 76
Dung lượng 2,41 MB

Nội dung

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 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

Bình Định – Năm 2023

Trang 2

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

Ngành: KHOA HỌC MÁY TÍNH

Mã số: 8480101

Người hướng dẫn: TS LÊ XUÂN VINH

Trang 3

LỜ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 4

LỜ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 5

MỤ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 6

2.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 7

DANH 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 8

DANH 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 9

MỞ ĐẦ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 10

Trò 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 11

Grigory 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 12

3 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 13

Chươ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 14

Khai 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 15

hoặ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 16

Bướ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 17

hì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 18

Hà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 19

Mạ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 21

Chú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

oo oRy 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 22

q 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 23

1.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

oy

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 24

Dù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 25

E 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 27

q 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 28

Mạ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 29

Feature 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 31

Có 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 32

Hì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 xx

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 33

thậ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 34

loạ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 35

chú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 36

như 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 37

quỹ đạ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 38

o 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

Ngày đăng: 25/03/2024, 14:47

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w