Cách đặt số lượng tế bào thần kinh và các lớp trong mạng lưới thần kinh


26

Tôi là người mới bắt đầu sử dụng mạng lưới thần kinh và gặp khó khăn trong việc nắm bắt hai khái niệm:

  1. Làm thế nào để một người quyết định số lượng lớp giữa của một mạng thần kinh nhất định có? 1 so với 10 hoặc bất cứ điều gì.
  2. Làm thế nào để một người quyết định số lượng tế bào thần kinh trong mỗi lớp giữa? Được khuyến nghị có số lượng tế bào thần kinh như nhau ở mỗi lớp giữa hay nó thay đổi theo ứng dụng?

Câu trả lời:


19

Việc xem xét số lượng tế bào thần kinh cho mỗi lớp và số lớp trong các mạng được kết nối đầy đủ phụ thuộc vào không gian tính năng của vấn đề. Để minh họa những gì xảy ra trong các trường hợp hai chiều để mô tả, tôi sử dụng không gian 2 chiều. Tôi đã sử dụng hình ảnh từ các tác phẩm của một nhà khoa học . Để hiểu các mạng khác như CNNtôi khuyên bạn nên xem ở đây .

Giả sử bạn chỉ có một nơ-ron duy nhất, trong trường hợp này sau khi tìm hiểu các tham số của mạng, bạn sẽ có một ranh giới quyết định tuyến tính có thể phân tách không gian thành hai lớp riêng lẻ.

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

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

Giả sử bạn được yêu cầu tách dữ liệu sau. Bạn sẽ cần d1chỉ định ranh giới quyết định trên và bằng cách nào đó đang thực hiện ANDthao tác để xác định xem dữ liệu đầu vào nằm ở bên trái của nó hay ở phía bên phải. Line d2đang thực hiện một ANDthao tác khác để điều tra xem dữ liệu đầu vào có cao hơn d2hay không. Trong trường hợp d1này đang cố gắng tìm hiểu liệu đầu vào có ở bên trái của dòng để phân loại đầu vào là vòng tròn hay không , cũng d2đang cố gắng tìm hiểu xem đầu vào có ở phía bên phải của dòng để phân loại đầu vào là vòng tròn hay không . Bây giờ chúng ta cần một cái khácANDhoạt động để kết thúc các kết quả của hai dòng được xây dựng sau khi đào tạo các tham số của chúng. Nếu đầu vào ở bên trái d1và bên phải d2, thì nó nên được phân loại là hình tròn .

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

Bây giờ giả sử rằng bạn có vấn đề sau và bạn được yêu cầu tách các lớp. Trong trường hợp này, sự biện minh là chính xác như trên.

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

Đối với dữ liệu sau:

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

ranh giới quyết định không lồi và phức tạp hơn ranh giới trước. Trước tiên, bạn phải có một mạng con tìm thấy các vòng tròn bên trong. Sau đó, bạn phải có một mạng con khác tìm thấy ranh giới quyết định hình chữ nhật bên trong quyết định các đầu vào bên trong hình chữ nhật không phải là hình tròn và nếu chúng ở bên ngoài, chúng là hình tròn. Sau đó, bạn phải kết thúc các kết quả và cho biết nếu dữ liệu đầu vào nằm bên trong hình chữ nhật lớn hơn và bên ngoài hình chữ nhật bên trong, thì nó nên được phân loại thành hình tròn . Bạn cần một ANDhoạt động khác cho mục đích này. Mạng sẽ như thế này:

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


Giả sử rằng bạn được yêu cầu tìm ranh giới quyết định được khoanh tròn sau đây .

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

Trong trường hợp này, mạng của bạn sẽ giống như mạng sau được đề cập nhưng có nhiều nơ-ron hơn trong lớp ẩn đầu tiên.

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


11

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.


Bạn có thể sử dụng khái niệm kích thước nội tại để tìm ra số lượng kích thước có liên quan cho vấn đề của mình. Kích thước nội tại cố gắng trả lời có bao nhiêu biến cần thiết để mô tả đầy đủ một tín hiệu và nó có liên quan đến số lượng biến trong nguồn ngẫu nhiên của tín hiệu đó.
Pedro Henrique Monforte

