사소한 것부터 시작합시다. 심층 신경망은 단순히 숨겨진 계층이 많은 피드 포워드 네트워크입니다.
이것은 정의에 대해 말할 것이 많거나 적습니다. 신경망은 반복적이거나 피드 포워드 일 수 있습니다. 피드 포워드는 그래프에 루프가 없으며 레이어로 구성 할 수 있습니다. "다수의"계층이 있다면 네트워크가 깊다고 말합니다 .
얼마나 많은 층 네트워크는 깊은받을 수 있도록해야해야합니까? 이것에 대한 명확한 대답은 없지만 (얼마나 많은 곡물 이 힙을 만드는지 묻는 것과 같지만) 일반적으로 두 개 이상의 숨겨진 레이어가 깊은 것으로 계산됩니다. 대조적으로, 단일 숨겨진 계층만을 갖는 네트워크는 통상적으로 "얕은"이라 불린다. 나는 여기에 약간의 인플레이션이있을 것으로 의심하고, 10 년 안에 사람들은 10 층 이하의 것은 얕고 유치원 운동에만 적합하다고 생각할 것입니다. 비공식적으로 "깊은"은 네트워크가 다루기가 어렵다는 것을 나타냅니다.
여기에 적응 된 그림 이 있습니다 .
그러나 당신이 묻는 실제 질문은 물론 많은 층을 갖는 것이 왜 유익할까요?
다소 놀라운 답은 아무도 모른다는 것입니다. 아래에서 간단히 살펴볼 몇 가지 일반적인 설명이 있지만 그중 어느 것도 사실로 입증되지 않았으며 많은 레이어를 갖는 것이 실제로 유익 하다는 것을 확신 할 수조차 없습니다 .
딥 러닝이 대중적으로 인기가 많기 때문에 매년 모든 이미지 (이미지 인식, Go 재생, 자동 번역 등)를 깨고 업계 등에서 사용되고 있습니다. 우리는 여전히 없습니다 아주 그렇게 잘 작동 이유를 확인합니다.
나는 내 논의를 기반으로 깊은 학습 2017 년 나가서 널리 것으로 간주됩니다 Goodfellow, Bengio 및 Courville에 의해 책 깊은 학습에 대한 책. (무료로 온라인으로 제공됩니다.) 관련 섹션은 6.4.1 Universal Approximation Properties and Depth 입니다.
당신은 그것을 썼다
10 년 전 수업에서 신경망이 나타낼 수있는 기능 측면에서 여러 레이어 또는 하나의 레이어 (입력 및 출력 레이어를 계산하지 않음)가 [...]
1989 년 Cybenko가 증명하고 1990 년대에 다양한 사람들이 일반화 한 이른바 범용 근사 정리를 참조해야합니다 . 기본적으로 얕은 신경망 (숨겨진 계층 1 개)은 모든 기능에 근접 할 수 있으며, 원칙적으로 무엇이든 배울 수 있습니다. 이것은 오늘날 대부분의 신경망에서 사용하고있는 정류 된 선형 단위를 포함하여 다양한 비선형 활성화 함수에 해당됩니다 ( 이 결과에 대해서는 교과서 참조 Leshno et al. 1993 ).
그렇다면 왜 모두가 깊은 그물을 사용합니까?
글쎄, 순진한 대답은 그들이 더 잘 작동하기 때문입니다. 다음은 하나의 특정 작업에서 더 많은 계층을 갖는 데 도움이 되는 딥 러닝 책 의 그림 이지만 다양한 작업 및 도메인에서 동일한 현상이 종종 관찰됩니다.
우리는 얕은 네트워크 가 더 깊은 네트워크 만큼 성능이 좋을 수 있다는 것을 알고 있습니다. 그러나 그렇지 않습니다. 그리고 그들은 보통 그렇지 않습니다. 문제는 --- 왜? 가능한 답변 :
- 아마도 얕은 네트워크는 깊은 네트워크보다 더 많은 뉴런을 필요로할까요?
- 얕은 네트워크가 현재 알고리즘으로 훈련하기가 더 어려울 수 있습니다 (예 : 로컬 최소 점이 더 심하거나 수렴 속도가 느리거나 다른 것)?
- 어쩌면 얕은 아키텍처가 우리가 일반적으로 해결하려고하는 종류의 문제에 맞지 않을 수도 있습니다 (예 : 객체 인식은 전형적인 "깊고"계층 적 프로세스입니까?)
- 다른 것?
깊은 학습 이 책은 글 머리 기호 1 번과 3 주장한다. 첫째, 얕은 네트워크의 단위 수는 작업 복잡성으로 기하 급수적으로 증가한다고 주장합니다. 따라서 얕은 네트워크를 유용하게 사용하려면 매우 커야합니다. 딥 네트워크보다 훨씬 클 수 있습니다. 이것은 얕은 네트워크가 어떤 경우에는 기하 급수적으로 많은 뉴런을 필요로 한다는 것을 증명하는 많은 논문을 기반으로 한다. 그러나 MNIST 분류 또는 Go 재생이 그러한 경우인지는 확실하지 않습니다. 둘째,이 책은 이렇게 말합니다.
심층 모델을 선택하면 우리가 배우고 자하는 기능에는 몇 가지 간단한 기능의 구성이 포함되어야한다는 일반적인 믿음이 있습니다. 이것은 학습 학습 문제가 학습 변수가 일련의 기본 변동 요인을 발견하는 것으로 구성되어 있다고 생각하는 것으로 표현 학습 관점에서 해석 될 수 있습니다.
현재의 "합의"는 총알 점 # 1과 # 3의 조합이라고 생각합니다. 실제 작업의 경우 딥 아키텍처는 종종 유리하며 얕은 아키텍처는 비효율적이며 동일한 성능을 위해 더 많은 뉴런이 필요합니다.
그러나 입증 된 것과는 거리가 멀다. 예를 들어 Zagoruyko와 Komodakis, 2016, Wide Residual Networks를 고려하십시오 . 2015 년에 150 개 이상의 레이어 가있는 잔여 네트워크가 나타 났 으며 다양한 이미지 인식 공모전에서 우승했습니다. 이것은 큰 성공을 거두었고 깊이를지지하는 설득력있는 논쟁처럼 보였습니다. 다음은 나머지 네트워크 논문에 대한 첫 번째 저자 의 프레젠테이션 에서 얻은 한 그림입니다 (시간이 혼란스럽게 왼쪽으로갑니다).
그러나 위에 링크 된 논문은 "단지"16 개의 레이어를 가진 "와이드"잔여 네트워크가 150 개 이상의 레이어를 가진 "깊은"네트워크보다 뛰어나다는 것을 보여줍니다. 이것이 사실이라면, 위 그림의 요점은 무너집니다.
또는 Ba and Caruana, 2014 년을 고려하십시오. Deep Nets은 정말로 깊어 야합니까? :
이 논문에서 우리는 얕은 그물이 깊은 그물과 같은 기능을 학습 할 수 있고 어떤 경우에는 깊은 그물과 같은 수의 매개 변수를 학습 할 수 있다는 경험적 증거를 제공한다. 먼저 최첨단 딥 모델을 훈련 한 다음 딥 모델을 흉내 내기 위해 얕은 모델을 훈련시켜이를 수행합니다. 모방 모델은 다음 섹션에서 설명하는 모델 압축 체계를 사용하여 학습됩니다. 놀랍게도 모델 압축을 사용하면 얕은 그물을 원본에서 직접 훈련 할 때이 얕은 그물을 깊은 그물처럼 정확하게 훈련시킬 수는 없지만 얕은 그물을 일부 깊은 모델만큼 정확하게 훈련시킬 수 있습니다 교육 자료에 라벨을 붙였습니다. 딥 네트와 동일한 수의 매개 변수를 가진 얕은 네트가 충실도가 높은 딥 네트를 모방하는 것을 배울 수 있다면,
사실이라면 이것은 올바른 설명이 # 1 또는 # 3이 아니라 내 총알 # 2라는 것을 의미합니다.
내가 말했듯이 --- 아직 아무도 확실히 모른다.
끝 맺는 말
지난 10 년 동안 딥 러닝에서 달성 한 진도는 정말 놀랍지 만, 이러한 진전의 대부분은 시행 착오에 의해 달성되었으며, 딥 넷이 제대로 작동 하는 이유 에 대한 기본적인 이해는 여전히 부족 합니다. 사람들이 효과적인 딥 네트워크를 설정하는 데 중요하다고 생각하는 것의 목록조차도 2 년마다 변하는 것 같습니다.
딥 러닝 르네상스는 2006 년에 누구로부터도 많은 관심없이 신경망에서 일한 적이있는 Geoffrey Hinton이 딥 네트워크를 효과적으로 훈련 할 수있는 몇 가지 획기적인 논문을 발표하면서 시작되었습니다 ( 과학 논문 , 신경 계산 논문 ) . 비결은 경사 하강을 시작하기 전에 감독되지 않은 사전 훈련 을 사용하는 것이 었습니다 . 이 논문은 현장에 혁명을 일으켰으며, 몇 년 동안 사람들은 감독되지 않은 사전 훈련이 핵심이라고 생각했습니다.
그런 다음 2010 년 Martens는 심층 신경망이 2 차 방법 (예 : Hessian-free 방법)으로 훈련 될 수 있고 사전 훈련으로 훈련 된 네트워크를 능가 할 수 있음을 보여주었습니다 . Hessian-free 최적화를 통한 딥 러닝 . 그리고 2013 년 Sutskever et al. : 매우 영리한 트릭 확률 그라데이션 하강 헤 시안없는 방법을 능가 할 수 있다는 것을 보여 주었다 깊은 학습의 초기화 및 모멘텀의 중요성에 . 또한, 2010 년경 사람들은 S 자형 단위 대신 정류 된 선형 단위를 사용하면 경사 하강에 큰 차이가 있음을 깨달았습니다. 드롭 아웃은 2014 년에 나타났습니다. 잔여 네트워크는 2015 년에 나타났습니다. 사람들은 딥 네트워크와10 년 전의 주요 통찰력처럼 보였던 것은 오늘날의 성가신 것으로 간주됩니다. 이 모든 것은 시행 착오에 의해 주도되며 어떤 것이 잘 작동하고 어떤 것이 제대로 작동하지 않는지에 대한 이해 가 거의 없습니다. 딥 네트워크 교육은 많은 트릭과 같습니다. 성공적인 트릭은 일반적으로 팩트 후 합리화됩니다.
우리는 왜 딥 네트워크가 성능 수준에 도달했는지조차 모릅니다. 사람들은 단지 10 년 동안 지역의 최소 점을 탓했지만, 현재의 생각은 이것이 중요하지 않다는 것입니다 (성능 고원에서는 기울기가 크게 유지되는 경향이 있습니다). 이것은 딥 네트워크에 대한 기본적인 질문이며 우리는 이것을 알지 못합니다 .
업데이트 : 이것은 기계 학습에 대한 Ali Rahimi의 NIPS 2017 이야기의 주제입니다 : https://www.youtube.com/watch?v=Qi1Yry33TQE .
[이 답변은 2017 년 4 월에 완전히 작성되었으므로 아래 의견 중 일부는 더 이상 적용되지 않습니다.]