TÌM HIỂU VỀ GRADIENT DESCENT

TÌM HIỂU VỀ GRADIENT DESCENT LÀ GÌ?

Uniduc JSC - 2020-03-30 08:09:54 | 1290 lượt xem

Mục lục

Tìm hiểu về Gradient Descent

"Gần như tất cả việc học sâu được cung cấp bởi một thuật toán rất quan trọng: Stochastic Gradient Descent (SGD)" - Goodfellow et al.

Tại thời điểm này, chúng ta có một sự hiểu biết mạnh mẽ về khái niệm parameterized learning. Kết thúc bài trước, chúng ta đã thảo luận về khái niệm parameterized learning và cách thức loại này học tập cho phép chúng ta xác định hàm chấm điểm ánh xạ dữ liệu đầu vào của chúng ta sang nhãn lớp đầu ra.
Hàm tính điểm này được xác định theo hai tham số quan trọng; cụ thể, trọng số của chúng ta ma trận W và vectơ sai lệch của chúng ta b. Hàm chấm điểm của chúng ta chấp nhận các tham số này làm đầu vào và trả về một dự đoán cho mỗi điểm dữ liệu đầu vào x_i.
Chúng ta cũng đã thảo luận về hai hàm mất phổ biến: SVM với nhiều lớp và cross-entropy. Các hàm mất mát, ở cấp độ cơ bản nhất, được sử dụng để định lượng mức độ tốt hoặc tệ của phân lớp (nghĩa là một tập hợp các tham số) đang phân loại các điểm dữ liệu đầu vào trong dữ liệu của chúng ta.
Với các khối xây dựng này, giờ chúng ta có thể chuyển sang khía cạnh quan trọng nhất của máy học, mạng lưới thần kinh, và học tập sâu - tối ưu hóa. Các thuật toán tối ưu hóa là các công cụ cung cấp công cụ cho các mạng thần kinh và cho phép chúng học các mẫu từ dữ liệu. Trong suốt này bài này, chúng ta học được rằng việc có được một bộ phân loại có độ chính xác cao phụ thuộc vào việc tìm một bộ trọng số W và b sao cho các điểm dữ liệu của chúng ta được phân loại chính xác.
Nhưng làm thế nào để chúng ta đi tìm và thu được ma trận trọng số W và vectơ sai lệch b đạt được độ chính xác phân loại cao? Chúng ta có ngẫu nhiên khởi tạo chúng, đánh giá và lặp lại không và một lần nữa, hy vọng rằng đến một lúc nào đó chúng ta sẽ thu được trên một tập hợp các tham số đạt được phân loại hợp lý? Chúng ta có thể - nhưng cho rằng các mạng học sâu hiện đại có các tham số con số hàng chục triệu, chúng ta có thể mất nhiều thời gian để thử nghiệm một cách ngẫu nhiên trên một tập hợp lý
của các tham số.
Thay vì dựa vào tính ngẫu nhiên thuần túy, chúng ta cần xác định một thuật toán tối ưu hóa cho phép chúng ta thực sự cải thiện W và b. Trong bài này, chúng ta sẽ xem xét thuật toán phổ biến nhất được sử dụng để đào tạo mạng lưới thần kinh và mô hình học tập sâu - Gradient Descent. Gradient Descent có nhiều biến thể (mà chúng tôi cũng sẽ thảo luận vào), nhưng, trong mỗi trường hợp, ý tưởng là như nhau: lặp đi lặp lại đánh giá các tham số của bạn, tính toán tổn thất, sau đó thực hiện một bước nhỏ theo hướng sẽ giảm thiểu tổn thất đó.

Gradient Descent là gì?

Thuật toán Gradient Descent có hai cách tiếp cận chính:
    1. Phương pháp tiêu chuẩn của vanilla.
    2. Phiên bản stochastic đã được tối ưu hóa, được sử dụng phổ biến hơn.
