trên trang này:

  • 1. nhập
    • gradient descent
    • ví dụ đơn giản với python
      • điểm xuất phát khác nhau
      • tốc độ học tập khác nhau
      • quay lại hồi quy tuyến tính
      • sau đây là ví dụ về python và một số ghi chú lập trình
        • bằng chứng dẫn xuất
          • giải thích hình học
          • giải thích phân tích
          • với các hàm đa biến

          1. giới thiệu

          Bạn sẽ thấy hình vẽ sau quen thuộc:

          Bạn đang xem: Gradient descent là gì

          Điểm màu xanh lục là điểm cực tiểu cục bộ và cũng là điểm làm cho hàm đạt giá trị nhỏ nhất. từ bây giờ tôi sẽ sử dụng giá trị tối thiểu cục bộ cho mức tối thiểu và mức tối thiểu toàn cục cho điểm mà hàm đạt giá trị nhỏ nhất. mức tối thiểu toàn cầu là một trường hợp đặc biệt của mức tối thiểu cục bộ.

          giả sử chúng ta quan tâm đến một hàm của một biến có các đạo hàm ở khắp mọi nơi. hãy để tôi nhắc lại một số điều đã quá quen thuộc:

          1. điểm cực tiểu cục bộ (x ^ * ) của một hàm là điểm tại đó đạo hàm (f ‘(x ^ *) ) bằng 0, hơn nữa, trong vùng lân cận của nó. , đạo hàm của các điểm bên trái (x ^ * ) không dương, đạo hàm của các điểm bên phải (x ^ * ) không âm.

            đường thẳng tiếp tuyến với đồ thị của hàm số đó tại một điểm bất kỳ có hệ số góc chính bằng đạo hàm của hàm số tại điểm đó.

            Trong hình trên, các điểm ở bên trái của cực tiểu cục bộ màu xanh lá cây có đạo hàm âm, các điểm bên phải có đạo hàm dương. và đối với hàm này, càng về bên trái cực tiểu cục bộ, đạo hàm càng âm, càng xa bên phải, đạo hàm càng dương.

            dốc xuống

            Trong học máy nói riêng và tối ưu hóa nói chung, chúng ta thường cần tìm giá trị nhỏ nhất (hoặc đôi khi là lớn nhất) của một hàm nhất định. ví dụ, các hàm mất mát trong hồi quy tuyến tính và tích lũy k-mean. Nói chung, việc tìm ra mức tối thiểu toàn cục của các hàm mất mát trong học máy là rất khó, thậm chí là không thể. thay vào đó, mọi người thường cố gắng tìm ra các điểm tối thiểu cục bộ và ở một mức độ nào đó, coi chúng là giải pháp mong muốn cho vấn đề.

            Xem thêm: đau khổ là gì

            Các điểm cực tiểu tại địa phương là nghiệm của phương trình đạo hàm bằng không. nếu bằng cách nào đó chúng ta có thể tìm thấy tất cả các điểm cực tiểu (hữu hạn), chúng ta chỉ cần thay từng điểm cực tiểu cục bộ đó vào trong hàm. sau đó tìm điểm khiến cho hàm số có giá trị nhỏ nhất (đoạn văn này nghe quen quen nhỉ?). tuy nhiên, trong hầu hết các trường hợp, không thể giải phương trình đạo hàm bằng không. nguyên nhân có thể đến từ sự phức tạp của dạng đạo hàm, do có nhiều điểm dữ liệu hoặc do có quá nhiều điểm dữ liệu.

            Cách tiếp cận phổ biến nhất là bắt đầu từ một điểm mà chúng ta nghĩ là gần với lời giải của bài toán, sau đó sử dụng một phép toán lặp để dần dần đến điểm chúng ta muốn tìm, nghĩa là cho đến khi đạo hàm gần bằng 0 . gradient descent (viết tắt là gd) và các biến thể của nó là một trong những phương pháp được sử dụng nhiều nhất.

            Vì kiến ​​thức của tôi về gd khá rộng nên tôi muốn chia nó thành hai phần. Phần 1 này giới thiệu ý tưởng đằng sau thuật toán gd và một số ví dụ đơn giản để bạn làm quen với thuật toán và một số khái niệm mới. phần 2 sẽ nói về các phương pháp cải tiến gd và các biến thể của gd trong các bài toán mà số thứ nguyên và số lượng điểm dữ liệu lớn. những loại vấn đề này được gọi là quy mô lớn.

            2. gradient descent cho một hàm của 1 biến

            Quay lại bản vẽ ban đầu và một số quan sát tôi đã thực hiện. giả sử (x_ {t} ) là điểm chúng ta tìm thấy sau vòng lặp (t ). chúng ta cần tìm một thuật toán để nhận được (x_ {t} ) gần với (x ^ * ) nhất có thể.

            Trong hình ảnh đầu tiên, chúng tôi có thêm hai quan sát:

            1. nếu đạo hàm của hàm trong (x_ {t} ): (f ‘(x_ {t}) & gt; 0 ) thì (x_ {t} ) nằm bên phải so với (x ^ * ) (và ngược lại). để đưa điểm tiếp theo (x_ {t + 1} ) đến gần (x ^ * ) hơn, chúng ta cần di chuyển (x_ {t} ) sang trái, tức là âm. nói cách khác, chúng ta cần di chuyển dấu đối diện của đạo hàm : [x_ {t + 1} = x_ {t} + delta ] trong đó ( delta ) là dấu đại lượng đối lập với đạo hàm (f ‘(x_ {t}) ).

              (x_ {t} ) ở bên phải (x ^ * ) lớn hơn 0 (và ngược lại). thì xung lượng ( delta ), trực quan hơn, tỷ lệ thuận với (- f ‘(x_ {t}) ).

              Hai nhận xét ở trên cung cấp cho chúng tôi một cập nhật đơn giản: [x_ {t + 1} = x_ {t} – eta f ‘(x_ {t}) ]

              Xem thêm: Đầu số 05 là mạng gì? Ý nghĩa của đầu số 05? Có phải đầu số đẹp? – Thegioididong.com

              trong đó ( eta ) (phát âm là eta) là một số dương được gọi là tỷ lệ học tập. dấu trừ cho thấy chúng ta phải đi ngược lại với đạo hàm (đây cũng là lý do tại sao phương pháp này được gọi là gradient descent – descent có nghĩa là ngược lại). Những nhận xét đơn giản trên, mặc dù không có giá trị cho tất cả các vấn đề, nhưng là cơ sở của nhiều phương pháp tối ưu hóa nói chung và các thuật toán học máy nói riêng.

              ví dụ đơn giản với python

              Xét hàm (f (x) = x ^ 2 + 5 sin (x) ) với đạo hàm (f ‘(x) = 2x + 5 cos (x) ) (một tỷ lệ) Tôi chọn hàm này vì không dễ tìm nghiệm đạo hàm bằng 0 như hàm trước). giả sử rằng bắt đầu từ một điểm nào đó (x_ {0} ), trong vòng lặp (t ), chúng ta sẽ cập nhật như sau: [x_ {t + 1} = x_ {t} – eta (2x_ { t} + 5 cos (x_ {t})) ]

              như thường lệ, tôi khai báo một số thư viện quen thuộc

              Tiếp theo, tôi viết các hàm:

              1. độ để tính đạo hàm
              2. chi phí để tính giá trị của hàm. hàm này không được sử dụng trong thuật toán, nhưng thường được sử dụng để kiểm tra xem đạo hàm có đúng hay không hoặc để xem liệu giá trị của hàm có giảm theo mỗi vòng lặp hay không.
              3. mygd1 là phần chính.
              4. mygd1 là phần chính, nó thực hiện thuật toán giảm độ dốc đã đề cập ở trên. đầu vào cho chức năng này là tốc độ học và điểm bắt đầu. thuật toán dừng khi đạo hàm đủ nhỏ.

              điểm xuất phát khác nhau

              sau khi có các chức năng cần thiết, tôi đã thử thử nghiệm với các điểm khởi tạo khác nhau của (x_ {0} = -5 ) và (x_ {0} = 5 ).

              vì vậy, đối với các điểm xuất phát khác nhau, thuật toán của chúng tôi tìm thấy gần như cùng một giải pháp, mặc dù với tốc độ hội tụ khác nhau. Dưới đây là hình minh họa thuật toán gd cho vấn đề này (nó có vẻ ổn trên máy tính để bàn ở chế độ toàn màn hình).

              Machine Learning cơ bảnMachine Learning cơ bản

              Từ hình minh họa trên ta thấy rằng ở hình bên trái, tương ứng với (x_{0} = -5), nghiệm hội tụ nhanh hơn, vì điểm ban đầu (x_0) gần với nghiệm ( x^* approx -1) hơn. Hơn nữa, với (x_{0} = 5 ) ở hình bên phải, đường đi của nghiệm có chứa một khu vực có đạo hàm khá nhỏ gần điểm có hoành độ bằng 2. Điều này khiến cho thuật toán la cà ở đây khá lâu. Khi vượt qua được điểm này thì mọi việc diễn ra rất tốt đẹp.

              tỷ lệ học tập khác nhau

              tốc độ hội tụ của gd không chỉ phụ thuộc vào điểm xuất phát ban đầu mà còn phụ thuộc vào tốc độ học tập. đây là một ví dụ có cùng xuất phát điểm (x_ {0} = -5 ) nhưng tốc độ học tập khác nhau:

              Xem thêm: Kanban là gì? Hệ thống bảng Kanban hiệu quả nhất – Học viện Agile

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *