본문 바로가기
반응형

AI/CNN3

딥러닝) im2col 으로 효율적인 합성곱 연산 오늘은 Convolutional Layer에서 합성곱 연산을 효율적으로 하기 위한 방법을 다룰 것이다. CNN에서 Layer 사이에 흐르는 데이터는 Fully connected layer의 데이터와 달리 4차원 데이터이다. 형상이 (10, 1, 28, 28)이라면 (데이터 수, 채널 수, 높이, 너비)순으로 높이 28, 너비 28, 채널 1개인 데이터가 10개라는 것이다. CNN에서 convolutional layer에서는 합성곱 연산을 하는데, 4차원 데이터를 각 window마다 합성곱하여 배열에 넣고 더하는 과정은 많은 시간을 요구하며 다중 for문을 사용해야 하므로 코드가 복잡해진다. 이러한 convolution연산의 문제를 해결하기 위해 im2col(image to column)이라는 트릭을 사용.. 2021. 4. 11.
딥러닝) CNN 풀링 계층 이전 포스팅에서 CNN구조와 합성곱 계층에 대해 다루었다. Fully connnected 신경망과 달리 CNN은 합성곱 계층과 풀링 계층이 등장한다고 하였다. 오늘은 풀링 계층에 대해 살펴볼 것이다. 1. 풀링 계층(Pooling Layer) pooling은 주로 합성곱 연산과 활성화 함수를 거친 후에 수행하며, 최대 풀링(max plooling)과 평균 풀링(average pooling) 등이 있다. 최대 풀링은 window에서 최댓값을 뽑아내는 것이다. 예를 들어 2x2 최대풀링을 stride=2로 처리하면 다음과 같다. 평균 풀링(average pooling)은 원소를 뽑아낼 때, 최댓값이 아닌 윈도우내의 평균값을 연산하여 취하는 것을 말한다. 일반적으로 풀링의 윈도우 크기와 스트라이드는 같은 값으.. 2021. 4. 5.
딥러닝) CNN 구조 , 합성곱 계층 , padding , stride , 배치 처리 이번 포스팅에서 다룰 합성곱 신경망(Convolutional neural network , CNN)은 이미지 및 음성 인식에서 주로 사용된다. 1. CNN 구조 이전 포스팅까지 다루었던 기본 신경망은 인접하는 Layer의 모든 neuron들이 서로 연결되어 있다. 이처럼 모든 neuron이 연결된 것을 완전연결(Fully connected)라 하며, Affine계층으로 구현했다. 오늘 다룰 합성곱 신경망(Convolutional neural network , CNN)은 기본 신경망의 Affine-ReLU부분은 Conv-ReLU-(Pooling)로 바뀌고, 기본 신경망과 마찬가지로 출력층 근처의 Layer에서는 Affine-ReLU을, 출력층에서는 Affine-Softmax를 사용한다. 2. Fully c.. 2021. 4. 4.
728x90
반응형