반응형 DeepLearning3 CNN 연산량 줄이는 scheme 이전 포스팅에서 CNN을 다루었는데, 직감적으로 아시겠지만 영상이 커지거나 필터의 수가 무수히 많거나 Layer가 매우 깊다면 연산량은 매우매우 많아지게 됩니다. 그래서 연산량을 조금이라도 줄이기 위해서 사용하는 scheme에 대해서 알아보겠습니다. Ⅰ. Depthwise Separable Convolution - 연산량을 줄이기 위한 convolution기법 중 하나로 Depthwise Convolution과 Pointwise Convolution을 혼합하여 사용합니다. (※ mobilenet 에서 처음 제안되었습니다.) - 논문에 나온 그림을 보시겠습니다. + Standard convolution cal. > 총 대략적인 연산량 H * W * K * K * M * N + Depthwise convol.. 2022. 11. 23. Batch normalization Ⅰ. Batch 단위 학습의 문제점 - SGD의 경우, Batch 단위로 학습을 진행하게 됩니다. 이때 발생하는 문제가 ‘internal covariant shift’이며, 이를 해결하기 위한 방법이 "Batch normalization" 입니다. + internal covariant shift : learning 과정에서 layer 별로 입력의 데이터 분포가 달라지는 현상을 말합니다. - Batch 단위로 학습을 하게 되면 Batch 단위 간에 데이터 분포의 차이가 발생하는데, 학습 과정에서 각 배치 단위 별로 데이터가 다양한 분포를 가지더라도 각 배치별로 평균과 분산을 이용해 정규화하는 것입니다. + 분포를 zero mean gaussian 형태로 만듭니다. - 아래의 그림을 보시면 바로 이해가 되실.. 2022. 11. 23. weight 설정 이때까지 우리는 많은 내용을 다루었습니다. 하지만 이런 생각을 할 수 있습니다. + "weight의 초기값은 어떻게 설정 하는 거지?" + 이런 생각을 다들 해보셨을것 같습니다. + 이제부터 이 그 내용을 다루어 보겠습니다. Ⅰ. weight - 신경망에서 weight 초기값을 무엇으로 설정하느냐는 매우 중요한 문제입니다. - 초기값 설정에 따라서, learning의 결과는 크게 달라질 수도 있습니다. + 아래 그림을 보면, Sigmoid의 출력이 0과 1에 몰려 있습니다. 이는 Backpropagation 시에 gradient vanishing 문제 발생 가능성이 있다는 것입니다. + 아래의 그림을 다시 보시겠습니다. 전과 달리 Sigmoid의 출력이 0.5 부근에 몰려 있습니다. 이는 모든 neura.. 2022. 11. 23. 이전 1 다음 반응형