신경망이 더 깊어 지지만 더 넓어지지 않는 이유


73

최근 몇 년 동안 4 개의 공간 에서 최첨단 네트워크가 7 층 ( AlexNet )에서 1000 층 ( 잔여 그물) 으로 이동하면서 회선 신경 네트워크 (또는 일반적으로 깊은 신경 네트워크)가 점점 더 깊어 졌습니다. 연령. 더 깊은 네트워크에서 성능이 향상되는 이유는 더 복잡한 비선형 기능을 배울 수 있기 때문입니다. 충분한 훈련 데이터가 주어지면 네트워크가 서로 다른 클래스를 더 쉽게 구별 할 수 있습니다.

그러나 추세는 각 계층의 매개 변수 수를 따르지 않은 것으로 보입니다. 예를 들어, 컨볼 루션 레이어의 피처 맵 수 또는 완전히 연결된 레이어의 노드 수는 레이어 수의 큰 증가에도 불구하고 거의 동일하게 유지되며 여전히 상대적으로 크기가 작습니다. 그러나 직감에 따르면 레이어 당 매개 변수 수를 늘리면 각 레이어에 비선형 함수를 학습 할 수있는 풍부한 데이터 소스가 제공되는 것 같습니다. 그러나이 아이디어는 각각 더 적은 수의 매개 변수로 더 많은 레이어를 추가하기 위해 간과 된 것으로 보입니다.

따라서 네트워크가 "깊어"졌지만 "더 넓어지지"않았습니다. 왜 이런거야?


1
+1이지만 공정하게 말하면,이 1000 개 이상의 계층 네트워크가 다른 네트워크보다 성능이 뛰어난 "최신 기술"인 것은 아닙니다. 링크 한 arxiv 논문은 ImageNet에서 현재 승자로 152 개의 레이어가있는 잔여 네트워크를보고합니다.
amoeba

3
넓은 잔차 네트워크 arxiv.org/abs/1605.07146 을 읽었습니까? ... 아무 이유도 없습니다. 그라디언트 디센트를 사용하여 볼록하지 않은 함수를 최적화하는 것은 이론적 근거가 없습니다 ... 시련과 많은 오류가 있습니다 :-)
seanv507

@ seanv507이 링크에 감사드립니다. BTW, 여기 stats.stackexchange.com/questions/214360 과 매우 관련된 스레드가 있으며이 레딧 스레드에 대한 링크가 있습니다.
amoeba


stats.stackexchange.com/questions/182734 와 매우 관련이 있습니다.
amoeba

답변:


87

면책 조항으로, 나는 연구에서 신경망을 연구하지만, 일반적으로 귀하의 질문에 인용 한 연구의 최첨단 네트워크보다 실제로는 작고 얕은 신경망을 사용합니다. 나는 매우 깊은 네트워크의 특이점과 특성에 대한 전문가가 아니며 나는 누군가에게 연기 할 것입니다.

첫째, 원칙적으로 깊은 신경망이 전혀 필요한 이유는 없습니다. 단 하나의 숨겨진 레이어를 가진 충분히 넓은 신경망은 충분한 훈련 데이터가 주어지면 (합리적인) 기능과 비슷할 수 있습니다. 그러나 매우 넓고 얕은 네트워크를 사용하는 데는 몇 가지 어려움이 있습니다. 주된 문제는 매우 넓고 얕은 네트워크는 암기에는 능숙하지만 일반화에는 능숙하지 않다는 것 입니다. 따라서 가능한 모든 입력 값으로 네트워크를 학습하면 초 광대역 네트워크가 결국 원하는 해당 출력 값을 기억할 수 있습니다. 그러나 실용적인 응용 프로그램의 경우 훈련 할 수있는 모든 입력 값이 없기 때문에 유용하지 않습니다.

여러 계층의 장점은 다양한 추상화 수준에서 기능을 배울 수 있다는 것 입니다. 예를 들어 이미지를 분류하기 위해 심층 컨볼 루션 신경망을 훈련 시키면 첫 번째 레이어가 가장자리와 같은 매우 기본적인 것들을 인식하도록 훈련되고, 다음 레이어는 모양과 같은 가장자리 컬렉션을 인식하도록 훈련됩니다. 레이어는 눈이나 코와 같은 모양의 컬렉션을 인식하도록 학습하며, 다음 레이어는 얼굴과 같은 고차 특성을 학습합니다. 다중 계층은 원시 데이터와 고급 분류 간의 모든 중간 기능을 학습하기 때문에 일반화에 훨씬 유리 합니다.

이것이 왜 매우 넓지 만 얕은 네트워크가 아닌 딥 네트워크를 사용할 수 있는지 설명합니다. 그러나 왜 매우 깊고 넓은 네트워크가 아닌가? 대답은 좋은 결과를 내기 위해 네트워크를 가능한 한 작게 만들고 싶다는 것입니다. 네트워크의 크기를 늘리면 실제로 네트워크에서 알아야하는 더 많은 매개 변수를 도입하게되므로 과적 합의 가능성이 높아집니다. 매우 넓고 심도 깊은 네트워크를 구축하면 각 레이어에서 원하는 결과를 암기 할 수 있으며 새로운 데이터 로 일반화하지 못하는 신경망이 생길 수 있습니다 .

