Tải bản đầy đủ (.pdf) (77 trang)

deeplearning mnist optimize

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.31 MB, 77 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

BÁO CÁO ĐỒ ÁN CUỐI KỲ

<b>HỌC PHẦN: HỌC SÂU TRONG KHOA HỌC DỮ LIỆU ĐỀ TÀI: </b>

<b>SO SÁNH HIỆU QUẢ CỦA CÁC THUẬT TOÁN TỐI ƯU SGD, MOMENTUM, RMSPROP, VÀ ADAM TRONG VIỆC </b>

<b>HUẤN LUYỆN MƠ HÌNH MẠNG NƠ-RON CHO BÀI TỐN PHÂN LOẠI ẢNH MNIST, SỬ DỤNG KỸ THUẬT </b>

<b>L2 REGULARIZATION VÀ DROPOUT. </b>

<b> Giáo Viên Hướng Dẫn: TS. Nguyễn Quốc Dũng Lớp: 71K27KHDL01 - Nhóm: 3 </b>

Sinh Viên Thực Hiện:

<b>Trần Lê Hoàng Bảo – 2174801090010 Châu Phát Lân – 2174801090011 Nguyễn Thùy Trang – 2174801090007 </b>

<b>TP. HỒ CHÍ MINH, THÁNG 5 NĂM 2024 </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

~ 2 ~

<b>MỤC LỤC MỤC LỤC </b>

<b><small>TỔNG QUAN</small></b><small> ... 5</small>

<b><small>CHƯƠNG 1: GIỚI THIỆU ... 6</small></b>

<b><small>I.Giới Thiệu Đề Tài ... 6</small></b>

<b><small>II.Mục Tiêu Nghiên Cứu ... 7</small></b>

<b><small>III.Tóm Tắt Nội Dung</small></b><small> ... 7</small>

<b><small>IV.Giới Thiệu Về Lĩnh Vực Học Sâu (Deep Learning) Và Ứng Dụng ... 8</small></b>

<b><small>CHƯƠNG 2: KHẢO SÁT TÀI LIỆU ... 13</small></b>

<b><small>I.Giới Thiệu Các Nghiên Cứu Liên Quan ... 13</small></b>

<b><small>II.Tổng Quan Về Mạng Nơ-ron Tích Chập</small></b><small> ... 14</small>

<i><b><small>2.2.1Lớp Tích Chập (Convolutional Layer)</small></b></i><small> ... 15</small>

<i><b><small>2.2.2Lớp Lấy Mẫu Xuống (Pooling/Subsampling Layer)</small></b></i><small> ... 17</small>

<i><b><small>2.2.3Lớp Kết Nối Đầy Đủ (Fully-connected Layer - FC)</small></b></i><small> ... 18</small>

<i><b><small>2.2.4Lớp Kích Hoạt (Activation Layer)</small></b></i><small> ... 20</small>

<b><small>III.Khái Quát Về Thuật Toán Tối Ưu</small></b><small> ... 25</small>

<i><b><small>2.3.1Vai Trị của Thuật Tốn Tối Ưu</small></b></i><small> ... 26</small>

<i><b><small>2.3.2Hàm Mất Mát (Loss Function)</small></b></i><small> ... 26</small>

<i><b><small>2.3.3Tỉ Lệ Học (Learning Rate)</small></b></i><small> ... 27</small>

<b><small>CHƯƠNG 3: PHƯƠNG PHÁP NGHIÊN CỨU</small></b><small> ... 28</small>

<b><small>I.Các Thuật Toán Tối Ưu ... 28</small></b>

<i><b><small>3.1.1Stochastic Gradient Descent (SGD)</small></b></i><small> ... 28</small>

<i><b><small>3.1.2SGD với động lượng (SGD with Momentum)</small></b></i><small> ... 32</small>

<i><b><small>3.1.3RMSProp (Root Mean Square Propagation)</small></b></i><small> ... 35</small>

<i><b><small>3.1.4Adam (Adaptive Moment Estimation)</small></b></i><small> ... 36</small>

<b><small>II.Các Kỹ Thuật Chống Overfittiing (Regularization) ... 38</small></b>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

~ 3 ~

<b><small>CHƯƠNG 4: CHUẨN BỊ DỮ LIỆU ... 48</small></b>

<b><small>I.Cơ Sở Dữ Liệu ... 48</small></b>

<b><small>II.Mơi Trường Lập Trình ... 49</small></b>

<b><small>III.Lý Do Lựa Chọn Phương Pháp</small></b><small> ... 50</small>

<b><small>CHƯƠNG 5: TRIỂN KHAI VÀ HUẤN LUYỆN MƠ HÌNH ... 51</small></b>

<b><small>I.Tiền Xử Lý Dữ Liệu ... 51</small></b>

<b><small>II.Trực Quan Hóa Dữ Liệu ... 55</small></b>

<b><small>III.Thiết Kế Kiến Trúc Mơ Hình Bằng Keras</small></b><small> ... 57</small>

<b><small>IV.Huấn Luyện Mơ Hình ... 63</small></b>

<b><small>V.Kết Quả Huấn Luyện Mơ Hình ... 66</small></b>

<b><small>III.Hạn Chế của Các Hàm Tối Ưu khi Xây Dựng Mô Hình ... 74</small></b>

<b><small>IV.Những Đóng Góp và Hướng Phát Triển của Đề Tài ... 75</small></b>

<b><small>TÀI LIỆU THAM KHẢO</small></b><small> ... 77</small>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

~ 4 ~

<b>LỜI CẢM ƠN </b>

<b>Bộ môn Học Sâu Trong Khoa Học Dữ Liệu – Trường Đại Học Văn Lang người </b>

đã tận tình hướng dẫn, truyền đạt cho nhóm em nhiều kiến thức về mạng Nơ-ron và những kiến thức bổ ích về Deep Learning, trong thời gian thực hiện Đồ án Tiểu luận cuối kỳ.

<b>Sinh viên thực hiện </b>

<b>Trần Lê Hoàng Bảo Châu Phát Lân Nguyễn Thùy Trang </b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

~ 5 ~

<b>TỔNG QUAN </b>

Trước sự bùng nổ của dữ liệu số và sức mạnh tính tốn hiện đại, học sâu (deep learning)là một lĩnh vực của trí tuệ nhân tạo (AI) sử dụng các mạng nơ-ron nhân tạo (ANNs) để học các mẫu phức tạp từ dữ liệu. ANNs là các mơ hình tính tốn được lấy cảm hứng từ cấu trúc và chức năng của não người. Chúng bao gồm nhiều lớp nơ-ron được kết nối với nhau, trong đó mỗi nơ-ron nhận đầu vào từ các nơ-ron ở lớp trước và truyền đầu ra cho các nơ-ron ở lớp tiếp theo.

Khả năng của học sâu (deep learning) đã được chứng minh qua nhiều ứng dụng thực tế, từ nhận dạng ảnh đến xử lý ngôn ngữ tự nhiên và dự đoán. Tuy nhiên, một trong những thách thức lớn nhất khi xây dựng và huấn luyện mơ hình học sâu là việc lựa chọn thuật tốn tối ưu phù hợp và đòi hỏi nhiều thời gian và tài ngun tính tốn

