딥 러닝을위한 데이터가 얼마나됩니까?


10

딥 러닝 (특히 CNN)과 과적 합을 방지하기 위해 일반적으로 많은 양의 데이터가 필요한 방법에 대해 배우고 있습니다. 그러나 모델의 용량 / 용량이 많을수록 과적 합을 방지하기 위해 더 많은 데이터가 필요하다고 들었습니다. 따라서 내 질문은 : 심층 신경망에서 레이어 당 레이어 / 노드 수를 줄이고 왜 적은 양의 데이터로 작동하게 할 수 없는가? 신경망이 "시작"할 때까지 필요한 기본 "최소 개수의 매개 변수"가 있습니까? 특정 수의 계층 아래에서 신경망은 수작업으로 코딩 된 기능뿐만 아니라 수행하지 않는 것 같습니다.

답변:


11

이것은 훌륭한 질문이며 실제로 언급 한 용량 / 깊이 문제를 다루는 몇 가지 연구가있었습니다.

컨볼 루션 신경망의 깊이로 인해 더 풍부하고 다양한 기능 계층을 학습하게되었다는 많은 증거가 있습니다. 경험적으로 우리는 최고 성능의 네트가 "깊은"경향이 있음을 알 수 있습니다. Oxford VGG-Net에는 19 개의 레이어가 있고 Google Inception 아키텍처는 깊으며 Microsoft Deep Residual Network에는 152 개의 레이어가 있으며 매우 인상적인 ImageNet 벤치 마크를 얻고 있습니다. 결과.

표면적으로는, 어떤 종류의 정규 화제를 사용하지 않으면 더 높은 용량의 모델이 과적 합하는 경향이 있습니다. 매우 심층적 인 네트워크에 과적 합하여 성능을 저하시킬 수있는 한 가지 방법은 적은 수의 훈련 시대에 매우 낮은 훈련 오류에 빠르게 접근 할 수 있다는 것입니다. 확률 적 정규화 기술인 Dropout과 같은 기술을 사용하면 오랜 기간 동안 매우 깊은 그물을 훈련 할 수 있습니다. 이를 통해 훈련 데이터를 더 많이 통과하므로 더 나은 기능을 배우고 분류 정확도를 향상시킬 수 있습니다.

첫 번째 질문과 관련하여 :

심층 신경망에서 레이어 당 레이어 / 노드 수를 줄이고 더 적은 양의 데이터로 작동하게 만드는 이유는 무엇입니까?

훈련 세트 크기를 줄이면 일반화 성능에 어떤 영향을 미칩니 까? 더 작은 학습 세트 크기를 사용하면 분산 된 특징 표현이 더 작아지고 일반화 능력이 떨어질 수 있습니다. 궁극적으로 우리는 잘 일반화 할 수 있기를 원합니다. 더 큰 교육 세트를 사용하면 더 다양한 분산 기능 계층 구조를 배울 수 있습니다.

두 번째 질문과 관련하여 :

신경망이 "시작"할 때까지 필요한 기본 "최소 개수의 매개 변수"가 있습니까? 특정 수의 계층 아래에서 신경망은 수작업으로 코딩 된 기능뿐만 아니라 수행하지 않는 것 같습니다.

이제 깊이 문제에 대한 위의 토론에 약간의 뉘앙스를 추가합시다. 우리가 현재의 최신 기술을 사용하는 곳에서 고성능 전환을 처음부터 훈련시키기 위해 일종의 심층 아키텍처가 사용됩니다.

그러나 모델 압축에 중점을 둔 일련의 결과가 있습니다 . 따라서 이것은 귀하의 질문에 대한 직접적인 대답은 아니지만 관련이 있습니다. 모델 압축은 다음 질문에 관심이 있습니다. 고성능 모델 (이 경우에는 깊이 전환이라고하자)을 고려하여 모델을 압축하여 깊이 또는 매개 변수 수를 줄이며 동일한 성능을 유지할 수 있습니까?

우리는 고성능 고용량 전환을 교사 로 볼 수 있습니다 . 교사를 사용하여보다 컴팩트 한 학생 모델 을 교육 할 수 있습니까 ?

놀랍게도 그 대답은 ' 예' 입니다. 일련의 결과가있었습니다. 전환 관점에 대한 좋은 기사는 Rich Caruana와 Jimmy Ba의 기사입니다. Deep Nets 정말 깊어 야합니까? . 성능 저하가 거의없이 더 얕은 모델을 모방 하기 위해 얕은 모델을 학습 할 수 있습니다. 이 주제에 대해 더 많은 연구가있었습니다.

다른 작품들 중에서 다른 좋은 기사가 누락 된 것 같습니다.

나에게 이런 종류의 결과는 이러한 얕은 모델이 실제로 얼마나 많은 용량을 가지고 있는지 의문을 제기합니다. Caruana, Ba 기사에서 다음과 같은 가능성을 언급합니다.

"결과는 딥 러닝의 강점은 딥 아키텍처와 현재의 훈련 절차 사이의 좋은 일치에서 부분적으로 발생할 수 있으며보다 정확한 얕은 피드 포워드 네트를 훈련시키기 위해 더 나은 학습 알고리즘을 고안 할 수 있음을 시사합니다. 매개 변수의 수, 깊이는 학습을 더 쉽게 만들 수 있지만 항상 필수적인 것은 아닙니다. "

Bau의 Caruana 기사에서 그들은 최첨단 성능을 얻기 위해 얕은 모델을 처음부터 훈련하지 않습니다. 오히려 고성능 딥 모델을 훈련시키고이 모델에서 각 데이터 포인트에 대한 로그 확률을 추출합니다. 그런 다음 이러한 로그 확률을 예측하기 위해 얕은 모델을 학습합니다. 따라서 클래스 레이블에서 얕은 모델을 학습하지 않고 이러한 로그 확률을 사용합니다.

그럼에도 불구하고 여전히 흥미로운 결과입니다. 이것이 귀하의 질문에 대한 직접적인 답변을 제공하지는 않지만, 여기에 매우 관련된 흥미로운 아이디어가 있습니다.

기본적으로 : 모델의 이론적 "용량"과 모델의 올바른 구성을 찾는 데는 차이가 있음을 항상 기억해야합니다. 후자는 최적화 방법에 따라 다릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.