강의 복습 내용
- cnn의 구조와 사용되는 분야를 정리한다.
- cnn의 발전되는 방향과 구조를 정리한다.
- detection하는 여러 어플리케이션을 정리한다.
얻은 지식
- cnn의 역사
- cnn의 구조와 발전되는 방향
- 대표적인 cnn의 특징
- segemntation을 하는 네트워크의 특징
- 여러 detection 하는 네트워크
CNN
- convolution layer
- pooling layer
- fully connected layer
convolution
- convolution은 두개의 함수를 섞는다는 의미
- 이미지,필터를 섞어 새로운 이미지를 출력한다.
rgb image의 convolution
- 3차원 tensor로 rgb값만큼 3채널을 사용한다.
- 필터는 (5,5,3)
- 이미지는 (32,32,3)
- 출력(feature)은 (28,28,1)이 된다.
- 여러개의 feature를 만들기위해서는 여러개의 필터를 사용한다.
- 필터(5,5,3)가 4개일때
- 이미지(32,32,3)이면
- feature는 (28,28,4)를 출력한다.
- stack of convolution
- 여러개의 convolution을 쌓아서 사용한다.
convolution layer
convolution neural networks
- 구성
- convolution layer
- pooling layer
- convolution과 pooling은 feature을 추출
- fully connected layer
- 분류, 회귀
- 파라메터의 값이 많이 사용한다.
- 발전되는 성향은 fc를 많이 줄이는게 성능이라 한다.
- 구조를 보았을대 파라메터의 숫자를 파악하는 감을 잡는게 중요
stride
padding
- filter를 거치면 출력값이 적어진다.
- 입력과 출격의 크기를 유지하도록 입력이미지에 픽셀을 추가하는것
parameter 계산
- padding(1) stride(1) 3,3 kernel
- (40,50,128)이미지에서 (40,50,64)로 feature를 추출했다면?
- kernel은 (3,3,128)이 되고 64개가 사용되었다.
- 3*3*128*64 = 73728개의 파라메터를 계산할 수 있다.
- (13,13,128)->2048 fully connected일때
- 1313128 * 2048 = 44,302,336이된다.
- convolution보다 fully connected가 파리메터가 많이 사용된다.
- convolution으 필터에대해 모든영역에 계산되는게 아닌 일부를 계산하고 합치는 구조
- fully connected는 하나의값에 모든 가중치들을 계산해서 진행한
1X1 convolution
- 이미지에서 영역을 보지 않는다.
- (256,256,128) -> (1,1,128,32) -> (256,256,32)
- 채널만 줄어든다.
- 파라메터를 줄이고, 깊게쌓는다.
- 채널을 줄여서 파라메터를 줄여서 더 layer를 쌓을 수 있다.
- 차원을 조절할때 사용
- 예
mordern Convolutional Neural Networks
- 기껏해야 2018년도 기술
- 각네트워크의 파라메터숫자, depth를 보기
- 파라메터는 낮아지고, depth는 늘어난다고한다.
- ILSVRC
- 대회
- ImageNet Large-Scale Visual Recognition Challenge
- 분류,탐지,localization,segmentation
AlexNet(2012)
- gpu의 성능이 낮았기 때문에 두개의 gpu를 사용하였다.
- 초반에 큰 (11,11)커널을 사용하였다.
- 구성
- 5개의 convolutional layer, 3개의 dense layers(fully connected)
- 키 아이디어
- ReLU를 활성함수로 사용
- 2개의 GPU
- LRL(local response normalization)
- 입력공간에서 몇개의 response를 죽이는것
- 많이 활용 안한다고 한다.
- overlapping pooling
- data augmentation
- dropdout
ReLU
- overcome the vanishing gradient problem
- sigmoid에 비해 너무 큰값에 대해서도 사용이 가능하다.
VGGNet(2015)
- 19layer
- (3,3)convolution filter를 사용하였다.
- (3,3)을 두번을 사용하는것과 (5,5)를 한번 사용하는것은 receptive field에 대해서는 같다.
- 파라메터갯수를 줄일 수 있다.
- receptive field는 하나의 필터가 보는 영역의 크기라고 생각하면 된다.
GoogleLeNet(2014)
- 22layer
- (1x1)convolution을 잘활용해서 전체적인 파라메터를 줄임
- 비슷한 네트워크를 반복적으로 사용함
- NIN(network in network)구조
- inception Block
- 하나의 입력에 대해 여러개의 receptive field를 거쳐서 여러개의 결과를 합치는 효과
- (1x1)conv를 중간마다 들어가있다.
- 이로 인해 파라메터의 숫자가 줄어들었다.
- 1x1 convolution can be seen as channel-wise dimension reduction
inception Block 예
- 일반적인 (3,3,128)-(3,3)->(3,3,128)이면 33128*128= 147456개의 파라메터를 사용
- (3,3,128)-(1,1)->(3,3,32)-(3,3)->(3,3,128)
- 11128 , 3332*128로 두개의 값을 합치면 40960으로 파라메터를 줄일 수 있다.
- recept field도 같고 채널도 같다.
ResNet(2015)
- 네트워크가 커짐에 따라 학습이 덜된다고 주장
- convolution을 통해 나온것을 입력과 더해주는 원리
- skip-connection
denseNet
- 더하기 대신 concatenation을 한다.
- 중간에 채널을 줄이는 방식
- 줄이고, 늘리고 하는 방식을 반복한다.
computer vision application
sementic segmentaion
- 이미지로부터 픽셀마다 분류하는것
- 이미지의 모든 픽셀에 라벨을 구별하여 배경, 물건 종류를 구별하는것
- 자율주행에 많이 활용됨
fully convolutional network
- 일반적인 CNN에서 dense layer를 없에는것
- dense layer를 cnn으로 대체
- 출력은 같다.(파라메터는 일치하다.)
- 20,20,1000이었다면 20,20,1000의 커널로 1,1,1000을 만드는것
- convolutionalization이라고 불린다.
- 특징
- input dimension, 스페셜 dimension에 의존적이다.
- trasforming fully connected layers into convolution layers enable a classifiacation net to output a heat map
- 단순 분류에서 heat map을 통해 segmantaion이 가능해짐
deconv
- 완전 역은 아니지만 padding을 통해 입력과 출력의 갯수로는 동일하게 만들어준다.
- fc의 결과를 원본과 맞춰주기 위해 사용
Detection
R-cnn
- 무엇이 있는 영역에 classification을 수행
SPPNet
- R-cnn과 비슷하지만, 이미지에서 cnn을 한번만
- 나온 cnn의 feature map을 활용하여 영역을 잘라서 사용
fast R-Cnn
- SPPNet의 컨셉인 cnn을 전체이미지에대해 진행후 사용
- 뒤에서 roi를 사용
faster R-Cnn
- 초반 이미지의 바운딩박스를 뽑는 것도 네트워크로 만들자
- k개의 anchor박스를 사용
YOLO
- you only look one
- faster r-cnn보다 빠르다.
- 바운딩 박스를 뽑는과정이 없다.
좀더 찾아보기
- fully connected
- special dimension
- heat map
피어세션 정리
- cnn의 bias는?
- googlenet은 7*1과 1*7로 나눠져있다고 한다.
- strid는 파라매터 계산에는 상관없다고 한다.
- convolution과 correlation?
- convolution은 맨처음게 맨끝이랑 곱하듯이 180도 돌려서 계산
- correlation은 우리가 아는 커널이 같은위치끼리 곱하여 더하는계산 차이
- convolution과 correlation은 서로 반대로 계산을 한다
과제
- cnn
- dog
- 새로운 파일을 다운하거나 하면, ssh를 새로 연결해야한다.
- 순서
- 파일 다운
- 파일을 보기 쉽게 정리
- 파일을 train,test로 분류, 폴더로 나누기