저스틴 존슨 교수님 강의 정리
다양한 합성곱 연산과 풀링 연산, LeNet-5, 정규화 기법 등
https://www.youtube.com/watch?v=ANyxBVxmdZ0&list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r&index=7
이번 자료에서 핵심 주제로 아래의 5가지를 꼽았다.
- 1 x 1 합성곱 연산
- 1D, 3D 합성곱 연산
- 풀링 연산
- LeNet
- 정규화 기법들
1) 1 x 1 합성곱 연산
지난번 합성곱 신경망 1에서는 벡터를 처리하는 완전 연결 계층을 확장하여 공간적 정보들을 처리할수 있는 합성곱 연산에 대해서 대략적으로 알아봤었다. 합성곱 연산은 특정 크기의 필터들이 주어지고, 이 필터들을 슬라이딩 시키면서 출력 텐서를 만드는 연산이었는데, 합성곱 연산의 특수한 경우로 1 x 1 컨볼루션이 있었다.
합성곱 연산의 출력 결과는 두가지 관점으로 볼수 있었는데, 필터 하나당 특징 지도/활성 지도가 하나씩 만들어지다보니 특징 지도 단위로 관점과 채널 단위가 아닌 이미지 픽셀 그리드 단위로 보면서 한 픽셀이 채널 길이 만큼의 차원을 갖는 벡터 단위의 관점이 있었다. 1 x 1 컨볼루션 연산은 벡터 단위로 출력 텐서를 보는 관점으로 특이한 점이라면 이미지의 크기/공간적 차원을 줄이지는 않지만 채널의 크기를 바꿔주더라. 아래의 그림의 경우 64 x 56 x 56의 텐서가 32 x 1 x 1 합성곱 연산으로 32 x 56 x 56으로 채널로 변환되었다.
2) 1D, 3D 합성곱 연산
이전에 본 2D 합성곱 연산은 3차원 텐서 데이터 채널 x 가로 x 높이 형태의 데이터를 2차원 합성곱 필터를 이용하여 처리하였습니다. 이 외에도 1차원, 3차원 합성곱 필터를 이용한 연산도 있는데, 1차원 합성곱 연산은 텍스트나 음성 같은 순서 있는 데이터를 처리하는 경우에 사용하고, 3차원 합성곱 연산은 3차원 데이터 예를들면 점구름 point cloud같은 데이터를 가지고 합성곱 연산을 할때 사용하고 있습니다. 또 이런 다양한 합성곱 연산들이 텐서플로우와 파이토치 같은 딥러닝 프레임워크들에서 API로 제공되고 있습니다.
3) 풀링 계층
풀링 연산은 입력 텐서의 이미지 크기/공간적 차원을 줄이기 위해 사용되는 연산으로 하이퍼 파라미터로 커널 사이즈와 스트라이드 그리고 풀링 함수를 가지고 있었습니다. 커널 사이즈는 풀링 연산을 할 수용장 범위고, 스트라이드는 일반적으로 커널 사이즈 만큼 주면서 수용장 범위가 겹치지 않도록 해주었습니다. 풀링 함수로 맥스 함수를 사용하는 경우 수용장 영역에서 가장 큰 입력 값을 출력으로 설정해주면서 입력 크기를 크게 줄일수가 있었습니다.
풀링 계층의 중요한 특징은 합성곱 계층에서도 스트라이드를 크게 주어 다운 샘플링이 가능하였지만 합성곱 필터의 파라미터들을 학습시켜주어야 되었습니다. 하지만 풀링 계층은 풀링 함수를 사용함으로서 학습할 파라미터 없이 빠르게 처리할수 있는 장점을 가지고 있었습니다.
4) LeNet-5
다음으로 초기 합성곱 신경망 모델인 LeNet-5에 대하여 살펴보았습니다. LeNet-5는 1998년 Yann LeCun이 미국 우편 서비스 우편 번호 손글씨 인식에 활용 할수 있도록 만든 모델로 합성곱-ReLU-풀링, 합성곱-ReLU-풀링, 완전연결, 완전연결계층 등으로 구성되어 있었습니다.
합성곱 연산을 통해서 입력 이미지의 지역적인 특징들을 추출해내고, 다운 샘플링을 거친 뒤 펼침 연산을 통해서 공간적 정보들을 없애 출력을 백터 형태로 만들고, 최종적으로 10개의 숫자 스코어를 출력하되는데 이 신경망의 특징이라면 공간적 크기, 이미지의 크기가 줄어드는 동안 채널의 숫자가 증가하는걸 볼수 있었습니다.
5) 배치 정규화
배치 정규화는 정규화를 이용하여 내부 공분 변동을 제거하는 기법으로 입력 텐서의 데이터가 왜곡된 형태의 분포를 따르는 경우 정규화를 시켜 제거하고, 최적화 성능을 개선시키는 방법이었습니다. 입력 텐서가 배치 데이터 개수 N x 데이터 차원 D의 형태로 들어올 때 각 차원에 대해서 평균과 분산을 구해 정규화를 시키고, 여기다가 학습 가능한 스케일, 변동 파라미터를 이용하여 정규화의 크기와 위치를 조정할수 있도록 구상되었습니다.
하지만 배치 정규화는 훈련 때는 배치 단위로 정규화를 수행하고 테스트 떄는 훈련 데이터 전체로 구한 평균과 분산을 가지고 사용하다보니 훈련때와 시험때가 다르게 동작하는 단점이 있었습니다. 이런 문제점을 극복하고자 완전 연결 신경망의 경우 배치 데이터 단위가 아닌 층 단위로 사용하는 계층 정규화기법이, 합성곱 계층의 경우 인스턴스 단위로 정규화 시키는 인스턴스 정규화가 나왔으며, 더 나아가 계층 전체가 아닌 한 계층의 일부 채널만 그룹으로 묶어 정규화를 수행하는 그룹 정규화 까지나왔다고 합니다.
'번역 > 컴퓨터비전딥러닝' 카테고리의 다른 글
딥러닝비전 8. 합성곱 신경망 아키텍처 2 - ZFNet, VGG - 16 (0) | 2021.02.14 |
---|---|
딥러닝비전 8. 합성곱 신경망 아키텍처 1 - AlexNet (0) | 2021.02.14 |
딥러닝비전 7. 합성곱 신경망 1 (0) | 2021.02.07 |
딥러닝비전 6. 역전파 2 (0) | 2021.02.04 |
딥러닝비전 6. 역전파 1 (0) | 2021.02.02 |