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

ĐÁNH GIÁ HIỆU NĂNG CỦA CÁC THUẬT TOÁN TỐI ƯU TRONG MÔ HÌNH HỌC SÂU ĐỐI VỚI BÀI TOÁN PHÂN LỚP HÌNH ẢNH - Full 10 điểm

12 2 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 đề Đánh Giá Hiệu Năng Của Các Thuật Toán Tối Ưu Trong Mô Hình Học Sâu Đối Với Bài Toán Phân Lớp Hình Ảnh
Tác giả Vĩnh Anh Nghiêm Quân, Nguyễn Lê Trung Thành, Nguyễn Thị Lan Anh
Trường học Trường ĐHSP Huế
Chuyên ngành Khoa Tin học
Thể loại bài báo
Định dạng
Số trang 12
Dung lượng 544,09 KB

Nội dung

ĐÁNH GIÁ HIỆU NĂNG CỦA CÁC THUẬT TOÁN TỐI ƯU TRONG MÔ HÌNH HỌC SÂU ĐỐI VỚI BÀI TOÁN PHÂN LỚP HÌNH ẢNH Vĩnh Anh Nghiêm Quân – Nguyễn Lê Trung Thành – Nguyễn Thị Lan Anh Khoa Tin học – Trường ĐHSP Huế Tóm tắt. Để giải quyết bài toán phân lớp hình ảnh trong huấn luyện mô hình học sâu, việ c tinh chỉnh tốc độ học luôn là một trong những ưu tiên hàng đầu. Do đó, việc lựa chọn thuậ t toán tối ưu thích hợp cho mô hình là cần thiết. Trong bài báo này, chúng tôi đánh giá các thuật toán tối ưu phổ biến và tác động của chúng đến quá trình huấn luyện của mô hình họ c sâu. Chúng tôi tiến hành thực nghiệm với mô hình ResNet trên tập dữ liệ u CIFAR-10 và CINIC-10. Các siêu tham số được lựa chọn dựa theo các bài báo đề xuất thuậ t toán. Chúng tôi sử dụng tiêu chí TTA trong DAWNBench và đề xuất một số tiêu chí khác để đánh giá các thuật toán. Kết quả cho thấy SGD và biến thể AdamW của thuật toán Adam đem lại kết quả ổn định với thời gian huấn luyện hợp lý. Từ khóa: phân lớp hình ảnh, học sâu, tốc độ học thích ứng, thuật toán tối ưu 1. Mở đầu Ngày nay, các ứng dụng của học sâu (deep learning) ngày càng phong phú. Nhiề u mô hình mới ra đ ời để giải quyết các bài toán với quy mô ngày càng lớn. Để tìm được mô hình hiệ u quả với bài toán đặt ra, người xây dựng mô hình thường phải chú trọng đến việc tinh chỉ nh tốc độ học trong quá trình huấn luyện mô hình. Việc tinh chỉnh có thể được thực hiện thủ công (như trong thuật toán tối ưu SGD) hay t ự động (như trong các thuật toán tối ưu v ới tốc độ học thích ứng như Adagrad[7], Adadelta[2], Adam[8], AdamW[9], AMSGrad[9]. Lự a chọn thuật toán tối ưu phù hợp để quá trình huấn luyện đạt hiệu quả tốt nhất do đó trở thành một nhu cầu thiết yếu. Tuy nhiên, do tính chất phức tạp của mô hình học sâu, cùng với các bộ dữ liệu với kích thướ c ngày càng lớn khiến việc huấn luyện mất nhiều thời gian. Mỗi khi thay đổi thuật toán tối ưu, mô hình phải được huấn luyện lại từ đầu, gây lãng phí về thời gian và tài nguyên. Nắm bắt thực tế đó, chúng tôi thực hiện nghiên cứu về đánh giá hiệu năng của các thuậ t toán tối ưu, mà cụ thể là đối với bài toán phân lớp hình ảnh, nhằm giúp người dùng có căn cứ để so sánh và lựa chọn thuật toán tối ưu thích hợp trong quá trình huấn luyện mô hình học sâu. Một đánh giá tương tự đã từng được đề cập trong DAWNBench[1]: nhóm tác giả hệ thố ng quá cách đánh giá hiệu năng các mô hình học sâu khác nhau trên nhiều phương diện, trong đó có thuật toán tối ưu. Tuy nhiên, nhóm tác giả của DAWNBench chỉ so sánh hai thuật toán tối ưu là SGD và Adam. Khi đánh giá hai thuật toán này, nhóm cũng chỉ tiến hành thực nghiệ m với tập dữ liệu duy nhất là CIFAR-10 và kiến trúc mô hình ResNet. Để việc đánh giá được toàn diện hơn, chúng tôi đề xuất mở rộng phạm vi đánh giá lên thành sáu thuật toán tối ưu (trong đó có các biến thể mới của Adam). Thực nghiệm cũng sẽ đượ c tiến hành trên hai tập dữ liệu (CIFAR-10 và CINIC-10) với hai kiế n trúc mô hình khác nhau (ResNet56 và ResNet110). Cấu trúc tiếp theo của bài báo như sau: mục 2 trình bày về các thuật toán tối ưu, mục 3 mô tả thực nghiệm và mục 4 là phần kết luận. 2. Các thuật toán tối ưu 2.1. Stochastic Gradient Descent Gradient Descent (GD) là một trong những thuật toán phổ biến nhất khi tối ưu hóa m ạng nơron. GD tối thiểu hóa hàm mất mát (loss function) ( )J θ trong đó θ là tập hợp các trọng số của mô hình cần tối ưu. Quy tắc cập nhật của GD ở dạng tổng quát như sau: ( )1t t tJ θ θ θ η θ+ = − ⋅∇ Trong đó , ( )tJ θ θ∇ là gradient của hàm mất mát tại θ ở bước t . η là một số dương được gọ i là tốc độ học (learning rate). Tốc độ học η 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). Có một số biến thể khác nhau của GD tùy thuộc vào số lượng dữ liệu được sử dụng để tính gradient của hàm mất mát. Thuật toán Batch Gradient Descent (Batch GD) tính gradient củ a hàm mất mát tại θ trên toàn 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ố θ . Hạn chế của Batch GD là khi t ập dữ liệu lớn, việ c tính gradient sẽ tốn nhiều thời gian và chi phí tính toán. Để khắc phục hạn chế này, thuật toán Stochastic Gradient Descent (SGD) thực hiện việc cập nhật trọng số với mỗi mẫu dữ liệu ( ) i x có nhãn tương ứng ( ) i y như sau: ( ) ( ) ( )1 ; ;i i t t tJ x y θ θ θ η θ+ = − ⋅∇ 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. Cách tiếp cận thứ ba là thuật toán Mini-batch Gradient Descent (Mini-batch GD). Khác vớ i hai thuật toán trước, Mini-batch GD sử dụng k điểm dữ liệu để cập nhật bộ trọng số ( 1 k N< < với N là tổng số điểm dữ liệu). ( ) ( ) ( ): : 1 ; ;i i k i i k t t tJ x y θ θ θ η θ + + + = − ⋅∇ 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. Mini-batch GD thường được lựa chọn khi huấn luyện mạng nơron và vì vậy trong một số trường hợp, SGD được hiểu là Mini-batch GD. Riêng bả n thân Mini-batch GD không đảm bảo tìm được điểm cực tiểu của hàm mất mát mà bên cạnh đ ó các yếu tố như tốc độ học, thuộc tính dữ liệu và tính chất của hàm mất mát cũng ảnh hưởng đến điều này. 2.2. Adagrad Thuật toán Adagrad được Duchi J. và các cộng sự đề xuất năm 2011 [7]. Khác với SGD, tốc độ học trong Adagrad thay đổi tùy thuộc vào trọng số: tốc độ học thấp đối với các trọng số tương ứng với các đặc trưng phổ biến, tốc độ học cao đối với các trọng số tương ứng với các đặc trưng ít phổ biến. Ký hiệu tg là gradient của hàm mất mát tại bước t . ,t ig là đạo hàm riêng của hàm mấ t mát theo i θ tại bước t . ( ), ,t i t ig J θ θ=∇ Quy tắc cập nhật của Adagrad: 1, , , , t i t i t i t ii g G η θ θ ε + = − ⋅ + Theo quy tắc cập nhật, Adagrad điều chỉnh tốc độ học η tại bước t tương ứng với trọng số i θ xác định dựa trên các gradient đã tính được theo i θ . Mẫu số là chuẩn L2 (L2 norm) củ a ma trận đường chéo tG trong đó phần tử ,i i là tổng bình phương của các gradient tương ứng với i θ tính đến bước t . ε là một số dương khá nhỏ nhằm tránh trường hợp mẫu số bằng 0. Quy tắc cập nhật trên có thể viết dưới dạng tổng quát hơn như sau: 1t t t t g G η θ θ ε + = − +  Trong đó,  là phép nhân ma trận-vectơ giữa tG và tg . Có thể nhận thấy rằng trong thuậ t toán Adagrad tốc độ học được tự động điều chỉnh. Adagrad thường khá hiệu quả đối vớ i bài toán có dữ liệu phân mảnh. Tuy nhiên, hạn chế của Adagrad là các tổng bình phương ở mẫ u số ngày càng lớn khiến tốc độ học ngày càng giảm và có thể tiệm cận đến giá trị 0 khiế n cho quá trình huấn luyện gần như đóng băng. Bên cạnh đó, giá trị tốc độ học η cũng phải được xác định một cách thủ công. 2.3. Adadelta Thuật toán Adadelta được Zeiler và các cộng sự đề xuất năm 2012 [2]. Adadelta là một biế n thể của Adagrad để khắc phục tình trạng giảm tốc độ học ở Adagrad. Thay vì lưu lại tất cả gradient như Adagrad, Adadelta giới hạn tích lũy gradient theo cửa sổ có kích thước w xác định. Bằng cách này, Adadelta vẫn tiếp tục học sau nhiều bước cập nhật. Trong quá trình thực hiện, thay vì lưu trữ w bình phương của gradient theo cách thông thường, Adadelta thực hiện tích lũy dưới dạng mô-men bậc 2 của gradient: ( )2 2 2 1 1 tt t E g E g g γ γ −    = + −    Công thức trên thể hiện trung bình các gradient 2 t E g   ở bước t phụ thuộ c vào trung bình các gradient 2 1 t E g −    ở bước 1t − và gradient tg ở bước t . Hệ số γ thường có giá trị 0.9 với ý nghĩa rằng gradient ở hiện tại sẽ phụ thuộc phần lớn vào gradient ở các bước trước đó. Với thuật toán Adadelta, tốc độ học hoàn toàn được thay thế bởi: 2 1 2 t t E E g θ ε ε −  ∆ +    +  Trong đó, ( )2 2 2 1 1 tt t E E θ γ θ γ θ −    ∆ = ∆ + − ∆    Tương tự như trường hợp gradient, công thức trên thể hiện độ biến thiên θ∆ của θ tại bước t phụ thuộc vào độ biến thiên của θ tại bước 1t − . Adadelta được cập nhật theo quy tắc: 2 1 1 2 t t t t t E g E g θ ε θ θ ε − +  ∆ +  = − ⋅   +  Adadelta không sử dụng tốc độ học. Thay vào đó, nó sử dụng tốc độ thay đổi của chính bả n thân các trọng số để điều chỉnh tốc độ học. 2.4. Adam Adam (Adaptive Moment Estimation) [8] là một thuật toán cho phép tính tốc độ học thích ứng với mỗi trọng số. Adam không chỉ lưu trữ trung bình bình phương các gradient trước đó như Adadelta mà còn lưu cả giá trị trung bình mô-men tm . Các giá trị tm và tv được tính bở i công thức: ( )1 1 11t t tm m g β β−= + − ( ) 2 2 1 21t t tv v g β β−= + − trong đó 1 β và 2 β là các trọng số không âm, thường được chọn là 1 0.9 β = và 2 0.999 β = . Nếu khởi tạo tm và tv là các vector 0, các giá trị này có khuynh hướng nghiêng về 0, đặc biệ t là khi 1 β và 2 β xấp xỉ bằng 1. Do vậy, để khắc phục, các giá trị này được ước lượng bằ ng cách: 1 ˆ 1 t t t m m β = − 2 ˆ 1 t t t v v β = − Sau đó cập nhật các trọng số theo công thức: 1 ˆ ˆ t t t t m v η θ θ+ = − +  ,  thường bằng 10-8 2.5.AMSGrad AMSGrad [10] sử dụng giá trị lớn nhất của các bình phương gradient trước đó vt để cập nhậ t các trọng số. Ở đây, vt cũng được định nghĩa như trong thuật toán Adam: ( ) 2 2 1 21t t tv v g β β−= + − Thay vì trực tiếp sử dụng vt (hay giá trị ước lượng ˆtv ), thuật toán sẽ sử dụng giá trị trước đó 1tv − nếu giá trị này lớn hơn giá trị hiện tại: ( )1 ˆ ˆ ,t t tv max v v−= Tương tự như trong thuật toán Adam, các giá trị được ước lượng theo công thức dưới đây để khử lệch cho các trọng số: ( )1 1 11t t tm m g β β−= + − ; ( ) 2 2 1 21t t tv v g β β−= + − ; ( )1 ˆ ˆ ,t t tv max v v−= AMSGrad được cập nhật theo quy tắc: 1 ˆ t t t t m v η θ θ+ = − +  2.6. AdamW Được đề xuất lần đầu tiên trong [9], AdamW là một biến thể của Adam. Ý tưởng của AdamW khá đơn giản: khi thực hiện thuật toán Adam với L2 regularization (chuẩn hóa L2), tác giả loại bỏ phần tiêu biến của trọng số (weight decay) t tw θ khỏi công thức tính gradient hàm mấ t mát tại thời điểm t : ( )t t t tg f w ∇ θ θ= + và thay vào đó, đưa phần giá trị đã được phân tách này vào quá trình cập nhật trọng số: 1, , , , 1 ˆ , ˆ t i t i t t i t i t m w t v θ θ η θ ∀ +   = − ⋅ +   +   3. Thực nghiệm và kết quả 3.1.Tập dữ liệu Để kiểm tra tác động của các thuật toán tối ưu trong học sâu lên bài toán phân lớp hình ả nh, trong bài báo này, chúng tôi sử dụng hai tập dữ liệu CIFAR-10 và CINIC-10. CIFAR-10 (Canadian Institute For Advanced Research) [3] là tập dữ liệu phổ biến thường được dùng để huấn luyện các thuật toán trong lĩnh vực máy học và thị giác máy tính. CIFAR - 10 bao gồm 60.000 bức ảnh màu đa sắc với kích thước 32x32, mỗi ảnh thuộc về 1 trong 10 lớp: máy bay, xe ô tô, chim, mèo, hươu nai, chó, ếch, ngựa, tàu thủy và xe tải. Mỗi lớp trong 10 lớp này chứa 6,000 ảnh. Ở đây, chúng tôi cũng chia CIFAR-10 thành hai tập huấn luyệ n và kiểm thử theo tỉ lệ như trong [3]: chọn ngẫu nhiên từ mỗi lớp chính xác 1,000 ảnh để xây dựng tập kiểm thử, tập huấn luyện gồm 50,000 bức ảnh còn lại. CINIC-10 (CINIC-10 Is Not ImageNet or CIFAR-10) [5] gồm 270,000 bức ảnh, thuộc về 10 lớp khác nhau như ở CIFAR-10, chia làm 3 phần: tập huấn luyện, tập kiểm thử và tập kiểm định, mỗi tập có 90,000 phần tử. CINIC có thể coi là tập mở rộng của CIFAR-10, bổ sung thêm nhiều phần tử ảnh trích xuất từ tập ImageNet và được chỉnh sửa để có kích thước tương tự với phần tử ảnh trong tập CIFAR-10. CINIC-10 có tập kiểm thử lên đế