8

Trả lời ngắn: Nó rất liên quan đến kích thước của dữ liệu của bạn và loại ứng dụng.

Chọn đúng số lượng lớp chỉ có thể đạt được với thực tế. Không có câu trả lời chung cho câu hỏi này . Bằng cách chọn kiến ​​trúc mạng, bạn giới hạn không gian khả năng (không gian giả thuyết) của mình thành một chuỗi các hoạt động tenor cụ thể, ánh xạ dữ liệu đầu vào thành dữ liệu đầu ra. Trong DeepNN, mỗi lớp chỉ có thể truy cập thông tin có trong đầu ra của lớp trước. Nếu một lớp bỏ một số thông tin liên quan đến vấn đề trong tay, thông tin này không bao giờ có thể được phục hồi bởi các lớp sau. Điều này thường được gọi là " Nút cổ chai thông tin ".

Thông tin cổ chai là con dao hai lưỡi:

1) Nếu bạn sử dụng một số lớp / nơ-ron thần kinh, thì mô hình sẽ chỉ học một vài biểu hiện / tính năng hữu ích của dữ liệu của bạn và mất một số lớp quan trọng, vì khả năng của lớp giữa rất hạn chế ( thiếu ).

2) Nếu bạn sử dụng một số lượng lớn các lớp / tế bào thần kinh, thì mô hình sẽ học được quá nhiều biểu diễn / tính năng dành riêng cho dữ liệu đào tạo và không khái quát hóa dữ liệu trong thế giới thực và bên ngoài tập huấn luyện của bạn ( quá mức ).

Liên kết hữu ích cho các ví dụ và tìm kiếm thêm:

[1] https: //livebook.manning.com#! / Book / deep-learning-with-python / chương-3 / point-1130-232-232-0

[2] https://www.quantamagazine.org/new-theory-cracks-open-the-black-box-of-deep-learning-20170921/


4

Làm việc với các mạng thần kinh từ hai năm trước, đây là vấn đề tôi luôn gặp phải mỗi lần tôi không làm mô hình một hệ thống mới. Cách tiếp cận tốt nhất tôi tìm thấy là như sau:

  1. Tìm kiếm các vấn đề tương tự cũng đã được mô hình hóa với các mạng chuyển tiếp và nghiên cứu kiến ​​trúc của chúng.
  2. Bắt đầu với cấu hình đó, huấn luyện tập dữ liệu và đánh giá tập kiểm tra.
  3. Thực hiện cắt tỉa trong kiến ​​trúc của bạn và so sánh kết quả trong tập dữ liệu với kết quả trước đó. Nếu độ chính xác của mô hình của bạn không bị ảnh hưởng, do đó bạn có thể suy ra rằng mô hình ban đầu đang làm quá mức dữ liệu.
  4. Nếu không, hãy thử thêm nhiều bậc tự do (tức là nhiều lớp hơn).

Cách tiếp cận chung là thử các kiến ​​trúc khác nhau, so sánh kết quả và có cấu hình tốt nhất. Kinh nghiệm cho bạn nhiều trực giác hơn trong lần đoán kiến ​​trúc đầu tiên.


1

Thêm vào các câu trả lời trước đó, có những cách tiếp cận trong đó cấu trúc liên kết của mạng lưới thần kinh nổi lên một cách nội sinh, như là một phần của khóa đào tạo. Nổi bật nhất, bạn có Neuroevolution of Augmenting Topology (NEAT) nơi bạn bắt đầu với một mạng cơ bản không có các lớp ẩn và sau đó sử dụng thuật toán di truyền để "phức tạp hóa" cấu trúc mạng. NEAT được thực hiện trong nhiều khung ML. Đây là một bài viết khá dễ tiếp cận về việc triển khai để tìm hiểu Mario: CrAIg: Sử dụng Mạng thần kinh để tìm hiểu Mario

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.