Trong phần này, chúng tôi sẽ xem xét phương pháp vanilla để tạo cơ sở cho chúng ta nắm vấn đề. Sau khi chúng ta hiểu những điều cơ bản về Gradient Descent, chúng tôi sẽ chuyển sang phiên bản stochastic. Sau đó, chúng ta sẽ xem xét một số thay đỏi mà chúng tôi có thể thêm vào Gradient Descent, bao gồm động lượng và gia tốc Nesterov

Bề mặt mất mát và tối ưu hóa bề mặt

Phương pháp Gradient Descent là một thuật toán tối ưu hóa lặp đi lặp lại hoạt động trong bề mặt mất mát (còn gọi là bề mặt tối ưu hóa). Ví dụ Gradient Descent chính tắc là
trực quan hóa các trọng số của chúng ta dọc theo trục x và sau đó mất cho một tập các trọng số cho trước dọc theo trục y

Như chúng ta có thể thấy, bề mặt mất mát của chúng ta có nhiều đỉnh và thung lũng dựa trên giá trị tham số đảm nhận. Mỗi đỉnh là một cực đại cục bộ đại diện cho các vùng mất mát cao - mức tối đa cục bộ với tổn thất lớn nhất trong toàn bộ bề mặt mất mát là mức tối đa cục bộ. Tương tự, chúng tôi cũng có mức tối thiểu cục bộ đại diện cho nhiều vùng mất mát nhỏ.
Mức tối thiểu cục bộ với tổn thất nhỏ nhất trên bề mặt mất mát là mức tối thiểu cục bộ của chúng ta. Trong một vị trí lý tưởng, chúng ta muốn tìm mức tối thiểu toàn cầu này, đảm bảo các thông số của chúng ta đảm nhận giá trị tối ưu nhất có thể.
Vì vậy, điều đó đặt ra câu hỏi: "Nếu chúng ta muốn đạt đến mức tối thiểu toàn cầu, tại sao không trực tiếp nhảy với nó? Nó có thể thấy rõ trên hình vẽ?"
Nhưng có một vấn đề - bề mặt mất mát là vô hình đối với chúng ta. Chúng ta không thực sự biết những gì nó giống như. Nếu chúng ta là một thuật toán tối ưu hóa, chúng ta sẽ không có thông tin ở đâu đó trên cốt hình vẽ, không biết bề mặt trước mặt chúng ta trông như thế nào và chúng ta sẽ phải điều hướng theo cách của mình đến mức tối thiểu mất mà không vô tình leo lên đỉnh của mức tối đa bộ phận.
Cá nhân chúng ta, chúng ta không bao giờ có được thông tin về bề mặt mất mát này - nó quá đơn giản và nó thường khiến chúng ta nghĩ rằng việc gradient descent (và các biến thể của nó) cuối cùng sẽ tìm thấy một cục bộ hoặc tối thiểu bộ phận. Câu nói này không đúng, đặc biệt là đối với các vấn đề phức tạp - và chúng ta sẽ giải thích tại sao sau này trong bài này. Thay vào đó, chúng ta nhìn vào một hình dung khác về cảnh mất mát mà chúng ta tin một công việc tốt hơn mô tả vấn đề. Ở đây chúng ta có một cái bát, tương tự như cái bạn có thể ăn ngũ cốc hoặc súp ra khỏi như hình bên trên.
Bề mặt của bát của chúng ta là bề mặt mất mát, là một biểu đồ của hàm mất mát. Các sự khác biệt giữa bề mặt mất mát của chúng tôi và bát ngũ cốc của chúng ta là bát ngũ cốc của chúng ta chỉ tồn tại trong ba chiều, trong khi bề mặt mất mát của chúng ta tồn tại ở nhiều chiều, có thể là hàng chục, hàng trăm hoặc ngàn chiều.
Mỗi vị trí dọc theo bề mặt của bát tương ứng với một giá trị tổn thất cụ thể được cung cấp một bộ tham số W (ma trận trọng số) và b (vectơ sai lệch). Mục tiêu của chúng ta là thử các giá trị khác nhau của W và b, đánh giá tổn thất của họ, và sau đó tiến một bước tới các giá trị tối ưu hơn mà (lý tưởng nhất) có tổn thất thấp hơn.

