신경망의 모델 크기는 너비(width)와 깊이(depth)로 정해진다.
- 너비: 계층별 뉴런 수
- 깊이: 계층 수
- 데이터가 특징이 많고 데이터 간의 관계가 복잡할수록 특징을 학습하는 뉴런의 수를 늘려줘야 한다.
- 특징의 추상화 수준이 높을수록 추상화를 수행하는 계층의 수를 늘려줘야 한다.
하지만 데이터만 보고 내재한 잠재적 특징의 수나 관계의 복잡도, 추상화 수준을 가늠하기란 쉽지 않다. 따라서 적절한 모델의 크기를 찾기 위해서는 경험적으로 크기의 범위를 정하고 성능 분석을 통해 취적의 크기를 탐색해 나가야 한다.
모델 크기 탐색
신경망 모델의 크기를 탐색할 때는 그리드 서치(Grid Search)나 랜덤 서치(Random Search)와 같은 탐색 방법을 사용한다.
그리드 서치
parameter별로 구간을 정해서 등간격으로 값을 샘플링하는 방법이다.
랜덤 서치
여러 parameter를 조합해서 랜덤 하게 값을 샘플링하는 방법이다.
왼쪽이 그리드 서치, 오른쪽이 랜덤 서치이다.
그리드 서치는 파라미터별로 3개씩 값이 정해졌고 랜덤 서치는 9개씩 값이 정해였다. 랜덤 서치가 더 골고루 테스트할 수 있기 때문에 그리드 서치보다 성능이 좋은 편이다.
최근에는 NAS(Network Architecture Search)와 같은 자동 모델 탐색 밥법을 활용하기도 한다.
NAS는 최적의 모델을 생성하는 방법을 학습하는 방식으로 강화 학습이나 유전 알고리즘, 베이지안 기법등으로 구현한다.
모델 크기 조정
신경망 모델을 구성할 때 많이 사용하는 방법 중 하나가 성능이 검증된 기본 모델을 선택해서 새로운 문제에 맞게 모델의 크기를 조정하는 것이다.
이때 어떠한 방식을 사용할 수 있을까?
이피션트넷 EfficientNet
2019년도에 제안됨
신경망의 너비, 깊이와 함께 입력 이미지의 해상도를 고려하려 3가지의 요소를 동시에 늘렸을 때 최고의 성능을 가지는 모델을 찾을 수 있다는 것을 보여줌
- (a): 기본 모델
- (b): (a)에서 너비를 늘린 모델
- (c): (a)에서 깊이를 늘린 모델
- (d): (a)에서 해상도를 높인 모델
- (e): (a)에서 너비, 깊이, 해상도를 동시에 늘린 모델
(b) 모델의 경우 너비를 늘릴수록 성능은 향상하지만 일정 수준이 되면 성능이 향상하지 않음
(c) 모델의 경우 높이를 높일수록 성능이 향상하다 포화상태가 되고 일정 시준이 되면 성능이 향상하지 않음
(d) 모델의 경우 해상도를 높일수록 성능이 향상하지만 일정 수준이 되면 성능이 향상하지 않음
반면 3가지 요소를 모두 늘리면 다른 모델과 비교했을 때 성능이 좋아지는 것을 확인할 수 있다.
모델의 크기를 늘려야 하는 경우 너비, 깊이, 해상도를 함께 고려해야 한다는 것을 염두에 두자.
'Machine Learning > 이론' 카테고리의 다른 글
[ML] 신경망 학습, 학습 최적화 (0) | 2023.01.07 |
---|---|
[ML] 신경망 학습시 주의사항 (0) | 2023.01.06 |
[ML] 분류와 회귀 문제 (0) | 2023.01.03 |
[ML] Image data (0) | 2022.09.29 |
[ML] Neural Network (0) | 2022.09.27 |