Câu hỏi rất hay, vì chưa có câu trả lời chính xác cho câu hỏi này. Đây là một lĩnh vực nghiên cứu tích cực.
Cuối cùng, kiến trúc của mạng của bạn có liên quan đến tính chiều của dữ liệu của bạn. Vì các mạng thần kinh là các xấp xỉ phổ quát, miễn là mạng của bạn đủ lớn, nó có khả năng phù hợp với dữ liệu của bạn.
Cách duy nhất để thực sự biết kiến trúc nào hoạt động tốt nhất là thử tất cả chúng, và sau đó chọn kiến trúc tốt nhất. Nhưng tất nhiên, với các mạng thần kinh, điều này khá khó khăn vì mỗi mô hình phải mất khá nhiều thời gian để đào tạo. Những gì một số người làm trước tiên là đào tạo một mô hình "quá lớn" về mục đích và sau đó cắt tỉa nó bằng cách loại bỏ các trọng số không đóng góp nhiều cho mạng.
Điều gì xảy ra nếu mạng của tôi "quá lớn"
Nếu mạng của bạn quá lớn, nó có thể quá phù hợp hoặc đấu tranh để hội tụ. Theo trực giác, những gì xảy ra là mạng của bạn đang cố gắng giải thích dữ liệu của bạn theo một cách phức tạp hơn mức cần thiết. Nó giống như cố gắng trả lời một câu hỏi có thể được trả lời bằng một câu với một bài luận 10 trang. Có thể khó để cấu trúc một câu trả lời dài như vậy, và có thể có rất nhiều sự thật không cần thiết được đưa vào. ( Xem câu hỏi này )
Điều gì xảy ra nếu mạng của tôi "quá nhỏ"
Mặt khác, nếu mạng của bạn quá nhỏ, nó sẽ làm giảm dữ liệu của bạn và do đó. Nó sẽ giống như trả lời bằng một câu khi bạn nên viết một bài luận dài 10 trang. Câu trả lời của bạn tốt như vậy, bạn sẽ bỏ lỡ một số sự thật có liên quan.
Ước tính kích thước của mạng
Nếu bạn biết tính chiều của dữ liệu của mình, bạn có thể biết liệu mạng của mình có đủ lớn hay không. Để ước tính thứ nguyên của dữ liệu của bạn, bạn có thể thử tính thứ hạng của nó. Đây là một ý tưởng cốt lõi trong cách mọi người đang cố gắng ước tính kích thước của các mạng.
Tuy nhiên, nó không đơn giản như vậy. Thật vậy, nếu mạng của bạn cần 64 chiều, bạn có xây dựng một lớp ẩn duy nhất có kích thước 64 hoặc hai lớp kích thước 8 không? Ở đây, tôi sẽ cung cấp cho bạn một số trực giác về những gì sẽ xảy ra trong cả hai trường hợp.
Đi sâu hơn
Đi sâu có nghĩa là thêm nhiều lớp ẩn. Những gì nó làm là cho phép mạng tính toán các tính năng phức tạp hơn. Chẳng hạn, trong Mạng nơ ron kết hợp, người ta thường thấy rằng một vài lớp đầu tiên biểu thị các tính năng "cấp thấp" như các cạnh và các lớp cuối cùng biểu thị các tính năng "cấp cao" như khuôn mặt, các bộ phận cơ thể, v.v.
Bạn thường cần phải đi sâu nếu dữ liệu của bạn không có cấu trúc (như hình ảnh) và cần được xử lý khá nhiều trước khi có thể trích xuất thông tin hữu ích từ nó.
Đi rộng hơn
Đi sâu hơn có nghĩa là tạo ra các tính năng phức tạp hơn và đi "rộng hơn" chỉ đơn giản là tạo ra nhiều tính năng này. Nó có thể là vấn đề của bạn có thể được giải thích bằng các tính năng rất đơn giản nhưng cần phải có nhiều trong số chúng. Thông thường, các lớp ngày càng hẹp về cuối mạng vì lý do đơn giản là các tính năng phức tạp mang nhiều thông tin hơn các lớp đơn giản và do đó bạn không cần nhiều như vậy.