Trang 1

ĐÁNH GIÁ HIỆU NĂNG CỦA CÁC THUẬT TOÁN TỐI ƯU TRONG MÔ HÌNH HỌC SÂU ĐỐI VỚI BÀI TOÁN PHÂN LỚP HÌNH ẢNH

Vĩnh Anh Nghiêm Quân – Nguyễn Lê Trung Thành – Nguyễn Thị Lan Anh

Khoa Tin học – Trường ĐHSP Huế

Tóm tắt Để giải quyết bài toán phân lớp hình ảnh trong huấn luyện mô hình học sâu, việc

tinh chỉnh tốc độ học luôn là một trong những ưu tiên hàng đầu Do đó, việc lựa chọn thuật toán tối ưu thích hợp cho mô hình là cần thiết Trong bài báo này, chúng tôi đánh giá các thuật toán tối ưu phổ biến và tác động của chúng đến quá trình huấn luyện của mô hình học sâu Chúng tôi tiến hành thực nghiệm với mô hình ResNet trên tập dữ liệu CIFAR-10 và CINIC-10 Các siêu tham số được lựa chọn dựa theo các bài báo đề xuất thuật toán Chúng tôi sử dụng tiêu chí TTA trong DAWNBench và đề xuất một số tiêu chí khác để đánh giá các thuật toán Kết quả cho thấy SGD và biến thể AdamW của thuật toán Adam đem lại kết quả

