Sự khác biệt giữa mạng thần kinh và mạng nơ ron sâu là gì và tại sao mạng sâu hoạt động tốt hơn?


114

Tôi chưa thấy câu hỏi được nêu chính xác trong các điều khoản này và đây là lý do tại sao tôi đưa ra một câu hỏi mới.

Điều tôi quan tâm muốn biết không phải là định nghĩa của một mạng lưới thần kinh, mà là sự hiểu biết về sự khác biệt thực sự với một mạng lưới thần kinh sâu sắc.

Để biết thêm ngữ cảnh: Tôi biết mạng nơ-ron là gì và cách truyền ngược hoạt động. Tôi biết rằng một DNN phải có nhiều lớp ẩn. Tuy nhiên, 10 năm trước 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 (xem định lý xấp xỉ phổ quát của Cybenko ) và có nhiều lớp làm cho nó phức tạp hơn để phân tích mà không đạt được hiệu suất. Rõ ràng, đó không phải là trường hợp nữa.

Tôi cho rằng, có thể sai, rằng sự khác biệt là về thuật toán và tính chất đào tạo chứ không phải cấu trúc, và do đó tôi thực sự đánh giá cao nếu câu trả lời có thể nhấn mạnh lý do khiến việc chuyển sang DNN trở nên khả thi (ví dụ: bằng chứng toán học hoặc chơi ngẫu nhiên với các mạng ?) và mong muốn (ví dụ: tốc độ hội tụ?)



Nếu hàm bạn muốn tính gần đúng là một hàm tổng hợp (phổ biến trong xử lý ảnh và nhiều miền tự nhiên do định luật vật lý). Có thể chứng minh rằng các mạng sâu có thể khai thác thành phần này và đạt được cùng một mức độ xấp xỉ lỗi với số lượng nơ-ron ít hơn theo cấp số nhân (so với mạng một lớp ẩn). Tham chiếu: Poggio, Tomaso, et al. "Tại sao và khi nào có thể sâu - nhưng không nông - mạng tránh được lời nguyền của chiều: một đánh giá." Tạp chí quốc tế về tự động hóa và máy tính (2017)
DataHungry

Bạn có thể muốn xem bài viết này
agcala

Câu trả lời:


152

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 :

Mạng lưới thần kinh sâu và không sâu

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 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:

Nhiều lớp hơn là tốt

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ể:

  1. Có lẽ một mạng lưới nông sẽ cần nhiều nơ-ron hơn là mạng sâu?
  2. 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ì)?
  3. 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)?
  4. 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):

mạng dư sâu

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.]


2
Phản ứng tốt đẹp! 1) Như cũng được đề cập bởi @Nicolas, nó quay ra rằng có một định lý ( en.wikipedia.org/wiki/Universal_approximation_theorem ) mà tuyên bố rằng một mạng lưới thần kinh feed-forward với một đơn ẩn lớp và một số hữu hạn các tế bào thần kinh có thể xấp xỉ bất kỳ chức năng liên tục nào (bao gồm cả DNN) trên hypercube đơn vị. Kết quả này được tuyên bố là độc lập với sự lựa chọn của chức năng kích hoạt. 2) Tôi không chắc liệu nhận xét cuối cùng của bạn (tức là Hinton đã tham gia Google) có liên quan đến thành công gần đây của DNN không; Hinton gia nhập Google rất lâu sau khi DNN trở thành dịch!
Sobi

4
Có lẽ chúng ta đang sử dụng thuật ngữ khác nhau. Perceptionron không có lớp ẩn - đầu vào của chúng là dữ liệu, đầu ra của chúng là phân loại. Một mạng nhiều lớp bao gồm một loạt các tri giác được nối với nhau sao cho đầu ra từ lớp tạo thành đầu vào cho lớp . Một mạng với một lớp ẩn duy nhất do đó có ba lớp (đầu vào, ẩn, đầu ra). Lớp ẩn này là chìa khóa cho xấp xỉ phổ quát: perceptionron, thiếu nó, không thể tính toán những thứ như XOR, nhưng các mạng đa lớp có thể. nn1n
Matt Krause