Các thuật tốn tối ưu có thể ảnh hưởng đến hiệu suất, tốc độ hội tụ và khả năng tổng qt hóa của mơ hình. Do đó, nghiên cứu này tập trung vào so sánh hiệu quả của các thuật toán tối ưu phổ biến như SGD, Momentum, RMSProp và Adam trong việc huấn luyện mạng nơ-ron cho bài toán phân loại ảnh MNIST. Nghiên cứu cũng áp dụng các kỹ thuật kiểm soát overfitting như L2 regularization và dropout để hiểu rõ hơn về ảnh hưởng của các thuật toán tối ưu trong điều kiện kiểm sốt.

Kết quả của nghiên cứu này khơng chỉ mang lại thông tin quan trọng về hiệu năng của các thuật tốn tối ưu mà cịn giúp định hình chiến lược lựa chọn thuật tốn tối ưu phù hợp nhất với mỗi bài toán cụ thể trong lĩnh vực học sâu.

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

~ 6 ~

<b>CHƯƠNG 1: GIỚI THIỆU </b>

<b>I. Giới Thiệu Đề Tài </b>

Trong thời đại số hóa hiện nay, học sâu đã trở thành một lĩnh vực nghiên cứu quan trọng và có ứng dụng rộng rãi trong nhiều lĩnh vực, đặc biệt là trong nhận dạng hình ảnh. Việc tinh chỉnh các thuật tốn tối ưu là một phần khơng thể thiếu để đạt được hiệu quả cao trong quá trình huấn luyện.

Việc lựa chọn thuật toán tối ưu phù hợp có thể ảnh hưởng đáng kể đến hiệu suất và thời gian huấn luyện của mơ hình. Để hiểu rõ hơn về sự khác biệt giữa các thuật toán tối ưu và ảnh hưởng của chúng đối với quá trình huấn luyện, nghiên cứu so sánh hiệu năng của các thuật toán tối ưu là một phần quan trọng của học sâu.

Có nhiều thuật tốn tối ưu khác nhau, mỗi thuật tốn có ưu nhược điểm riêng. Trong đề tài này, chúng tôi tập trung vào việc so sánh hiệu quả của các thuật toán tối ưu

<b>SGD, Momentum, RMSProp và Adam trong việc huấn luyện mạng nơ-ron cho </b>

<b>bài tốn phân loại ảnh MNIST. Chúng tơi cũng áp dụng kỹ thuật L2 regularization </b>

<b>và dropout để kiểm soát overfitting và cải thiện khả năng tổng qt hóa của mơ </b>

hình.

<b>• SGD (Stochastic Gradient Descent): Là thuật toán tối ưu đơn giản nhất, sử </b>

dụng gradient của hàm mất mát để cập nhật các tham số của mơ hình.

<b>• Momentum: Là một biến thể của SGD, sử dụng momentum để tăng tốc độ </b>

hội tụ của thuật tốn.

<b>• RMSprop: Là một biến thể khác của SGD, sử dụng bình phương trung bình </b>

của gradient để điều chỉnh tốc độ học của mỗi tham số.

<b>• Adam: Là một thuật toán tối ưu kết hợp ưu điểm của Momentum và </b>

RMSprop.

Bằng cách so sánh kết quả đạt được từ các thuật toán tối ưu khác nhau, chúng tơi hy vọng có thể cung cấp thơng tin quan trọng về cách mỗi thuật tốn tối ưu ảnh hưởng đến hiệu suất của mơ hình. Điều này sẽ giúp các nhà nghiên cứu và nhà phát triển

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

~ 7 ~

lựa chọn thuật toán phù hợp nhất cho nhu cầu cụ thể của họ trong quá trình xây dựng và huấn luyện mạng nơ-ron.

<b>II. Mục Tiêu Nghiên Cứu </b>

Trong nghiên cứu này, chúng tôi đặt ra các mục tiêu cụ thể như sau:

<b>Mục tiêu 1: So sánh hiệu quả của các thuật toán tối ưu SGD, Momentum, </b>

RMSProp và Adam trong việc huấn luyện mơ hình mạng nơ-ron cho bài toán phân loại ảnh MNIST.

<b>Mục tiêu 2: Áp dụng kỹ thuật L2 regularization và dropout vào mô hình để </b>

kiểm sốt overfitting và cải thiện khả năng tổng quát hóa bằng cách thêm một thành phần regularization vào hàm mất mát của mơ hình. Dropout là một kỹ thuật regularization khác, trong đó một số nơ-ron được chọn ngẫu nhiên để bị loại bỏ khỏi quá trình huấn luyện trong mỗi epoch.

<b>Mục tiêu 3: Đánh giá hiệu năng của mỗi thuật toán tối ưu dựa trên các tiêu </b>

chí như độ chính xác và mất mát trên tập kiểm tra.

<b>Mục tiêu 4: Tạo ra các kết luận và đề xuất dựa trên kết quả đánh giá để hỗ trợ </b>

người dùng trong việc lựa chọn thuật tốn tối ưu phù hợp cho mơ hình học sâu của họ.

Nghiên cứu này sẽ đánh giá hiệu quả của các thuật toán tối ưu dựa trên các tiêu chí sau:

<b>• Độ chính xác: Tỷ lệ phần trăm các hình ảnh được phân loại chính xác. • Thời gian huấn luyện: Thời gian cần thiết để huấn luyện mơ hình. • Mất mát: Giá trị của hàm mất mát trên tập kiểm tra. </b>

<b>III. Tóm Tắt Nội Dung </b>

• Chương 2: Khảo sát tài liệu

• Chương 3: Phương pháp nghiên cứu • Chương 4: Chuẩn bị dữ liệu

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

~ 8 ~

• Chương 5: Triển khai và huấn luyện mơ hình • Chương 6: Đánh giá và kết luận

• Chương 7: Tài liệu tham khảo

<b>IV. Giới Thiệu Về Lĩnh Vực Học Sâu (Deep Learning) Và Ứng Dụng </b>

<b>Học sâu (Deep Learning) là một lĩnh vực trong trí tuệ nhân tạo mà mạng nơ-ron sâu </b>

được sử dụng để học và hiểu dữ liệu phức tạp. Học sâu đã có những ứng dụng rộng rãi trong nhiều lĩnh vực như nhận dạng ảnh, xử lý ngôn ngữ tự nhiên, tự lái ô tơ, y sinh học, và nhiều lĩnh vực khác.

<small>Hình 1.4.1: Cách học sâu (Deep learning) hoạt động - Ảnh: Internet</small>

<b>Mơ Hình Mạng Nơ-Ron</b>

Mơ hình mạng nơ-ron được sử dụng trong bài viết này là một mạng nơ-ron feedforward gồm 3 lớp ẩn. Lớp đầu tiên có 128 nơ-ron, lớp thứ hai có 64 nơ-ron và

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

~ 9 ~

lớp thứ ba có 10 nơ-ron (tương ứng với 10 chữ số). Hàm kích hoạt được sử dụng cho các lớp ẩn là hàm ReLU, trong khi hàm softmax được sử dụng cho lớp đầu ra. Kể từ những năm 1980, deep learning đã liên tục cải thiện khả năng cung cấp nhận dạng hoặc dự đốn chính xác. Hơn nữa, học sâu đã liên tục được áp dụng thành công cho các nhóm ứng dụng ngày càng rộng hơn.

