Thông số siêu dữ liệu là các biến kiểm soát nhiều khía cạnh của quá trình huấn luyện. Ba tham số siêu dữ liệu phổ biến là:
Ngược lại, tham số là các biến, chẳng hạn như trọng số và độ lệch, là một phần của chính mô hình. Nói cách khác, tham số siêu dữ liệu là các giá trị mà bạn kiểm soát; tham số là các giá trị mà mô hình tính toán trong quá trình huấn luyện.
Tốc độ học
Tốc độ học là một số dấu phẩy động mà bạn đặt, ảnh hưởng đến tốc độ hội tụ của mô hình. Nếu tốc độ học quá thấp, thì mô hình có thể mất nhiều thời gian để hội tụ. Tuy nhiên, nếu tốc độ học quá cao, mô hình sẽ không bao giờ hội tụ mà thay vào đó sẽ dao động xung quanh các trọng số và độ lệch giúp giảm thiểu tổn thất. Mục tiêu là chọn tốc độ học không quá cao cũng không quá thấp để mô hình hội tụ nhanh chóng.
Tốc độ học xác định mức độ thay đổi cần thực hiện đối với các trọng số và độ lệch trong mỗi bước của quá trình giảm độ dốc. Mô hình này nhân độ dốc với tốc độ học để xác định các tham số của mô hình (giá trị trọng số và độ chệch) cho lần lặp tiếp theo. Trong bước thứ ba của phương pháp hạ độ dốc, "một lượng nhỏ" để di chuyển theo hướng dốc âm đề cập đến tốc độ học.
Sự khác biệt giữa các tham số mô hình cũ và các tham số mô hình mới tương ứng với độ dốc của hàm mất mát. Ví dụ: nếu độ dốc lớn, mô hình sẽ thực hiện một bước lớn. Nếu nhỏ, bạn chỉ cần thực hiện một bước nhỏ. Ví dụ: nếu độ lớn của độ dốc là 2,5 và tốc độ học là 0,01, thì mô hình sẽ thay đổi thông số này thêm 0,025.
Tốc độ học lý tưởng giúp mô hình hội tụ trong một số lần lặp hợp lý. Trong Hình 21, đường cong tổn thất cho thấy mô hình này cải thiện đáng kể trong 20 lần lặp đầu tiên trước khi bắt đầu hội tụ:
Hình 21. Biểu đồ tổn thất cho thấy một mô hình được huấn luyện bằng tốc độ học hội tụ nhanh.
Ngược lại, tốc độ học quá nhỏ có thể mất quá nhiều lần lặp để hội tụ. Trong Hình 22, đường cong tổn thất cho thấy mô hình chỉ cải thiện một chút sau mỗi lần lặp lại:
Hình 22. Biểu đồ tổn thất cho thấy một mô hình được huấn luyện với tốc độ học nhỏ.
Tốc độ học quá lớn sẽ không bao giờ hội tụ vì mỗi lần lặp lại sẽ khiến tổn thất tăng lên hoặc liên tục tăng lên. Trong Hình 23, đường cong tổn thất cho thấy mô hình giảm dần rồi tăng mức tổn thất sau mỗi lần lặp lại và trong Hình 24, đường cong tổn thất tăng lên ở các lần lặp lại sau:
Hình 23. Biểu đồ tổn thất cho thấy một mô hình được huấn luyện với tốc độ học quá lớn, trong đó đường cong tổn thất biến động mạnh, tăng lên và giảm xuống khi số lần lặp tăng lên.
Hình 24. Biểu đồ tổn hao cho thấy một mô hình được huấn luyện với tốc độ học quá lớn, trong đó đường cong tổn thất tăng lên đáng kể trong các lần lặp lại sau.
Bài tập: Kiểm tra mức độ hiểu bài
Kích thước lô
Kích thước lô là một siêu tham số tham chiếu đến số lượng ví dụ mà mô hình xử lý trước khi cập nhật trọng số và độ chệch. Bạn có thể cho rằng mô hình này nên tính toán mức tổn thất cho mọi ví dụ trong tập dữ liệu trước khi cập nhật trọng số và độ chệch. Tuy nhiên, khi một tập dữ liệu chứa hàng trăm nghìn hoặc thậm chí hàng triệu ví dụ, việc sử dụng toàn bộ lô không thực tế.
Hai kỹ thuật phổ biến để có được độ dốc phù hợp trên trung bình mà không cần xem xét mọi ví dụ trong tập dữ liệu trước khi cập nhật trọng số và độ lệch là lên xuống theo độ dốc ngẫu nhiên và lên xuống theo độ dốc ngẫu nhiên theo lô nhỏ:
Giảm độ dốc ngẫu nhiên (SGD): Phương pháp giảm độ dốc ngẫu nhiên chỉ sử dụng một ví dụ (kích thước lô là 1) cho mỗi lần lặp lại. Với đủ số lần lặp, SGD hoạt động nhưng rất nhiễu. "Độ nhiễu" dùng để chỉ các biến thể trong quá trình huấn luyện khiến mức tổn hao tăng lên thay vì giảm trong một vòng lặp. Thuật ngữ "ngẫu nhiên" cho biết rằng một ví dụ bao gồm từng lô được chọn ngẫu nhiên.
Hãy lưu ý trong hình ảnh sau đây về mức độ biến động nhỏ của tổn thất khi mô hình cập nhật trọng số và độ lệch bằng SGD, điều này có thể dẫn đến nhiễu trong biểu đồ tổn thất:
Hình 25. Mô hình được huấn luyện bằng phương pháp giảm độ dốc ngẫu nhiên (SGD) cho thấy nhiễu trong đường cong tổn thất.
Xin lưu ý rằng việc sử dụng phương pháp giảm độ dốc ngẫu nhiên có thể tạo ra nhiễu trong toàn bộ đồ thị tổn thất, chứ không chỉ gần điểm hội tụ.
Phương pháp giảm độ dốc ngẫu nhiên trên gói nhỏ (SGD trên gói nhỏ): Phương pháp giảm độ dốc ngẫu nhiên trên gói nhỏ là một giải pháp trung gian giữa phương pháp toàn bộ gói và SGD. Đối với số điểm dữ liệu $ N $, kích thước lô có thể là bất kỳ số nào lớn hơn 1 và nhỏ hơn $ N $. Mô hình chọn các ví dụ có trong mỗi lô một cách ngẫu nhiên, tính trung bình các độ dốc của chúng, sau đó cập nhật trọng số và độ lệch một lần cho mỗi lần lặp lại.
Việc xác định số lượng ví dụ cho mỗi lô phụ thuộc vào tập dữ liệu và tài nguyên điện toán có sẵn. Nhìn chung, kích thước lô nhỏ sẽ hoạt động như SGD, còn kích thước lô lớn sẽ hoạt động như quy trình giảm độ dốc theo lô toàn bộ.
Hình 26. Mô hình được huấn luyện bằng SGD trên gói nhỏ.
Khi huấn luyện một mô hình, bạn có thể nghĩ rằng nhiễu là một đặc điểm không mong muốn và cần được loại bỏ. Tuy nhiên, một lượng nhiễu nhất định có thể là điều tốt. Trong các mô-đun sau, bạn sẽ tìm hiểu cách nhiễu có thể giúp mô hình tổng quát hoá tốt hơn và tìm trọng số và độ lệch tối ưu trong mạng nơron.
Thời gian bắt đầu
Trong quá trình huấn luyện, thời gian bắt đầu có nghĩa là mô hình đã xử lý một lần mọi ví dụ trong tập huấn luyện. Ví dụ: với một tập hợp huấn luyện có 1.000 ví dụ và kích thước lô nhỏ là 100 ví dụ, thì sẽ cần 10 iterations mô hình để hoàn tất một khoảng thời gian bắt đầu của hệ thống.
Quá trình huấn luyện thường yêu cầu nhiều epoch. Điều này nghĩa là hệ thống cần phải xử lý mọi ví dụ trong tập huấn luyện nhiều lần.
Số epoch là một tham số siêu dữ liệu mà bạn đặt trước khi mô hình bắt đầu đào tạo. Trong nhiều trường hợp, bạn sẽ cần thử nghiệm số lượng epoch cần thiết để mô hình hội tụ. Nhìn chung, nhiều khoảng thời gian bắt đầu của hệ thống sẽ tạo ra mô hình tốt hơn, nhưng cũng cần nhiều thời gian hơn để huấn luyện.
Hình 27. Lô đầy đủ so với lô nhỏ.
Bảng sau đây mô tả mối quan hệ giữa kích thước lô và số epoch với số lần mô hình cập nhật các tham số của mô hình.
Loại lô | Thời điểm cập nhật trọng số và độ lệch |
---|---|
Toàn bộ lô | Sau khi mô hình xem xét tất cả ví dụ trong tập dữ liệu. Ví dụ: nếu một tập dữ liệu chứa 1.000 ví dụ và mô hình sẽ huấn luyện trong 20 khoảng thời gian bắt đầu của hệ thống, thì mô hình sẽ cập nhật các trọng số và độ lệch 20 lần, mỗi khoảng thời gian bắt đầu của hệ thống. |
Phương pháp giảm độ dốc ngẫu nhiên | Sau khi mô hình xem xét một ví dụ duy nhất trong tập dữ liệu. Ví dụ: nếu một tập dữ liệu chứa 1.000 ví dụ và huấn luyện trong 20 chu kỳ, thì mô hình sẽ cập nhật trọng số và độ lệch 20.000 lần. |
Phương pháp giảm độ dốc ngẫu nhiên trên gói nhỏ | Sau khi mô hình xem xét các ví dụ trong mỗi lô. Ví dụ: nếu một tập dữ liệu chứa 1.000 ví dụ và kích thước lô là 100, đồng thời mô hình huấn luyện trong 20 chu kỳ, thì mô hình sẽ cập nhật trọng số và độ lệch 200 lần. |