2
Điều tuyến tính có vẻ như là sự kết hợp của hai vấn đề. Perceptionron chỉ có thể tính các ranh giới quyết định tuyến tính - nó chỉ có thể vẽ các đường thẳng để chia hai lớp. Mạng nhiều lớp có thể "vẽ" các ranh giới phức tạp hơn. Nhưng cả mạng tri giác và mạng đa lớp đều không sử dụng các chức năng kích hoạt tuyến tính, ngoại trừ trong lớp đầu ra của mạng nhiều lớp. Hàm kích hoạt perceptron là một khối (1 nếu x> 0, 0 nếu không); mạng nhiều lớp thường sử dụng sigmoids, nhưng các ràng buộc cho phổ quát khoảng. là khá nhẹ: không liên tục, giới hạn và tăng đơn điệu.
Matt Krause

2
@amoeba câu trả lời tuyệt vời, hình ảnh lúc bắt đầu đưa tôi ra để đọc phần còn lại, nhưng nó là tốt nhất. Perceptron là đối tác của hồi quy tuyến tính để phân loại, đó là lý do tại sao khi mọi người sử dụng giải pháp dạng đóng (pseudoinverse) để giải quyết vấn đề thay vì phương pháp trực tuyến (sgd), nó được gọi là Hồi quy logistic, vì hàm logistic (hàm sigmoid) = tri giác. Hồi quy perceptron / logistic chỉ có thể 'vẽ' ranh giới quyết định tuyến tính và đó là lý do tại sao nó được gọi là tuyến tính.
shuriken x màu xanh

2
Tuy nhiên, perceptionron nhiều lớp (những gì bạn đã vẽ trong bức ảnh đầu tiên bên trái) có thể kết hợp nhiều ranh giới quyết định tuyến tính như vậy và do đó có thể phân vùng không gian để giải quyết vấn đề XOR (phi tuyến tính) như @Matt đã đề cập. Vì vậy, nhiều ranh giới quyết định tuyến tính kết hợp có thể tạo thành một vòng tròn chẳng hạn nếu bạn nheo mắt. Nó phụ thuộc vào cách bạn nghĩ về nó - quyết định vẫn là tuyến tính trong một không gian cao hơn, nếu bạn quen thuộc với hạt nhân, thì đó cũng là một điều tương tự.
shuriken x màu xanh

8

Câu trả lời tốt cho đến nay, mặc dù có một vài điều không ai ở đây đề cập đến, đây là 0,02 đô la của tôi

Tôi sẽ chỉ trả lời dưới dạng một câu chuyện, sẽ làm cho mọi thứ vui vẻ và rõ ràng hơn. Không có tldr ở đây. Trong quá trình bạn sẽ có thể hiểu sự khác biệt là gì.

Có nhiều lý do khiến DNN nổi lên khi họ làm vậy (các ngôi sao phải căn chỉnh, giống như tất cả những thứ tương tự, đó chỉ là vấn đề đúng nơi, đúng thời điểm, v.v.).

Một lý do là sự sẵn có của dữ liệu, rất nhiều dữ liệu (dữ liệu được dán nhãn). Nếu bạn muốn có thể khái quát hóa và học được một cái gì đó như 'linh mục chung' hoặc 'linh mục phổ quát' (hay còn gọi là các khối xây dựng cơ bản có thể được sử dụng lại giữa các tác vụ / ứng dụng) thì bạn cần rất nhiều dữ liệu. Và dữ liệu hoang dã, tôi có thể thêm, không phải bộ dữ liệu vô trùng được ghi lại cẩn thận trong phòng thí nghiệm với ánh sáng được kiểm soát và tất cả. Cơ Turk làm điều đó (ghi nhãn) có thể.

Thứ hai, khả năng đào tạo các mạng lớn hơn nhanh hơn bằng cách sử dụng GPU giúp thử nghiệm nhanh hơn. Các đơn vị ReLU cũng khiến mọi thứ nhanh hơn về mặt tính toán và cung cấp tính chính quy của chúng vì bạn cần sử dụng nhiều đơn vị hơn trong một lớp để có thể nén thông tin tương tự vì các lớp bây giờ thưa thớt hơn, do đó, nó cũng rất tốt khi bỏ học. Ngoài ra, họ đã giúp đỡ với một vấn đề quan trọng xảy ra khi bạn xếp nhiều lớp. Thêm về điều đó sau. Nhiều thủ thuật khác nhau mà cải thiện hiệu suất. Giống như sử dụng các lô nhỏ (trong thực tế gây bất lợi cho lỗi cuối cùng) hoặc kết luận (thực tế không thu được nhiều phương sai như các lĩnh vực tiếp nhận cục bộ) nhưng nhanh hơn về mặt tính toán.

