Tại sao các mạng lưới thần kinh trở nên sâu hơn, nhưng không rộng hơn?


73

Trong những năm gần đây, mạng lưới thần kinh tích chập (hoặc có lẽ là mạng lưới thần kinh sâu nói chung) đã trở nên sâu hơn và sâu hơn, với các mạng tiên tiến đi từ 7 lớp ( AlexNet ) đến 1000 lớp ( Lưới dư) trong không gian 4 năm Lý do đằng sau sự gia tăng hiệu suất từ ​​một mạng sâu hơn, là có thể học được một hàm phi tuyến tính phức tạp hơn. Được cung cấp đủ dữ liệu đào tạo, điều này cho phép các mạng dễ dàng phân biệt giữa các lớp khác nhau.

Tuy nhiên, xu hướng dường như không theo sau với số lượng tham số trong mỗi lớp. Ví dụ, số lượng bản đồ đặc trưng trong các lớp chập hoặc số nút trong các lớp được kết nối đầy đủ, vẫn giữ nguyên như cũ và vẫn có độ lớn tương đối nhỏ, mặc dù số lượng lớp tăng lên rất lớn. Tuy nhiên, từ trực giác của tôi, dường như việc tăng số lượng tham số trên mỗi lớp sẽ cung cấp cho mỗi lớp một nguồn dữ liệu phong phú hơn để tìm hiểu chức năng phi tuyến tính của nó; nhưng ý tưởng này dường như đã bị bỏ qua để chỉ đơn giản là thêm nhiều lớp, mỗi lớp có một số lượng nhỏ các tham số.

Vì vậy, trong khi các mạng đã trở nên "sâu hơn", chúng không trở nên "rộng hơn". Tại sao lại thế này?


1
+1 nhưng công bằng mà nói, không phải 1000+ mạng này là "trạng thái của nghệ thuật" theo nghĩa vượt trội so với các mạng khác. Bài viết arxiv mà bạn đã liên kết với báo cáo mạng còn lại với 152 lớp là người chiến thắng hiện tại trên ImageNet.
amip nói rằng Phục hồi lại

3
Bạn đã đọc các mạng dư rộng arxiv.org/abs/1605.07146 .... có lẽ không có lý do gì .. việc tối ưu hóa một hàm không lồi với độ dốc không có nền tảng lý thuyết ... chỉ có bản dùng thử và rất nhiều lỗi :-)
seanv507

@ seanv507 Rất thú vị, cảm ơn vì liên kết này. BTW, đây là một chủ đề rất liên quan: stats.stackexchange.com/questions/214360 và có một liên kết đến chủ đề reddit này ở đó.
amip nói Phục hồi lại


Câu trả lời:


87

Từ chối trách nhiệm, tôi làm việc trên các mạng lưới thần kinh trong nghiên cứu của mình, nhưng tôi thường sử dụng các mạng lưới thần kinh tương đối nhỏ, nông hơn là các mạng lưới thực sự sâu sắc trong nghiên cứu tiên tiến mà bạn trích dẫn trong câu hỏi của mình. Tôi không phải là một chuyên gia về những điều kỳ quặc và đặc thù của các mạng rất sâu và tôi sẽ trì hoãn với một người nào đó.

Đầu tiên, về nguyên tắc, không có lý do gì bạn cần lưới thần kinh sâu cả. Một mạng lưới thần kinh đủ rộng chỉ với một lớp ẩn duy nhất có thể xấp xỉ bất kỳ chức năng (hợp lý) nào được cung cấp đủ dữ liệu đào tạo. Tuy nhiên, có một vài khó khăn khi sử dụng một mạng cực kỳ rộng, nông. Vấn đề chính là các mạng rất rộng, nông này rất tốt trong việc ghi nhớ, nhưng không tốt cho việc khái quát hóa . Vì vậy, nếu bạn huấn luyện mạng với mọi giá trị đầu vào có thể, một mạng siêu rộng cuối cùng có thể ghi nhớ giá trị đầu ra tương ứng mà bạn muốn. Nhưng điều đó không hữu ích vì đối với bất kỳ ứng dụng thực tế nào, bạn sẽ không có mọi giá trị đầu vào có thể để đào tạo.

Ưu điểm của nhiều lớp là chúng có thể học các tính năng ở nhiều mức độ trừu tượng khác nhau . Ví dụ, nếu bạn huấn luyện một mạng nơ ron tích chập sâu để phân loại hình ảnh, bạn sẽ thấy rằng lớp đầu tiên sẽ tự đào tạo để nhận ra những thứ rất cơ bản như các cạnh, lớp tiếp theo sẽ tự đào tạo để nhận ra các bộ sưu tập các cạnh như hình, lớp tiếp theo lớp sẽ tự đào tạo để nhận ra các bộ sưu tập các hình dạng như mắt hoặc mũi, và lớp tiếp theo sẽ học các tính năng bậc cao hơn như khuôn mặt. Nhiều lớp tốt hơn nhiều trong việc khái quát hóa vì chúng học tất cả các tính năng trung gian giữa dữ liệu thô và phân loại cấp cao.

