개발자 끄적끄적
합성곱 신경망(2023.10.23) 본문
<컨볼루션 신경망(Convolutional Neural Network)>
- 시각적 이미지 분석에 많이 활용되는 심층신경망(Deep NN)의 일종으로 합성곱(Convolution) 신경망이라고 한다
- 아키텍처는 인간 두뇌의 뉴련 연결 패턴과 유사하며 '시각' 피질조직(Visual Cortex)의 구성에서 영감을 받았다
- 네트워크가 Convolution이라는 수학적 연산을 사용함을 나타낸다
- 컨볼루션은(디지털 '필터링(특정부분을 걸러냄)'에 주로 사용되는) 특수한 종류의 선형 연산이다
<뇌의 동작으로부터 영감(Inspiration)>
- 개별 뉴런은 수용 영역으로 알려진 시야의 제한된 영역에서만 자극에 반응한다
이러한 필드 모음은 전체 가시 영역을 덮기 위해 겹쳐진다
Stimulus -> Visual area of brain -> Visual Cortex
Receptive fields size : V1 -> V2 -> V4 -> IT
Features : Edges and lines -> Shapes -> Objects -> Faces
<Fully-Connected NN(FcNN) VS Locally-Connected NN>
1. Fully-Connected NN
- 두 개의 레이어 사이에 모든 뉴런을 상호 연결
- Hidden layer 한 셀의 입력노드들을 전체로 본다
2. Locally(국지적)-Connected NN
- 인접한 픽셀의 작은 패치만 다음 레이어의 뉴런에 연결
- Hidden layer 한 셀의 입력노드들을 부분으로 본다(locally-connected units with 3x3 receptive field(수용장))
<Locally-Connected NN with translation invariance(전이 불변)>
- 객체의 존재가 위치에 무관하게 된다
- 가중치 공유(weight sharing) : 서로 다른 곳에 연결된 노드들이 모두 같은 가중치를 가진다
이 가중치는 주어지는 것이 아니라, 훈련자료를 학습함으로 얻어진다
<Convolution result of different Kernels(=filter, weights)>
- 서로 다른 커널(=kernel, filter, weights)은 각각 다른 필터로 작동하여 다른 특징맵을 생성한다
- 예를 들어 위쪽 경계, 아래쪽 경계, 대각선 등을 추출한다
<Convolution NN for color image>
- 채널이 여러 개인 이미지(ex: RGB)의 경우 커널은 입력 이미지와 동일한 깊이를 갖는다 -> depth는 number of kernel
- 이미지의 크기가 width와 height를 갖을 때 이미지 depth는 channel 개수와 동일하다(3x3x3)
- output = width, height, depth = 1
- 입력 이미지에 채널이 하나만 있는 경우, 6개의 다른 커널로 컨볼루션하면 6개의 활성화 맵이 생성된다
ex) depth=1, height=28, width=28, image=28x28x1, kernel=5x5x1, 일 때 결과값은 28x28의 평면(height, width)이 생성되고 6개의 활성화 맵이 생성된다
즉, 28x28x1 image -> 6개의 5x5x1 kernel => 28 height, 28 width, 6 depth를 갖는다
<활성함수 : ReLU(Rectified Linear Unit) in CNN>
- CNN은 모델에 비선형성을 주기 위해 컨볼루션 작업이 끝날 때마다 합성곱된 특성에 ReLU 변형을 활성함수로 적용한다
<Pooling in CNN>
- Pooling 레이어는 컨벌루션된 특징의 공간 크기를 줄이는 역할을 한다
- 차원 축소를 통해 데이터를 처리하는 데 필요한 계산량을 감소시키기 위함
- 회전 및 위치 불변인 지배적 특징을 추출하여 모델의 효과적인 훈련 과정을 유지하는 데 유용하다
1. 최대(Max) 풀링
- 커널에서 다루는 이미지 부분에서 최대 값을 반환
- 노이즈 억제 기능
- 차원 축소와 함께 블록에서 낮은 활성화를 버리고 최대 활성화를 취함으로써 가장 중요한 특징 추출을 수행
2. 평균(Average) 풀링
- 커널에서 다루는 이미지 부분에서 모든 값의 평균을 반환
- 단순히 노이즈 억제 메커니즘으로 차원 축소를 수행
따라서 Max Pooling은 Average Pooling보다 훨씬 뛰어나다
<Classification : Fully-connected NN>
- 컨벌루션과 Pooling 과정을 거친 후, 모델이 특징들을 이해하도록 했으며,
계속해서 최종 출력을 평평하게(sFlatten layer) 하고 분류 목적으로 일반 신경망에 공급한다
<Typical CNN Architecture>
1. Input
2. Feature Learning
- Convolution + ReLU > Convolution + ReLU, Pooling
3. Classification
- Flatten > Fully connected > softmax
'생활 속 인공지능' 카테고리의 다른 글
합성곱 신경망 응용(2023.1.31) (1) | 2023.10.31 |
---|