[딥러닝] 파이토치 채널을 늘리는 이유

김영민·2023년 2월 15일
0

DeepLearning

목록 보기
27/33
post-custom-banner

딥러닝을 공부하다 보면 딥러닝 모델을 짤 때, in_channel, out_channel을 통해 채널을 조작합니다.

그 이유는 무엇일까?

파이토치를 사용했을 때로 가정해보겠습니다.

우선 흔히들 사용하는 Conv2d 함수입니다.

torch.nn.Conv2d(in_channelsout_channelskernel_sizestride=1padding=0dilation=1groups=1bias=Truepadding_mode='zeros'device=Nonedtype=None)

PyTorch의 Conv2d 함수에서 채널 수를 조작하는 것은 컨볼루션 신경망(CNN)에 의해 학습된 기능의 깊이를 제어하는 방법입니다.

Conv2d 함수는 CNN의 주요 구성 요소이며, 입력 데이터에 대해 컨볼루션 작업을 수행합니다.

입력 채널의 수입력 feature map의 수에 해당하는 반면,

출력 채널의 수입력 feature map에 적용되는 필터의 수에 해당합니다.

각 필터는 입력 이미지에서 특정 기능을 감지하는 방법을 학습합니다.

Conv2d 계층에서 출력 채널 수를 늘림으로써 모델은 더 복잡한 기능을 학습할 수 있으며,

이는 이미지 분류 또는 분할과 같은 복잡한 작업에서 성능을 향상 시킬 수 있습니다.

그러나 출력 채널의 수를 늘리면 모델의 매개 변수 수도 증가하므로 데이터 세트가 작을 경우

과적합이 발생할 수 있습니다.

  • 모델이 깊어질수록 보통 채널 수는 많아집니다.
    1. 초반의 이미지는 연산량이 너무 많기 때문에 적은 필터 값을 사용
    2. 후반부의 feature들은 더욱 추상적으로 바뀌기 때문에 더 많은 형태의 모양이 필요

즉, 쉽게 정리하자면, feature map들을 많이 만들기 위해 채널 수를 늘리는 것이라고 볼 수 있습니다.

post-custom-banner

0개의 댓글