과적 합의 유령 외에도 네트워크가 넓을수록 훈련하는 데 시간이 오래 걸립니다 . 딥 네트워크는 이미 계산 비용이 많이 들기 때문에 제대로 작동하지만 더 넓지 않게 만들 수있는 강력한 인센티브가 있습니다.


+1. arxiv.org/abs/1605.07146에 대한 의견은 ?
amoeba

2
나는 그것을 감추고 있었기 때문에 권위있는 것을 말할 수는 없지만 저자는 적어도 잔여 네트워크의 경우 적어도 (16 층 깊이) 그물이 좁고 매우 깊음 (1000 층)을 능가한다는 것을 알았습니다 ) 그물. 잔류 네트워크에 대해서는 많이 알지 못하지만 소개에 따르면 교육에 어려움이있는 것은 레이어가 아무것도 배우지 않아 결과에 크게 기여하지 않는 경향이 있다는 것입니다. 더 적지 만 더 강력한 레이어를 사용하면 이것을 피할 수 있습니다. 이것이 다른 종류의 NN에 적용되는지 여부는 모르겠습니다.
J. 오브라이언 안토니 니

명확하고 간결한 답변. @J
ctwardy

21

나는 당신의 질문에 대한 명확한 대답이 없다고 생각합니다. 그러나 기존의 지혜는 다음과 같습니다.

기본적으로 학습 알고리즘의 가설 공간이 커짐에 따라 알고리즘은 더욱 풍부하고 풍부한 구조를 학습 할 수 있습니다. 그러나 동시에 알고리즘이 과적 합되기 쉽고 일반화 오류가 증가 할 가능성이 있습니다.

따라서 궁극적으로 주어진 데이터 세트에 대해 실제 데이터 구조를 학습 할 수있는 충분한 용량을 갖춘 최소 모델로 작업하는 것이 좋습니다. 그러나 일반적으로 "데이터의 실제 구조"는 알려져 있지 않으며, 종종 후보 모델의 용량까지도 모호하게 이해되기 때문에 이는 매우 손쉬운 조언입니다.

신경망과 관련하여 가설 공간의 크기는 매개 변수의 수에 의해 제어됩니다. 그리고 고정 된 수의 매개 변수 (또는 고정 된 크기의 순서)에 대해 더 깊어지면 모델이 더 풍부한 구조 (예 : 이 백서 ) 를 캡처 할 수 있습니다 .

더 적은 수의 매개 변수로 더 깊은 모델의 성공 여부를 부분적으로 설명 할 수 있습니다. VGGNet (2014 년)은 ~ 140M 매개 변수를 가진 16 개의 레이어를 가지고있는 반면 ResNet (2015 년부터)은 152 개의 레이어로 이길 수 있지만 ~ 2M 매개 변수 만

(한 편으로, 더 작은 모델은 계산하기가 더 쉬울 수 있지만 깊이가 실제로 훈련을 복잡하게하기 때문에 그 자체가 중요한 요소라고 생각하지 않습니다)

이 경향 (더 깊이 있고 매개 변수가 적음)은 대부분 비전 관련 작업 및 회선 네트워크에 존재하며, 이는 도메인 별 설명을 요구합니다. 여기 또 다른 관점이 있습니다.

컨볼 루션 레이어의 각 "뉴런"에는 "수용 필드"가 있으며, 이는 각 출력에 영향을주는 입력의 크기와 모양입니다. 직관적으로 각 커널은 근처 입력 사이의 관계를 캡처합니다. 그리고 작은 커널 (일반적이고 선호되는)은 작은 수용 필드를 가지므로 지역 관계에 관한 정보 만 제공 할 수 있습니다.

그러나 더 깊이 들어가면 일부 초기 계층에 대한 각 뉴런의 수용 장이 커집니다. 따라서 딥 레이어는 전역 의미 론적 의미와 추상적 세부 사항 (관계의 관계 ... 객체 관계의 관계)을 갖춘 기능을 제공하면서도 작은 커널 (네트워크가 배우는 관계를 정규화하고 수렴 및 일반화하는 데 도움이되는)을 사용합니다.

따라서 컴퓨터 비전에서 심층 컨볼 루션 네트워크의 유용성은 이미지와 비디오의 공간 구조로 부분적으로 설명 될 수 있습니다. 다른 유형의 문제 나 비 벌집 구조의 경우 깊이가 실제로 제대로 작동하지 않을 때가 있습니다.


딥 네트워크의 제한된 Boltzmann Machine 부분은 수렴 시간에 큰 승수입니다. (afaict)
EngrStudent

4
RBM은 딥 러닝 고유의 것이 아닙니다. 많은 (현재, 대부분?) 성공적인 딥 네트워크는 RBM을 사용하지 않습니다.
Borbei

3
그 종이에 연결해 주셔서 감사합니다. 나는 전에 본 적이 없었고 매우 관련이 있습니다.
J. 오브라이언 안토니 니

