Ví dụ sử dụng phân biệt tự động như được triển khai trong Tensorflow là gì và tại sao nó lại quan trọng?


7

Tôi có một nắm bắt tốt về mạng lưới thần kinh, lan truyền ngược và quy tắc chuỗi tuy nhiên tôi đang đấu tranh để hiểu sự khác biệt tự động.

Dưới đây đề cập đến sự khác biệt tự động bên ngoài bối cảnh lan truyền trở lại:

  • Làm thế nào để phân biệt tự động tính toán độ dốc từ một ma trận?
  • Các yêu cầu để tính toán một gradient là gì? Có một chức năng cần phải được chỉ định?
  • Một số trường hợp sử dụng cho điều này (khác sau đó lan truyền trở lại) là gì?
  • Tại sao nó quan trọng và các lựa chọn thay thế là gì?

Tui bỏ lỡ điều gì vậy?


3
Phân biệt tự động, còn được gọi là phân biệt thuật toán, là một cách tự động để tính toán các đạo hàm của một hàm được chỉ định bởi một chương trình máy tính, nhưng các hàm có thể được xác định gián tiếp bởi chương trình máy tính. Nó rất hữu ích cho việc tính toán độ dốc, Jacobian và Hessian để sử dụng trong tối ưu hóa số, trong số những thứ khác. Backpropagation là việc thực hiện chế độ đảo ngược của phân biệt tự động để tính toán độ dốc của vấn đề tối ưu hóa mạng thần kinh Xem en.wikipedia.org/wiki/Automatic_differentiation .
Mark L. Stone

3
Các lựa chọn thay thế là sự khác biệt mang tính biểu tượng và sự khác biệt hữu hạn, cả hai thường chậm hơn và sự khác biệt hữu hạn có thể kém chính xác hơn. Các dẫn xuất được mã hóa bằng tay có thể được sử dụng nếu con người có thể tìm ra đạo hàm, nhưng dễ bị lỗi của con người trong nhiều trường hợp.
Mark L. Stone

Tôi có thể tìm thấy các ví dụ đơn giản để xem cách nó được thực hiện ở đâu? Đó có phải là tf.gradientphương pháp tôi nên xem xét?
Greg

3
Xem danh sách các phần mềm và công cụ phân biệt tự động tại liên kết Wikipedia và các liên kết bao gồm sử dụng ví dụ. Một cách khác để phân biệt tự động là phân biệt bước phức tạp (đạo hàm) aero-comlab.stanford.edu/Papers/martins.aiaa.01-0921.pdf , kết thúc gần giống như chế độ chuyển tiếp tự động.
Mark L. Stone

Câu trả lời:


12

Trong các hệ thống phân biệt tự động chủ yếu là một toán tử (ví dụ: phép trừ, phép trừ) được định nghĩa cùng với sự khác biệt của nó.

Vì vậy, sau khi bạn viết một hàm bằng cách sắp xếp một loạt các toán tử, hệ thống có thể tự mình tìm ra cách tính các đạo hàm tương ứng, thường là bằng cách sử dụng các biểu đồ tính toán và quy tắc chuỗi.

Sự khác biệt tự động có lợi cho tối ưu hóa dựa trên độ dốc (ví dụ: đào tạo mạng thần kinh bằng cách sử dụng độ dốc), vì nó giúp chúng ta tránh khỏi việc làm toán, thực hiện mã và xác minh các đạo hàm theo từng trường hợp.

Dưới đây là cách xác định toán tử (op) trong TheanoTensorflow .

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.