Trong khi đó, mọi người đang tranh luận xem họ thích gầy hơn hay mũm mĩm hơn, nhỏ hơn hay cao hơn, có hay không có tàn nhang, v.v. Tối ưu hóa giống như nó xì hơi hay nó đập mạnh để nghiên cứu chuyển sang các phương pháp đào tạo phức tạp hơn như gradient liên hợp và phương pháp newtons, cuối cùng tất cả họ đều nhận ra rằng không có bữa trưa miễn phí. Mạng đã ợ.

Điều làm chậm mọi thứ là vấn đề độ dốc biến mất . Mọi người đã đi như: whoa, đó là xa, người đàn ông! Tóm lại, điều đó có nghĩa là khó có thể điều chỉnh lỗi trên các lớp gần hơn với các đầu vào. Khi bạn thêm nhiều lớp trên bánh, sẽ quá chao đảo. Bạn không thể truyền lại lỗi có ý nghĩa trở lại các lớp đầu tiên. Càng nhiều lớp, nó càng tệ. Bummer.

Một số người nhận ra rằng việc sử dụng entropy chéo như một hàm mất (tốt, một lần nữa, phân loại và nhận dạng hình ảnh) cung cấp một số loại chính quy và giúp chống lại mạng bị bão hòa và đến lượt gradient không thể che giấu điều đó.

Điều cũng làm cho mọi thứ có thể là đào tạo trước mỗi lớp bằng các phương pháp không giám sát. Về cơ bản, bạn có một loạt các bộ mã hóa tự động và tìm hiểu các biểu diễn trừu tượng ngày càng ít hơn khi bạn tăng tỷ lệ nén. Các trọng số từ các mạng này đã được sử dụng để khởi tạo phiên bản được giám sát. Điều này đã giải quyết vấn đề độ dốc biến mất theo một cách khác: bạn đã bắt đầu đào tạo có giám sát từ vị trí bắt đầu tốt hơn nhiều. Vì vậy, tất cả các mạng khác đã đứng dậy và bắt đầu nổi dậy. Nhưng dù sao các mạng cũng cần sự giám sát, nếu không thì không thể giữ dữ liệu lớn được.

Bây giờ, đối với phần cuối cùng cuối cùng dẫn đến câu trả lời của bạn quá phức tạp để đặt một cách ngắn gọn: tại sao nhiều lớp hơn và không chỉ một lớp. Bởi vì chúng ta có thể! và bởi vì mô tả tính năng bối cảnh và bất biến. và hồ bơi.

Đây là một ví dụ: bạn có một bộ dữ liệu hình ảnh, bạn sẽ huấn luyện NN kế hoạch bằng cách sử dụng dữ liệu đó như thế nào? Chà, ngây thơ, bạn hãy nói mỗi hàng và bạn ghép nó thành một vectơ dài và đó là đầu vào của bạn. Bạn học được gì Chà, một số hàm vô nghĩa mờ có thể trông không giống bất cứ thứ gì, vì có nhiều loại phương sai mà các đối tượng trong ảnh chứa và bạn không thể phân biệt giữa những thứ có liên quan và không liên quan. Và đến một lúc nào đó, mạng cần phải quên để có thể học lại những thứ mới. Vì vậy, có vấn đề năng lực. Đây là động lực phi tuyến tính nhiều hơn, nhưng trực giác là bạn cần tăng số lượng tế bào thần kinh để có thể bao gồm nhiều thông tin hơn trong mạng của bạn.

Vì vậy, vấn đề là nếu bạn chỉ nhập hình ảnh dưới dạng một mảnh, việc thêm các lớp bổ sung sẽ không làm quá nhiều cho bạn vì bạn không thể học được trừu tượng , điều này rất quan trọng. Làm mọi thứ một cách toàn diện vì thế không hoạt động tốt, trừ khi bạn làm những việc đơn giản hơn với mạng như tập trung vào một loại đối tượng cụ thể, vì vậy bạn giới hạn mình trong một lớp và bạn chọn một số thuộc tính toàn cầu làm mục tiêu phân loại.

