Phụ lục I TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỀ TÀI MÔN HỌC SÂU Đề tài HUẤN LUYỆN HỌC SÂU GIẢNG VIÊN THÀNH VIÊN NHÓM 5 ThS Lê Anh Nhã Uyên Nguyễn Thành[.]
Trang 1BÁO CÁO ĐỀ TÀI MÔN: HỌC SÂU
Đề tài: HUẤN LUYỆN HỌC SÂU
GIẢNG VIÊN THÀNH VIÊN NHÓM 5:
ThS Lê Anh Nhã Uyên Nguyễn Thành Công - 1900716 Hùynh Minh Toàn - 1900460 Huỳnh Thanh Tài - 1900538 Hồ Thị Ngọc Trang - 1900777
Lớp: KHM0119
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN
-
Trang 3-MỤC LỤC
NHẬN XÉT CỦA GIẢNG VIÊN i
1 Giới thiệu tối ưu hóa (optimization) cho mạng học sâu 1
2 Các cách khởi tạo biến Khởi tạo trọng số 1
3 Phương pháp tối ưu Gradient descent và Momentum: 2
4 Một số biến thể tìm kiếm bước giảm (Learning Rate) 3
5 Giới thiệu chính quy hóa (regularization) 3
TÀI LIỆU THAM KHẢO 10
Trang 41. Giới thiệu tối ưu hóa (optimization) cho mạng học sâu
Trong huấn luyện mạng học sâu, tối ưu hóa là quá trình tìm kiếm giá trị tối ưu của một hàm mất mát (loss function) trên tập dữ liệu huấn luyện Mục đích của quá trình này là tìm ra các trọng số (weights) và các siêu tham số (hyperparameters) mà làm cho mạng học sâu hoạt động tốt nhất trên tập dữ liệu huấn luyện và các tập dữ liệu khác.Tối ưu hóa trong huấn luyện mạng học sâu có thể được thực hiện bằng nhiều cách khác nhau, bao gồm: Gradient descent và các biến thể của nó: Gradient descent là phương pháp tối ưu hóa phổ biến nhất trong huấn luyện mạng học sâu Nó hoạt động bằng cách tính toán gradient của hàm mất mát đối với từng trọng số và cập nhật trọng số bằng cách di chuyển theo hướng đối lập với gradient Các biến thể của gradient descent bao gồm stochastic gradient descent, mini-batch gradient descent, và momentum gradient descent Học sâu bayesian: Học sâu bayesian là một phương pháp tối ưu hóa phức tạp hơn so với gradient descent, nhưng nó cũng có thể cung cấp các giá trị trọng số tối ưu cho mạng học sâu Thay vì cố định các trọng số như trong gradient descent, học sâu bayesian đưa ra một phân phối xác suất cho các trọng số Tối ưu hóa siêu tham số: Siêu tham số là các tham số mà không phải là trọng số của mạng học sâu, như tốc độ học (learning rate), kích thước batch (batch size) và số lượng lớp ẩn (hidden layers) Tối ưu hóa siêu tham số là quá trình tìm kiếm giá trị tối ưu của các siêu tham số này Các phương pháp tối ưu hóa siêu tham số bao gồm tìm kiếm ngẫu nhiên, tìm kiếm dựa trên mô hình (model-based search) và tối ưu hóa đa nhiệm (multi-task optimization).Các thuật toán học sâu liên quan đến việc tối ưu hóa trong nhiều ngữ cảnh Ví dụ, thực hiện suy luận trong các
mô hình như PCA liên quan đến việc giải quyết vấn đề tối ưu hóa vấn đề Chúng ta thường sử dụng tối ưu hóa phân tích để viết bằng chứng hoặc thuật toán thiết kế Trong tất cả các vấn đề tối ưu hóa liên quan đến học sâu, vấn đề quan trọng nhất khó khăn là đào tạo mạng lưới thần kinh Việc đầu tư hàng ngày đến hàng tháng là điều khá phổ biến Thời gian trên hàng trăm máy để giải quyết dù chỉ một trường hợp duy nhất của hệ thần kinh bài toán huấn luyện mạng Bởi vì vấn đề này rất quan trọng và rất tốn kém, một bộ kỹ thuật tối ưu hóa chuyên biệt đã được phát triển để giải quyết nó Chương này trình bày các kỹ thuật tối ưu hóa cho đào tạo mạng thần kinh Chúng ta bắt đầu với một mô tả về cách tối ưu hóa được sử dụng như một thuật toán đào tạo cho một nhiệm vụ học máy khác với tối ưu hóa thuần túy Tiếp theo, trình bày những thách thức cụ thể khiến việc tối ưu hóa mạng lưới thần kinh trở nên khó khăn Sau đó xác định một số thuật toán thực tế, bao gồm cả hai thuật toán tối ưu hóa bản thân và các chiến lược để khởi tạo các tham số Các thuật toán
Trang 5nâng cao hơn điều chỉnh tỷ lệ học tập của chúng trong quá trình đào tạo hoặc tận dụng thông tin có trong đạo hàm cấp hai của hàm chi phí Cuối cùng, kết luận với một đánh giá về một số chiến lược tối ưu hóa được hình thành bằng cách kết hợp tối
ưu hóa đơn giản các thuật toán thành các thủ tục cấp cao hơn
2 Các cách khởi tạo biến Khởi tạo trọng số
Khởi tạo trọng số là một việc quan trọng khi phát triển các mô hình mạng nơ-ron học sâu
Các nơ ron trong mạng nơ-ron bao gồm các tham số được gọi là trọng số được sử dụng để tính tổng trọng số của các đầu vào
Các mô hình mạng nơ ron fit dữ liệu bằng cách sử dụng một thuật toán tối ưu hóa gọi là stochastic gradient descent để thay đổi từng bước trọng số mạng để giảm thiểu hàm loss, hy vọng tạo ra một bộ trọng số cho khả năng đưa ra các dự đoán hữu ích
Khởi tạo trọng số là một thủ tục để đặt trọng số của mạng nơ-ron thành các giá trị ngẫu nhiên nhỏ để xác định điểm bắt đầu cho việc tối ưu hóa của mô hình mạng nơ-ron Đào tạo mô hình deep learning là một nhiệm vụ khó khăn mà hầu hết các thuật toán bị ảnh hưởng mạnh bởi sự lựa chọn khởi tạo Điểm ban đầu có thể xác định liệu thuật toán có hội tụ hay không, với một số điểm ban đầu không ổn định đến mức thuật toán gặp khó khăn và thất bại hoàn toàn Mỗi lần, mạng nơ-ron được khởi tạo với một tập trọng số khác nhau, dẫn đến một điểm khởi đầu khác nhau cho quá trình tối ưu hóa và có khả năng dẫn đến một tập hợp trọng số cuối cùng khác và hiệu suất của mạng sẽ khác nhau
Khởi tạo trọng số cho Sigmoid và Tanh
Cách tiếp cận tiêu chuẩn để khởi tạo trọng số của các lớp mạng nơron và các nút sử dụng chức năng kích hoạt Sigmoid hoặc Tanh được gọi là khởi tạo “glorot” hoặc
“xavier”
Khởi tạo Xavier
Phương pháp khởi tạo xavier được tính như một số ngẫu nhiên có phân phối xác suất đồng nhất (U) giữa phạm vi −(1/sqrt(n))- (1 / sqrt (n))−(1/sqrt(n)) và 1/sqrt(n)1 / sqrt (n)1/sqrt(n) , trong đó nnn là số lượng đầu vào cho nút
1/sqrt(n)]weight=U[−(1/sqrt(n)),1/sqrt(n)]
Khởi tạo Xavier chuẩn hóa
Trang 6Phương pháp khởi tạo xavier chuẩn hóa được tính toán dưới dạng số ngẫu nhiên có phân phối xác suất đồng nhất (U) giữa phạm vi –(sqrt(6)/sqrt(n+m)) và sqrt(6)/sqrt(n+m), trong đó n là số lượng đầu vào và m là số đầu ra từ lớp
weight = U [-(sqrt(6)/sqrt(n + m)), sqrt(6)/sqrt(n + m)]weight=U[− (sqrt(6)/sqrt(n+m)),sqrt(6)/sqrt(n+m)]
Khởi tạo trọng số cho Relu
Việc khởi tạo trọng số “xavier” được phát hiện có vấn đề khi được sử dụng để khởi tạo các mạng sử dụng chức năng kích hoạt tuyến tính (ReLU)
Do đó, một phiên bản sửa đổi của cách tiếp cận đã được phát triển đặc biệt cho các nút và lớp sử dụng kích hoạt ReLU, phổ biến trong các lớp ẩn của hầu hết các mô hình mạng nơ ron đa lớp và Perceptron nhiều lớp
Khởi tạo trọng số He
Phương pháp khởi tạo He được tính toán dưới dạng một số ngẫu nhiên có phân phối
xác suất Gaussian (G) với giá trị trung bình là 0,0 và độ lệch chuẩn là sqrt(2/n)sqrt
(2 / n)sqrt(2/n) , trong đó nnn là số đầu vào cho nút
weight=G(0.0,sqrt(2/n))weight = G (0.0, sqrt(2/n))weight=G(0.0,sqrt(2/n))
3 Phương pháp tối ưu Gradient descent và Momentum:
a Gradient Descent:
Trong các bài toán tối ưu, chúng ta thường tìm giá trị nhỏ nhất của 1 hàm số nào đó, mà hàm số đạt giá trị nhỏ nhất khi đạo hàm bằng 0 Nhưng đâu phải lúc nào đạo hàm hàm số cũng được, đối với các hàm số nhiều biến thì đạo hàm rất phức tạp, thậm chí là bất khả thi Nên thay vào đó người ta tìm điểm gần với điểm cực tiểu nhất và xem đó là nghiệm bài toán Gradient Descent dịch ra tiếng Việt là giảm dần độ dốc, nên hướng tiếp cận ở đây là chọn 1 nghiệm ngẫu nhiên cứ sau mỗi vòng lặp (hay epoch) thì cho nó tiến dần đến điểm cần tìm
Công thức : xnew = xold - learningrate.gradient(x)
Đặt câu hỏi tại sao có công thức đó ? Công thức trên được xây dựng để cập
nhật lại nghiệm sau mỗi vòng lặp Dấu '-' trừ ở đây ám chỉ ngược hướng đạo
hàm Đặt tiếp câu hỏi tại sao lại ngược hướng đạo hàm ?
Ví dụ như đối với hàm f(x)= 2x +5sin(x) như hình dưới thì f'(x) =2x + 5cos(x)
với x_old =-4 thì f'(-4) <0 => x_new > x_old nên nghiệm sẽ di chuyển về bên phải tiến gần tới điểm cực tiểu
ngược lại với x_old =4 thì f'(4) >0 => x_new <x_old nên nghiệm sẽ di chuyển
về bên trái tiến gần tới điểm cực tiểu
Gradient cho hàm một biến:
Trang 8Qua các hình trên ta thấy Gradient descent phụ thuộc vào nhiều yếu tố : như nếu chọn điểm x ban đầu khác nhau sẽ ảnh hưởng đến quá trình hội tụ; hoặc tốc độ học (learning rate) quá lớn hoặc quá nhỏ cũng ảnh hưởng: nếu tốc độ học quá nhỏ thì tốc
độ hội tụ rất chậm ảnh hưởng đến quá trình training, còn tốc độ học quá lớn thì tiến nhanh tới đích sau vài vòng lặp tuy nhiên thuật toán không hội tụ, quanh quẩn quanh đích vì bước nhảy quá lớn
Gradient descent cho hàm nhiều biến :
Trang 9Ưu điểm :
Thuật toán gradient descent cơ bản, dễ hiểu Thuật toán đã giải quyết được vấn
đề tối ưu model neural network bằng cách cập nhật trọng số sau mỗi vòng lặp
Nhược điểm :
Vì đơn giản nên thuật toán Gradient Descent còn nhiều hạn chế như phụ thuộc vào nghiệm khởi tạo ban đầu và learning rate
Ví dụ 1 hàm số có 2 global minimum thì tùy thuộc vào 2 điểm khởi tạo ban đầu sẽ cho ra 2 nghiệm cuối cùng khác nhau
Tốc độ học quá lớn sẽ khiến cho thuật toán không hội tụ, quanh quẩn bên đích
vì bước nhảy quá lớn; hoặc tốc độ học nhỏ ảnh hưởng đến tốc độ training
b Momentum
Để khắc phục các hạn chế trên của thuật toán Gradient Descent người ta dùng gradient descent with momentum Vậy gradient with momentum là gì ?
Trang 10Để giải thích được Gradient with Momentum thì trước tiên ta nên nhìn dưới góc độ vật lí: Như hình b phía trên, nếu ta thả 2 viên bi tại 2 điểm khác nhau
A và B thì viên bị A sẽ trượt xuống điểm C còn viên bi B sẽ trượt xuống điểm
D, nhưng ta lại không mong muốn viên bi B sẽ dừng ở điểm D (local minimum) mà sẽ tiếp tục lăn tới điểm C (global minimum) Để thực hiện được điều đó ta phải cấp cho viên bi B 1 vận tốc ban đầu đủ lớn để nó có thể vượt qua điểm E tới điểm C Dựa vào ý tưởng này người ta xây dựng nên thuật toán Momentum ( tức là theo đà tiến tới )
Nhìn dưới góc độ toán học, ta có công thức Momentum:
xnew = xold -(gama.v + learningrate.gradient)
Trong đó :
xnew: tọa độ mới
xod : tọa độ cũ
gama: parameter , thường =0.9
learningrate : tốc độ học
gradient : đạo hàm của hàm f
Trang 11Qua 2 ví dụ minh họa trên của hàm f(x) = x.2 + 10sin(x), ta thấy GD without momentum sẽ hội tụ sau 5 vòng lặp nhưng không phải là global minimum Nhưng GD with momentum dù mất nhiều vòng lặp nhưng nghiệm tiến tới
Trang 12minimum và dao động qua lại quanh điểm đó trước khai dừng lại.
Ưu điểm :
Thuật toán tối ưu giải quyết được vấn đề: Gradient Descent không tiến được tới điểm global minimum mà chỉ dừng lại ở local minimum
Nhược điểm :
Tuy momentum giúp hòn bi vượt dốc tiến tới điểm đích, tuy nhiên khi tới gần đích, nó vẫn mất khá nhiều thời gian giao động qua lại trước khi dừng hẳn, điều này được giải thích vì viên bi có đà
4 Một số biến thể tìm kiếm bước giảm (Learning Rate)
a Tìm kiếm từ thô tới tinh
Ý tưởng của phương pháp này là lựa chọn ngẫu nhiên trong một không gian siêu tham số và tìm ra một miền mà tại đó tập trung các giá trị của siêu tham số khiến cho loss function thấp.Tiếp tục lặp lại quá trình trên đối với vùng nhỏ vừa tìm được để tìm ra vùng nhỏ hơn
b Tìm kiếm dựa trên không gian scale logarithm
Khi sử dụng phân phối đều trên khoảng [0, 1] để lựa chọn ngẫu nhiên learning rate, 10% sẽ rơi vào [0, 0.1] và 90% sẽ rơi vào [0.1, 1], nhưng trên thực tế, learning rate gần như không bao giờ rơi vào [0.1, 1] Learning rate bởi vậy thông thường không tuân theo phân bố đều
Do đó, ý tưởng của phương pháp là lấy logarithm cơ số 10 của learning rate và thực hiện tìm kiếm trên miền không gian lúc này, chẳng hạn chọn [-5, 0], thì lúc này learning rate phân bố đều trên các miền giá trị nhỏ [0.00001, 0.0001], [0.0001, 0.001], [0.001, 0.01], [0.01, 0.1], [0.1, 1]
c Tuning learning rate theo loss function
Ý tưởng của phương pháp là tăng dần learning rate theo batch iteration và theo dõi loss function trên từng batch iteration Có 3 trường hợp xảy ra:
Những vị trí mà learning rate nhỏ sẽ khiến cho đường biểu diễn giá loss gần như nằm ngang
Những vị trí có learning rate phù hợp sẽ biểu thị đường biểu diễn giá trị loss
đi xuống cho thấy loss function đang hội tụ dần
Những vị trí có learning rate cao sẽ khiến cho hàm loss biến đổi thất thường, tăng, giảm hoặc dao động ngẫu nhiên như hình dưới
Trang 13Khi đó ta sẽ lấy learning rate ở điểm chính giữa đường hạ dốc của loss function (điểm màu đỏ như hình dưới)
Trang 145 Giới thiệu chính quy hóa (regularization).
Chính quy hóa đề cập đến các kỹ thuật được sử dụng để hiệu chỉnh các mô hình máy học nhằm giảm thiểu tổn thất được điều chỉnh và ngăn chặn việc phù hợp quá mức ( Overfitting ) và thiếu phù hợp (Underfitting)
5.1 Overfitting và Underfitting.
Overfitting là mô hình rất hợp lý, rất khớp với tập huấn luyện nhưng khi đem ra dự đoán với dữ liệu mới thì lại không phù hợp Nguyên nhân có thể do ta chưa đủ dữ liệu để đánh giá hoặc do mô hình của ta quá phức tạp Mô hình bị quá phức tạp khi mà mô hình của ta sử dụng cả những nhiễu lớn trong tập dữ liệu để học, dấn tới mất tính tổng quát của mô hình Ví dụ như ở phía bên phải ở trên Mô hình của ta gần như mong muốn bao được hết tất cả các điểm làm cho biên độ dao động của nó lớn quá mức Mô hình này mà dự đoán với 1 giá trị mới của x thì khả năng y sẽ bị lệch
đi rất nhiều
Underfitting là mô hình được coi là chưa khớp nếu nó chưa được chưa phù hợp với tập dữ liệu huấn luyện và cả các mẫu mới khi dự đoán Nguyên nhân có thể là do
mô hình chưa đủ độ phức tạp cần thiết để bao quát được tập dữ liệu Ví dụ như phía bên trái ở trên Tập dữ liệu huấn luyện loanh quanh khúc y=sin(2pi x) thế nhưng mô hình của ta chỉ là một đường thẳng mà thôi Rõ ràng như vậy thì nó không những không thể ước lượng được giá trị của y với mới mà còn không hiệu quả với cả tập
dữ liệu (x,y) có sẵn
5.2 Variance và Bias
Variance (Phương sai) cho chúng ta biết về sự lây lan của các điểm dữ liệu Nó tính toán một điểm dữ liệu khác bao nhiêu so với giá trị trung bình của nó và khoảng cách của nó so với các điểm khác trong tập dữ liệu
Bias ( Độ lệch )là sự khác biệt giữa dự đoán trung bình và giá trị mục tiêu
Mối quan hệ của Variance và Bias:
Độ lệch thấp và phương sai thấp sẽ tạo ra một mô hình cân bằng, trong khi độ lệch cao dẫn đến việc trang bị đầy đủ và phương sai cao dẫn đến việc trang bị quá mức
Trang 15Độ lệch thấp: Dự đoán trung bình rất gần với giá trị mục tiêu
Độ lệch cao: Các dự đoán khác quá nhiều so với giá trị thực tế
Phương sai thấp: Các điểm dữ liệu nhỏ gọn và không thay đổi nhiều so với giá trị trung bình của chúng
Phương sai cao: Các điểm dữ liệu rải rác với các biến thể lớn từ giá trị trung bình và các điểm dữ liệu khác
Để tạo ra sự phù hợp, chúng ta cần có sự cân bằng chính xác giữa độ lệch và phương sai
3.5.2 Các kỹ thuật chính quy hóa.
Có hai loại kỹ thuật chính quy hóa chính: chính quy hóa Ridge (L2) và chính quy hóa Lasso (L1)
Chính quy hóa Lasso (Least Absolute Shrinkage and Selection Operator ) :
Sửa đổi các mô hình phù hợp quá mức hoặc thiếu phù hợp bằng cách thêm hình