Nhiều ứng dụng học sâu này mang lại lợi nhuận cao. Nhiều công ty công nghệ hàng đầu, bao gồm Google, Microsoft, Facebook, IBM, Baidu, Apple, Adobe, Netflix, NVIDIA và NEC, hiện đang sử dụng deep learning.

Những tiến bộ trong học sâu cũng phụ thuộc rất nhiều vào những tiến bộ trong cơ sở

<b>hạ tầng phần mềm. Các thư viện phần mềm như Theano (Bergstra et al., 2010; Bastien et al., 2012), PyLearn2 (Goodfellow et al., 2013c), PyTorch (Collobert et al., 2011b), DistBelief (Dean et al., 2012), Caffe (Jia, 2013), MXNet (Chen và cộng sự, 2015) và TensorFlow (Abadi et al., 2015) đều đã hỗ trợ các dự án nghiên cứu </b>

quan trọng hoặc các sản phẩm thương mại.

<small>Hình 1.4.2: Các deep learning framework phổ biến </small>

<b>Các Framework Học Sâu Phổ Biến</b>

<i><b>1. TensorFlow: </b></i>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

~ 10 ~

được phát triển bởi Google. Nó cung cấp một cách linh hoạt để xây dựng và huấn luyện các mơ hình deep learning.

<i><b>2. PyTorch: </b></i>

Facebook. Nó được ưa chuộng bởi vì cú pháp dễ đọc và sử dụng, cũng như tính linh hoạt cao trong q trình phát triển mơ hình.

<i><b>3. Keras: </b></i>

mơ hình deep learning, hoạt động trên nhiều backends như TensorFlow, Theano, và Microsoft Cognitive Toolkit (CNTK).

<i><b>4. MXNet: </b></i>

Apache. Nó cung cấp hiệu suất cao và hỗ trợ song song cho việc huấn luyện mơ hình trên nhiều thiết bị và cấu hình khác nhau.

<i><b>5. Caffe: </b></i>

rãi trong việc xây dựng các ứng dụng thời gian thực như nhận dạng ảnh và video.

<b>Ứng Dụng của Học Sâu</b>

<i><b>1. Nhận Dạng Ảnh: </b></i>

nhận dạng ảnh. Các mơ hình deep learning, như Convolutional Neural Networks (CNNs), đã giúp cải thiện đáng kể khả năng nhận dạng đối tượng trong ảnh và video. Các ứng dụng bao gồm nhận dạng khuôn mặt và ký tự, phát hiện vật thể hoặc phân loại đối tượng, nhận diện biển số xe, và nhiều hơn nữa.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

~ 11 ~

<small>Hình 1.4.3: Các ứng dụng nhận dạng ảnh - Ảnh: Internet </small>

<i><b>2. Xử Lý Ngôn Ngữ Tự Nhiên (NLP): </b></i>

thiện khả năng hiểu và sản sinh ngơn ngữ tự nhiên. Các mơ hình như Recurrent Neural Networks (RNNs), Long Short-Term Memory networks (LSTMs), và Transformers đã được áp dụng rộng rãi trong các ứng dụng như dịch máy, tổng hợp giọng nói, phân loại văn bản, và trả lời câu hỏi tự động.

<small>Hình 1.4.4: Cơ bản về Xử lý ngôn ngữ tự nhiên và ứng dụng - Ảnh: Internet</small>

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

~ 12 ~

<i><b>3. Tự Lái Ơ Tơ và Robotics: </b></i>

tự lái và robotics. Các mơ hình deep learning được sử dụng để xử lý dữ liệu từ các cảm biến như camera và lidar, giúp xe tự lái và robot tự định hình và tương tác với mơi trường xung quanh.

<small>Hình 1.4.5: Ứng dụng tự lái ơ tơ giao thơng thông minh - Ảnh: Internet</small>

<i><b>4. Y Sinh Học: </b></i>

chẩn đoán bệnh lý, dự đoán kết quả của điều trị, và phân tích dữ liệu y sinh học phức tạp như hình ảnh y khoa và dữ liệu genomic, chụp X-quang, MRI, và CT.

<i><b>5. Các Lĩnh Vực Khác: </b></i>

nhiều lĩnh vực khác như tài chính, sản xuất, marketing, và giải trí.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

~ 13 ~

<b>CHƯƠNG 2: KHẢO SÁT TÀI LIỆU </b>

<b>I. Giới Thiệu Các Nghiên Cứu Liên Quan </b>

Trong phần này, chúng tôi sẽ giới thiệu một số nghiên cứu liên quan đến việc khảo sát hiệu suất của các thuật toán tối ưu trong huấn luyện mạng nơ-ron cho bài toán phân loại ảnh. Các nghiên cứu này đã đóng góp vào việc hiểu sâu hơn về ảnh hưởng của các thuật tốn tối ưu đến hiệu suất của mơ hình và cung cấp hướng đi cho các nghiên cứu và ứng dụng trong tương lai.

<b>1. "An Overview Of Gradient Descent Optimization Algorithms" (Ruder, 2016): </b>

- Nghiên cứu này cung cấp một tổng quan về các thuật toán tối ưu phổ biến được sử dụng trong học sâu, bao gồm Gradient Descent, Stochastic Gradient Descent (SGD), Momentum, RMSProp, và Adam. Nghiên cứu đánh giá và so sánh hiệu suất của các thuật tốn này dựa trên các tiêu chí như tốc độ hội tụ và khả năng vượt qua các điểm tối ưu cục bộ.

<b>2. "On the convergence of Adam and beyond" (Reddi et al., 2018): </b>

- Nghiên cứu này tập trung vào việc khảo sát hiệu suất của thuật tốn Adam và các biến thể của nó trong việc huấn luyện mạng nơ-ron sâu. Tác giả phân tích cơ chế hoạt động của Adam và đề xuất các cải tiến để cải thiện hiệu suất và ổn định của thuật toán.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>II. Tổng Quan Về Mạng Nơ-ron Tích Chập </b>

<b>Đối với mạng đa lớp Perceptron (Multi-layer Perceptron – MLP) truyền thống, </b>

mỗi nơ-ron trong lớp phía trước sẽ kết nối đến tất cả các nơ-ron ở lớp phía sau, khi tăng độ sâu của mơ hình sẽ khiến khối lượng tính tốn trong mạng tăng mạnh.

<b>Mạng nơ-ron tích chập (Convolutional Neural Network - CNN) là một kiến trúc </b>

mạng nơ-ron đặc biệt được thiết kế để xử lý dữ liệu không gian như hình ảnh. Kiến trúc này đã đem lại những tiến bộ đáng kể trong lĩnh vực nhận dạng hình ảnh và các bài tốn liên quan.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

~ 15 ~

Sự ra đời của mạng CNN đã giúp giải quyết vấn đề trên dựa trên 3 ý tưởng cơ bản: vùng tiếp nhận cục bộ, tập trọng số chia sẻ và phương pháp lấy mẫu xuống. Nhìn chung, cấu trúc của CNN gồm một số lớp cơ bản sau:

<small>Hình 2.2.1: Mơ hình một mạng CNN đơn giản. </small>

Kiến trúc chung của mạng Convolution Neural Network cơ bản gồm ba loại: lớp Convolution Layer, lớp Pooling Layer, cuối cùng là lớp Fully Connected Layer.