Vậy phải làm gì đây? Nhìn vào cạnh màn hình của bạn và cố gắng đọc văn bản này. Vấn đề? Nghe có vẻ ngu ngốc, bạn cần nhìn vào những gì bạn đang đọc. Mặt khác, nó quá mờ / không đủ độ phân giải / độ chi tiết. Chúng ta hãy gọi khu vực trọng tâm là lĩnh vực tiếp nhận. Mạng cần phải có khả năng tập trung quá. Về cơ bản thay vì sử dụng toàn bộ hình ảnh làm đầu vào, bạn di chuyển một cửa sổ trượt dọc theo hình ảnh và sau đó bạn sử dụng nó làm đầu vào cho mạng (ít hơn một chút so với những gì con người làm). Bây giờ bạn cũng có cơ hội nắm bắt các mối tương quan giữa các pixel và do đó các đối tượng và bạn cũng có thể phân biệt giữa con mèo buồn ngủ đang ngồi trên ghế sofa và nhảy bungee mèo lộn ngược. Gọn gàng, niềm tin vào nhân loại phục hồi. Mạng có thể tìm hiểu trừu tượng cục bộ trong một hình ảnh ở nhiều cấp độ. Mạng học các bộ lọc,

Vì vậy, để tổng hợp mọi thứ: các lĩnh vực tiếp nhận / kết luận, khởi tạo không giám sát, các đơn vị tuyến tính được chỉnh lưu, bỏ học hoặc các phương pháp chính quy hóa khác. Nếu bạn rất nghiêm túc về vấn đề này, tôi khuyên bạn nên xem qua Học tập sâu trong mạng lưới thần kinh của Schmidhuber : Tổng quan ở đây là url cho bản in trước http://arxiv.org/abs/1404.7828

Và hãy nhớ: học lớn, dữ liệu sâu. Lời.


Xin chào Florin, cảm ơn câu trả lời tốt đẹp! Tôi thích phong cách viết. Khi bạn nói về các cửa sổ trượt, bạn có đang đề cập đến cách các lớp chập của NN tích chập quan sát các phần khác nhau của hình ảnh và chiếu kích hoạt của chúng lên một không gian có kích thước thấp hơn không?
Nicolas

có rất nhiều, kết luận là không cần thiết, nhưng chúng nhanh hơn về mặt tính toán, vì các trọng số bị hạn chế. kiểm tra bài báo này nơi họ không sử dụng kết luận và sử dụng các lĩnh vực tiếp nhận địa phương. các từ khóa quan trọng là cục bộ / phân cấp: arxiv.org/pdf/1112.6209.pdf
shuriken x blue

tôi cũng nghĩ rằng câu trả lời có hệ thống gần nhất là sobi's. anh ấy có upvote của tôi. tôi chỉ thêm một vài thứ ở đây và ở đó với một chút muối và hạt tiêu.
shuriken x màu xanh

6

Theo cách nói của giáo dân, sự khác biệt chính với Mạng nơ-ron cổ điển là chúng có nhiều lớp ẩn hơn nhiều.

Ý tưởng là thêm nhãn vào các lớp để tạo ra nhiều lớp trừu tượng:

Ví dụ, một mạng lưới thần kinh sâu để nhận dạng đối tượng :

  • Lớp 1: pixel đơn
  • Lớp 2: Cạnh
  • Lớp 3: Biểu mẫu (hình tròn, hình vuông)
  • Lớp n: Toàn bộ đối tượng

Bạn có thể tìm thấy một lời giải thích tốt cho câu hỏi này trong Quora .

Và, nếu bạn quan tâm đến chủ đề này, tôi sẽ xem xét lại cuốn sách này .


1
Cảm ơn David, nhưng tôi không thực sự thấy cách thêm nhãn làm cho nó khác biệt. Tôi cũng nhớ đó là một vấn đề khó khăn để hiểu và phân tách cách thức một chức năng được mã hóa bằng mạng lưới thần kinh. Phải có một cái gì đó khác hơn là chỉ có nhiều lớp hơn. Đối với ví dụ bạn đã đưa ra, tôi tin rằng bạn có thể đào tạo các mạng lưới thần kinh riêng lẻ (trường học cũ) để thực hiện từng nhiệm vụ.
Nicolas

Sức mạnh đến khi bạn sử dụng nó như một đường ống, do đó, đầu vào và đầu ra từ ngăn xếp lớp ở mỗi lớp.
David Gasquez

Tôi đã đọc liên kết đầu tiên của bạn, đây là một nguồn tài nguyên tốt và các câu hỏi liên quan khác về quora và se, tuy nhiên ví dụ bạn đưa ra có vẻ không chính xác với những gì tôi đọc. Tôi sẽ cố gắng trả lời câu hỏi của riêng tôi, tóm tắt các bài đọc luận văn.
Nicolas

2
Mặc dù tài nguyên nhọn là thú vị, hiện tại trả lời không trả lời câu hỏi.
Nicolas

