CNN

김나현·2024년 10월 19일
post-thumbnail

CNN ( Convolutional Neural Network )
참조 글/ 출처: http://taewan.kim/post/cnn/

주요 용어)

- 채널 (Channel)

흑백은 하나의 채널, 컬러사진은 RGB 3개의 채널구성

- 합성곱 (Convolution) , 필터 (Filter) & Stride (이동 간격의미, stride=1이면 1칸씩 필터 이동)

- Feature map : 합성곱 연산의 결과

- Activation map :

feature map에 Activation function 사용 (비선형 변경)
( 중간층 주로 사용하는건 ReLU(음수,0->0 / 양수-> 양수) !
기울기 소실 문제 덜 발생해서.

  • 참조: sigmoid 는 기울기소실 문제로 인해 중간층에서 잘 사용 안하고
    출력층에서 이진문제 확률계산 시 사용가능 ,
    softmax는 출력층에서 다중분류 문제 확률계산으로
    주로 사용 둘다 쓸거면 출력층에서 )

각각 함수 개념 설명 : https://89douner.tistory.com/22

* 활성화 함수의 사용 이유 : 비선형적 패턴 사용 = 신경망의 복잡한 패턴 학습 가능 의 의미.

선형 함수만 사용하면 단순하다.

층이 깊어질 수록 비선형 변환이 누적이 되면서 신경망은 점점 더 복잡한 패턴을 학습 할 수 있는 능력을 가지게 된다.

예를 들어, 처음 몇 개의 층은 이미지에서 간단한 엣지나 텍스처를 감지하는 역할을 할 수 있고, 그다음 층들은 더 복잡한 형태나 구조를 인식하며, 마지막으로 객체 전체를 인식하는 데 이르기까지 복잡성이 점차 증가합니다.

참조 :https://modulabs.co.kr/blog/nonlinear_activation_func/

- Pooling 레이어

activation map의 크기를 줄이거나 특정 데이터 강조를 위한 용도. 지나가면 행렬의 크기 감소, 채널 수 변경은 없음 .
Max / Min / Average Pooling 있다 .


CNN 구성

요약 )

1. input image (입력 이미지 )


2. 특징 추출 (Feature Extraction)

2-1) Convolution layer (합성곱 층)

: (input과 filter의 ) 합성곱 연산 수행해서 feature map 생성

2-2) Activation map

: featrue map에 활성화 함수 사용
해서 비선형성 추가 -> 주로 RELU 사용

2-3) Pooling layer

: Activation map의 크기를 줄이고 중요 정보 유지

2-1~2-3 반복 해서 stack을 쌓으면 더 복잡한 특징을 추출 한다.


3. 분류 (classification)

3-1) Fully Connected layer (FC)

: 추출한 특징을 바탕으로 모든 뉴런이 서로 연결된다.
1차원 벡터로 Flatten 한 후, 이 백터를 fully connectied layer 로 전달 .

  • fc1, fc2, fc3 와 같이 여러개의 fc을 쓰는 이유?
    : 종합하고 난 후에 더 복잡하고 정교한 패턴을 학습하기 위해서 fc도 여 러개를 쓰는 것이다. 가중치와 편향을 통해 뉴런 수 조정 차원 축소

3-2) SoftMax

: 마지막에는 이 입력된 이미지가 각 클래스에 해당될 확률을 계산 .
가장 높은 확률을 가진 클래스가 최종 예측 결과로 선택 . (다중 클래스 분류)

ex) 자동차 이미지 였는데 자동차 0.7 , 강아지 0.2 , 고양이 0.1 이런식으로 (모든 클래스에 대한 확률의 합은 항상 1)

profile
Let's study hard!

0개의 댓글