<i><b>2.2.1 Lớp Tích Chập (Convolutional Layer)</b></i>

Lớp tích chập là thành phần cốt lõi của CNN, được sử dụng để trích xuất các đặc trưng của hình ảnh thơng qua việc áp dụng các bộ lọc (kernel) trên toàn bộ ảnh. Kết quả đầu ra của lớp này là các feature map, thể hiện các đặc trưng cụ thể của hình ảnh.

Q trình convolutional kernel khơng chỉ được sử dụng trong CNNs mà còn là một yếu tố quan trọng của nhiều thuật tốn Thị giác máy tính khác. Đây là quá trình mà chúng ta lấy một ma trận nhỏ các số (gọi là kernel hoặc bộ lọc), chúng ta đi qua ảnh của chúng ta và biến đổi nó dựa trên các giá trị từ bộ lọc. Các giá trị feature map tiếp theo được tính tốn dựa trên cơng thức sau, trong đó ảnh đầu vào được ký hiệu bằng f và kernel của chúng ta được ký hiệu bằng h. Các chỉ số của hàng và cột của ma trận kết quả được đánh dấu bằng m và n tương ứng.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

~ 16 ~ Trong phương trình này:

<i><b>K</b></i>

<i><b><small>ij </small></b></i>là trọng số trong kernel tích chập tại vị trí

<i><b>i</b></i>

<i><b>j</b></i>

.

<small>Hình 2.2.2: Sơ đồ tốn tử tích chập. </small>

• Bộ lọc (kernel): Mỗi bộ lọc là một ma trận nhỏ có kích thước cố định (ví dụ: 3x3, 5x5). Bộ lọc quét qua dữ liệu đầu vào và tính tốn tích chập giữa các giá trị của bộ lọc và các giá trị tương ứng trong dữ liệu đầu vào.

• Bước nhảy (stride): Bước nhảy xác định khoảng cách di chuyển của bộ lọc trên dữ liệu đầu vào.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i><b>2.2.2 Lớp Lấy Mẫu Xuống (Pooling/Subsampling Layer)</b></i>

Lớp lấy mẫu xuống trong mạng nơ-ron tích chập (CNN) có vai trị quan trọng trong việc giảm kích thước của dữ liệu hình ảnh, đồng thời tạo ra các biểu diễn có tính chất khái quát hóa cao hơn. Điều này giúp mạng nơ-ron học được các đặc trưng cục bộ của hình ảnh mà không cần xem xét tất cả các pixel cùng một lúc. Ngồi ra, việc giảm kích thước của dữ liệu cũng giảm số lượng tham số trong mạng, giúp giảm hiện tượng quá mức hóa (overfitting) và tăng tốc độ tính tốn.

<b>Các phương pháp lấy mẫu xuống thường được sử dụng bao gồm: </b>

<b>1. Max Pooling: Trong max pooling, mỗi vùng khơng gian (ví dụ: một vùng </b>

2x2) trong dữ liệu đầu vào được chọn ra giá trị lớn nhất để đại diện cho vùng đó. Điều này giúp giữ lại đặc trưng nổi bật nhất trong vùng đó và loại bỏ thơng tin khơng quan trọng.

<small>Hình 2.2.3: Nguyên tắc cơ bản của maxpooling. </small>

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

~ 18 ~

<b>2. Average Pooling: Trong average pooling, giá trị trung bình của các giá trị </b>

trong vùng không gian được lấy để đại diện cho vùng đó. Phương pháp này thường ít được sử dụng hơn so với max pooling trong CNN, nhưng nó có thể hữu ích trong một số trường hợp nhất định.

<small>Hình 2.2.4: Nguyên tắc cơ bản của average pooling</small>

Việc chọn phương pháp lấy mẫu xuống phụ thuộc vào bài toán cụ thể và các yêu cầu

<b>về tính chất của dữ liệu. Trong hầu hết các trường hợp, max pooling là lựa chọn phổ </b>

biến do nó giữ lại đặc trưng nổi bật nhất và giúp giảm kích thước của dữ liệu hiệu quả.

Cách code sử dụng:

Trong đó: pool_size: Kích thước cửa sổ pooling. strides: Bước nhảy cho pooling.

padding: 'valid' hoặc 'same', tương tự như Conv2D

<i><b>2.2.3 Lớp Kết Nối Đầy Đủ (Fully-connected Layer - FC)</b></i>

Lớp Kết Nối Đầy Đủ (Fully-connected Layer - FC) là một trong những lớp quan trọng trong mạng nơ-ron, nhận đầu vào từ lớp lấy mẫu xuống hoặc lớp tích chập cuối cùng, và có nhiệm vụ tổng hợp thông tin để đưa ra kết quả đánh giá cuối cùng. Trước

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

~ 19 ~

khi đưa vào lớp kết nối đầy đủ, dữ liệu thường được làm phẳng để phù hợp với kiến

(output) cho ra kết quả đánh giá.

Lớp FC là lớp cơ bản nhất vì mọi nơ-ron đầu vào đều được kết nối với mọi nơ-ron

có thể được tính như sau:

Trực quan hóa các kích thước:

<b>Trong đề tài cụ thể của chúng tơi, kích thước minibatch m là 100, thứ nguyên của dữ liệu là 28 x 28=784 và số lượng lớp c là 10. Mặc dù X và Y là các ma trận do </b>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i><b>2.2.4 Lớp Kích Hoạt (Activation Layer)</b></i>

Trong mạng nơ-ron tích chập (CNN) và các mạng nơ-ron sâu khác, lớp kích hoạt (Activation Layer) là một thành phần quan trọng giữa các lớp trong mạng giúp tạo ra không gian phi tuyến tính và khả năng học các đặc trưng phức tạp của dữ liệu. Mỗi lớp kích hoạt thường được đặt sau một lớp tích chập hoặc một lớp kết nối đầy đủ để giúp mơ hình học được mối quan hệ phi tuyến tính giữa các đặc trưng đầu vào và đầu ra.

Có nhiều loại hàm kích hoạt được sử dụng trong mạng nơ-ron, mỗi loại mang lại những ưu điểm riêng. Dưới đây là một số hàm kích hoạt phổ biến:

<b>1. Hàm Sigmoid: Hàm sigmoid chuyển đổi giá trị đầu vào thành một khoảng </b>

giá trị nằm trong khoảng (0, 1). Công thức của hàm sigmoid được biểu diễn bởi:

𝟏 + 𝒆

<small>−𝒙</small>

- e là cơ số của logarit tự nhiên (khoảng 2.71828)

Lưu ý: rằng vì phạm vi của hàm mũ ln là khơng âm, và vì chúng ta đang chuẩn hóa theo tổng, nên softmax đạt được tính chất mong muốn là tạo ra các giá trị nằm trong khoảng từ 0 đến 1 có tổng bằng 1. Nếu chúng ta xem xét trường hợp chỉ có 2 lớp, chúng ta thấy rằng softmax là phần mở rộng đa lớp của hàm sigmoid nhị phân:

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>2. Hàm Tanh (tanh): Hàm tanh tương tự như hàm sigmoid nhưng chuyển đổi </b>

giá trị đầu vào thành một khoảng giá trị nằm trong khoảng (-1, 1). Công thức của hàm tanh được biểu diễn bởi:

