딥러닝_실습

L1. Image Classification

민지기il 2024. 5. 2. 11:02

1. MNIST 손글씨 분류

출처: https://github.com/kec0130/AIFFEL-project/blob/main/exploration/E1_classification_mnist.ipynb

2. 가위바위보 분류기

출처: https://github.com/kec0130/AIFFEL-project/blob/main/exploration/E1_rock_scissor_paper.ipynb

 

practiceL1.py
0.01MB
projectL1.py
0.01MB

 

<Layer>

코드를 보면 model을 생성하는 과정에서 Conv2D-> MaxPool -> Conv2D -> MaxPooling2D -> Flatten -> Dense 과정을 거친다

CNN은 Convolution과 Pooling, Dense(또는 Fully Connected)라는 세가지 종류의 계층을 통해 만들어지며 크게 Feature Extraction(특징 추출)과  Classification(분류) 과정을 거친다.

Convolution Layer는 합성곱(Convolution), 채널(Channel), 필터(Filter)&Stride, 패딩 (Padding)의 과정을 거쳐 만들어진다.

 

Pooling은 어느정도 특징이 추출되었으면 그중에서 특출난 것만 사용하는 것이다. Max pooling으로 정사각 행렬의 특정 영역 안의 값의 최대값을 그 정사각 행렬의 대푯값으로 사용하는 방법이다

 

flatten layer는 추출된 주요 특징을 전결합층에 전달하기 위해 행렬이 아닌 배열로 바꿔주는 layer이다.

Conv 레이어나 MaxPooling 레이어는 주로 2차원 자료를 다루지만 전결합층에 전달하기 위해서는 1차원 자료로 바꿔주는 것이 필요하기 때문에 이때 사용되는 것이 flatten layer이다.

 

dense layer는 다층 퍼셉트론 신경망에서 사용되는 레이어로 입력과 출력을 모두 연결해준다.
예를 들어 입력뉴런이 3개,출력뉴런이 8개라고 할 때 총 연결선은 개가 된다.
각 연결선은 가중치(weight)을 포함하고 있는데 연결강도를 의미한다. 가중치가 높을수록 해당 입력뉴런이 출력뉴런에 미치는 영향이 크고, 낮을수록 미치는 영향이 작다.