Làm thế nào để xác minh rằng việc triển khai mạng thần kinh hoạt động chính xác?


10

Tôi tự hỏi một số kỹ thuật hữu ích là gì để kiểm tra xem việc triển khai mạng thần kinh có hoạt động chính xác không.

Dưới đây là một số kiểm tra tôi biết, tôi sẽ quan tâm để biết thêm về chúng:

  1. Vẽ một số số liệu (điểm F1, độ chính xác, một số chi phí, v.v.) trên bộ tàu / bài kiểm tra / hợp lệ so với số lô hoặc số kỷ nguyên.
  2. Nhìn vào sự phát triển của trọng lượng ma trận trên khắp thời đại.
  3. Trong trường hợp có nhiều lớp, loại bỏ một số lớp và xem nếu nó vẫn học được điều gì đó.
  4. Sử dụng mạng trên một số bộ dữ liệu mà nó có thể học được (mặc dù tôi không biết bất kỳ danh sách tốt nào về các bộ dữ liệu tham chiếu để kiểm tra việc triển khai mạng thần kinh , đây sẽ là một tài nguyên quý giá, nhanh hơn tìm kiếm các điểm tham chiếu trong tài liệu .)
  5. Thực hiện kiểm tra độ dốc .
  6. Kiểm tra xem gradient không nổ hay biến mất.

Một số sơ đồ minh họa cho các kiểm tra trước:

  1. vẽ đồ thị / bài kiểm tra / tập hợp lệ so với số epoch:

Tốt (mặc dù quá nhanh, nhưng ít nhất mạng có thể học được):

nhập mô tả hình ảnh ở đây

Xấu:

nhập mô tả hình ảnh ở đây

  1. Nhìn vào sự phát triển của trọng số ma trận trên toàn thời đại:

Kỷ nguyên 0:

nhập mô tả hình ảnh ở đây

Kỷ nguyên 50:

nhập mô tả hình ảnh ở đây

Khó có thể biết liệu những thay đổi trong ma trận trọng số là tốt hay xấu (không cần nhìn vào chi phí), nhưng ít nhất hầu hết trong số chúng đã thay đổi và chúng không bị kẹt ở 0.


1
+1 câu hỏi khó. phần khó khăn là: ngay cả khi chúng ta làm hỏng một cái gì đó (ví dụ có độ dốc sai), việc triển khai vẫn sẽ "hoạt động", tức là cách tiếp cận 1-4 có thể không hoạt động.
Haitao Du

Câu trả lời:


4

Trước hết, tôi muốn nói rằng việc thực hiện là một từ đáng ngờ trong bối cảnh của các mạng lưới thần kinh (theo tôi). Tôi đoán bạn đã liệt kê hầu hết các cách tiếp cận, nhưng đây là cách gần đây tôi đã tiếp cận thử nghiệm.

Giải thích đầu tiên là việc thực hiện thực tế trong một số mã nguồn. Trong trường hợp này, tôi nghĩ các cách quan trọng nhất để kiểm tra phần này là:

  1. Kiểm tra xem các hoạt động cơ bản là chính xác. Đặc biệt là khi sử dụng các phép toán ma trận, bạn có thể đã giám sát đó *thực sự là một phép nhân phần tử chứ không phải là một sản phẩm chấm hoặc bạn có các kích thước không khớp.
  2. Thực hiện kiểm tra độ dốc. Tôi thích làm điều đó cho nhiều dẫn xuất. Nó bắt đầu với đạo hàm của hàm kích hoạt và tổng đạo hàm của hàm trọng số wrt. Nếu có vấn đề ở đó, bạn có thể áp dụng nó cho các đầu vào wrt phái sinh (điều này sẽ là về việc cập nhật sai lệch) hoặc các đầu ra (tổng sai số có trọng số trong lớp tiếp theo)
  3. Tôi cũng thích tạo ra các nhiệm vụ học tập nhân tạo, tầm thường. Ví dụ, đối với một mạng được kết nối đầy đủ, tôi cho một mạng một lớp tìm hiểu tổng của các đầu vào hoặc bất cứ thứ gì mà tôi biết trọng lượng phải là bao nhiêu. Đối với các mạng nhiều lớp, điều này khó hơn một chút, nhưng bạn có thể làm điều gì đó tương tự mà không mong đợi các trọng số nhất định. Đây thực tế là ý tưởng tương tự như sử dụng một số bộ dữ liệu tham khảo.

Giải thích thứ hai cho việc thực hiện một mạng lưới thần kinh có thể là sự lựa chọn của siêu đường kính. Điều quan trọng nhất của các siêu đường kính này có lẽ là tốc độ học tập. Bạn đã đề cập đến một số kỹ thuật mà trong mắt tôi, thay vì chọn đúng siêu âm.

  1. Đặt mục tiêu của bạn là một chức năng của các kỷ nguyên cho dữ liệu kiểm tra / hợp lệ / kiểm tra là một cách tốt để biết được liệu mạng của bạn có bị quá mức / thiếu thông tin hay không bằng cách so sánh các lỗi của tàu / kiểm tra / hợp lệ. Trong trường hợp quá mức, bạn có thể giảm số lượng lớp / tế bào thần kinh và trong trường hợp thiếu chất lượng, bạn có thể thêm một số. Nếu bạn dường như không học được gì, điều này có thể là do tỷ lệ học tập quá cao (Cố gắng giảm thiểu chức năng bậc hai với các bước 2, bắt đầu từ 1).
  2. Nếu bạn bị nổ tung hoặc biến mất độ dốc, có lẽ bạn cần một chức năng kích hoạt khác hoặc một tỷ lệ học tập khác.

Tôi không nghĩ rằng nhìn vào các trọng số là hữu ích. Trong trường hợp CNN, nó giúp cho bạn biết loại hạt nhân nào bạn đang học hoặc nếu bạn thực hiện một số hình thức giảm cân mà bạn thực sự muốn buộc một số trọng lượng về không.

Nó có thể không thêm nhiều vào những gì bạn đã biết và tôi đang quên rất nhiều ở đây, nhưng đây sẽ là câu trả lời của tôi, cho những gì đáng giá ...


2

Bạn cũng có thể vẽ đường cong học tập (xem phần 3.3 trong liên kết bên dưới), đây là lỗi (cả lỗi đào tạo và lỗi xác thực chéo) so với kích thước tập huấn luyện. Từ đường cong học tập, bạn sẽ biết liệu mô hình của bạn có bị sai lệch cao hay sai lệch cao hay không.

http://www.astroml.org/sklearn_tutorial/prreal.html

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.