𝐭𝐚𝐧𝐡(𝒙) =<sup>𝒆</sup>

<small>𝒙</small>

− 𝒆

<sup>−𝒙</sup>

𝒆

<small>𝒙</small>

+ 𝒆

<small>−𝒙</small>

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

~ 22 ~

Hình dạng của đồ thị hàm tanh là một đường cong S, giống như hàm

sigmoid, nhưng nằm trong khoảng giá trị mở rộng từ -1 đến 1. Khi đầu vào tiến gần đến âm vô cùng, hàm tanh tiệm cận -1, và khi đầu vào tiến gần đến dương vô cùng, hàm tanh tiệm cận 1. Điều này cho phép hàm tanh thực hiện một biến đổi toàn bộ phạm vi giá trị, giúp lan truyền gradient trong quá trình huấn luyện mạng neural trở nên ổn định hơn.

Hàm tanh thường được sử dụng trong các lớp kết nối đầy đủ và lớp ẩn của mạng nơ-ron.

<b>3. Hàm ReLU (Rectified Linear Activation): Hàm ReLU là một hàm kích </b>

hoạt phi tuyến tính được xác định bởi cơng thức:

<b>(x) = ReLu(x) = max(0,x) </b>

Lớp ReLU là một lớp áp dụng một hàm kích hoạt để áp ngưỡng cho từng phần tử của đầu vào. Bất kì giá trị nào nhỏ hơn 0 hoặc bằn 0 sẽ được đặt bằng 0 như sau:

<b>f’(x) = {0 𝑛ế𝑢 𝑥 < 0; 𝑥 𝑛ế𝑢 𝑥 ≥ 0} </b>

Hàm ReLU đang được sử dụng khá nhiều trong những năm gần đây khi huấn luyện các mạng neuron. ReLU đơn giản lọc các giá trị < 0. Nhìn vào cơng thức chúng ta dễ dàng hiểu được cách hoạt động của nó. Một số ưu điểm khá vượt trội của nó so với Sigmoid và Tanh:

• Ưu Điểm:

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

~ 23 ~

bão hoà ở 2 đầu như Sigmoid và Tanh.

thức phức tạp hơn ReLU rất nhiều do vậy sẽ tốn nhiều chi phí hơn để tính tốn.

• Nhược điểm:

nhỏ hơn 0, qua ReLU activation sẽ thành 0, hiện tượng đấy gọi là “Dying ReLU“. Nếu các node bị chuyển thành 0 thì sẽ khơng có ý nghĩa với bước linear activation ở lớp tiếp theo và các hệ số tương ứng từ node đấy cũng không được cập nhật với gradient descent. => Leaky ReLU ra đời.

cách làm tất cả neuron dừng việc cập nhật.

Hàm ReLU thường được sử dụng rộng rãi trong các mạng nơ-ron tích chập do tính đơn giản và khả năng học các đặc trưng phi tuyến tính hiệu quả.

<b>4. Hàm Leaky ReLU: Hàm Leaky ReLU là biến thể của hàm ReLU nhưng </b>

cho phép các giá trị âm có giá trị nhỏ dương, giúp tránh vấn đề "neuron chết" và tăng tính đa dạng của hàm kích hoạt.

<i><b>f(x) = 1(x < 0)(αx) + 1(x >= 0)(x) với α là hằng số nhỏ. </b></i>

Leaky ReLU là một cố gắng trong việc loại bỏ "dying ReLU". Thay vì trả về giá trị 0 với các đầu vào < 0 thì Leaky ReLU tạo ra một đường xiên có độ dốc nhỏ (xem đồ thị). Có nhiều báo cáo về việc hiệu Leaky ReLU có hiệu quả tốt hơn ReLU, nhưng hiệu quả này vẫn chưa rõ ràng và nhất quán.

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

~ 24 ~

<b>5. Hàm Softmax: Hàm Softmax thường được sử dụng trong lớp đầu ra của </b>

mạng nơ-ron để chuyển đổi giá trị đầu ra thành một phân phối xác suất, đặc biệt trong các bài toán phân loại nhiều lớp.

<small>Softmax Function in Deep Learning </small>

Trong đó: - n là số lớp.

- 𝑒 𝑙à 𝑠ố 𝐸𝑢𝑙𝑒𝑟

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

~ 25 ~

<b><small>Source: ResearchGate </small></b>

Ví dụ về cách sử dụng: Sau lớp tích chập hoặc được lớp kết nối đầy đủ, ví dụ:

<b>III. Khái Quát Về Thuật Toán Tối Ưu </b>

Trong việc tối ưu hóa thiết kế, mục tiêu có thể hướng tới việc giảm thiểu chi phí sử dụng hoặc tối đa hóa hiệu quả nhận được. Để thực hiện điều này, thuật tốn tối ưu hóa là một phần quan trọng và khơng thể thiếu. Đây là quy trình được thực hiện lặp đi lặp lại bằng cách so sánh các giải pháp khác nhau cho đến khi tìm thấy một giải pháp tối ưu hoặc thỏa đáng.

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

~ 26 ~

<b>Trong kỹ thuật học sâu, thuật tốn tối ưu hóa đóng vai trị quan trọng trong việc xây dựng các mơ hình mạng nơ-ron để tối ưu hóa độ chính xác của mơ hình. Mục tiêu là "học" được các đặc tính từ dữ liệu đầu vào, từ đó tìm ra một tập các trọng số (weights - w) và ngưỡng (bias - b) phù hợp hơn. </b>

<i><b>2.3.1 Vai Trị của Thuật Tốn Tối Ưu </b></i>

Trong kĩ thuật học sâu, thuật toán tối ưu hóa là một bước quan trọng khơng thể

<b>thiếu. Q trình tối ưu hóa thực hiện xác định hàm mất mát (loss function) và sau </b>

đó tối thiểu hóa hàm đó bằng cách sử dụng thuật tốn tối ưu. Cụ thể, thông qua

<b>việc cập nhật các tham số của mơ hình (w, b) và đánh giá lại hàm mất mát với một tỉ lệ học (learning rate) xác định, q trình tối ưu giúp mơ hình tương thích tốt </b>

hơn với tập dữ liệu được đào tạo.

<i><b>2.3.2 Hàm Mất Mát (Loss Function) </b></i>

Hàm mất mát là một phương pháp để đánh giá hiệu quả của thuật toán "học" cho mơ hình trên tập dữ liệu được sử dụng. Hàm mất mát trả về một số thực không âm thể hiện sự chênh lệch giữa dự đoán (a) và nhãn đúng (y). Mục tiêu của hàm mất mát là giảm tổng mức phạt phải đóng, với trường hợp lý tưởng là hàm trả về giá trị cực tiểu bằng 0 khi dự đốn chính xác.

Trong mạng nơ-ron và bài tốn phân loại hình ảnh MNIST, có thể sử dụng các hàm mất mát phổ biến như Cross Entropy Loss (hay còn gọi là Log Loss) cho các mơ hình phân loại. Cụ thể, cơng thức của Cross Entropy Loss cho bài toán phân loại nhị phân (binary classification) và đa lớp (multiclass classification) như sau:

<b>Binary Cross Entropy Loss: </b>

Cho bài toán phân loại nhị phân, giả sử mơ hình dự đốn xác suất dương (positive probability) ở đầu ra. Loss function này phạt sự chênh lệch giữa xác suất dự đoán và nhãn thực tế (0 hoặc 1). Cơng thức được tính như sau:

