CNN

정지호·2022년 8월 28일
0

개인 실습 진행

목록 보기
28/41

CNN(Convolution Neural Netwrok)

  • 합성곱 신경망

  • 이미지, 동영상 등을 분석하는데 사용

  • 기존에 구현했던 완전 연결 계층, 즉 기존 신경망은 본질적인 패턴을 읽지 못하기 때문에 인식을 위해 다양한 데이터가 많이 필요하다. 하지만 합성곱 계층원본 이미지를 가지고 여러개의 특징맵을 만들어 분류하는 완전 연결 계층으로, 이미지의 특징을 추출하기 때문에 이미지가 변형되더라도 잘 인식할 수 있다.

  • 합성곱 연산: 이미지 3차원 data의 형상을 유지하면서 연산하는 작업. 입력 데이터에 필터를 적용한 것을 합성곱 연산이라고 한다.

  • 패딩 : 합성곱 연산을 수행하기 전에 데이터 주변을 특정값으로 채워 늘리는 것을 말한다. (패딩을 하지 않을 경우 가장자리 정보들이 사라지는 문제가 발생하기 때문에 패딩을 사용한다.)

  • CNN층 구조
    "conv -> pooling -> fully connected"
    (conv: 이미지 특징을 추출하는 층
    pooling: 추출한 이미지 특징을 선명하게 하는 층)

  • pooling 계층의 역할
    -> 출력 값에서 일부만 취하여 사이즈가 작은 이미지를 만든다.

    • 풀링 종류 3가지
    1. 최대 풀링 : 컨볼루션 데이터에서 가장 큰 값을 대표값으로 선정
    2. 평균 풀링 : 컨볼루션 데이터에서 평균값을 대표값으로 선정
    3. 확률적 풀링 : 컨볼루션 데이터에서 임의 확률로 한 개를 선정

CNN의 레이어

  • Convolution/Pooling

    • Convolutional layer: "필터"는 이미지를 통과하여 한 번에 몇 픽셀을 스캔하고 각 형상이 속하는 클래스를 예측하는 형상 맵을 만든다.

    • Pooling layer(downsampling): 가장 중요한 정보를 유지하는 동시에, 각 피쳐의 정보량을 줄인다.

  • Fully connected layer(FC)

    • Fully connected input layer(평탄화): 이전 레이어의 출력을 "평탄화"하여 다음 스테이지의 입력이 될 수 있는 단일 벡터로 변환
    • The first fully connected layer: 이미지 분석의 입력을 취하여 정확한 라벨을 예측하기 위해 가중치를 적용
    • Fully connected output layer: 각 라벨에 대한 최종 확률을 제공
    • Fully connected layer(FC)의 목적: Convolution/pooling 프로세스의 결과를 취하여 이미지를 정의된 라벨로 분류하는데 사용하는 것.

-> Fully connected layer(FC)를 정의하자면, 완전히 연결되었다는 뜻으로, 한층의 모든 뉴런이 다음층이 모든 뉴런과 연결된 상태로 2차원의 배열 형태 이미지를 1차원의 평탄화 작업을 통해 이미지를 분류하는데 사용되는 계층이다.
,
1. 2차원 배열 형태의 이미지를 1차원 배열로 평탄화
2. 활성화 함수(Relu, Tanh 등)뉴런을 활성화
3. 분류기(softmax) 함수로 분류

1~3 과정을 Fully Connected Layer 라고 말할 수 있다.


출처
https://everyday-deeplearning.tistory.com/entry/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EC%9C%BC%EB%A1%9C-%EB%94%A5%EB%9F%AC%EB%8B%9D%ED%95%98%EA%B8%B0-CNNConvolution-Neural-Network
https://blog.naver.com/PostView.nhn?blogId=intelliz&logNo=221709190464

profile
정지호

0개의 댓글