Trình tối ưu hóa thực hiện thuật toán Adadelta.
Tối ưu hóa Adadelta là phương pháp giảm độ dốc ngẫu nhiên dựa trên tốc độ học thích ứng trên mỗi chiều để giải quyết hai nhược điểm:
- tốc độ học tập liên tục giảm trong suốt quá trình đào tạo
- nhu cầu về tỷ lệ học tập toàn cầu được chọn thủ công
Adadelta là một phần mở rộng mạnh mẽ hơn của Adagrad, giúp điều chỉnh tốc độ học tập dựa trên cửa sổ chuyển động của các cập nhật độ dốc, thay vì tích lũy tất cả các độ dốc trong quá khứ. Bằng cách này, Adadelta tiếp tục học hỏi ngay cả khi đã thực hiện nhiều cập nhật. So với Adagrad, trong phiên bản gốc của Adadelta, bạn không cần phải đặt tốc độ học tập ban đầu. Trong phiên bản này, tốc độ học ban đầu có thể được đặt, giống như trong hầu hết các trình tối ưu hóa khác.
Theo phần 4.3 ("Tỷ lệ học tập hiệu quả"), khi gần kết thúc kích thước bước đào tạo hội tụ về 1, đây thực sự là tỷ lệ học tập cao sẽ gây ra sự phân kỳ. Điều này chỉ xảy ra ở gần cuối quá trình đào tạo vì độ dốc và kích thước bước nhỏ và hằng số epsilon trong tử số và mẫu số chiếm ưu thế trong quá khứ và cập nhật tham số hội tụ tốc độ học về 1.
Theo phần 4.4("Dữ liệu giọng nói"), trong đó một mạng lưới thần kinh lớn với 4 lớp ẩn được huấn luyện trên kho dữ liệu tiếng Anh Mỹ, ADADELTA đã được sử dụng với 100 bản sao mạng. Epsilon được sử dụng là 1e-6 với rho=0,95. hội tụ nhanh hơn ADAGRAD, theo cách xây dựng sau: new AdaDelta(graph, 1.0f, 0.95f, 1e-6f);
Hằng số
Sợi dây | TÍCH LŨY | |
Sợi dây | ACCUMULATOR_UPDATE | |
trôi nổi | EPSILON_DEFAULT | |
trôi nổi | LEARNING_RATE_DEFAULT | |
trôi nổi | RHO_DEFAULT |
Hằng số kế thừa
Nhà xây dựng công cộng
Phương pháp công cộng
Sợi dây | getOptimizerName () Lấy tên của trình tối ưu hóa. |
Sợi dây | toString () |
Phương pháp kế thừa
Hằng số
chuỗi tĩnh cuối cùng công khai ACCUMULATOR
Chuỗi cuối cùng tĩnh công khai ACCUMULATOR_UPDATE
float cuối cùng tĩnh công khai EPSILON_DEFAULT
float cuối cùng tĩnh công khai LEARNING_RATE_DEFAULT
float cuối cùng tĩnh công khai RHO_DEFAULT
Nhà xây dựng công cộng
AdaDelta công khai (Biểu đồ đồ thị , float learningRate)
Tạo Trình tối ưu hóa AdaDelta
Thông số
đồ thị | đồ thị TensorFlow |
---|---|
tỷ lệ học | tỷ lệ học tập |
AdaDelta công khai (Biểu đồ đồ thị , float learningRate, float rho, float epsilon)
Tạo Trình tối ưu hóa AdaDelta
Thông số
đồ thị | đồ thị TensorFlow |
---|---|
tỷ lệ học | tỷ lệ học tập |
rho | Yếu tố phân rã |
epsilon | Một epsilon không đổi được sử dụng để điều chỉnh bản cập nhật grad tốt hơn |
AdaDelta công khai (Biểu đồ đồ thị , Tên chuỗi, float learningRate)
Tạo Trình tối ưu hóa AdaDelta
Thông số
đồ thị | đồ thị TensorFlow |
---|---|
tên | tên của Trình tối ưu hóa này (mặc định là 'Adadelta') |
tỷ lệ học | tỷ lệ học tập |
public AdaDelta (Biểu đồ đồ thị , Tên chuỗi, float learningRate, float rho, float epsilon)
Tạo Trình tối ưu hóa AdaDelta
Thông số
đồ thị | đồ thị TensorFlow |
---|---|
tên | tên của Trình tối ưu hóa này (mặc định là 'Adadelta') |
tỷ lệ học | tỷ lệ học tập |
rho | Yếu tố phân rã |
epsilon | Một epsilon không đổi được sử dụng để điều chỉnh bản cập nhật grad tốt hơn |
Phương pháp công cộng
Chuỗi công khai getOptimizerName ()
Lấy tên của trình tối ưu hóa.
Trả lại
- Tên trình tối ưu hóa.