<b>𝑩𝒊𝒏𝒂𝒓𝒚 𝑪𝒓𝒐𝒔𝒔 𝑬𝒏𝒕𝒓𝒐𝒑𝒚 = −(𝒚. 𝒍𝒐𝒈(𝒚^) + (𝟏 − 𝒚). 𝒍𝒐𝒈(𝟏 − 𝒚^)) </b>

<b>Multiclass Cross Entropy Loss: </b>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

~ 27 ~

Cho bài toán phân loại đa lớp, mơ hình sẽ đưa ra một phân phối xác suất cho các lớp. Loss function này đo sự chênh lệch giữa phân phối xác suất dự đoán và nhãn thực tế (one-hot encoded). Cơng thức được tính như sau

𝐌𝐮𝐥𝐭𝐢𝐜𝐥𝐚𝐬𝐬 𝐂𝐫𝐨𝐬𝐬 𝐄𝐧𝐭𝐫𝐨𝐩𝐲

= −

𝒚

<sub>𝒊</sub>

𝐥𝐨𝐠(

𝒚

<sup>^</sup><sub>𝒊</sub>

<b>) </b>

Trong đó: 𝒏 là số lượng lớp trong bài toán phân loại.

<i><b>2.3.3 Tỉ Lệ Học (Learning Rate) </b></i>

Tỉ lệ học (learning rate) là một thông số quan trọng quyết định tốc độ học của mạng nơ-ron. Tốc độ học được thể hiện bằng sự thay đổi giá trị cập nhật trọng số (w) trong các chu kỳ học. Tùy thuộc vào mục đích của mơ hình, tỉ lệ học có thể tăng hoặc giảm. Tuy nhiên, tỉ lệ học q cao có thể dẫn đến khơng ổn định trong mơ hình, trong khi tỉ lệ học q thấp có thể làm cho q trình học chậm lại.

<b>Tính tốn tỉ lệ học (Learning Rate): </b>

Tính tốn tỉ lệ học thường dựa trên các phương pháp cụ thể của thuật tốn tối ưu. Một cách tổng qt, nó có thể được biểu diễn như sau:

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

~ 28 ~

<b>CHƯƠNG 3: PHƯƠNG PHÁP NGHIÊN CỨU </b>

<b>I. Các Thuật Toán Tối Ưu </b>

Trong phạm vi đề tài một số thuật tốn tối ưu hóa sẽ được đánh giá khảo sát gồm:

<b>SGD, Momentum, RMSProp và Adam. Việc đánh giá được thực hiện dựa trên </b>

tiêu chí giá trị hàm mất mát và tỉ lệ nhận dạng đúng hình ảnh dựa trên hai tập Train và Test data. Dựa trên các kết quả đó có thể đánh giá tác động của thuật toán tối ưu đến mơ hình mạng ứng dụng vào bài tốn nhận dạng hình ảnh.

<i><b>3.1.1 Stochastic Gradient Descent (SGD) </b></i>

Stochastic Gradient Descent (SGD) là một biến thể của thuật toán Gradient Descent (GD) được sử dụng rộng rãi trong tối ưu hóa mạng nơ-ron. Trong SGD, thay vì cập nhật trọng số (weights) của mơ hình sau mỗi vịng lặp (epoch) hoàn toàn dựa trên gradient của hàm mất mát trên toàn bộ tập dữ liệu (như trong GD), chúng ta cập nhật trọng số dựa trên gradient của hàm mất mát trên từng điểm dữ liệu riêng lẻ.

Trong tối ưu hóa mạng nơ-ron, Stochastic Gradient Descent (SGD) là một trong những thuật toán phổ biến nhất. SGD tối thiểu hóa hàm mất mát (loss function)

<b>𝐽(𝜃), trong đó 𝜃 là tập hợp các trọng số của mơ hình cần tối ưu. </b>

Trong ngữ cảnh của bài toán tối ưu hóa mạng nơ-ron, 𝜃 thường được sử dụng để biểu diễn tập hợp các tham số của mô hình, bao gồm các trọng số và các tham số bias. Đây là các giá trị mà mạng nơ-ron cần học từ dữ liệu huấn luyện để tối ưu hoá hiệu suất của mơ hình trong việc thực hiện các dự đoán. Trong một mạng nơ-ron, 𝜃 bao gồm các ma trận trọng số và các vectơ bias của các lớp khác nhau. Việc điều chỉnh các giá trị của 𝜃 thơng qua q trình tối ưu hóa giúp cải thiện khả năng dự đốn của mơ hình trên tập dữ liệu. Ví dụ: Trong một mạng nơ-ron đa lớp, có thể có nhiều lớp, mỗi lớp có các trọng số và bias riêng, 𝜃 có thể được biểu diễn bằng các tham số như sau: 𝑾<sup>[𝟏]</sup>, 𝒃<sup>[𝟏]</sup>, 𝑾<sup>[𝟐]</sup>, 𝒃<sup>[𝟐]</sup>

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

~ 29 ~

𝑾<sup>[𝟐]</sup>, 𝒃<sup>[𝟐]</sup><b> là Trọng số và bias của lớp ẩn thứ hai. </b>

Và cứ tiếp tục cho đến lớp cuối cùng, có thể là lớp đầu ra. Trong mỗi lớp, 𝑊 là ma trận trọng số, trong đó mỗi hàng đại diện cho các trọng số của một neuron đến từ lớp trước. 𝑏 là vector bias, mỗi phần tử của nó tương ứng với một neuron trong lớp hiện tại.

Quy tắc cập nhật của SGD có dạng tổng quát như sau:

𝛉

<sub>𝒕+𝟏</sub>

= 𝛉

<sub>𝒕</sub>

−𝜼 . 𝛁

<sub>𝛉</sub>

𝐽(𝛉

<sub>𝒕</sub>

)<b> </b>

<b>𝜼 là một số dương được gọi là tốc độ học (learning rate). Tốc độ học </b>

xác định kích thước của các bước di chuyển đến giá trị cực tiểu hoặc cực tiểu địa phương.

<b>Cách hoạt động của SGD </b>

o <b>Chọn mẫu ngẫu nhiên: Trong mỗi epoch, SGD chọn một mẫu ngẫu </b>

nhiên từ tập dữ liệu huấn luyện để tính gradient và cập nhật trọng số. Việc này giúp giảm thời gian tính tốn so với Batch Gradient Descent. o <b>Tính gradient và cập nhật trọng số: SGD tính gradient của hàm mất </b>

mát tại trọng số hiện tại và sử dụng gradient này để cập nhật trọng số theo quy tắc cập nhật đã nêu ở trên.

o <b>Lặp lại q trình: Q trình tính gradient và cập nhật trọng số được </b>

lặp lại qua mỗi mẫu dữ liệu cho đến khi đạt được điều kiện dừng (ví dụ: số lần lặp hoặc độ chính xác mong muốn).

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

~ 30 ~

Nhìn vào 2 hình trên, ta thấy SGD có đường đi khá là zig zắc, không mượt như GD. Dễ hiểu điều đó vì 1 điểm dữ liệu khơng thể đại diện cho toàn bộ dữ liệu. Đặt câu hỏi tại sao phải dùng SGD thay cho GD mặt dù đường đi của nó khá zig zắc?

