2_DeepNoid CNN 기초
Aug 23, 2021
»
writing
DeepNoid 수업을 참고하여 작성하였습니다
CNN 기초
CNN
1. CNN 이란 (Convolutional Neural Network)
: 합성공 신경망이란?
- 이미지를 날것 그대로 받아, convolutional layer을 통해 이미지에서
공간적, 지역적 특징 추출(extraction)을 진행
- task 에 따라 classification, segmentation, detection 으로 나뉜다
- task는 정답(lavel)을 필요로 하는 지도학습이기에 그에 맞는 데이터 필요
: 처음에는 작게 -> 다 본후 더 넓게
-> 좁은 영역부터 넓은 영역으로 시야 넓히며 관찰
: 주요 용어 정리
- 필터 (커널)
- 필터의 크기 (kernel size)
- 필터가 한번에 보이는 영역 (Receptive field)
- 필터가 움직인 거리 (stride)
: 필터 크기를 줄이는 대신 이미지 크기를 줄이기도 한다
- 이미지 크기 줄이는 방법 (pooling)
- pooling 을 통해 각 결과 값 (feature map)의 dimensionality를 축소하는
과정을 거친다
2. CNN 핵심 개녕
: feature extraction 과정
1) 훑어보기 Conv2D (fliter =, kernel_size =, strides =, padding =)
2) 정렬하기 BatchNormalization
- 유의미한 신호는 남기고, 불필요 신호는 버려 원활한 신호 전달 도움
3) 신호 변환 ACT(RELU)
- Sigmoide function의 output은 0, 1 극과 극으로 신경망이 깊어지게 되면
gradient vanishing 현상이 발생하기에
- ReLU 와 같은 non-linear 한 Activation function 사용
4) 이미지 줄이기 POOR
- filter 개수를 가진 합성곱 레이어를 거치면 tensor 사이즈가
computing source 에 부담이 되고 합성곱 레이어의 핵심은
이미지 특징을 추출하는 것이기에, feature map 사이즈 줄여준다
5) 끝
- 이후 모든 노드를 일렬로 편 후 최종 판단 flatten
3. 신경망의 학습 과정
1) 데이터 (X)를 입력한다
2) 초기값으로 연산하며, Convolutional layer 를 지나간다 (순전파)
3) Dense layer 까지 지나가 예측 값 (y)이 나온다
4) 지정한 손실 함수 (loss function)을 통해서 예측 값과 실제 값(label)
간의 loss(손실, 차이) 계산한다
5) 지정한 optimizer로 예측 값과 실제 값 차이를 줄여나간다 (역전파)
- 이 과정에서 가중치 (weight)가 업데이트 된다
6) 설정한 epoch 혹은 step 수 만큼 학습 진행한다
4. Hyper Parameter
: 신경망모델을 구성할 때, 모델의 결과에 영향을 끼칠 수 있는 변수
: 모델 내부의 구성을 바꿀 수 있는 변수를 parameter
: 모델 외부에서 바꿀 수 있는 변수를 hyper-parameter
- epoch : 모든 데이터를 순전파, 역전파 하여 가중치, 편항 업데이트 하는 횟수 (=학습횟수)
- batch size : 데이터를 몇개 단위로 묶는지
- learning rate : 학습을 진행하는 rate, 일반적으로 0.01 진행
- loss function : 실제값(label), 예측 값(y)의 오차 계산하는 함수
- optimizer : loss function을 최적하는 방법
1) loss function (손실 함수)
- 실제 값(label)과 모델을 통해 나온 예측 값(y)간의 차이를 줄여주는 함수
- 오차(loss)가 크면 좋지 않은 모델,
- loss 값 최소화 하는 것이 신경망의 목표
- loss 값을 줄일 수 있는 가중치(weight), 편향(bias) 줄이는 것이 목표
- 학습하고자 하는 task에 따라 다르며,
- 회귀를 위한 문제에는 MSE(평균 제곱 오차),
- 분류를 위한 문제에는 Cross-entropy
2) optimizer (최적화 기법)
- 손실함수를 줄여갈 수 있는 방법
- 경사 하강법, 배치 경사 하강법, 확률적 경사 하강법, 미니 배치 경사 하강법 ...
- 어떤 optimizer 를 사용할 지 모를 땐, adam!
5. 데이터 형태
- classification
1) classification 모델의 input, label 데이터 형태
- input (image)
- label (정답)
2) binary classification 모델의 예측 방식
- 0, 1 중 정답은 1(Abdomen)
3) Multionmial classification 모델의 예측 방식
- f1-score, sensivity, precision, accuracy
- segmentation
1) segmentation 모델의 input, label 데이터 형태
- input (image)
- label (정답)
- Detection
1) detection 모델의 input, label 데이터 형태
- input (image)
- label (정답)