Sự khác biệt giữa các kỹ thuật backpropagation


17

Chỉ để cho vui, tôi đang cố gắng phát triển một mạng lưới thần kinh.

Bây giờ, để backpropagation tôi thấy hai kỹ thuật.

Cái đầu tiên được sử dụng ở đây và ở nhiều nơi khác nữa.

Những gì nó làm là:

  • Nó tính toán lỗi cho mỗi nơ ron đầu ra.
  • Nó sao lưu nó vào mạng (tính toán một lỗi cho mỗi nơron bên trong).
  • Nó cập nhật các trọng số với công thức: (trong đó sự thay đổi về trọng lượng, tốc độ học tập, lỗi của nơ ron nhận đầu vào từ khớp thần kinh và là đầu ra được gửi trên khớp thần kinh).
  • Nó lặp lại cho mỗi mục của bộ dữ liệu, nhiều lần theo yêu cầu.

Tuy nhiên, mạng lưới thần kinh được đề xuất trong hướng dẫn này (cũng có sẵn trên GitHub) sử dụng một kỹ thuật khác:

  • Nó sử dụng một hàm lỗi (phương thức khác không có hàm lỗi, nhưng nó không sử dụng nó cho đào tạo).
  • Nó có một chức năng khác có thể tính toán lỗi cuối cùng bắt đầu từ các trọng số.
  • Nó giảm thiểu chức năng đó (thông qua độ dốc giảm dần).

Bây giờ, nên sử dụng phương pháp nào?

Tôi nghĩ rằng cái đầu tiên là cái được sử dụng nhiều nhất (vì tôi đã thấy các ví dụ khác nhau sử dụng nó), nhưng nó có hoạt động tốt không?

Cụ thể, tôi không biết:

  • Nó không phải là đối tượng tối thiểu cục bộ (vì nó không sử dụng các hàm bậc hai)?
  • Do sự thay đổi của mỗi trọng lượng bị ảnh hưởng bởi giá trị đầu ra của nơ ron đầu ra của nó, nên các mục nhập của tập dữ liệu chỉ xảy ra để tạo ra các giá trị cao hơn trong các nơ ron (không chỉ các đầu ra) có ảnh hưởng đến các trọng số hơn các mục khác không?

Bây giờ, tôi thích kỹ thuật đầu tiên hơn, vì tôi thấy nó đơn giản hơn để thực hiện và dễ suy nghĩ hơn.

Mặc dù, nếu nó có những vấn đề tôi đã đề cập (mà tôi hy vọng nó không xảy ra), có lý do thực sự nào để sử dụng nó qua phương pháp thứ hai không?

Câu trả lời:


6

Hai ví dụ trình bày về cơ bản cùng một hoạt động:

  • Trong cả hai trường hợp, mạng được đào tạo với độ dốc giảm dần bằng cách sử dụng lỗi bình phương backpropagated được tính toán ở đầu ra.
  • Cả hai ví dụ sử dụng chức năng hậu cần để kích hoạt nút (đạo hàm của hàm logistic ss(1 - s). Phái sinh này rõ ràng là rất dễ dàng để tính toán, và đây là một phần lý do tại sao nó được sử dụng rất rộng rãi (những ngày này các ReLU chức năng kích hoạt là phổ biến hơn , đặc biệt với các mạng chập).
  • Phương pháp đầu tiên cũng sử dụng động lượng .

Sự khác biệt chính mà tôi có thể thấy là trong trường hợp đầu tiên backpropagation là lặp trong khi trong ví dụ thứ hai, nó được thực hiện trong chế độ hàng loạt.

Video cuối cùng trong sê-ri của Welch Labs giới thiệu một phương pháp gần như Newton mang lại lợi thế cho việc tìm ra mức tối thiểu của hàm chi phí bằng cách tính Hessian (ma trận các đạo hàm bậc hai của sai số đối với các trọng số). Tuy nhiên, điều này giống như so sánh táo và cam - dòng dõi vanilla không sử dụng thông tin thứ hai.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.