AngularGrad: A New Optimization Technique for Angular Convergence of Neural Networks
Abstract
Convolutional neural networks (CNNs) được đào tạo bằng cách sử dụng các trình stochastic gradient descent (SGD). Gần đây, adaptive moment estimation (Adam) được phổ biến nhờ khả năng giải quyết dying gradient problem của SGD. Tuy nhiên hầu hêt chúng đều chưa khai thác optimization curvature information hiệu quả. AngularGrad là một trong những tiên phong tìm kiếm cách khai thác gradient angular information apart from its magnitude. AngularGrad đề xuất tạo ra một điểm số để kiểm soát step size dựa trên gradient angular information của các lần lặp trước đó.
Introduction
Trong vòng một thập kỷ qua, các nỗ lực giảm bóng bán dẫn trong các chip đã tăng đáng kể khả năng tính toán của máy tính. Kể từ 2016, sự cải thiện hiệu năng của GPU đã làm tăng số lượng các mô hình deep learning1. Các mô hình DL được phát triển theo kịch bản mà trong đó, artificial neural networks (ANNs) bắt chước các nơ ron trong bộ não con người bằng cách học từ các sự kiện, kích thích mới, đồng thời dựa trên các node được tổ chức và kết nôi với nhau thông qua các trọng số ở mỗi lớp, trong cấu trúc phức tạp đa lớp có thứ bậc.
Tuy nhiên, việc huấn luyện các mô hình này gặp nhiều thách thức. Ngoài yêu cầu khả năng tính toán lớn, thì khi mô hình đi sâu nhiều lớp, lượng dữ liệu đòi hỏi để huấn luyện nó là vô cùng lớn và chúng có xu hướng làm mô hình overfitting.
Về mặt toán học, DNN có thể mô tả bằng một hàm mapping \(f( \cdot ,\theta)\) với việc hamp input \(x \in X\) với output \(y \in Y\) thông qua việc chỉnh sửa tham số \(\theta\) (weights and biases) hoặc hàm loss \(J(\theta)\) tối ưu hoặc giảm chi phí. Việc huấn luyện mô hình là việc xấp xỉ hàm \(f\) khi được cung cấp mạng nơ-ron với độ sâu và trọng số khác nhau. Mặc dù độ sâu của mô hình phụ thuộc vào nhiều yếu tố, thì thông qua việc lặp lại quá trình forward-backward \(J(\theta)\), mô hình sẽ tự động điều chỉnh các giá trị của trọng số để có giá trị tốt nhất.
Nhiều thuật toán được đưa ra nhằm tối ưu hóa với trade-off giữa tốc độ đào tạo và model generalization, Gradient descent là một trong số đó. Nó cung cấp nhiều thuật toán khác nhau, trong đó có stochastic gradient descent (SGD)2 và phiên bản momentum (SGDM)3. Hai phương pháp này khá phổ biến do tính đơn giản của nó mặc dù bị ảnh hưởng rất nhiều bởi phương sai trong tham số của model và vấn đề vanishing gradient. Để khắc phục những hạn chế này, các thuật toán cố gắng tạo ra learning rate, trong đó có Adam4. Tuy nhiên chúng chưa giải quyết được hiện tượng zig-zag, xuất hiện các bản cập nhật gây nhiễu trong quỹ đạo tối ưu hóa do thay sự thay đổi lớn của các gradients. Do đó, đường cong hội tụ thường có các biến động đột ngột, ảnh hưởng tới hiệu suất cuối cùng của huấn luyện.
Nhằm tăng tốc hội tụ và giảm hiện tượng zig-zac trong huấn luyện, bài báo giới thiệu AngularGrad5. Nó sử dụng direction/angle (hướng/góc) của vector gradient. Góc giữa hai lần lặp hướng gadient được sử dụng, do đó các thay đổi trong quỹ đạo được làm mịn đáng kể, hướng tới việc tối ưu hàm chi phí, từ đó giảm tài nguyên tính toán cần thiết để huấn luyện.
AngularGrad
Các thách thức của SGD có thể tóm lược vào 3 điểm:
-
Chọn được learning rate rất khó
-
Cùng một learning rate được trong một epoch được sử đụng để update toàn bộ parameter.
-
Nó dễ bị kẹt ở các cực tiểu cục bộ trong quá trình tối ưu hóa
Để khắc phục vấn đề thứ 3 một hệ số được đưa vào để tăng tốc SGD theo hướng liên quan và giảm dao động, đã tạo ra SGDM, với việc thêm một tham số \(\gamma\) trong vector cập nhật từ bước trước đó vào bước hiện tại. Tuy nhiên, cần có adaptive learning rate để giải quyết những vấn đề liên quan đến tốc độ học không đổi. Adam4 optimizer đã được phát triển để cải thiện. Nó lưu trữ giá trị trung bình giảm theo cấp số nhân \(m_t\) và giá trị trung bình giảm theo cấp số nhân bình phương \(v_t\) trong các gradients trước. Tuy nhiên, mặc dù khai thác được thông tin thay đổi của các gradients trong quá khứ để tinh chỉnh, nhưng nó không thể loại bỏ phương sai cao của gradients trong các bước trung gian. AngularGrad giới thiệu một tối ưu mới trong đó có tính đến góc giữa hai gradients liên tiếp trong quá trình tối ưu. Một hệ số góc mới được tính như sau
với \({\lambda_1,\lambda_2} \in {0,1}\) là những hyperparameters. Theo kinh nghiệm, giá trị tốt nhất là \(\lambda_1 = \lambda_2 = \frac{1}{2}\). \(\sphericalangle\) biểu diễn \(\cos \measuredangle\) hoặc \(\tan \measuredangle\) trong khi \(\tanh(x)\) là một hàm phi tuyến tính nén tất cả các giá trị \(x\) giữa \(-1\) và \(1\) theo công thức sau:
và \(A_t\) là góc giữa các bước gradients liên tiếp \(g_t\) và \(g_{t-1}\). Tương tự, góc giữa các gradients bước \((t^-1)^{th}\) được tính toán và gọi là là \(A^{t-1}\). Vậy, \(A_{min} = min(A_{t-1}, A_t)\)

