Deep-Learning 용어정리 (CNN)

2024. 10. 29. 01:41·용어정리/Deep-Learning

 


합성곱 신경망

CNN에 대해서 알아보자


 

CNN

CNN이란 Convolutional Neural Network의 약자로 이미지같은 2차원의 데이터의 특징을 효과적으로

추출하기 위해서 설계된 신경망이다.

 

이때의 레이어는 합성곱 층, 풀링 층 그리고 완전 연결 층 으로 이뤄져 있다.

 

 

 

 

  • 합성곱 층 : 입력 이미지에 필터를 적용하여 특징 맵을 생성. 국소적 패턴을 학습
  • 풀링 층 : 특정 맵의 크기를 축소시키고 주요 특징들을 추출. Max pooling과 average pooling 을 사용
  • 완전 연결층 : 추출된 특징을 바탕으로 최종예측. 

 


합성곱 연산과 필터

합성곱 연산은 이미지나 시계열 데이터처럼 공간적 그리고 시간적 관계를 가지고 있는 데이터에서

중요한 특징을 추출하는데 사용한다.

 

필터(커널) 을 적용해서 특징 앱을 생성하며, 필터*는 작은 크기의 행렬, 국소적인 패턴*을 학습한다.

 

(그림을 작은 필터로 부분들을 보면서 중요한 특징을 파악후에 추출을 하는 것이다.) 

진짜 드럽게 어렵네

 

 

 

 

*필터란 특정한 크기의 작은 창이다.

*국소적 패턴이란 작은 부분에서 나타나는 특징을 의미한다. 예시로 얼굴 이미지에서의 눈, 코, 입 등이 될 수 있다.


합성곱 연산

  • 필터를 이미지의 각 위치에 슬라이딩*하며, 필터와 이미지의 해당 부분 간의 점곱*을 계산한다
  • 계산된 값은 특징 맵의 해당 위치에 저장한다.

 

 

 

*슬라이딩은 이미지의 한 부분에서 다른 부분으로 이동을 한다는것을 뜻함.

*점곱은 필터와 이미지의 각 부분이 겹치는 부분의 값을 곱한다. 즉 필터가 지나가면서 해당하는 모든 값을 픽셀 값과 곱하여 결국에는 모든 이미지의 값을 생성한다. 이때 창은 1픽셀씩 이동하여 1픽셀지나서 겹치는 모든 값을 다시 곱한.


필터의 역활

  • 필터는 이미지의 엣지, 코너, 텍스처 등의 국소적인 패턴을 학습한다.
  • 여러 개의 필터를 사용해서 다양한 특징 맵을 생성한다.

 


풀링 레이어, 플래튼

풀링 레이어는 특징 맵의 크기를 줄이고, 중요한 특징을 추출하는 역활을 한다.

 

 

플래튼 레이어는 2차원 특징 맵을 1차원 백터로 변환한다. 

이는 완전 연결층에 특징맵을 입력으로써 사용하기 위함이다.

 


Max Pooling

  • 필터 크기 내에서 최대의 값을 선택한다. (필터 로 본 값중 가장 큰 값만을 선택한다는 뜻이다.)
  • 중요한 특징은 강조하고, 불필요한 정보는 제거한다. 
  • 데이터의 크기를 줄이고 중요한 특징만 남기는데 사용한다.

 

 


Average Pooling

  • 필터 크기안에서 평균 값을 계산한다.
  • 특징 맵의 크기는 줄이되, 평균값으로 선택하기 때문에 정보의 손실을 최소화 할 수 있다.

 

CNN 구조와 응용

LeNet

LeNet은 손글씨 숫자를 인식하기 위해 사용한 최초의 아키텍쳐중 하나이다.

합성곱 층과 풀링 층을 반복해서, 완전 연결 층을 사용한다.

 


AlexNet

AlexNet은 딥러닝의 가능성을 입증한 아키텍쳐로, 2012년 이미지넥 대회에서 우승을 했다.

렐루활성화 함수와 drop out을 사용하여 성능을 높였다.

 

이때 drop out이란 특정 특징에 너무 의존하지 않기위해 설정된 비율만큼 무작위의 노드를 비활성화하는 방법이다.

 

 


VGG

VGG는 3x3 필터를 사용하여 깊이를 증가시켰다. 

VGG16 과 VGG19가 대표적인 모델이다.

 

 

 


실습

 

 

CNN.ipynb - Colab

 

 

 

 

 

 

저작자표시 비영리 변경금지 (새창열림)

'용어정리 > Deep-Learning' 카테고리의 다른 글

Deep-Learning 용어정리 (Attention)  (0) 2024.10.29
Deep-Learning 용어정리 (RNN)  (0) 2024.10.29
Deep-Learning 용어정리 (인공 신경망)  (0) 2024.10.28
Deep-Learning 용어정리 (신경망)  (0) 2024.10.25
Deep-Learning 용어정리 (딥러닝)  (4) 2024.10.25
'용어정리/Deep-Learning' 카테고리의 다른 글
  • Deep-Learning 용어정리 (Attention)
  • Deep-Learning 용어정리 (RNN)
  • Deep-Learning 용어정리 (인공 신경망)
  • Deep-Learning 용어정리 (신경망)
코드 유랑자 승열
코드 유랑자 승열
코드 유랑자 승열의 프로그래밍 일지를 남기는 공간입니다.
  • 코드 유랑자 승열
    승열의 프로그래밍 시네마
    코드 유랑자 승열
  • 전체
    오늘
    어제
  • 링크

    • 깃허브 보러가기
    • 링크드인 보러가기
    • 인스타그램 보러가기
    • 카테고리
      • 코딩테스트
        • BaekJoon
      • TIL and WIL
        • TIL
        • WIL
      • 주말스터디
      • 내일배움캠프
        • 사전캠프 강의 (SQL)
      • 용어정리
        • Python
        • Python-Library
        • Machine-Learning
        • Deep-Learning
        • AI 활용
        • LLM & RAG
        • Docker
        • Django
        • SQL
        • Java Script
        • etc
      • Daily 코드카타
        • SQL
        • Python 알고리즘
      • 임시저장
      • 보류
  • 태그

    오블완
    langchain
    django
    View
    티스토리챌린지
    RAG
    vector db
    word2vec
    llm
    template
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코드 유랑자 승열
Deep-Learning 용어정리 (CNN)
상단으로

티스토리툴바