Vì vậy, điều đó giải thích tại sao bạn có thể sử dụng một mạng sâu chứ không phải là một mạng rất rộng nhưng nông. Nhưng tại sao không phải là một mạng rất sâu, rất rộng? Tôi nghĩ rằng câu trả lời là bạn muốn mạng của bạn càng nhỏ càng tốt để tạo ra kết quả tốt. Khi bạn tăng kích thước của mạng, bạn thực sự chỉ cần giới thiệu thêm các tham số mà mạng của bạn cần tìm hiểu và do đó làm tăng cơ hội vượt mức. Nếu bạn xây dựng một mạng rất rộng, rất sâu, bạn sẽ có cơ hội mỗi lớp chỉ ghi nhớ những gì bạn muốn đầu ra, và bạn kết thúc với một mạng thần kinh không thể khái quát hóa dữ liệu mới.

Ngoài bóng ma của việc quá mức, mạng của bạn càng rộng, thời gian đào tạo sẽ mất nhiều thời gian hơn . Các mạng lưới sâu đã có thể rất tốn kém về mặt tính toán để đào tạo, vì vậy có một động lực mạnh mẽ để làm cho chúng đủ rộng để chúng hoạt động tốt, nhưng không rộng hơn.


+1. Có nhận xét nào về arxiv.org/abs/1605.07146 không?
amip nói rằng Phục hồi lại

2
Tôi chỉ đọc lướt qua nó, vì vậy tôi không thể nói bất cứ điều gì có thẩm quyền, nhưng có vẻ như các tác giả nhận thấy rằng ít nhất trong trường hợp mạng dư có một mạng lưới rộng (nhưng vẫn sâu 16 lớp!) Vượt trội hơn rất nhiều (1000 lớp ) mạng lưới. Tôi không biết nhiều về các mạng còn lại, nhưng theo giới thiệu, có vẻ như một khó khăn trong việc đào tạo chúng là có thể có xu hướng các lớp không học được gì cả và do đó không đóng góp nhiều vào kết quả. Dường như có ít hơn, nhưng mạnh hơn, các lớp tránh được điều này. Cho dù điều này áp dụng cho các loại NN khác mà tôi không biết.
J. O'Brien Antognini

Câu trả lời rõ ràng và súc tích, cũng được thực hiện. @J
ctwardy

21

Tôi không nghĩ rằng có một câu trả lời chắc chắn cho câu hỏi của bạn. Nhưng tôi nghĩ rằng sự khôn ngoan thông thường diễn ra như sau:

Về cơ bản, khi không gian giả thuyết của một thuật toán học tập phát triển, thuật toán có thể học các cấu trúc ngày càng phong phú hơn. Nhưng đồng thời, thuật toán trở nên dễ bị quá mức và lỗi tổng quát hóa của nó có khả năng tăng lên.

Vì vậy, cuối cùng, đối với bất kỳ tập dữ liệu cụ thể nào, nên làm việc với mô hình tối thiểu có đủ khả năng để tìm hiểu cấu trúc thực của dữ liệu. Nhưng đây là một lời khuyên rất gợn sóng, vì thường thì "cấu trúc thực của dữ liệu" là không xác định, và thường thì ngay cả khả năng của các mô hình ứng cử viên cũng chỉ được hiểu một cách mơ hồ.

Khi nói đến các mạng thần kinh, kích thước của không gian giả thuyết được kiểm soát bởi số lượng tham số. Và dường như đối với một số lượng tham số cố định (hoặc một thứ tự cường độ cố định), đi sâu hơn cho phép các mô hình nắm bắt các cấu trúc phong phú hơn (ví dụ như bài báo này ).

Điều này có thể giải thích một phần sự thành công của các mô hình sâu hơn với ít tham số hơn: VGGNet (từ 2014) có 16 lớp với ~ 140M tham số, trong khi ResNet (từ 2015) đánh bại nó với 152 lớp nhưng chỉ có ~ 2M tham số

(như một mặt, các mô hình nhỏ hơn có thể được đào tạo dễ dàng hơn về mặt tính toán - nhưng tôi không nghĩ rằng đó là một yếu tố chính - vì độ sâu thực sự làm phức tạp việc đào tạo)

Lưu ý rằng xu hướng này (sâu hơn, ít tham số hơn) chủ yếu xuất hiện trong các nhiệm vụ và mạng tích chập liên quan đến tầm nhìn và điều này đòi hỏi một lời giải thích cụ thể về miền. Vì vậy, đây là một quan điểm khác:

Mỗi "nơ-ron" trong một lớp chập có một "trường tiếp nhận", đó là kích thước và hình dạng của các đầu vào ảnh hưởng đến từng đầu ra. Theo trực giác, mỗi hạt nhân nắm bắt một số loại quan hệ giữa các đầu vào gần đó. Và hạt nhân nhỏ (phổ biến và thích hợp hơn) có một lĩnh vực tiếp nhận nhỏ, vì vậy họ chỉ có thể cung cấp thông tin liên quan đến quan hệ địa phương.

