Gỡ lỗi mạng nơ-ron


10

Tôi đã xây dựng một mạng lưới thần kinh nhân tạo trong python bằng cách sử dụng chức năng tối ưu hóa scipy.optizes.minizing (Conjugate gradient).

Tôi đã thực hiện kiểm tra độ dốc, kiểm tra lại mọi thứ, v.v. và tôi khá chắc chắn rằng nó hoạt động chính xác.

Tôi đã chạy nó một vài lần và nó đạt đến 'Tối ưu hóa kết thúc thành công' tuy nhiên khi tôi tăng số lượng các lớp ẩn, chi phí của giả thuyết sẽ tăng (mọi thứ khác được giữ nguyên) sau khi nó kết thúc thành công.

Theo trực giác, nó cảm thấy như thể chi phí sẽ giảm khi số lượng các lớp ẩn tăng lên, vì nó có thể tạo ra một giả thuyết phức tạp hơn có thể phù hợp với dữ liệu tốt hơn, tuy nhiên điều này dường như không phải là trường hợp.

Tôi muốn được hiểu những gì đang diễn ra ở đây, hoặc nếu tôi đã triển khai mạng lưới thần kinh không chính xác?

Câu trả lời:


9

Có rất nhiều cách để đi sai với mạng lưới thần kinh mà sẽ khó gỡ lỗi. Ngoài ra, để giải quyết trực giác của bạn, mỗi lớp ẩn bổ sung làm cho việc học khó hơn nhiều. Như đã nói, đây là một số khả năng:

  1. Bạn đã thêm sâu răng. Thêm nhiều lớp sẽ thêm nhiều trọng lượng làm tăng chi phí chính quy của bạn.
  2. Vấn đề đủ đơn giản để một mô hình với một lớp ẩn duy nhất là đủ. Thêm nhiều lớp ẩn khiến mạng khó học hơn (vấn đề tối ưu hóa khó hơn).
  3. Phương pháp tối ưu hóa không làm tốt công việc (tôi thích climin hơn scipy.optizes).
  4. Bạn đang sử dụng chức năng kích hoạt sigmoid / tanh. Hàm sigmoid gây ra vấn đề độ dốc biến mất khiến việc học khó hơn với nhiều lớp hơn. Hãy thử sử dụng chức năng ReLu.

Đào tạo mạng lưới thần kinh cần rất nhiều thực hành, may mắn và kiên nhẫn. Chúc may mắn.


1
Câu trả lời tốt. Tuy nhiên, nhận ra rằng 2, 3, 4 có thể tương tác theo những cách phức tạp. Việc gỡ lỗi có thể được thực hiện bằng cách kiểm tra các giá trị kích hoạt của ANN, độ lớn của trọng số của ANN, theo dõi lỗi trong mẫu và ngoài mẫu và sự hội tụ của trình tối ưu hóa, v.v.
Def_Os

3

Việc tăng số lượng các lớp ẩn cho một mạng thần kinh tiêu chuẩn thực sự sẽ không cải thiện kết quả trong phần lớn các trường hợp. Thay đổi kích thước của lớp ẩn sẽ.

Thực tế này (rằng số lượng các lớp ẩn rất ít) thực sự đã được ghi nhận trong lịch sử và là động lực đằng sau lĩnh vực học tập sâu. Học sâu là cách thông minh hiệu quả để đào tạo mạng lưới thần kinh đa lớp bằng cách, ví dụ, cô lập các tập hợp con các tính năng khi đào tạo các lớp khác nhau.

Video giới thiệu hay về chủ đề này trên YouTube


2
Học sâu là về việc tăng số lượng các lớp ẩn. Nếu không, nó sẽ được gọi là học tập chất béo :)
Emre

@Emre chắc chắn có nghĩa là. Nguyền rủa dấu câu của tôi!
eric chiang
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.