Vì sao cần tối ưu hóa trong ML?

Cách các mô hình thực sự học, từ gradient descent thuần túy đến Adam

Học máy trông có vẻ như là dự đoán, phân loại, sinh nội dung, gợi ý. Nhưng bên dưới lớp vỏ đó chỉ là một hành động toán học lặp đi lặp lại: chọn các con số, đo xem chúng tệ đến đâu, rồi thay đổi các con số đó để làm giảm mức độ tệ. Đó chính là tối ưu hóa.

Các con số đó là tham số của mô hình, thường được gom lại thành một vectơ khổng lồ duy nhất θ. Điểm số đo mức độ tệ là hàm mất mát, viết là L(θ). Huấn luyện nghĩa là tìm kiếm trong không gian tham số một thiết lập khiến hàm mất mát đó nhỏ nhất. Ký hiệu tắt bên dưới nói đúng điều đó: argmin trả về đầu vào chiến thắng (giá trị θ khiến mất mát nhỏ nhất), chứ không phải điểm số chiến thắng, và dấu sao trên θ⋆ đánh dấu đó là thiết lập tốt nhất.

Một bảng điều khiển tưới nhà kính có thể có hàng nghìn vùng vòi phun nhỏ xíu. Mỗi thiết lập làm thay đổi mức độ khỏe mạnh của cây trồng, nhưng bạn chỉ nhìn thấy điểm số mùa vụ cuối cùng sau khi nước đã chảy xong. Một mạng nơ-ron cũng tương tự: các tham số là những thiết lập vòi phun, hàm mất mát là điểm số mùa vụ mà bạn muốn cải thiện, và tối ưu hóa là quy tắc để thay đổi nhiều thiết lập cùng một lúc.

Vị trí của nó trong MLĐây là lý do tối ưu hóa nằm ở trung tâm của ML. Lan truyền ngược tính ∇L. SGD, momentum, RMSProp và Adam quyết định cách sử dụng nó. Lịch trình kiểm soát kích thước bước, và chính quy hóa định hình lại mục tiêu. Một khi huấn luyện có nghĩa là cực tiểu hóa L(θ), câu hỏi chính trở nên đơn giản: các tham số nên di chuyển như thế nào?
▶ Vì sao cần tối ưu hóa trong ML?
← Bất đẳng thức tập trung (tóm lược)Tốc độ học →