Bạn có thể chỉ ra một ví dụ trong đó các lớp được dán nhãn (ngoài cách mô tả thuần túy) không? Điều chắc chắn là các lớp ẩn xuất hiện liên tiếp các tính năng phức tạp hơn trong mỗi lớp ẩn, nhưng "thêm nhãn" dường như ngụ ý rằng chúng được đào tạo đặc biệt để làm điều đó.
Matt Krause

2

Ban đầu, tôi cũng đã bị nhầm lẫn một chút bởi sự khác biệt giữa mạng thần kinh (NN) và mạng nơ ron sâu (DNN), tuy nhiên, "độ sâu" chỉ liên quan đến số lượng tham số & lớp. Bạn có thể coi nó như một kiểu tái tạo thương hiệu dưới cái gọi là 'Mafia Canada'.

Cách đây vài năm, tôi cũng có Mạng nơ-ron như là một phần của lớp và chúng tôi đã nhận dạng chữ số, xấp xỉ sóng và các ứng dụng tương tự bằng cách sử dụng NN, có nhiều lớp và đầu ra ẩn và tất cả nhạc jazz mà DNN có. Tuy nhiên, thứ chúng tôi không có sau đó là sức mạnh tính toán.

Lý do khiến cho việc chuyển sang DNN trở nên khả thi và mong muốn là những tiến bộ trong phát triển phần cứng. Nói một cách đơn giản, bây giờ chúng ta có thể tính toán nhiều hơn, nhanh hơn và song song hơn (DNN trên GPU), trong khi trước đây, thời gian là nút cổ chai cho NN.

Như được tham chiếu trên trang Wikipedia về Deep Learning , phần 'sâu' chủ yếu đề cập đến việc các tính năng tương tác theo kiểu phi tuyến tính trên nhiều lớp, do đó thực hiện trích xuất và chuyển đổi tính năng. Điều này cũng được thực hiện trong NN tiêu chuẩn, tuy nhiên ở quy mô nhỏ hơn.

Trên cùng một trang, ở đây bạn có định nghĩa 'Mạng thần kinh sâu (DNN) là mạng thần kinh nhân tạo (ANN) với nhiều lớp đơn vị ẩn giữa lớp đầu vào và đầu ra.'


Xin chào Mttk, cảm ơn câu trả lời của bạn, nó đưa ra ánh sáng nhiều hơn cho câu hỏi này. Về điểm cuối cùng của bạn, yes structy rất dễ giải thích sự khác biệt (1 so với nhiều lớp), nhưng sự khác biệt trong cách sử dụng nhiều lớp này dường như là điều quan trọng và nó ít rõ ràng hơn. Đó là lý do tại sao tôi tập trung vào câu hỏi không liên quan đến cấu trúc ..
Nicolas

Thành thật mà nói, tôi không đồng ý với định nghĩa cuối cùng mà tôi đã tham chiếu - vì ANN / NN với một lớp ẩn không thực sự hiệu quả và bạn cần nhiều cho bất kỳ loại dự đoán phức tạp nào (tôi nói điều này bởi vì tôi nghĩ rằng DNN là một từ thông dụng vô dụng được thêm vào một thuật ngữ đã tốt, NN). Tôi nghĩ rằng bạn có thể sử dụng NN và DNN thay thế cho nhau (vì ngày nay không ai sử dụng NN một lớp ẩn), trong khi việc sử dụng các lớp khác nhau giữa các loại DNN (CNN, RBM, RNN, LSTM, CW-RNN, ...) và không phải ý tưởng của chính DNN.
mttk

2

Theo như tôi biết, cái được gọi là Mạng lưới thần kinh sâu (DNN) ngày nay không có gì khác biệt về mặt cơ bản hay triết học so với Mạng lưới thần kinh tiêu chuẩn (NN) cũ. Mặc dù, về mặt lý thuyết, người ta có thể ước chừng một NN tùy ý sử dụng NN nông chỉ có một lớp ẩn, tuy nhiên, điều này không có nghĩa là hai mạng sẽ hoạt động tương tự nhau khi được đào tạo sử dụng cùng một thuật toán và dữ liệu đào tạo. Trong thực tế, có một mối quan tâm ngày càng tăng trong việc đào tạo các mạng nông thực hiện tương tự như các mạng sâu. Tuy nhiên, cách này được thực hiện bằng cách đào tạo một mạng lưới sâu trước tiên, và sau đó đào tạo mạng lưới nông để bắt chướcđầu ra cuối cùng (tức là đầu ra của lớp áp chót) của mạng sâu. Hãy xem, điều làm cho kiến ​​trúc sâu thuận lợi là các kỹ thuật đào tạo ngày nay (lan truyền ngược) xảy ra để hoạt động tốt hơn khi các tế bào thần kinh được đặt trong một cấu trúc phân cấp.

