Tôi muốn biết liệu Gradient có phải là thuật toán chính được sử dụng trong các trình tối ưu hóa như Adam, Adagrad, RMSProp và một số trình tối ưu hóa khác hay không.
Tôi muốn biết liệu Gradient có phải là thuật toán chính được sử dụng trong các trình tối ưu hóa như Adam, Adagrad, RMSProp và một số trình tối ưu hóa khác hay không.
Câu trả lời:
Số Gradient gốc được sử dụng trong các thuật toán tối ưu hóa sử dụng gradient làm cơ sở cho chuyển động bước của nó. Adam
, Adagrad
và RMSProp
tất cả đều sử dụng một số hình thức giảm độ dốc, tuy nhiên chúng không tạo nên mọi trình tối ưu hóa. Các thuật toán tiến hóa như Tối ưu hóa dòng hạt và Thuật toán di truyền được lấy cảm hứng từ các hiện tượng tự nhiên không sử dụng độ dốc. Các thuật toán khác, như Tối ưu hóa Bayes , lấy cảm hứng từ số liệu thống kê.
Kiểm tra trực quan hóa này của Tối ưu hóa Bayes trong hành động:
Ngoài ra còn có một vài thuật toán kết hợp các khái niệm từ tối ưu hóa tiến hóa và dựa trên độ dốc.
Các thuật toán tối ưu hóa không dựa trên đạo hàm có thể đặc biệt hữu ích trong các hàm chi phí không lồi không đều, các hàm chi phí không phân biệt hoặc các hàm chi phí có đạo hàm trái hoặc phải khác nhau .
Để hiểu lý do tại sao người ta có thể chọn một thuật toán tối ưu hóa dựa trên không phái sinh. Hãy xem chức năng điểm chuẩn Rastrigin . Tối ưu hóa dựa trên Gradient không phù hợp để tối ưu hóa các chức năng với rất nhiều cực tiểu cục bộ.
Theo tiêu đề:
Không. Chỉ có các loại tối ưu hóa cụ thể được dựa trên Gradient Descent. Một ví dụ đơn giản là khi tối ưu hóa trên một không gian riêng biệt nơi độ dốc không được xác định.
Theo thân:
Có. Adam, Adagrad, RMSProp và các trình tối ưu hóa tương tự khác (Nesterov, Nadam, v.v.) đều đang cố gắng đề xuất kích thước bước thích ứng (tốc độ học tập) để giảm độ dốc để cải thiện tốc độ hội tụ mà không làm giảm hiệu suất (tức là dẫn đến mức tối thiểu cục bộ / tối đa).
Điều đáng chú ý là cũng có các phương pháp Newton và các phương pháp gần giống với Newton, hoạt động với đạo hàm bậc hai của hàm mất (độ dốc gốc hoạt động với đạo hàm bậc nhất). Các phương pháp này đã mất đi sự đánh đổi khả năng mở rộng tốc độ xuống độ dốc do số lượng lớn các tham số mô hình trong các vấn đề thực tế.
Một số ghi chú thêm
Hình dạng của hàm mất phụ thuộc vào cả tham số mô hình và dữ liệu, vì vậy việc chọn phương thức tốt nhất luôn phụ thuộc vào nhiệm vụ và cần dùng thử và lỗi.
Phần ngẫu nhiên của độ dốc gốc đạt được bằng cách sử dụng một lô dữ liệu thay vì dữ liệu hoàn chỉnh. Kỹ thuật này song song với tất cả các phương pháp được đề cập, có nghĩa là tất cả chúng có thể là ngẫu nhiên (sử dụng một lô dữ liệu) hoặc xác định (sử dụng toàn bộ dữ liệu).
Câu trả lời cho câu hỏi có thể là không. Lý do đơn giản là do có nhiều thuật toán tối ưu hóa có sẵn, nhưng việc chọn một thuật toán phụ thuộc nhiều vào bối cảnh và thời gian bạn có để tối ưu hóa. Ví dụ, thuật toán di truyền là một phương pháp tối ưu hóa nổi tiếng không có bất kỳ độ dốc nào bên trong nó. Ngoài ra còn có các cách tiếp cận khác như quay lui trong một số bối cảnh. Tất cả đều có thể được sử dụng mà không tận dụng bước xuống dốc từng bước.
Mặt khác, đối với các tác vụ như hồi quy, bạn có thể tìm dạng gần để giải bài toán để tìm cực trị, nhưng vấn đề là tùy thuộc vào không gian đặc trưng và số lượng đầu vào bạn có thể chọn phương trình dạng gần hoặc độ dốc hạ xuống để giảm số lượng tính toán.
Trong khi có rất nhiều thuật toán tối ưu hóa, trong các mạng lưới thần kinh, các cách tiếp cận dựa trên độ dốc được sử dụng nhiều hơn do nhiều lý do. Trước hết, họ rất nhanh. Trong tìm hiểu sâu, bạn phải cung cấp rất nhiều dữ liệu để chúng không thể được tải vào bộ nhớ cùng một lúc. Do đó, bạn phải áp dụng các phương pháp gradient hàng loạt để tối ưu hóa. Đó là một công cụ thống kê một chút nhưng bạn có thể xem xét rằng mỗi mẫu bạn mang đến mạng của mình có thể có phân phối gần giống với dữ liệu thực và có thể đủ đại diện để tìm một gradient có thể gần với độ dốc thực của hàm chi phí nên được xây dựng bằng cách sử dụng tất cả dữ liệu trong tay.
Thứ hai, Độ phức tạp của việc tìm các cực trị bằng ma trận và nghịch đảo của chúng là cho một tác vụ hồi quy đơn giản mà các tham số có thể được tìm thấy bằng . Nó chỉ ra rằng các phương pháp dựa trên độ dốc đơn giản có thể có hiệu suất tốt hơn. Cũng cần đề cập rằng trong trường hợp trước, bạn phải đưa dữ liệu đồng thời vào bộ nhớ, điều này là không thể đối với những trường hợp bạn xử lý các tác vụ dữ liệu lớn.
Thứ ba, có những vấn đề tối ưu hóa không nhất thiết phải có giải pháp dạng gần. Hồi quy logistic là một trong số đó.
Chà, bạn đã chọn các trình tối ưu hóa được sử dụng trong các mạng thần kinh, các trình tối ưu hóa đó sử dụng các thuật toán dựa trên độ dốc. Hầu hết các thuật toán dựa trên độ dốc được sử dụng trong các mạng thần kinh. Tại sao vậy? Chà, bạn muốn thử tìm mức tối thiểu khi biết độ dốc của đường cong hay không biết nó? Khi bạn không thể tính toán độ dốc thì bạn sẽ quay trở lại tối ưu hóa không có đạo hàm . Điều đó đang được nói, có những trường hợp mặc dù bạn có thông tin về độ dốc, tốt hơn là sử dụng phương pháp không có độ dốc. Đây thường là trường hợp với các hàm có rất nhiều cực tiểu cục bộ. Các thuật toán dựa trên dân số như chiến lược tiến hóa và thuật toán di truyền chiếm ưu thế ở đây. Và cũng có nhánh tối ưu hóa tổ hợp trong đó sử dụng toàn bộ các công cụ khác nhau.