@Borbei-RBM없이 기능을 분리하려면 어떻게해야합니까?
EngrStudent

1
+1. arxiv.org/abs/1605.07146에 대한 의견은 ?
amoeba

10

더 많은 기능을 추가하면 많은 기능이 추가 된 후에도 이점이 빨리 사라집니다. PCA 와 같은 도구가 작동하는 한 가지 이유 는 몇 가지 구성 요소가 기능의 차이를 가장 많이 포착한다는 것입니다. 따라서 어느 시점 이후에 더 많은 기능을 추가하는 것은 거의 쓸모가 없습니다.

반면에 기능의 ma에 적합한 기능을 찾는 것은 항상 좋은 생각입니다. 그러나 좋은 이론이 없다면 올바른 기능을 찾기가 어렵습니다. 따라서 레이어를 추가하면 무차별 대입 방식의 형태로 도움이됩니다.

간단한 사례를 고려하십시오 : 자동차의 공기 저항 . 예를 들어, 우리는 방정식을 알지 못했습니다 : 여기서 자동차의 단면적, rho- 공기 밀도 및 자동차의 속도. 우리는 자동차 측정이 중요하다는 것을 알 수 있고, 그것들을 특징으로 추가 할 수 있습니다. 그래서 우리는 기능을 계속 추가하고 공기압, 온도, 길이, 자동차 너비, 좌석 수 등을 추가 할 수 있습니다.ρ의 V

fCρAv2/2
Aρv

우리는 와 같은 모델로 끝날 것입니다 . 모든 상호 작용과 다항식을 추가하지 않으면 이러한 기능이 어떻게 "진정한"방정식으로 어셈블되지 수 있습니다. 그러나 진정한 방정식이 다항식이 아니었다면 지수 또는 다른 이상한 초월 함수가 있다고 말하면 기능 세트를 확장하거나 네트워크를 넓히는 식으로 에뮬레이션 할 기회가 없습니다.

fiβixi

그러나 네트워크를 더 깊게 만들면 단 두 개의 레이어로 위의 방정식을 쉽게 얻을 수 있습니다. 더 복잡한 함수는 더 많은 레이어를 필요로하기 때문에 레이어 수를 깊게하는 것이 많은 문제에 빠질 수있는 방법입니다.


5
선형 전송 함수를 가정합니다. 그러나 많은 다른 (공통) 선택이 있으며 ANN보편적 근사 정리에 따르면 단일 숨겨진 비선형 레이어 (넓은 경우)조차도 멋진 기능에 가깝습니다. 따라서 대표성은 딥 네트워크의 성공을 설명 할 수 없습니다.
Borbei

2
내 예제는 선형 적이지만 더 광범위한 사례에 적용됩니다. "좋은"기능을 가정했지만 많은 것이 그렇게 좋지는 않습니다. 예를 들어 구매할 자동차를 선택할 때 왜 내 결정 알고리즘이 좋은 기능이 될까요?
Aksakal

2

깊이 와 너비 의 밀도가 높은 신경망 의 경우 매개 변수의 수 (따라서 네트워크를 실행하거나 훈련시키는 데 필요한 RAM)는 입니다. 따라서 제한된 수의 매개 변수 만있는 경우 폭을 조금만 늘리는 것보다 깊이를 크게 늘리는 것이 좋습니다.w O ( d w 2 )dwO(dw2)

매개 변수 수를 제한하려고하는 이유는 무엇입니까? 여러 가지 이유 :

  • 과적 합을 피하려고합니다. (매개 변수의 수를 제한하는 것은 이것을 달성하기위한 매우 무딘 도구입니다.)
  • 같은 수의 매개 변수를 사용하여 다른 사람의 모델보다 성능이 뛰어나면 연구 결과가 더욱 인상적입니다.
  • 모델 (아담을 사용하는 경우 모멘트 매개 변수와 함께)이 단일 GPU의 메모리에 들어갈 수 있으면 모델 교육이 훨씬 쉬워집니다.
  • 실제 응용 프로그램에서 RAM은 모델을 제공 할 때 종종 비쌉니다. 특히 휴대 전화 등에서 모델을 실행하는 경우에 해당하지만 클라우드에서 모델을 제공하는 경우에도 적용 할 수 있습니다.

를 Where 않는 에서 온? 너비 의 두 인접 레이어의 경우 이들 사이의 연결은 로 설명됩니다 . 따라서 너비 의 레이어 (입력 및 출력 레이어)가있는 경우 매개 변수 수는 대신 폭을 제한 종종 사용되는 다른 전략은 희소 연결을 사용하는 것이다. 예를 들어, 네트워크 토폴로지를 초기화 할 때 확률 각 연결을 승인 할 수 있으므로 총 매개 변수 수는w 1 , w 2 w 1 × w 2 ( D - 2 ) wO(dw2)w1,w2w1×w2(d2)w1 /

(d2)w2+w(input layer width)+w(output layer width)=O(dw2).
O(차원w)1/wO(dw). 그러나 이렇게하면 너비를 늘리면 모델의 학습 능력이 반드시 높아지는 것은 확실하지 않습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.