ổn định với thời gian huấn luyện hợp lý

Từ khóa: phân lớp hình ảnh, học sâu, tốc độ học thích ứng, thuật toán tối ưu

1 Mở đầu

Ngày nay, các ứng dụng của học sâu (deep learning) ngày càng phong phú Nhiều mô hình mới ra đời để giải quyết các bài toán với quy mô ngày càng lớn Để tìm được mô hình hiệu quả với bài toán đặt ra, người xây dựng mô hình thường phải chú trọng đến việc tinh chỉnh tốc độ học trong quá trình huấn luyện mô hình Việc tinh chỉnh có thể được thực hiện thủ công (như trong thuật toán tối ưu SGD) hay tự động (như trong các thuật toán tối ưu với tốc

độ học thích ứng như Adagrad[7], Adadelta[2], Adam[8], AdamW[9], AMSGrad[9] Lựa chọn thuật toán tối ưu phù hợp để quá trình huấn luyện đạt hiệu quả tốt nhất do đó trở thành một nhu cầu thiết yếu

Tuy nhiên, do tính chất phức tạp của mô hình học sâu, cùng với các bộ dữ liệu với kích thước ngày càng lớn khiến việc huấn luyện mất nhiều thời gian Mỗi khi thay đổi thuật toán tối ưu,

mô hình phải được huấn luyện lại từ đầu, gây lãng phí về thời gian và tài nguyên

Nắm bắt thực tế đó, chúng tôi thực hiện nghiên cứu về đánh giá hiệu năng của các thuật toán tối ưu, mà cụ thể là đối với bài toán phân lớp hình ảnh, nhằm giúp người dùng có căn cứ để so sánh và lựa chọn thuật toán tối ưu thích hợp trong quá trình huấn luyện mô hình học sâu Một đánh giá tương tự đã từng được đề cập trong DAWNBench[1]: nhóm tác giả hệ thống quá cách đánh giá hiệu năng các mô hình học sâu khác nhau trên nhiều phương diện, trong đó

có thuật toán tối ưu Tuy nhiên, nhóm tác giả của DAWNBench chỉ so sánh hai thuật toán tối

ưu là SGD và Adam Khi đánh giá hai thuật toán này, nhóm cũng chỉ tiến hành thực nghiệm với tập dữ liệu duy nhất là CIFAR-10 và kiến trúc mô hình ResNet

Để việc đánh giá được toàn diện hơn, chúng tôi đề xuất mở rộng phạm vi đánh giá lên thành sáu thuật toán tối ưu (trong đó có các biến thể mới của Adam) Thực nghiệm cũng sẽ được tiến hành trên hai tập dữ liệu (CIFAR-10 và CINIC-10) với hai kiến trúc mô hình khác nhau (ResNet56 và ResNet110)

Cấu trúc tiếp theo của bài báo như sau: mục 2 trình bày về các thuật toán tối ưu, mục 3 mô tả thực nghiệm và mục 4 là phần kết luận

2 Các thuật toán tối ưu

Trang 2

2.1 Stochastic Gradient Descent

Gradient Descent (GD) là một trong những thuật toán phổ biến nhất khi tối ưu hóa mạng nơron GD tối thiểu hóa hàm mất mát (loss function) J( )θ trong đó θ là tập hợp các trọng số của mô hình cần tối ưu Quy tắc cập nhật của GD ở dạng tổng quát như sau:

( )

θ+ = − ⋅∇θ η θ Trong đó , ∇θJ( )θt là gradient của hàm mất mát tại θ ở bước t η là một số dương được gọi

là tốc độ học (learning rate) Tốc độ học η 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)