<b>Tại Sao Sử Dụng SGD trong Đề Tài: </b>

o <b>Hiệu Quả Tính Tốn: SGD thường nhanh hơn Batch Gradient Descent </b>

vì chỉ cần tính gradient trên một mẫu dữ liệu thay vì tồn bộ tập dữ liệu. o <b>Học Trực Tuyến (Online Learning): SGD phù hợp cho các bài toán </b>

cần học trực tuyến, trong đó dữ liệu huấn luyện được cập nhật liên tục. o <b>Phù Hợp với Dữ Liệu Lớn: Với tập dữ liệu lớn, việc tính gradient trên </b>

tồn bộ dữ liệu trở nên không hiệu quả. SGD giúp giảm thời gian tính tốn và chi phí tính tốn.

<b>Biến thể của GD: </b>

<b>Batch Gradient Descent (Batch GD): Tính gradient của hàm mất mát trên toàn bộ </b>

tập dữ liệu. Tất cả các điểm dữ liệu đều được sử dụng để tính gradient trước khi cập nhật bộ trọng số 𝜃. Tuy nhiên, Batch GD tốn nhiều thời gian và chi phí tính tốn khi tập dữ liệu lớn.

<b>Stochastic Gradient Descent (SGD): Thực hiện việc cập nhật trọng số với mỗi mẫu </b>

dữ liệu có nhãn tương ứng. SGD thường nhanh hơn Batch GD và có thể sử dụng để học trực tuyến (online learning) khi tập dữ liệu huấn luyện được cập nhật liên tục.

Thứ tự lựa chọn điểm dữ liệu

𝛉

<sub>𝒕+𝟏</sub>

= 𝛉

<sub>𝒕</sub>

−𝜼 . 𝛁

<sub>𝛉</sub>

𝑱(𝛉

<sub>𝒕</sub>

; 𝐗

<sub>𝐢</sub>

, 𝐘

<sub>𝐢</sub>

)<b> </b>

kỹ thuật biến thể của GD như momentum hồn tồn có thể được áp dụng vào SGD

• Với cách cập nhật này, SGD thường nhanh hơn Batch GD và có thể sử dụng để học trực tuyến (online learning) khi tập dữ liệu huấn luyện được cập nhật liên tục.

• Với SGD, bộ trọng số θ được cập nhật thường xuyên hơn so với Batch GD và vì vậy hàm mất mát cũng dao động nhiều hơn. Sự dao động này khiến SGD có vẻ khơng ổn định nhưng lại có điểm tích cực là nó giúp di chuyển đến những điểm cực tiểu (địa phương) mới có tiềm năng hơn. Với tốc độ học giảm, khả năng hội tụ của SGD cũng tương đương với Batch GD.

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

~ 31 ~

<small>Hình 3.1.1: biến động SGD</small>

<b>Mini-batch Gradient Descent (Mini-batch GD): Sử dụng k điểm dữ liệu để cập </b>

nhật bộ trọng số 𝜃, trong đó 1 < k < N với N là tổng số điểm dữ liệu. Mini-batch GD giảm sự dao động của hàm mất mát so với SGD và chi phí tính gradient với k điểm dữ liệu là chấp nhận được.

<small>Hình 3.1.2: Ví dụ về giá trị hàm mất mát sau mỗi vòng lặp khi sử dụng mini-batch gradient descent. Hàm mất mát dao dộng sau mỗi lần cập nhật nhưng nhìn chung giảm dần và có xu </small>

<small>hướng hội tụ. </small>

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

~ 32 ~

Hình 3.1.2 là ví dụ về giá trị của hàm mất mát của một mô hình phức tạp hơn khi sử dụng mini-batch GD. Mặc dù giá trị của hàm mất mát sau các vòng lặp khơng ln ln giảm, nhìn chung giá trị này có xu hướng giảm và hội tụ

<b>Tóm tắt ưu nhược điểm của SGD: </b>

o <b>Ưu điểm: Nhanh hơn Batch GD, phù hợp cho học trực tuyến, hiệu quả với dữ </b>

liệu lớn.

o <b>Nhược điểm: Thuật toán vẫn chưa giải quyết được 2 nhược điểm lớn của </b>

gradient descent (learning rate, điểm dữ liệu ban đầu). Vì vậy ta phải kết hợp

<b>SGD với 1 số thuật toán khác như: Momentum, RMSProp và Adam. Các </b>

thuật toán này sẽ được trình bày ở phần sau.

<i><b>3.1.2 SGD với động lượng (SGD with Momentum) </b></i>

Trong thuật toán Gradient Descent, việc cập nhật các tham số được thực hiện dựa trên gradient của hàm mất mát tại thời điểm hiện tại. Tuy nhiên, trong thuật toán

tăng tốc độ hội tụ và vượt qua các điểm cực tiểu cục bộ trong quá trình huấn luyện mạng nơ-ron.

<b>Nguyên tắc hoạt động: </b>

Momentum hoạt động bằng cách lưu trữ một giá trị trung bình theo thời gian của các gradient trước đó. Giá trị này được gọi là "momentum". Khi cập nhật trọng số, Momentum kết hợp gradient hiện tại với momentum để xác định hướng di chuyển. Điều này giúp giảm thiểu ảnh hưởng của nhiễu trong gradient và cho phép mạng nơ-ron hội tụ nhanh hơn.

Cụ thể, để diễn giải cách hoạt động của Momentum, chúng ta có thể sử dụng các công thức sau:

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

~ 33 ~

<b>Cập Nhật Bước Momentum: </b>

𝒗

<sub>𝒕</sub>

= 𝜸. 𝒗

<sub>𝒕−𝟏</sub>

+ 𝜼. 𝛁

<sub>𝜽</sub>

<b>𝑱(𝜽) </b>

Trong đó:

<b>• 𝜸 =𝜷 là hệ số momentum, thường được chọn là một giá trị gần 1, ví dụ như </b>

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

~ 34 ~

Cơng thức cập nhật bước momentum cho phép tính toán sự cập nhật của các tham số dựa trên bước cập nhật trước đó và gradient của hàm mất mát tại thời điểm hiện tại. Điều này giúp giảm sự dao động của q trình tối ưu hóa và đảm bảo hội tụ nhanh hơn tới điểm cực tiểu hoặc cực tiểu địa phương của hàm mất mát.

Dựa vào hình vẽ, bạn có thể thấy rằng việc sử dụng Momentum giúp thuật toán di chuyển một cách mượt mà hơn trên bề mặt của hàm mất mát, và giảm thiểu sự dao động. Thay vì chỉ theo đuổi gradient, Momentum cho phép gradient ảnh hưởng đến v và sau đó thực hiện một bước theo hướng của v.

<small>Các mũi tên màu đỏ hiển thị hướng được thực hiện bởi một bước giảm độ dốc theo đợt nhỏ theo động lượng. Các điểm màu xanh lam hiển thị hướng của độ dốc (đối với lô nhỏ hiện tại) trên mỗi </small>

<small>bước. Thay vì chỉ đi theo độ dốc, độ dốc được phép ảnh hưởng đến v và sau đó thực hiện một bước theo hướng v </small>

<small>Hình 3.1.3: Momentum steering</small>

</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35">

~ 35 ~

