2014-10-01 43 views
5

Gần đây tôi bắt đầu suy nghĩ về việc triển khai thuật toán Levenberg-Marquardt để học một mạng thần kinh nhân tạo (ANN). Chìa khóa để thực hiện là tính toán ma trận Jacobian. Tôi đã dành một vài giờ để nghiên cứu chủ đề này, nhưng tôi không thể tìm ra cách tính toán nó một cách chính xác.Tính toán ma trận Jacobian cho mạng thần kinh nhân tạo

Giả sử tôi có một mạng chuyển tiếp đơn giản với 3 đầu vào, 4 nơron trong lớp ẩn và 2 đầu ra. Các lớp được kết nối hoàn toàn. Tôi cũng có 5 bộ học tập dài.

  1. Chính xác kích thước của ma trận Jacobian là gì?
  2. Tôi nên đặt chính xác những gì các dẫn xuất? (Ví dụ về các công thức cho các góc trên cùng bên trái, và phía dưới bên phải cùng với một số lời giải thích sẽ được hoàn hảo)

Điều này thực sự không giúp:

enter image description here

là gì Fx về mạng neural?

Trả lời

0

Vì vậy, từ kinh nghiệm của tôi làm việc với ANN và lan truyền ngược

  1. Jacobian ma trận tổ chức tất cả các đạo hàm riêng thành một ma trận n m x, đâu m là số lượng đầu ra và n là số lượng đầu vào. Vì vậy, trong trường hợp của bạn, nó phải là 2x3

  2. Vì vậy, hãy nói rằng có một tập hợp giữa 1 và k số đầu ra (F trong ảnh của bạn) và có là 1 và i số đầu vào (x trong ảnh của bạn) vì vậy các công thức nên là như thế này

     Fk 
    Jki = ---- 
         xi 
    

Xin lỗi tôi không biết làm thế nào để viết một định dạng công thức ở đây nhưng tôi hy vọng câu trả lời của tôi là đủ rõ ràng.
Nếu bạn có bất kỳ thắc mắc về câu trả lời của tôi hãy hỏi trong bình luận!

+0

Chức năng F trông như thế nào?Ngoài ra Abhinash trong câu trả lời của ông cho rằng kích thước của ma trận là khác với những gì bạn đề xuất (nếu tôi hiểu anh ta đúng). Có lẽ nếu tôi thấy hàm F, nó sẽ rõ ràng hơn. – gisek

7

Jacobian là ma trận của tất cả các dẫn xuất một phần của đơn hàng đầu tiên của hàm có giá trị vector. Trong trường hợp mạng nơron, nó là một N-by-W ma trận, trong đó N là số lượng các mục trong tập huấn luyện của chúng tôi và W là tổng số các thông số (trọng lượng + thành kiến) của mạng của chúng tôi. Nó có thể được tạo ra bằng cách lấy các đạo hàm riêng của mỗi đầu ra đối với mỗi cân, và có dạng:

enter image description here

đâu F (xi, w) là chức năng mạng đánh giá cho đầu vào thứ i vector của tập huấn luyện sử dụng trọng số vectơ w và wj là phần tử thứ j của vectơ trọng lượng w của mạng. Trong triển khai Levenberg-Marquardt truyền thống, Jacobian là xấp xỉ bằng cách sử dụng sự khác biệt hữu hạn. Tuy nhiên, đối với các mạng nơron, nó có thể được tính toán rất hiệu quả bằng cách sử dụng quy tắc chuỗi của phép tính và các dẫn xuất đầu tiên của các hàm kích hoạt.

+0

Vì vậy, trong ví dụ từ câu hỏi của tôi số cột ma trận = 3 * 4 + 4 * 2 = 20 (hãy quên đi các thành kiến ​​trong một thời điểm) và số lượng hàng ma trận giống như số hàng trong dữ liệu đặt (5)? Hàm F nên trông như thế nào? – gisek

+0

@abhinash Là gradient và Jacobian giống nhau không? Bởi vì ngay cả ma trận gradient sẽ có kích thước NxW khi chúng ta cắm nó vào phương trình gốc dốc –

Các vấn đề liên quan