Có một số biến thể khác nhau của GD tùy thuộc vào số lượng dữ liệu được sử dụng để tính gradient của hàm mất mát Thuật toán Batch Gradient Descent (Batch GD) tính gradient của hàm mất mát tại θ trên toàn 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ố θ Hạn chế của Batch GD là khi tập dữ liệu lớn, việc tính gradient sẽ tốn nhiều thời gian và chi phí tính toán Để khắc phục hạn chế này, thuật toán Stochastic Gradient Descent (SGD) thực hiện việc cập nhật trọng số với mỗi mẫu dữ liệu x( )i

có nhãn tương ứng y( )i như sau:

( ) ( )

1 ; ;i i

θ+ = − ⋅∇θ η θ 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 Cách tiếp cận thứ ba là thuật toán Mini-batch Gradient Descent (Mini-batch GD) Khác với hai thuật toán trước, Mini-batch GD sử dụng k điểm dữ liệu để cập nhật bộ trọng số (

1 < < với k N 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 Mini-batch GD thường được lựa chọn khi huấn luyện mạng nơron và vì vậy trong một số trường hợp, SGD được hiểu là Mini-batch GD Riêng bản thân Mini-batch GD không đảm bảo tìm được điểm cực tiểu của hàm mất mát mà bên cạnh đó các yếu tố như tốc độ học, thuộc tính dữ liệu và tính chất của hàm mất mát cũng ảnh hưởng đến điều này

2.2 Adagrad

Thuật toán Adagrad được Duchi J và các cộng sự đề xuất năm 2011 [7] Khác với SGD, tốc

độ học trong Adagrad thay đổi tùy thuộc vào trọng số: tốc độ học thấp đối với các trọng số tương ứng với các đặc trưng phổ biến, tốc độ học cao đối với các trọng số tương ứng với các đặc trưng ít phổ biến

Trang 3

Ký hiệu g là gradient của hàm mất mát tại bước t t g ,ti là đạo hàm riêng của hàm mất mát theo θi tại bước t

( )

g =∇θJ θ Quy tắc cập nhật của Adagrad:

,

t ii

g G

η

ε

+ Theo quy tắc cập nhật, Adagrad điều chỉnh tốc độ học η tại bước t tương ứng với trọng số θi xác định dựa trên các gradient đã tính được theo θi Mẫu số là chuẩn L2 (L2 norm) của ma trận đường chéo G trong đó phần tử , t i i là tổng bình phương của các gradient tương ứng với

i

θ tính đến bước t ε là một số dương khá nhỏ nhằm tránh trường hợp mẫu số bằng 0

Quy tắc cập nhật trên có thể viết dưới dạng tổng quát hơn như sau:

t

g G

η

ε + = −

Trong đó,  là phép nhân ma trận-vectơ giữa G và t g Có thể nhận thấy rằng trong thuật t

toán Adagrad tốc độ học được tự động điều chỉnh Adagrad thường khá hiệu quả đối với bài toán có dữ liệu phân mảnh Tuy nhiên, hạn chế của Adagrad là các tổng bình phương ở mẫu

số ngày càng lớn khiến tốc độ học ngày càng giảm và có thể tiệm cận đến giá trị 0 khiến cho quá trình huấn luyện gần như đóng băng Bên cạnh đó, giá trị tốc độ học η cũng phải được xác định một cách thủ công

2.3 Adadelta

Thuật toán Adadelta được Zeiler và các cộng sự đề xuất năm 2012 [2] Adadelta là một biến thể của Adagrad để khắc phục tình trạng giảm tốc độ học ở Adagrad Thay vì lưu lại tất cả gradient như Adagrad, Adadelta giới hạn tích lũy gradient theo cửa sổ có kích thước w xác định Bằng cách này, Adadelta vẫn tiếp tục học sau nhiều bước cập nhật

Trong quá trình thực hiện, thay vì lưu trữ w bình phương của gradient theo cách thông thường, Adadelta thực hiện tích lũy dưới dạng mô-men bậc 2 của gradient:

( )

1 1 t

Công thức trên thể hiện trung bình các gradient 2

t

E g   ở bước t phụ thuộc vào trung bình các gradient 2

1

t

E g   ở bước − t − và gradient 1 g ở bước t Hệ số γ thường có giá trị 0.9 t

với ý nghĩa rằng gradient ở hiện tại sẽ phụ thuộc phần lớn vào gradient ở các bước trước đó Với thuật toán Adadelta, tốc độ học hoàn toàn được thay thế bởi:

2 1 2

t t

E

E g

ε

  +

 

Trang 4

Trong đó,

( )

1 1 t

Tương tự như trường hợp gradient, công thức trên thể hiện độ biến thiên ∆ của θ θ tại bước

t phụ thuộc vào độ biến thiên của θ tại bước t − 1

Adadelta được cập nhật theo quy tắc:

2 1

t

E

g

E g

ε

− +

  +

 

Adadelta không sử dụng tốc độ học Thay vào đó, nó sử dụng tốc độ thay đổi của chính bản thân các trọng số để điều chỉnh tốc độ học

2.4 Adam

Adam (Adaptive Moment Estimation) [8] là một thuật toán cho phép tính tốc độ học thích ứng với mỗi trọng số Adam không chỉ lưu trữ trung bình bình phương các gradient trước đó như Adadelta mà còn lưu cả giá trị trung bình mô-men m Các giá trị t m và t v được tính bởi t

công thức:

1 1 1 1

mm− + −β g

2 1 1 2

vv− + −β g

trong đó β1 và β2 là các trọng số không âm, thường được chọn là β1=0.9 và β2 =0.999 Nếu khởi tạo m và t v là các vector 0, các giá trị này có khuynh hướng nghiêng về 0, đặc biệt t

là khi β1 và β2 xấp xỉ bằng 1 Do vậy, để khắc phục, các giá trị này được ước lượng bằng cách:

1

ˆ

1 t

m m

β

=

2

ˆ

1 t

v v

β

=

Sau đó cập nhật các trọng số theo công thức:

ˆ

t

m v

η

θ+ = −θ

+ ,  thường bằng 10-8

2.5.AMSGrad

AMSGrad [10] sử dụng giá trị lớn nhất của các bình phương gradient trước đó vt để cập nhật các trọng số Ở đây, vt cũng được định nghĩa như trong thuật toán Adam:

2 1 1 2

vv− + −β g

Thay vì trực tiếp sử dụng vt (hay giá trị ước lượng ˆv ), thuật toán sẽ sử dụng giá trị trước đó t

1

t

v− nếu giá trị này lớn hơn giá trị hiện tại:

Trang 5

( 1 )

ˆt ˆ ,t t

v max v v= − Tương tự như trong thuật toán Adam, các giá trị được ước lượng theo công thức dưới đây để khử lệch cho các trọng số:

1 1 1 1

2 1 1 2

vv− + −β g ; v max v vˆt = (ˆ ,t−1 t)

AMSGrad được cập nhật theo quy tắc:

t

m v

η

θ+ = −θ

+

2.6 AdamW

Được đề xuất lần đầu tiên trong [9], AdamW là một biến thể của Adam Ý tưởng của AdamW khá đơn giản: khi thực hiện thuật toán Adam với L2 regularization (chuẩn hóa L2), tác giả loại bỏ phần tiêu biến của trọng số (weight decay) w t tθ khỏi công thức tính gradient hàm mất mát tại thời điểm t :

( )

g =∇ f θ +wθ

và thay vào đó, đưa phần giá trị đã được phân tách này vào quá trình cập nhật trọng số:

ˆ

t

v

θ+ =θ −η ⋅ + θ ∀

+

3 Thực nghiệm và kết quả

3.1.Tập dữ liệu

Để kiểm tra tác động của các thuật toán tối ưu trong học sâu lên bài toán phân lớp hình ảnh, trong bài báo này, chúng tôi sử dụng hai tập dữ liệu CIFAR-10 và CINIC-10

CIFAR-10 (Canadian Institute For Advanced Research) [3] là tập dữ liệu phổ biến thường

được dùng để huấn luyện các thuật toán trong lĩnh vực máy học và thị giác máy tính CIFAR

-10 bao gồm 60.000 bức ảnh màu đa sắc với kích thước 32x32, mỗi ảnh thuộc về 1 trong -10 lớp: máy bay, xe ô tô, chim, mèo, hươu nai, chó, ếch, ngựa, tàu thủy và xe tải Mỗi lớp trong

10 lớp này chứa 6,000 ảnh Ở đây, chúng tôi cũng chia CIFAR-10 thành hai tập huấn luyện và kiểm thử theo tỉ lệ như trong [3]: chọn ngẫu nhiên từ mỗi lớp chính xác 1,000 ảnh để xây dựng tập kiểm thử, tập huấn luyện gồm 50,000 bức ảnh còn lại

CINIC-10 (CINIC-10 Is Not ImageNet or CIFAR-10) [5] gồm 270,000 bức ảnh, thuộc về 10

lớp khác nhau như ở CIFAR-10, chia làm 3 phần: tập huấn luyện, tập kiểm thử và tập kiểm định, mỗi tập có 90,000 phần tử CINIC có thể coi là tập mở rộng của CIFAR-10, bổ sung thêm nhiều phần tử ảnh trích xuất từ tập ImageNet và được chỉnh sửa để có kích thước tương

tự với phần tử ảnh trong tập CIFAR-10

CINIC-10 có tập kiểm thử lên đến 90,000 phần tử Theo [5], việc các mẫu dữ liệu trích xuất

từ ImageNet bị giảm kích thước thành 32x32 sẽ làm tăng độ khó của việc phân lớp do số lượng đặc trưng ít hơn Việc tập huấn luyện và tập kiểm thử có tỉ lệ 1:1 cũng sẽ giúp đánh giá được khả năng khái quát hóa của mô hình

Trang 6

Ngoài những lý do trên, việc bổ sung thêm CINIC-10 sẽ giúp xác nhận xem liệu các kết luận

về tác động của thuật toán tối ưu lên mô hình học sâu dựa trên tập CIFAR-10 có còn chính xác khi áp dụng cho một bài toán tương tự nhưng với quy mô lớn hơn hay không

3.2 Mô hình

Như đã đề cập trong phần mở đầu, DAWNBench[1] là nghiên cứu hướng đến việc tạo ra một quy trình đánh giá chuẩn cho mô hình học sâu Cũng như tất cả các thực nghiệm trong [1], trong nghiên cứu này, chúng tôi chọn kiến trúc mô hình ResNet[4] làm mô hình đánh giá các thuật toán tối ưu

Hình 1 Khối residual (He, Kaiming, et al 2016)

Mạng ResNet được xây dựng dựa trên ý tưởng các khối residual như minh họa trong Hình 1 Giả sử ánh xạ cần tìm là ( )x , các lớp trong khối residual sẽ thực hiện việc xấp xỉ ánh xạ

  , tức ánh xạ ban đầu lúc này trở thành ( )x x+ . Liên kết nối tắt (hình vòng cung) trong trường hợp này thực hiện ánh xạ đồng nhất (identity mapping)

Theo hướng dẫn trong [4] khi thực nghiệm với tập CIFAR-10, chúng tôi chọn lựa chọn cấu hình A (tất cả liên kết nối tắt đều thực hiện ánh xạ đồng nhất) khi số lượng bộ lọc (filter) tăng Lớp đầu tiên của mô hình là lớp tích chập 3 3× Tiếp sau đó là 6n lớp tích chập 3 3× cho các feature map với kích cỡ lần lượt là {32,16,8} (n khối residual, tương ứng với 2n lớp cho mỗi

kích thước của feature map) Cuối cùng là lớp kết nối hoàn chỉnh với 10 nơ-ron và softmax Tổng cộng mô hình có 6n + lớp 2

Lựa chọn n lần lượt bằng 9 và 18, chúng tôi sử dụng hai kiến trúc mạng ResNet với 56 và

110 lớp để tiến hành thực nghiệm

3×3, 16

3×3, 16

×18 3×3, 16

3×3, 32

3×3, 32

×18 3×3, 32

3×3, 64

3×3, 64

×18 3×3, 64

Trang 7

MACs 0.13 10× 9 0.25 10× 9

Bảng 1 Hai kiến trúc mạng ResNet56 và ResNet110 lần lượt cho hai thực nghiệm

với tập dữ liệu CIFAR-10 và CINIC-10

Chi tiết các thông số về kiến trúc mô hình ResNet56 và ResNet110 được đề cập trong Bảng 1 Các khối residual gồm các lớp thành phần nằm trong ngoặc vuông Quá trình giảm độ phân giải (downsampling) của feature map được tích hợp vào conv31 và conv41 bằng cách gán độ trượt (stride) bằng 2 Độ phức tạp tính toán của mỗi mô hình được thể hiện qua số phép nhân - tích lũy MAC (multiply-accumulate operation) và FLOP

3.3 Thang đo

Để việc đánh giá các thuật toán tối ưu được khách quan và có hệ thống, chúng tôi tham khảo cách đánh giá mô hình học sâu của DAWNBench[1] Tuy nhiên, chúng tôi chỉ sử dụng một tiêu chí trong DAWNBench là thời gian huấn luyện để đạt được một độ chính xác đề ra (TTA – time to accuracy) Tiêu chí này đảm bảo việc đánh giá phải cân nhắc đồng thời cả độ chính xác của mô hình lẫn thời gian huấn luyện để đạt được độ chính xác đó Trong thực nghiệm, chúng tôi luôn đảm bảo rằng TTA không bao gồm thời gian suy diễn trên tập kiểm thử (khi tính độ chính xác)

Chúng tôi nhận thấy tiêu chí về độ trễ suy diễn (inference latency) không phù hợp cho thực nghiệm của mình Thuật toán tối ưu chỉ có tác động đến quá trình huấn luyện của mô hình Sau khi huấn luyện xong, các yếu tố như kiến trúc mô hình, tập dữ liệu và phần cứng không thay đổi, do đó thời gian suy diễn không thay đổi và không phụ thuộc vào thuật toán tối ưu Ngoài ra, để việc đánh giá được tổng quát hơn, tương tự như trong [6], chúng tôi cũng đưa thêm một số tiêu chí như chu kỳ huấn luyện để đạt được độ chính xác đề ra (epochs to acccuracy), tổng thời gian huấn luyện và tần suất lỗi sau khi huấn luyện xong

3.4 Cấu hình phần cứng và lựa chọn các siêu tham số

Thực nghiệm được tiến hành với cấu hình như sau: Intel Xeon CPU @ 2.2GHz, 12GB RAM , NVIDIA Tesla P100 16GB (đối với ResNet56 và CIFAR-10) và NVIDIA Tesla V100 16GB (đối với ResNet110 và CINIC-10)

Mini-batch size Trong [1], tác giả có đề cập đến việc chọn batch size quá lớn (512) sẽ ảnh

hưởng đến khả năng hội tụ của thuật toán Để đảm bảo thực nghiệm được chính xác, chúng tôi chọn batch size là 128

Chu kỳ huấn luyện Theo gợi ý trong [5], chúng tôi dừng huấn luyện sau 185 chu kỳ (tương

ứng khoảng 72K vòng lặp với tỉ lệ huấn luyện/kiểm thử 50,000/10,000) đối với tập

CIFAR-10

Tương tự, theo [4], chúng tôi dừng huấn luyện sau 300 chu kỳ (tương ứng khoảng 211K vòng lặp với tỉ lệ huấn luyện/kiểm thử 90,000/90,000) đối với tập CINIC-10

Phương án lập lịch tốc độ học Ở đây chúng tôi chọn phương án lập lịch đa bước cho mọi

thuật toán Cụ thể, tại các mốc chu kỳ 100 và 150, tốc độ học sẽ bị giảm đi 10 lần (γ =0.1)

3.5 Kết quả

Căn cứ vào các kết quả thể hiện trong Hình 2, 3 và Bảng 2, 3, chúng tôi rút ra một số nhận xét sau:

Trang 8

1 Thuật toán SGD có thời gian huấn luyện thấp, tốc độ hội tụ chậm nhưng ổn định, và trong hai thực nghiệm đều đạt được ngưỡng độ chính xác đề ra Tuy SGD luôn đem lại một trong các tần suất lỗi nhỏ nhất, dựa vào biểu đồ Hình 3 có thể thấy khi quá trình huấn luyện tương đối dài, độ chính xác trên tập kiểm thử có xu hướng giảm Để khắc phục hiện tượng này, có thể đưa thêm một số mốc chu kỳ lớn hơn vào phương án lập lịch tốc độ học Điều này cũng chứng minh rằng hiệu quả của thuật toán SGD phụ thuộc rất lớn vào việc tinh chỉnh thủ công tốc độ học

2 Thuật toán Adagrad và Adadelta yêu cầu thời gian huấn luyện lớn hơn SGD, trong đó thời gian huấn luyện khi sử dụng Adadelta là lớn nhất trong các thuộc toán được so sánh Tuy nhiên, hai thuật toán này không đem lại kết quả tương xứng: đều không đạt được ngưỡng độ chính xác đề ra trong cả hai thực nghiệm Do đó, chúng tôi không khuyến khích sử dụng hai thuật toán này

3 Thuật toán Adam hội tụ nhanh nhưng không đạt được ngưỡng độ chính xác đề ra Chúng tôi khuyến nghị chỉ sử dụng Adam nếu thời gian huấn luyện hạn chế và không yêu cầu quá cao về tính chính xác của mô hình

4 Biến thể của AdamW của Adam kết hợp cả ưu điểm của Adam và SGD AdamW có thời gian huấn luyện không quá lớn so với SGD hay Adam, đem lại tốc độ hội tụ nhanh như Adam và tần suất lỗi thấp như SGD Cũng như Adam, AdamW kế thừa khả năng tự động tinh chỉnh tốc độ học của mình trong quá trình huấn luyện Với những

ưu điểm trên, chúng tôi đề xuất sử dụng AdamW như một thuật toán lý tưởng thay thế cho SGD

5 Việc tích hợp AMSGrad vào Adam không giúp cải thiện khả năng hội tụ Trong mọi trường hợp, AMSGrad khiến thời gian huấn luyện tăng lên đáng kể Đối với AdamW, AMSGrad đem lại kết quả không đồng nhất Do đó, chúng tôi cho rằng nên thận trọng khi tích hợp AMSGrad vào Adam hoặc AdamW

6 Việc lập lịch tốc độ học có ảnh hưởng tích cực không chỉ đến SGD mà cả các thuật toán với tốc độ học thích ứng như Adam: đa phần các thuật toán đều sớm đạt được ngưỡng độ chính xác đề ra ngay sau khi vượt qua các cột mốc chu kỳ trong lịch

Hình 2 Độ chính xác của mô hình ResNet56 huấn luyện trên tập CIFAR-10

Thuật toán tối ưu luyện đầu tiên Chu kỳ huấn

đạt độ chính xác

Thời gian huấn luyện để đạt độ chính xác 93%

Thời gian huấn luyện

185 chu kỳ

Tần suất lỗi sau

185 chu kỳ (%)

Trang 9

kiểm thử 93%

Bảng 2 Kết quả thử nghiệm với tập CIFAR-10 (các giá trị in đậm là các kết quả tốt nhất của mỗi cột)

Hình 3 Độ chính xác của mô hình ResNet110 huấn luyện trên tập CINIC-10

Thuật toán tối ưu

Chu kỳ huấn luyện đầu tiên đạt độ chính xác kiểm thử 82%

Thời gian huấn luyện để đạt độ chính xác 82%

Thời gian huấn luyện

300 chu kỳ

Tần suất lỗi sau

300 chu kỳ (%)

Bảng 3 Kết quả thử nghiệm với tập CINIC-10 (các giá trị in đậm là các kết quả tốt nhất của mỗi cột)

4 Kết luận

Qua bài báo này, chúng tôi đã bước đầu đánh giá được tác động của các thuật toán tối ưu khác nhau đến quá trình huấn luyện và hiệu năng sau khi huấn luyện của mô hình học sâu cho bài toán phân lớp hình ảnh Các bảng so sánh trong mục 3 sẽ là cơ sở giúp người dùng tham khảo và lựa chọn thuật toán thích hợp khi xây dựng mô hình

Trang 10

Do hạn chế về mặt thời gian, chúng tôi chỉ sử dụng kiến trúc mạng ResNet và các tập dữ liệu liên quan đến bài toán phân lớp hình ảnh cho thực nghiệm Việc sử dụng các kiến trúc mạng học sâu khác, cũng như tiến hành thực nghiệm trong các lĩnh vực đa dạng hơn như xử lý ngôn ngữ tự nhiên sẽ giúp việc đánh giá được hoàn thiện hơn

Ngày đăng: 02/03/2024, 06:17

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

TÀI LIỆU LIÊN QUAN

w