"Momentum steering" là một thuật ngữ được sử dụng để mô tả hiện tượng trong thuật tốn tối ưu hóa Gradient Descent khi sử dụng phương pháp momentum. Trong ngữ cảnh này, momentum là sự ám chỉ đến việc sử dụng một phần của cập nhật trong bước trước để ảnh hưởng đến cập nhật hiện tại.

Cụ thể, khi áp dụng momentum, ta tính tốn một bước cập nhật mới dựa trên cả gradient hiện tại và cập nhật trước đó, thường với một hệ số momentum. Ý tưởng này được ví như đà của một quả cầu lăn trên dốc núi. Một quả cầu đã tích luỹ đà sẽ đẩy lùi ra khỏi những ổ gà nhỏ (cực tiểu địa phương) trên đường và đến đáy của dốc núi. Nó cũng sẽ duy trì một phần của tốc độ đi xuống trước đó ngay cả khi dốc núi có độ dốc giảm đi đáng kể (vì nó đã tích luỹ đà). Thuật ngữ "momentum steering" chỉ việc mới của bước sẽ có hướng được ảnh hưởng bởi hướng của bước trước đó. Tính chất này giúp giảm thiểu sự dao động và đạt được sự hội tụ nhanh hơn trong q trình tối ưu hóa.

<b>Tóm tắt ưu nhược điểm của Momentum: </b>

o <b>Ưu điểm: </b>

<i>Giảm độ dao động (oscillation): Momentum giúp giảm độ dao động của </i>

<b>q trình tối ưu hóa, giúp mơ hình hội tụ nhanh hơn và ít bị dao động. </b>

<i>Tăng tốc độ hội tụ: Bằng cách tích lũy thơng tin từ các bước trước đó, </i>

<b>momentum có thể giúp tăng tốc độ hội tụ của thuật tốn tối ưu hóa. </b>

o <b>Nhược điểm: </b>

<i>Đặt chọn siêu tham số: Momentum có một siêu tham số là hệ số </i>

momentum (𝛾) cần phải được điều chỉnh sao cho phù hợp với bài toán cụ thể.

<i>Dễ rơi vào cực tiểu cục bộ: Đơi khi, momentum có thể khiến mơ hình rơi </i>

vào các cực tiểu cục bộ nếu khơng được điều chỉnh đúng cách.

<i><b>3.1.3 RMSProp (Root Mean Square Propagation) </b></i>

Có một sự điều chỉnh nhỏ của AdaGrad được gọi là "RMSProp". Sự điều chỉnh này được thiết kế để giải quyết vấn đề đã mô tả trước đó có thể xảy ra với AdaGrad.

</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">

Công thức cập nhật cho RMSProp:

Trong RMSProp, tổng của bình phương gradient được nhân với một hệ số giảm α và gradient hiện tại - được trọng số bởi (1-α) - được cộng vào. Bước cập nhật trong trường hợp của RMSProp trông giống như trong AdaGrad. Ở đây, chúng ta chia gradient hiện tại cho tổng của bình phương gradient để có được tính chất tốt làm tăng tốc độ cập nhật trọng số theo một chiều và làm chậm lại sự di chuyển theo chiều khác.

<b>Tóm tắt ưu nhược điểm của RMSProp: </b>

o <b>Ưu điểm: Nhanh hơn Batch GD, phù hợp cho học trực tuyến, hiệu quả với dữ </b>

liệu lớn.

o <b>Nhược điểm: Thuật tốn RMSprop có thể cho kết quả nghiệm chỉ là local </b>

minimum chứ không đạt được global minimum như Momentum. Vì vậy người ta sẽ kết hợp cả 2 thuật toán Momentum với RMSprop cho ra 1 thuật tốn tối ưu Adam. Chúng ta sẽ trình bày nó trong phần sau.

<i><b>3.1.4 Adam (Adaptive Moment Estimation) </b></i>

Adam là một phương pháp tối ưu hóa trong máy học được sử dụng để tính tốn tỷ lệ học tập thích ứng cho mỗi tham số. Nó kết hợp cả việc lưu trữ trung bình mượt

</div><span class="text_page_counter">Trang 37</span><div class="page_container" data-page="37">

~ 37 ~

𝒗

<sub>𝒕</sub>

=𝜷

<sub>𝟐</sub>

𝒗

<sub>𝒕−𝟏</sub>

+ (1 − 𝜷

<sub>𝟐</sub>

)𝒈

<sub>𝒕</sub><sup>𝟐</sup>

không trung tâm (uncentered variance) của gradient, do đó tên gọi của phương

chúng thiên vị về 0, đặc biệt là trong các bước thời gian ban đầu và đặc biệt khi tỷ

<i>lệ giảm dần nhỏ (tức là β1 và β2 gần với 1). </i>

Để chống lại các thiên vị này, ta tính tốn các ước lượng được sửa lỗi về thiên vị

sau:

𝒎

<sub>𝒕</sub><sup>^</sup>

=<sup>𝒎</sup>

<sup>𝒕</sup>

𝟏 − 𝜷

<sub>𝟏</sub><sup>𝒕</sup>

𝒗

<sub>𝒕</sub><sup>^</sup>

=<sup>𝒗</sup>

<sup>𝒕</sup>

𝟏 − 𝜷

<sub>𝟐</sub><sup>𝒕</sup>

Sau đó, ta sử dụng chúng để cập nhật các tham số giống như ta đã thấy trong RMSprop, từ đó tạo ra quy tắc cập nhật Adam:

√𝒗

<sub>𝒕</sub><sup>^</sup>

+ 𝛜𝒎

<sub>𝒕</sub><sup>^</sup>

chỉ ra từ thực nghiệm rằng Adam hoạt động tốt trong thực tế và so sánh thuận lợi với các thuật tốn tối ưu hóa học tập thích ứng khác.

Hơn nữa, có thể sử dụng hiệu chỉnh sai lệch cho các đường trung bình động để có xấp xỉ chính xác hơn về xu hướng độ dốc trong một số lần lặp đầu tiên. Các thí nghiệm cho thấy Adam thích ứng tốt với hầu hết mọi loại kiến trúc mạng thần kinh nhờ lợi thế của cả Momentum và RMSProp

</div><span class="text_page_counter">Trang 38</span><div class="page_container" data-page="38">

~ 38 ~

<small>Hình 3.1.4: Tối ưu hóa với Adam. </small>

<b>Tóm tắt ưu nhược điểm của Adam: </b>

Xử lý được gradient thưa: Với các đặc điểm này, Adam thích hợp cho việc xử lý gradient thưa trên các vấn đề phức tạp với dữ liệu lớn và nhiều đặc trưng

<b>II. Các Kỹ Thuật Chống Overfittiing (Regularization) </b>

Vì vai trị quan trọng của việc đảm bảo tổng qt hóa của thuật tốn, các nghiên cứu về regularization của thuật toán trở thành chủ đề nghiên cứu chính trong machine learning. Hơn nữa, regularization trở thành bước quan trọng trong mơ hình học sâu có nhiều tham số hơn so với tập dữ liệu huấn luyện. Regularization là một kỹ thuật để tránh overfitting của thuật toán và tránh sự overfitting của các hệ số để phù hợp hoàn hảo khi độ phức tạp của mơ hình tăng lên. Overfitting thường

</div>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×