Một câu hỏi khác có thể được đặt ra là: tại sao Mạng thần kinh (đặc biệt là DNN) trở nên phổ biến đến vậy. Theo hiểu biết của tôi, các thành phần kỳ diệu khiến DNN trở nên phổ biến gần đây là như sau:

A. Cải thiện bộ dữ liệu và khả năng xử lý dữ liệu

1. Bộ dữ liệu quy mô lớn với hàng triệu hình ảnh đa dạng đã có sẵn

2. Triển khai GPU nhanh đã được cung cấp cho công chúng

B. Cải thiện thuật toán đào tạo và kiến ​​trúc mạng

1. Đơn vị tuyến tính chỉnh lưu (ReLU) thay vì sigmoid hoặc tanh

2. Kiến trúc mạng sâu phát triển qua nhiều năm


A-1) Cho đến gần đây, ít nhất là trong Tầm nhìn Máy tính, chúng tôi không thể đào tạo các mô hình trên hàng triệu hình ảnh được dán nhãn; đơn giản vì các bộ dữ liệu được dán nhãn có kích thước đó không tồn tại. Hóa ra, bên cạnh số lượng hình ảnh, độ chi tiết của bộ nhãn cũng là một yếu tố rất quan trọng trong sự thành công của DNN (xem Hình 8 trong bài báo này , của Azizpour et al.).

A-2) Rất nhiều nỗ lực kỹ thuật đã được thực hiện để có thể đào tạo các DNN hoạt động tốt trong thực tế, đáng chú ý nhất là sự ra đời của việc triển khai GPU. Một trong những triển khai GPU thành công đầu tiên của DNN, chạy trên hai GPU song song; tuy nhiên, phải mất khoảng một tuần để đào tạo một DNN trên 1,2 triệu hình ảnh của 1000 danh mục sử dụng GPU cao cấp (xem bài viết này của Krizhevsky và cộng sự).

B-1) Việc sử dụng các Đơn vị tuyến tính chỉnh lưu đơn giản (ReLU) thay cho các hàm sigmoid và tanh có lẽ là khối xây dựng lớn nhất trong việc đào tạo các DNN có thể. Lưu ý rằng cả hai hàm sigmoid và tanh đều có độ dốc gần như bằng không ở hầu hết mọi nơi, tùy thuộc vào tốc độ chúng chuyển từ mức độ kích hoạt thấp lên cao; trong trường hợp cực đoan, khi quá trình chuyển đổi đột ngột, chúng ta có một hàm bước có độ dốc bằng 0 ở mọi nơi trừ một điểm xảy ra quá trình chuyển đổi.

B-2) Câu chuyện về cách các kiến ​​trúc mạng thần kinh phát triển qua nhiều năm nhắc nhở tôi về cách tiến hóa thay đổi cấu trúc của một sinh vật trong tự nhiên. Chia sẻ tham số (ví dụ: trong các lớp chập), chuẩn hóa bỏ học, khởi tạo, lịch biểu tỷ lệ học tập, tổng hợp không gian, lấy mẫu phụ trong các lớp sâu hơn và nhiều thủ thuật khác hiện được coi là tiêu chuẩn trong đào tạo DNN đã được phát triển, phát triển, kết thúc phù hợp với năm để làm cho việc đào tạo các mạng lưới sâu có thể như ngày nay.


3
+1. Câu trả lời đầu tiên trong chủ đề này cung cấp câu trả lời thích đáng cho các câu hỏi của OP. Nhiều điểm tốt ở đây. Nhận xét chính duy nhất của tôi là ngoài A và B của bạn, còn có C: Sự gia tăng lớn về kích thước của các bộ dữ liệu đào tạo có sẵn. Điều này dường như ít nhất cũng quan trọng như A và B.
amip

1
Tôi không nghĩ Relu rất quan trọng: bài báo của Alex krizhevsky tuyên bố nó đã khiến việc học nhanh hơn tới 6 lần. Hầu hết các thay đổi cấu trúc mạng khác mà bạn đề cập liên quan đến nns tích chập, chỉ sao chép các đường ống xử lý hình ảnh tiêu chuẩn (điều tốt, nhưng không có thông tin chi tiết mới)
seanv507

