Biến thể của GradientDescent

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu chế tạo thiết bị nhận diện đối tượng ứng dụng thư viện xử lý ảnh TENSORFLOW (Trang 41 - 43)

Khi quan sát tác dụng của trọng lực lên một hòn bi đang di chuyển phía trong của một mặt cong như hình 2.11 chúng ta có thể hiểu được các thức hoạt động của

33

Gradient Descent. Nhìn vào hình ta thấy, viên bi luôn kết thúc ở điểm đáy của mặt cong này dù cho có di chuyển qua lại giữa hai điểm A và B như thế nào đi nữa.

Hình 2.11: Ví dụ về Gradient Desent và biến thể momentum

Nếu mặt cong có hai đáy như hình b thì tùy vào điểm đặt của viên bi sẽ cho kết quả kết thúc tại vị trí đáy D (điểm tối thiểu cục bộ không mong muốn) hoặc đáy C. Thêm nữa, vận tốc ban đầu khi xuất phát từ B đủ lớn, sẽ làm bi vượt qua điểm D theo quán tính, và vượt qua cả dốc bên trái của điểm D. Để nhận được kết quả mong muốn, tiếp tục, giả sử vận tốc ban đầu tăng thêm đủ lớn, bi có thể vượt dốc tới điểm E rồi lăn xuống C như trong hình c). Thuật toán Momentum ra đời dựa trên việc quan sát hiện tượng này, thuật toán có thể khắc phục nhược điểm nghiệm của phương pháp Gradient Descent rơi vào một điểm tối thiểu cục bộ không mong muốn. Trong Gradient Descent, cần phải tính lượng thay đổi ở thời điểm t để cập nhật vị trí mới cho nghiệm.

Nếu chúng ta coi đại lượng này như vận tốc vt vị trí mới của nghiệm là:

θt+1 = θt – vt (2.1)

Dấu trừ thể hiện việc phải di chuyển ngược với đạo hàm. Để vận tốc hiện tại mang cả thông tin độ dốc và thông tin vận tốc cũ chúng ta có thể sử dụng công thức sau:

vt =𝛾 vt1 + η∇θJ(θ) (2.2)

Trong đó γ là đại lượng tỉ lệ giữ tốc độ, vt1 là tốc độ thời điểm trước, ∇θJ(θ) là độ dốc thời điểm trước đó. Sau khi tiến hành thay đổi, vị trí mới của nghiệm là:

θ=θ − vt (2.3) Thuật toán đơn giản này được đánh giá có hiệu quả tốt hơn trong các bài toán thực tế Momentum giúp hòn bi vượt qua được dốc giá trị cực tiểu địa phương, tuy nhiên, có một hạn chế: Khi tới gần đích, momemtum vẫn mất khá nhiều thời gian trước khi dừng lại. Lý do chính là vì có quán tính. Có một phương pháp khác tiếp tục giúp khắc phục điều này, phương pháp đó mang tên Nesterov accelerated gradient (NAG), giúp cho thuật toán hội tụ nhanh hơn. Với momentum

34

thông thường: lượng thay đổi là tổng của hai vector: momentum vector và gradient ở thời điểm hiện tại. Với Nesterove momentum: lượng thay đổi là tổng của hai vector: momentum vector và gradient ở thời điểm được xấp xỉ là điểm tiếp theo. Với cách tiếp cận này giúp cho việc dò nghiệm sớm đạt được kết quả hơn GradientDescent với Momentum.

Điều kiện dừng: Theo lý thuyết chương trình tối ưu chỉ dừng cho đến khi tìm được điểm toàn cục thực sự của phương trình, tuy nhiên như đã nói ở trên trong thực tế việc này là gần như không thể do việc chọn các hệ số không thể quá nhỏ và thời gian chấp nhận được để thực hiện tối ưu một chương trình là có hạn. Chính vì thế chúng ta phải chấp nhận điểm nghiệm ở mức sai số nào đó phù hợp với các yêu cầu của chúng ta. Và khi sai số ở mức nào đó chúng ta sẽ quyết định dừng chương trình. Trong thực tế có một số phương pháp như sau:

Giới hạn số vòng lặp: để chương trình chạy không quá lâu thì cách phổ biến được dùng là giới hạn số vòng lặp, khi áp dụng phương pháp này cũng tồn tại một nhược điểm đó là sẽ làm chương trình dừng trước khi tiến gần với nghiệm.

So sánh giá trị: hàm mất mát của nghiệm ở các lần cập nhật liên tiếp luôn được so sánh giá trị khi chương trình phát hiện ra giá trị đủ nhỏ sẽ dừng lại.Tuy nhiên, tại một thời điểm nếu đồ thị hàm số có dạng bằng phẳng tại một khu vực nào đó nhưng khu vực đó không chứa điểm tối thiểu cục bộ chương trình sẽ dừng mà vẫn chưa đạt được kết quả cần.

Để khắc phục thì đơn giản là sau vài lần cập nhật sẽ tiến hành là so sánh nghiệm, nếu sự thay đổi qua nhiều điểm liên tiếp luôn nhận được kết quả ở mức đủ nhỏ thì kết luận đó là nghiệm.

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu chế tạo thiết bị nhận diện đối tượng ứng dụng thư viện xử lý ảnh TENSORFLOW (Trang 41 - 43)

Tải bản đầy đủ (PDF)

(62 trang)