Hãy bắt đầu với một tầm thường: Mạng lưới thần kinh sâu chỉ đơn giản là một mạng tiếp liệu với nhiều lớp ẩn.
Đây là ít nhiều tất cả để nói về định nghĩa. Mạng lưới thần kinh có thể được tái phát hoặc feedforward; những người phản hồi không có bất kỳ vòng lặp nào trong biểu đồ của họ và có thể được tổ chức theo lớp. Nếu có các lớp "nhiều", thì chúng tôi nói rằng mạng sâu .
Mạng phải có bao nhiêu lớp để đủ điều kiện sâu? Không có câu trả lời chắc chắn cho điều này (giống như hỏi có bao nhiêu hạt tạo thành một đống ), nhưng thường có hai hoặc nhiều lớp ẩn được tính là sâu. Ngược lại, một mạng chỉ có một lớp ẩn duy nhất được gọi là "nông". Tôi nghi ngờ rằng sẽ có một số lạm phát đang diễn ra ở đây, và trong mười năm nữa mọi người có thể nghĩ rằng bất cứ điều gì với ít hơn, nói, mười lớp là nông và chỉ phù hợp cho các bài tập mẫu giáo. Không chính thức, "sâu" cho thấy rằng mạng là khó khăn để xử lý.
Đây là một minh họa, được điều chỉnh từ đây :
Nhưng câu hỏi thực sự bạn đang hỏi là, tất nhiên, tại sao có nhiều lớp lại có lợi?
Tôi nghĩ rằng câu trả lời có phần đáng kinh ngạc là không ai thực sự biết. Có một số lời giải thích phổ biến mà tôi sẽ xem lại ngắn gọn dưới đây, nhưng không ai trong số họ đã được thuyết phục chứng minh là đúng, và một thậm chí không thể chắc chắn rằng có nhiều lớp là thực sự có lợi.
Tôi nói rằng điều này thật đáng kinh ngạc, bởi vì học sâu được phổ biến rộng rãi, phá vỡ mọi kỷ lục (từ nhận dạng hình ảnh, chơi Go, dịch tự động, v.v.) mỗi năm, đang được ngành công nghiệp sử dụng, v.v. chúng tôi vẫn không hoàn toàn chắc chắn tại sao nó hoạt động tốt như vậy.
Tôi căn cứ thảo luận của tôi trên Learning Sâu cuốn sách của Goodfellow, Bengio, và Courville mà đi ra ngoài vào năm 2017 và được coi là rộng rãi là các cuốn sách về học sâu. (Nó có sẵn miễn phí trực tuyến.) Phần có liên quan là 6.4.1 Thuộc tính và độ sâu xấp xỉ phổ quát .
Bạn đã viết như vậy
Cách đây 10 năm trong lớp tôi đã học được rằng có một vài lớp hoặc một lớp (không tính các lớp đầu vào và đầu ra) là tương đương về các chức năng mà mạng lưới thần kinh có thể biểu diễn [...]
Bạn phải đề cập đến cái gọi là định lý xấp xỉ phổ quát , được Cybenko chứng minh vào năm 1989 và được nhiều người khác nhau trong những năm 1990 chứng minh. Về cơ bản nó nói rằng một mạng nơ ron nông (có 1 lớp ẩn) có thể xấp xỉ bất kỳ chức năng nào , tức là về nguyên tắc có thể học bất cứ thứ gì . Điều này đúng với các hàm kích hoạt phi tuyến khác nhau, bao gồm các đơn vị tuyến tính được chỉnh lưu mà hầu hết các mạng thần kinh đang sử dụng ngày nay (tài liệu tham khảo trong sách giáo khoa Leshno et al. 1993 cho kết quả này).
Nếu vậy, tại sao tất cả mọi người sử dụng lưới sâu?
Vâng, một câu trả lời ngây thơ là bởi vì họ làm việc tốt hơn. Dưới đây là một con số từ cuốn sách Deep Learning cho thấy nó giúp có nhiều lớp hơn trong một nhiệm vụ cụ thể, nhưng hiện tượng tương tự thường được quan sát trên các nhiệm vụ và lĩnh vực khác nhau:
Chúng tôi biết rằng một mạng lưới nông có thể hoạt động tốt như mạng sâu hơn. Nhưng nó không; và họ thường không. Câu hỏi là --- tại sao? Câu trả lời có thể:
- Có lẽ một mạng lưới nông sẽ cần nhiều nơ-ron hơn là mạng sâu?
- Có lẽ một mạng nông khó huấn luyện hơn với các thuật toán hiện tại của chúng tôi (ví dụ: nó có cực tiểu cục bộ khó chịu hơn hoặc tốc độ hội tụ chậm hơn, hoặc bất cứ điều gì)?
- Có lẽ một kiến trúc nông không phù hợp với loại vấn đề chúng ta thường cố gắng giải quyết (ví dụ: nhận dạng đối tượng là một quá trình phân cấp "sâu sắc", tinh túy)?
- Thứ gì khác?
Các Sâu Learning cuốn sách lập luận cho điểm bullet # 1 và # 3. Đầu tiên, nó lập luận rằng số lượng đơn vị trong một mạng nông tăng theo cấp số nhân với độ phức tạp của nhiệm vụ. Vì vậy, để có ích, một mạng lưới nông có thể cần phải rất lớn; có thể lớn hơn nhiều so với một mạng lưới sâu. Điều này dựa trên một số bài báo chứng minh rằng các mạng nông sẽ trong một số trường hợp cần nhiều nơ-ron theo cấp số nhân; nhưng cho dù phân loại MNIST hay chơi Go là những trường hợp như vậy không thực sự rõ ràng. Thứ hai, cuốn sách nói điều này:
Việc chọn một mô hình sâu mã hóa một niềm tin rất chung rằng hàm chúng ta muốn tìm hiểu phải liên quan đến thành phần của một số hàm đơn giản hơn. Điều này có thể được hiểu theo quan điểm học tập đại diện khi nói rằng chúng tôi tin rằng vấn đề học tập bao gồm việc khám phá một tập hợp các yếu tố cơ bản của biến thể có thể được mô tả theo các yếu tố khác của biến thể cơ bản đơn giản hơn.
Tôi nghĩ rằng "sự đồng thuận" hiện tại là nó là sự kết hợp của các gạch đầu dòng # 1 và # 3: đối với các nhiệm vụ trong thế giới thực, kiến trúc sâu thường có lợi và kiến trúc nông sẽ không hiệu quả và đòi hỏi nhiều nơ ron hơn cho cùng một hiệu suất.
Nhưng nó còn lâu mới được chứng minh. Hãy xem xét, ví dụ như Waporuyko và Komodakis, 2016, Mạng dư rộng . Các mạng còn lại với hơn 150 lớp xuất hiện vào năm 2015 và giành chiến thắng trong các cuộc thi nhận dạng hình ảnh khác nhau. Đây là một thành công lớn và trông giống như một cuộc tranh luận hấp dẫn ủng hộ sự sâu sắc; đây là một con số từ một bài thuyết trình của tác giả đầu tiên trên tờ giấy mạng còn lại (lưu ý rằng thời gian khó hiểu ở bên trái ở đây):
Nhưng bài báo được liên kết ở trên cho thấy một mạng dư "rộng" với 16 lớp "chỉ" có thể vượt trội hơn các lớp "sâu" với hơn 150 lớp. Nếu điều này là đúng, thì toàn bộ điểm của hình trên bị phá vỡ.
Hoặc xem xét Ba và Caruana, 2014, Do Deep Nets thực sự cần phải sâu? :
Trong bài báo này, chúng tôi cung cấp bằng chứng thực nghiệm rằng lưới nông có khả năng học chức năng tương tự như lưới sâu và trong một số trường hợp có cùng số lượng tham số như lưới sâu. Chúng tôi thực hiện điều này bằng cách đầu tiên đào tạo một mô hình sâu hiện đại, và sau đó đào tạo một mô hình nông để bắt chước mô hình sâu. Mô hình bắt chước được đào tạo bằng cách sử dụng sơ đồ nén mô hình được mô tả trong phần tiếp theo. Đáng chú ý, với nén mô hình, chúng tôi có thể đào tạo lưới nông chính xác như một số mô hình sâu, mặc dù chúng tôi không thể đào tạo các lưới nông này chính xác như lưới sâu khi lưới nông được đào tạo trực tiếp trên bản gốc dán nhãn dữ liệu đào tạo. Nếu một mạng lưới nông có cùng số lượng tham số như một mạng lưới sâu có thể học cách bắt chước một mạng lưới sâu với độ trung thực cao,
Nếu đúng, điều này có nghĩa là lời giải thích chính xác là viên đạn số 2 của tôi chứ không phải số 1 hoặc số 3.
Như tôi đã nói --- không ai thực sự biết chắc chắn.
Kết luận
Lượng tiến bộ đạt được trong quá trình học sâu trong hơn 10 năm qua thực sự đáng kinh ngạc, nhưng phần lớn tiến bộ này đã đạt được bằng thử nghiệm và sai sót, và chúng tôi vẫn thiếu hiểu biết rất cơ bản về những gì chính xác làm cho lưới sâu hoạt động tốt như vậy. Ngay cả danh sách những điều mà mọi người coi là rất quan trọng để thiết lập một mạng lưới sâu hiệu quả dường như cũng thay đổi cứ sau vài năm.
Sự phục hưng học tập sâu bắt đầu vào năm 2006 khi Geoffrey Hinton (người đã làm việc trên các mạng lưới thần kinh trong hơn 20 năm mà không quan tâm nhiều đến ai) đã xuất bản một vài bài báo đột phá cung cấp một cách hiệu quả để đào tạo các mạng sâu ( bài báo khoa học , bài toán tính toán thần kinh ) . Bí quyết là sử dụng đào tạo trước không giám sát trước khi bắt đầu giảm độ dốc. Những bài báo đã cách mạng hóa lĩnh vực này, và trong một vài năm, mọi người nghĩ rằng đào tạo trước không giám sát là chìa khóa.
Sau đó vào năm 2010, Martens đã chỉ ra rằng các mạng lưới thần kinh sâu có thể được đào tạo bằng các phương pháp bậc hai (được gọi là phương pháp không có Hessian) và có thể vượt trội hơn các mạng được đào tạo trước khi đào tạo: Học sâu thông qua tối ưu hóa không có Hessian . Sau đó vào năm 2013 Sutskever et al. đã chỉ ra rằng việc giảm độ dốc ngẫu nhiên với một số thủ thuật rất thông minh có thể vượt trội hơn các phương pháp không có Hessian: Về tầm quan trọng của việc khởi tạo và động lực trong học tập sâu . Ngoài ra, khoảng năm 2010 mọi người nhận ra rằng việc sử dụng các đơn vị tuyến tính được chỉnh lưu thay vì các đơn vị sigmoid tạo ra sự khác biệt rất lớn cho việc giảm độ dốc. Dropout xuất hiện vào năm 2014. Mạng dư xuất hiện vào năm 2015. Mọi người tiếp tục tìm ra những cách hiệu quả hơn để đào tạo mạng lưới sâu vànhững gì có vẻ như một cái nhìn sâu sắc quan trọng 10 năm trước thường được coi là một phiền toái ngày nay. Tất cả điều đó phần lớn được thúc đẩy bởi thử nghiệm và sai sót và có rất ít hiểu biết về những gì làm cho một số thứ hoạt động rất tốt và một số thứ khác thì không. Đào tạo mạng lưới sâu giống như một túi lớn các thủ thuật. Thủ thuật thành công thường được hợp lý hóa bài thực tế.
Chúng tôi thậm chí không biết tại sao các mạng sâu đạt đến một cao nguyên hiệu suất; chỉ 10 năm người ta thường đổ lỗi cho cực tiểu địa phương, nhưng suy nghĩ hiện tại là đây không phải là điểm chính (khi các cao nguyên nước hoa, độ dốc có xu hướng lớn). Đây là một câu hỏi cơ bản về các mạng sâu và chúng ta thậm chí không biết điều này .
Cập nhật: Đây ít nhiều là chủ đề của cuộc nói chuyện NIPS 2017 của Ali Rahimi về học máy như giả kim thuật: https://www.youtube.com/watch?v=Qi1Yry33TQE .
[Câu trả lời này đã được viết lại hoàn toàn vào tháng 4 năm 2017, vì vậy một số ý kiến dưới đây không được áp dụng nữa.]