1
@amoeba: kích thước của tập dữ liệu nằm dưới A. Tôi đã cập nhật văn bản để tô sáng nó.
Sobi

@ seanv507: thực sự, tôi đã nghĩ đến các mạng chập (ConvNets) khi viết câu trả lời. Nếu có những yếu tố quan trọng khác (không liên quan đến ConvNets) mà tôi đã bỏ lỡ, tôi sẽ đánh giá cao nếu bạn đề cập đến chúng. Tôi sẽ vui mừng để cập nhật câu trả lời của tôi cho phù hợp. Về ReLUs, việc đào tạo nns với tanh và sigmoid khó hơn đáng kể so với ReLU do vấn đề biến mất độ dốc: các đơn vị dễ bị bão hòa và một khi điều đó xảy ra, chúng sẽ mất nhiều thời gian để trở nên không bão hòa trở lại (độ dốc rất nhỏ khi đơn vị đã bão hòa)
Sobi

2

Sự khác biệt giữa NN "Sâu" và NN tiêu chuẩn hoàn toàn là định tính: không có định nghĩa về "Sâu" nghĩa là gì. "Sâu" có thể có nghĩa là bất cứ điều gì từ các kiến ​​trúc cực kỳ tinh vi được sử dụng bởi Google, Facebook và đồng có 50-80 hoặc thậm chí nhiều lớp hơn, đến các kiến ​​trúc 2 lớp ẩn (tổng cộng 4 lớp). Tôi sẽ không ngạc nhiên nếu bạn thậm chí có thể tìm thấy các bài báo tuyên bố học sâu với một lớp ẩn duy nhất, bởi vì "sâu" không có nghĩa gì nhiều.

"Mạng lưới thần kinh" cũng là một từ không có nghĩa chính xác. Nó bao gồm một tập hợp các mô hình cực kỳ lớn, từ các máy Boltzman ngẫu nhiên (vốn là đồ thị không có hướng) đến các kiến ​​trúc tiếp theo với các chức năng kích hoạt khác nhau. Hầu hết các NN sẽ được đào tạo bằng cách sử dụng backprop, nhưng nó không phải là trường hợp nên ngay cả các thuật toán đào tạo cũng không đồng nhất.

Nhìn chung, học sâu, NN sâu và NN sâu đều trở thành những từ bắt kịp tất cả các cách tiếp cận.

Đối với các tài liệu tham khảo giới thiệu tốt về "những gì đã thay đổi": Deep Learning of Đại diện: Nhìn về phía trước , Bengio, 2013 là một đánh giá tốt + quan điểm cho tương lai. Cũng xem Do Deep Nets thực sự cần phải sâu? Ba & Caruana, 2013 minh họa rằng sâu sắc có thể không hữu ích cho đại diện nhưng cho học tập.


Các tài liệu tham khảo bạn đưa ra rất hữu ích, nhưng phần còn lại của câu trả lời ở dạng hiện tại (đọc là "NN không có nghĩa gì cả, DNN không có nghĩa là bất kỳ điều gì, NN và DNN có thể làm rất nhiều thứ") không nhiều, sẽ bạn xem xét sửa đổi nó?
Nicolas

1

Để mở rộng câu trả lời của David Gasquez, một trong những khác biệt chính giữa mạng lưới thần kinh sâu và mạng lưới thần kinh truyền thống là chúng ta không chỉ sử dụng phương pháp truyền ngược cho mạng lưới thần kinh sâu.

Tại sao? Bởi vì backpropagation đào tạo các lớp sau hiệu quả hơn so với đào tạo các lớp trước đó - khi bạn đi sớm hơn và sớm hơn trong mạng, các lỗi sẽ nhỏ hơn và lan tỏa hơn. Vì vậy, một mạng mười lớp về cơ bản sẽ là bảy lớp trọng lượng ngẫu nhiên, theo sau là ba lớp trọng lượng được trang bị, và cũng giống như một mạng ba lớp. Xem ở đây để biết thêm.

Vì vậy, bước đột phá về mặt khái niệm đang coi các vấn đề riêng biệt (các lớp được gắn nhãn) là các vấn đề riêng biệt - nếu trước tiên chúng ta cố gắng giải quyết vấn đề xây dựng lớp đầu tiên tốt, sau đó cố gắng giải quyết vấn đề xây dựng lớp thứ hai tốt chung, cuối cùng chúng ta sẽ có một không gian tính năng sâu sắc mà chúng ta có thể cung cấp cho vấn đề thực tế của mình.


