머신 러닝 모델의 "용량"은 무엇입니까?


15

Carl Doersch의 Variational Autoencoders에 대한자습서를 공부하고 있습니다. 두 번째 페이지에는 다음과 같이 표시됩니다.

가장 인기있는 프레임 워크 중 하나는이 자습서의 주제 인 Variational Autoencoder [1, 3]입니다. 이 모델의 가정은 약하고 역 전파를 통해 훈련이 빠릅니다. VAE는 근사값을 계산하지만이 근사값으로 인한 오차는 고용량 모델을 감안할 때 매우 작습니다 . 이러한 특성으로 인해 인기가 급상승했습니다.

나는 과거에 고용량 모델 에 대한 이러한 종류의 주장을 읽었 지만 그것에 대한 명확한 정의를 찾지 못하는 것 같습니다. 또한 이 관련 stackoverflow 질문을 찾았 지만 대답은 매우 만족스럽지 않습니다.

모델 용량에 대한 정의가 있습니까? 그것을 측정 할 수 있습니까?

답변:


13

용량은 비공식 용어입니다. 모델 복잡성에 매우 가깝습니다 (동의어가 아닌 경우). 모델이 표현할 수있는 패턴이나 관계가 얼마나 복잡한 지 이야기 할 수있는 방법입니다. 용량이 큰 모델이 용량이 작은 모델보다 더 많은 변수간에 더 많은 관계를 모델링 할 수있을 것으로 기대할 수 있습니다.

용량의 구어 적 정의에서 비유하면 모델이 정보로 완전히 채워질 때까지 점점 더 많은 데이터에서 학습 할 수있는 모델의 능력이라고 생각할 수 있습니다.

용량을 공식화하고 수치를 계산하는 방법에는 여러 가지가 있지만, 중요한 것은 용량의 가능한 "작동 화"일뿐입니다. 공식은 아름다움에 대한 하나의 오해로 해석됩니다.)


VC 차원 은 수학적으로 엄밀한 용량 공식입니다. 그러나 모델의 VC 차원과 모델의 실제 데이터 수용 능력 간에는 큰 차이가있을 수 있습니다. VC의 희미 함을 알면 모델의 일반화 오류에 얽매이기는하지만 이것은 신경망에 유용하기에는 너무 느슨합니다.

연구의 또 다른 라인은 여기를 참조 용량의 측정으로 신경 네트워크의 무게 행렬의 스펙트럼 표준을 사용하는 것입니다. 이것을 이해하는 한 가지 방법은 스펙트럼 규범이 네트워크의 Lipschitz 상수에 한정된다는 것입니다.

모형의 용량을 추정하는 가장 일반적인 방법은 매개 변수 수를 계산하는 것입니다. 매개 변수가 많을수록 일반적으로 용량이 높습니다. 물론 소규모 네트워크는 대규모 네트워크보다 복잡한 데이터를 더 잘 모델링하는 방법을 배우는 경우가 많으므로이 방법도 완벽하지 않습니다.

용량을 측정하는 또 다른 방법은 임의의 레이블을 사용하여 모델을 훈련시키는 것입니다 ( Neyshabur et al. )-네트워크가 임의의 레이블과 함께 많은 입력을 정확하게 기억할 수있는 경우 모델이 모든 것을 기억할 수있는 능력을 가지고 있음을 보여줍니다 개별적으로 데이터 포인트. "학습"될 수있는 입력 / 출력 쌍이 많을수록 용량이 높아집니다.

ϵ


1
이것은 stackoverflow의 답변보다 더 나은 대답입니다. 감사합니다. 나는 여전히 다른 것에 대한 정당화로 사용되는 느슨하게 정의 된 용어를 보는 데 어려움을 겪고 있지만, 그것이 필드가 어떻게 발전하고 있는지 추측합니다.
Andrés Marafioti

1
"모델의 VC 치수와 모델의 실제 용량 사이에는 큰 차이가있을 수 있습니다." "실제 용량"이 정확하게 정의되어 있지 않기 때문에 이것은 매우 잘못된 내용입니다. 실제로 VC 치수는 모델 용량을 측정하는 좋은 척도입니다. 신경망은 특정 문제를 해결하는 것처럼 보이기 때문에 "고성능"으로 만들지는 않습니다. 실제로, 대부분의 사람들은 신경망이 문제를 해결하고 있다고 생각하지만, 훨씬 더 간단한 문제를 해결하고 있으며, 실제로는 (예기치 않게 "간단한 문제를 해결하기 위해"예기치 않은 "훈련을 받았기 때문에) 실제로 실패합니다.
nbro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.