Nhưng khi bạn đi sâu hơn, lĩnh vực tiếp nhận của mỗi tế bào thần kinh đối với một số lớp trước đó trở nên lớn hơn. Vì vậy, các lớp sâu có thể cung cấp các tính năng với ý nghĩa ngữ nghĩa toàn cầu và các chi tiết trừu tượng (quan hệ quan hệ ... về quan hệ của các đối tượng), trong khi chỉ sử dụng các hạt nhân nhỏ (giúp thường xuyên hóa các mối quan hệ mà mạng học được, và giúp nó hội tụ và khái quát hóa).

Vì vậy, tính hữu ích của các mạng tích chập sâu trong tầm nhìn máy tính có thể được giải thích một phần bởi cấu trúc không gian của hình ảnh và video. Có thể thời gian sẽ cho biết rằng đối với các loại vấn đề khác nhau hoặc đối với các kiến ​​trúc không tích chập, độ sâu thực sự không hoạt động tốt.


Phần Boltzmann Machine bị hạn chế của các mạng sâu là một hệ số nhân lớn về thời gian hội tụ. (afaict)
EngrStudent

4
RBM không phải là vốn có để học sâu. Nhiều mạng sâu hiện nay (hầu hết?) Thành công không sử dụng RBM.
Borbei

3
Cảm ơn vì đã liên kết đến bài báo đó, tôi đã không nhìn thấy nó trước đây và nó có vẻ rất phù hợp.
J. O'Brien Antognini

@Borbei - Làm thế nào để họ đảm bảo phân tách các tính năng mà không có RBM?
EngrStudent

1
+1. Có nhận xét nào về arxiv.org/abs/1605.07146 không?
amip nói rằng Phục hồi lại

10

Thêm nhiều tính năng giúp nhưng lợi ích nhanh chóng trở thành cận biên sau khi nhiều tính năng được thêm vào. Đó là một lý do tại sao các công cụ như PCA hoạt động: một vài thành phần nắm bắt hầu hết các phương sai trong các tính năng. Do đó, việc thêm nhiều tính năng sau một số điểm gần như vô dụng.

Mặt khác, việc tìm đúng chức năng cho ma của tính năng này luôn là một ý tưởng tốt. Tuy nhiên, nếu bạn không có một lý thuyết tốt, dĩ nhiên khó có thể đưa ra một chức năng chính xác. Vì vậy, việc thêm các lớp là hữu ích như một cách tiếp cận vũ phu.

fCρAv2/2
Aρv

fiβixi

Tuy nhiên, làm cho mạng sâu hơn sẽ dễ dàng đưa bạn đến phương trình trên chỉ với hai lớp. Các hàm phức tạp hơn sẽ cần nhiều lớp hơn, đó là lý do tại sao việc đào sâu số lượng lớp có thể là một cách để giải quyết nhiều vấn đề.


5
Bạn đảm nhận chức năng chuyển tuyến tính. Nhưng có nhiều lựa chọn (phổ biến) khác, và theo định lý gần đúng phổ quát của ANN , ngay cả một lớp phi tuyến tính ẩn (nếu nó đủ rộng) có thể xấp xỉ bất kỳ hàm đẹp nào. Vì vậy, tính đại diện không thể thực sự giải thích sự thành công của các mạng lưới sâu.
Borbei

2
Ví dụ của tôi là tuyến tính nhưng nó áp dụng cho một loạt các trường hợp. Bạn giả sử chức năng "đẹp" nhưng nhiều chức năng không đẹp lắm. Ví dụ, khi tôi chọn một chiếc xe để mua tại sao thuật toán quyết định của tôi sẽ là một chức năng tốt?
Aksakal

2

dwO(dw2)

Tại sao bạn có thể cố gắng giới hạn số lượng tham số? Một số lý do:

  • Bạn đang cố gắng tránh quá nhiều. (Mặc dù giới hạn số lượng tham số là một công cụ rất cùn để đạt được điều này.)
  • Nghiên cứu của bạn sẽ ấn tượng hơn nếu bạn có thể vượt trội hơn mô hình của người khác bằng cách sử dụng cùng một số tham số.
  • Đào tạo mô hình của bạn dễ dàng hơn nhiều nếu mô hình (cộng với thông số khoảnh khắc nếu bạn đang sử dụng Adam) có thể nằm gọn trong bộ nhớ của một GPU.
  • Trong các ứng dụng thực tế, RAM thường đắt khi phục vụ các mô hình. Điều này đặc biệt đúng đối với việc chạy các mô hình trên ví dụ như điện thoại di động, nhưng đôi khi có thể áp dụng ngay cả đối với việc phục vụ các mô hình từ đám mây.

O(dw2)w1,w2w1×w2(d2)w

(d2)w2+w(input layer width)+w(output layer width)=O(dw2).
1/wO(dw)
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.