Hệ số góc \(\phi_t\) được sử dụng để điều chỉnh learning rate. AngularGrad không chỉ đảm bảo rằng các bản cập nhật tham số sẽ nhỏ hơn trong các vùng thay đổi độ dốc thấp và ngược lại, mà còn giảm độ biến thiên cao của các độ dốc vì nó giảm thiểu cosin hướng của hai độ dốc liên tiếp trong mỗi bước. Để làm được việc đó, nó tính toán hai moments \(m_t\) và \(v_t\), hai moments hiệu chỉnh bias \(\widehat{m_t}\) và \(\widehat{v_t}\). Việc cập nhật tham số được thực hiện theo công thức sau
Chi tiết về AngularGrad được mô tả theo mã giả dưới đây
Công thức trên đạt được 3 bổ đề:
-
Cần ít thời gian hơn để hội tụ nếu đường đi của đường cong mượt mà hơn thay vì ngoằn ngoèo.
-
Cần ít epochs hơn để đạt đến giá trị tối thiểu nếu đường cong mượt mà hơn thay vì ngoằn ngoèo
-
Hệ số góc làm cho các bản cập nhật không thay đổi theo những thay đổi độ cong đột ngột.
Để chứng minh cho công thức, mô hình hóa bài toán tối ưu hóa như một hồi quy trên ba hàm không lồi một chiều, thực hiện tối ưu hóa trên các hàm này bằng cách sử dụng SGDM, Adam, diffGrad, AdaBelief, \(AngularGrad^{\cos}\) và \(AngularGrad^{\tan}\). Ba hàm không lồi được mô tả như sau:
với \(x \in (-\infty, +\infty)\) là input.
Hình trên mô tả \(F1\), \(F2\) và \(F3\) theo thứ tự từ trên xuống. Hàm \(F1\) có một giá trị cực tiểu cục bộ trong khi \(F2\) và \(F3\) có hai. Chúng được setting như sau: decay rates của moments bậc nhất, bậc hai \((\beta_1, \beta_2)\) là 0.95 và 0.999; các moments \((m,v)\) được khởi tạo bằng 0; learning rate \(\alpha = 0.1\) và tham số \(\theta\) được khởi tạo bằng \(-1\). Khởi tạo gradient ở bước \(1^{st}, (g_0) = 0\). Chạy vòng lặp 300 lần, regression loss và \(\theta\) được ghi lại để phân tích. Cột đầu tiên mô tả function shapes, trong khi hai cột còn lại mô tả regression loss so với số iterations, số parameters với số iterations tương ứng.
Hình 2c cho thấy Adam và AdaBelief vượt qua giá trị trung bình \(\theta = -0.3\) và cuối cùng hội tụ tại \(\theta = 0.2\). Tuy vậy, chúng không tiến tới zero loss mà hội tụ ở 0.05, trong khi đối với SGDM, diffGrad, \(AngularGrad^{\cos}\) và \(AngularGrad^{\tan}\) đều hội tụ \(loss=0\) (hình 2b). Nguyên nhân được đưa ra là do hiệu ứng zigzagging (nhiễu) của đường cong, hệ số góc \(\phi\) được giới thiệu để giảm nó và tiến tới mức tối thiểu toàn cục. Điều tương tự cũng thấy ở hình 2e và 2f, trong đó không chỉ Adam mà cả SGDM đều không thể hội tự tại loss = 0.
Cuối cùng, trong Hình 2h và 2i, chúng ta quan sát thấy rằng tất cả các trình tối ưu hóa đều hội tụ tại \(loss=0\) có thể tránh bị mắc kẹt trong cực tiểu cục bộ và đạt cực tiểu toàn cục. Tuy nhiên, dao động của \(AngularGrad^{\cos}\) và \(AngularGrad^{\tan}\) nhỏ hơn gần mức tối thiểu toàn cục. Do đó, chúng đạt được sự hội tụ chính xác hơn. Tóm lại, phân tích thực nghiệm cho thấy rõ ràng rằng, trong số các hàm đã đề cập ở trên, \(AngularGrad^{\cos}\) và \(AngularGrad^{\tan}\) không bị kẹt ở cực tiểu cục bộ và hội tụ đến cực tiểu toàn cục nhanh hơn nhiều khi so sánh với các trình tối ưu hóa cạnh tranh khác.
-
Yann LeCun, Yoshua Bengio, and Geoffrey Hinton. Deep learning. nature, 521(7553):436–444, 2015. ↩
-
Léon Bottou and others. Stochastic gradient learning in neural networks. Proceedings of Neuro-Nımes, 91(8):12, 1991. ↩
-
Ning Qian. On the momentum term in gradient descent learning algorithms. Neural networks, 12(1):145–151, 1999. ↩
-
Diederik P Kingma and Jimmy Ba. Adam: a method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014. ↩↩
-
Swalpa Kumar Roy, Mercedes Eugenia Paoletti, Juan Mario Haut, Shiv Ram Dubey, Purbayan Kar, Antonio Plaza, and Bidyut B Chaudhuri. Angulargrad: a new optimization technique for angular convergence of convolutional neural networks. arXiv preprint arXiv:2105.10190, 2021. ↩