코딩 기록들
[ 딥러닝 기초 ] 08. CNN 본문
CNN (Convolutional Neural Networks)
- 이미지를 인식하기위해 패턴을 찾는데 특히 유용
- 특징을 수동으로 추출할필요가 없음(데이터에서 직접 학습하고 패턴을 사용해 이미지 분류함)
- 자율주행자동차, 얼굴인식과 같은 객체인식, computer vision이 필요한분야에 많이 사용됨
Convolution (합성곱) 레이어
- 각각 픽셀의 특징을 뽑아낸다
- 특성들을 모아서 확대하는 느낌으로 받아들이기
- 레이어는 영상인식에 주로 사용되며, 필터가 탑재되어있음
Conv2D(32, (5, 5), padding='valid', input_shape=(28, 28, 1), activation='relu')
주요인자
- 첫번째 인자 : 컨볼루션 필터의 수
- 두번째 인자 : 컨볼루션 커널의 (행, 열)
- padding : 경계 처리 방법을 정의함
- ‘valid’ : 유효한 영역만 출력이 됩니다. 따라서 출력 이미지 사이즈는 입력 사이즈보다 작음
- ‘same’ : 출력 이미지 사이즈가 입력 이미지 사이즈와 동일
- input_shape : 샘플 수를 제외한 입력 형태를 정의함. 모델에서 첫 레이어일 때만 정의하면 됨
- (행, 열, 채널 수)로 정의합니다. 흑백영상인 경우에는 채널이 1이고, 컬러(RGB)영상인 경우에는 채널을 3으로 설정합니다.
- activation : 활성화 함수 설정
- ‘linear’ : 디폴트 값, 입력뉴런과 가중치로 계산된 결과값이 그대로 출력으로 나옴
- ‘relu’ : rectifier 함수, 은익층에 주로 쓰임
- ‘sigmoid’ :이진 분류 문제에서 출력층에 주로 쓰임
- ‘softmax’ : 다중 클래스 분류 문제에서 출력층에 주로 쓰임
Dense (convolution layer와 비교)
- 모든 네트워크의 경우의수를 다 연결해줌
- 초록색블럭 = 시냅스강도(가중치)
- Dense layer 에서는 총 9*4 = 36개의 가중치가 사용됨
-> convolution layer(컨볼루션 레이어) 에서의 가중치 = 필터의 크기인 4개의 가중치만이 사용됨
--> 즉, Dense 레이어와 비교했을때, 가중치가 많이 줄어들었음을 알수있음
경계처리방법
- convolution 레이어 설정옵션에 'border_mode' 를 'valid', 'same'으로 설정할수있음
1. valid
- 주어진경계 안에서 보는것 = valid, 사용할수록 크기 작아짐
- 출력이미지 크기 < 입력이미지 크기
2. padding
- 출력이미지와 입력이미지 사이즈가 동일하도록 입력이미지에 빈영역(검정색 블록) 추가해 필터적용
- 3*3 을 4*4로 보는것 , 사용할수록 크기는 그대로지만, 한쪽으로 쏠리는현상 발생 (same 으로 설정)
맥스풀링 레이어
- 사소한, 중요하지않는값은 무시하는효과
- 주요인자) pool_size : 수직, 수평 축소 비율을 지정. (2, 2) -> 출력 영상 크기는 입력 영상 크기의 반으로 줄어든다.
플래튼 (Flatten) 레이어
- 영상을 일차원으로 바꿔줌
- CNN 에서 convolution레이어나 max pooling 레이어는 주로 2차원 자료를 다루지만,
전결합층에 전달하기위해선 1차원자료로 바꿔줘야함. 이때 사용되는것이 플래튼레이어.
- 이전레이어의 출력정보를 이용해 입력정보를 자동으로 설정.
출력형태는 입력형태에따라 자동으로 계산되어 별도로 파라미터 지정하지 않아도 됨
참고사이트_ 컨볼루션 신경망 레이어 이야기 (tykimos.github.io)
** 코랩을 사용한다면, (구글드라이브 이용방법)
from google.colab import drive
drive.mount('/content/drive')
이 두줄 넣어주기
'Deep Learning 기초' 카테고리의 다른 글
[ 딥러닝 기초 ] 03. 신경망 데이터의 표현 : 텐서 (Tensor) (1) | 2022.11.04 |
---|---|
[ 딥러닝 기초 ] 02. 딥러닝을 위한 기초 수학 (0) | 2022.11.04 |
[ 딥러닝 기초 ] 05. Keras (케라스) (0) | 2022.11.03 |
[ 딥러닝 기초 ] 06.1 DNN_영화 리뷰 분류 (이진 분류 예제) (0) | 2022.11.02 |
[ 딥러닝 기초 ] 01. 딥러닝 시작 (0) | 2022.10.31 |