Chuyển đổi Gradient trong Gradient Descent

Để làm cho lời giải thích của chúng tôi về Gradient Descent trực quan hơn một chút, hãy giả sử rằng chúng ta có một robot - hãy để tên của anh ấy là Chad như hình trên. Khi thực hiện Gradient Descent, chúng ta ngẫu nhiên thả Chad ở đâu đó trên bề mặt mất mát của chúng ta.

Bây giờ Chad Chad làm việc để điều hướng đến đáy của bề mặt mât mát (nơi có tổn thất tối thiểu). Có vẻ dễ dàng phải không? Tất cả những gì Chad phải làm là tự định hướng sao cho anh ấy đối mặt với xuống dốc và đi theo độ dốc cho đến khi anh chạm đáy bát. Nhưng ở đây, vấn đề là: Chad là một robot rất thông minh. Chad chỉ có một cảm biến - cảm biến này cho phép anh ta lấy tham số W và b của mình và sau đó tính toán hàm mất L. Do đó, Chad là có thể tính toán vị trí tương đối của mình trên bề mặt mất mát, nhưng anh ta hoàn toàn không biết hướng anh ta nên thực hiện một bước để di chuyển gần hơn đến đáy của bề mặt mất mát.
Chad phải làm gì? Câu trả lời là áp dụng Gradient Descent. Tất cả những gì Chad cần làm là làm theo độ dốc của độ dốc W. Chúng ta có thể tính toán độ dốc W trên tất cả các kích thước bằng cách sử dụng phương trình sau:

Trong thực tế, chúng ta sử dụng gradient phân tích thay thế. Phương pháp này chính xác và nhanh chóng, nhưng vô cùng thách thức để thực hiện do các dẫn xuất một phần và tính toán đa biến. Chứng minh đầy đủ của phép tính đa biến được sử dụng để chứng minh độ dốc gốc nằm ngoài phạm vi của bài này. Nếu bạn quan tâm đến việc tìm hiểu thêm về độ dốc số và phân tích, tôi muốn đề xuất bài giảng này bởi Zibulevsky, ghi chú học máy Andrew Ng, cs229, cũng như các ghi chú cs231n.


Vì sự cô động của cuộc bài này, chúng ta chỉ cần nắm đước Gradient Descent là gì: cố gắng tối ưu hóa các tham số của chúng ta cho tổn thất thấp và độ chính xác phân loại cao thông qua quy trình lặp thực hiện một bước theo hướng giảm thiểu tổn thất

Chúc bạn thành đạt trong công việc và hạnh phúc trong cuộc sống !

Hotline / Zalo: 0903 666 014

Website: https://uniduc.com/vi

-------------////--------------------------------------------////------------

HUMANOID ROBOT CỦA CÔNG TY UNIDUC SẢN XUẤT PHÁT TRIỂN.

Đăng kí nhận tin mới



Đánh giá bài viết

0%

0 Tổng người đánh giá
5
0%
4
0%
3
0%
2
0%
1
0%
THÔNG TIN LIÊN HỆ

Công ty Cổ phần Uniduc

Địa Chỉ: 22 Đường Số 54, Phường Thảo Điền, Quận 2

Hotline: 086 567 7939 (Phòng Kinh Doanh / HTKT)

Email: [email protected]

Website: https://uniduc.com/vi

 

 
TỔNG QUAN

Công ty Cổ Phần Uniduc chuyên cung cấp các loại robot phục vụ, Agv Robot, hệ thống tự động. Với kinh nghiệm nghiên cứu lâu năm và đội ngũ kỹ sư năng động sáng tạo. Hi vọng Uniduc là điếm đến công nghệ là nơi khách hàng luôn gửi trọn niềm tin. Chúng tôi sẽ luôn luôn phấn đấu cung cấp cho bạn giải pháp, máy móc, dịch vụ tốt nhất.

TIN MỚI
ĐĂNG KÝ NHẬN TIN

Nhận bản tin thường xuyên để cập nhật giá bán và các chương trình khuyến mãi.


©2018 - 2022 Copyright Uniduc., Jsc. Sitemap