1

NN:

  • Tuy nhiên, một lớp ẩn là đủ nhưng vẫn có thể có nhiều lớp, theo thứ tự từ trái sang phải (model: feed Forward NN)
  • chỉ được đào tạo theo cách có giám sát (backpropagation)
  • khi nhiều lớp được sử dụng, huấn luyện tất cả các lớp cùng một lúc (cùng một thuật toán: backpropagation), nhiều lớp hơn gây khó khăn khi sử dụng vì lỗi trở nên quá nhỏ
  • khó hiểu những gì được học ở mỗi lớp

DNN:

  • nhiều lớp được yêu cầu, các cạnh không bị chặn (model: máy Boltzman bị hạn chế)
  • đầu tiên được đào tạo theo cách không giám sát, trong đó các mạng học các tính năng có liên quan bằng cách học cách tái tạo đầu vào của nó, sau đó được đào tạo theo cách được giám sát để tinh chỉnh các tính năng để phân loại
  • huấn luyện từng lớp một từ lớp đầu vào đến lớp đầu ra (thuật toán: phân kỳ tương phản)
  • mỗi lớp rõ ràng chứa các tính năng tăng trừu tượng

Việc chuyển sang DNN là do ba đột phá độc lập xảy ra vào năm 2006.

Về các định lý về NN, câu hỏi ám chỉ là:

  • Định lý xấp xỉ phổ quát hoặc định lý Cybenko: một mạng nơ ron chuyển tiếp với một lớp ẩn duy nhất có thể xấp xỉ bất kỳ hàm liên tục nào. Tuy nhiên, trong thực tế, nó có thể cần nhiều nơ-ron hơn nếu sử dụng một lớp ẩn duy nhất.

2
-1? Có thật không? Tôi đọc tất cả những điều này trong văn học và đưa ra một so sánh từng điểm của cả hai phương pháp! Vui lòng ít nhất nói rõ những gì không đúng ...
Nicolas

3
Tôi đã không downvote (có lẽ một người downvoter không thích rằng bạn trả lời câu hỏi của riêng bạn? Nhưng điều đó tất nhiên là hoàn toàn tốt ở đây), nhưng đây là một điều không hoàn toàn chính xác. Những gì bạn liệt kê là thuộc tính của DNN: các cạnh đó không bị ảnh hưởng, đó là lần đầu tiên được đào tạo theo cách không giám sát, rằng các lớp được đào tạo từng cái một - tất cả chỉ đề cập đến các mạng lưới niềm tin sâu sắc được đề xuất bởi Hinton vào năm 2006. Đây không phải là nhất thiết đúng với các mạng lưới thần kinh sâu nói chung và trên thực tế hiện nay có nhiều cách để đào tạo một mạng lưới sâu mà không cần tất cả những điều đó. Xem câu trả lời của tôi.
amip

1

O(n)

Tôi nghĩ bạn nên lùi lại và thấy rằng điều này đã tạo ra sự hồi sinh trong AI nông cạn - ví dụ như túi từ để phân tích tình cảm và các ứng dụng ngôn ngữ khác và túi từ ngữ trực quan dẫn đến nhận dạng hình ảnh trước DNN. Không ai nói túi từ là một mô hình ngôn ngữ thực sự, nhưng nó là một giải pháp kỹ thuật hiệu quả. Vì vậy, tôi sẽ nói rằng DNN là một "túi từ ngữ" tốt hơn - xem ví dụ: Szegedy et al. 2013 Tính chất hấp dẫn của mạng lưới thần kinh và Nguyen et al. Mạng lưới thần kinh sâu dễ bị đánh lừa: Dự đoán độ tin cậy cao cho hình ảnh không thể nhận ra trong đó rõ ràng là không có cấu trúc bậc cao hơn v.v. được học (hoặc bất cứ điều gì được yêu cầu cho DNN).


@amoeba tờ giấy khác này gần như là một bài báo đồng hành với người đầu tiên (một lần nữa với rất nhiều hình ảnh!)
seanv507

0

Deep Learning là một tập hợp các thuật toán trong học máy cố gắng mô hình hóa các mức độ trừu tượng cao trong dữ liệu bằng cách sử dụng các kiến ​​trúc bao gồm nhiều phép biến đổi phi tuyến tính .

Nguồn: Nến Arno

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.