본문 바로가기
AI 컴퓨터 비전프로젝트/[ML,DL]머신러닝,딥러닝

[DL] CNN 기초, 체험사이트

by 바다의 공간 2024. 7. 27.

1. CNN(Convolutional Neural Networks)

  • 합성곱 인공 신경망
  • 전통적인 뉴럴 네트워크에 컨볼루셔널 레이어를 붙인 형태
  • 컨볼루셔널 레이어를 통해 입력 받은 이미지에 대한 특징(Feature)을 추출하게 되고, 추출한 특징을 기반으로 기존의 뉴럴 네트워크에 이용하여 분류
 

 

1-1. CNN을 사용하는 이유

  • 이미지를 분류할 때 DNN(Deep Neural Network)의 문제점
    • 일반적인 DNN은 1차원 형태의 데이터를 사용해야 함
    • 2차원 이상의 데이터가 입력되는 경우 FLATTEN 시켜서 한 줄로 데이터를 변환 후 넣어야 합니다.
    • 이미지(영상)의 공간적/지역적 정보가 손실
  • CNN은 이미지를 그대로 (Raw Input)받음으로 공간적/지역적 정보를 유지

1-2. CNN에서의 이미지데이터

    • 컬러 이미지는 3개의 채널로 이루어진 텐서
    • 컴퓨터는 이미지를 숫자로 인식하여 연산을 함
  • 이미지 정보는 0 ~255까지의 256개의 숫자로 표현
  • 빨강 255, 파랑 255, -> 흰색
  • 빨강 0, 파랑0, 녹색0 ->검정
  • 빨강 255, 파랑0, 녹색0 -> 빨강

keyboard_arrow_down

2. Convolution 연산

  • Convolution 연산을 진해아혐 출력 텐서의 크기가 작아짐.

  • 패딩 : 입력값 주위로 0을 넣어서 입력값의 크기를 인위적으로 키워 결과값이 작아지는 것을 방지

*2d 컨볼루션 : 컬러이미지에서는 2d 컨볼루션 연산을 수행


  • 풀링 : 중요한 특징을 추출하고 차원을 축소하기 위해 풀링 연산을 사용, MaxPool 또는 AvgPool을 사용
  • 스트라이드 : 필터를 적용하는 간격을 설정

  • 드롭아웃 (Dropout)레이어
    • 오버피팅을 막기 위해 사용하는 레이어
    • 학습중일 때 랜덤하게 값을 발생하여 학습을 방해함으로 학습용 데이터의 결과가 치우치는 것을 방지함
  • FC 레이어
    • 이미지를 분류 또는 예측하기 위해 사용하는 레이어

*3. CNN를 구성하는 레이어

  • Conv2D: 특칭 추출
  • ReLU: 활성화 함수
  • MaxPool2D : 차원 축소
  • ...
  • Flatten: 다차원에서 1차원으로 변경
  • Linear: 선형회귀
  • ReLU : 활성화 함수
  • Linear:선형회귀
  • ReLU : 활성화 함수
  • ...
  • Sigmoid /Softmax 함수에대한 출력


4. CNN 체험하기