240606 TIL #418 AI Tech #32 CNN

김춘복·2024년 6월 5일
0

TIL : Today I Learned

목록 보기
418/575

Today I Learned

오늘의 내용은 CNN!


CNN

Convolutional Neural Network. 이미지와 같은 2차원 데이터의 분석에 사용되는 신경망

  • Convolution 연산을 통해 이미지의 중요한 특징을 자동으로 추출하고, 이를 바탕으로 분류나 객체 인식 등의 작업을 수행한다.

Convolution

  • 합성곱. 두 개의 함수
    𝑓와 𝑔가 있을 때, 두 함수의 합성곱을 수학 기호로는 𝑓∗𝑔와 같이 표시한다.

  • 2D image convolution

  • 3x3필터 * 7x7이미지 = 5x5 결과가 나온다.

1x1 Convolution

  • channel을 줄여서 결과적으로 파라미터의 수를 줄일 수 있다.

  • 네트워크의 깊이를 조절하고, 계산 효율성을 높일 수 있다.


CNN 구조

이미지가 입력되면 Convolution 필터를 거쳐 이미지의 특징을 추출하고, 활성화 함수를 적용해 비선형성을 추가한다. 여러 필터를 거쳐 점점 더 복잡한 특징이 추출된다. 풀링 레이어에서 특징맵의 크기를 줄이고 중요한 정보만 유지한다. 이렇게 추출된 특징을 바탕으로 완전 연결 레이어에서 최종분류를 수행한다. 소프트맥스 함수를 이용해 각 클래스에 대한 확률을 계산하고 최종 분류를 수행한다.

  1. Convolutional Layer

    Convolutional Layer는 입력 데이터에 필터를 적용해 feature map을 생성한다. 필터는 이미지의 특정 패턴이나 특징을 감지하도록 학습된다.
    Convolution을 stack처럼 여러번 거칠 수도 있다.
    여러 필터를 사용해 다양한 feature map(특징 맵)을 생성한다.(feature extraction 과정)

  2. Activation Function (활성화 함수)

    각 Convolution 연산 후 non-linear를 추가하기 위해 활성화 함수를 적용한다.
    주로 ReLu 함수를 사용한다.(음수를 0으로, 양수를 그대로)

  3. Pooling Layer

    decision making 과정. 특징 맵의 크기를 줄이고, 연산량을 감소시키며, 모델의 과적합을 방지한다.
    최대 풀링(Max Pooling)은 구역 내의 최대 값을 선택하고, 평균 풀링(Average Pooling)은 구역 내의 평균 값을 선택하는 방식이다.

  4. Fully Connected Layer(완전 연결 레이어)

    마지막부분에선 하나 이상의 완전 연결 레이어가 사용된다. 뉴런이 이전 레이어의 모든 출력과 연결된다. CNN이 최종적으로 분류작업을 수행할 수 있도록 한다. 최근에는 파라미터의 수를 줄이기 위해 완전 연결 레이어는 없거나 최소화되고있다.

  5. Output Layer(출력 레이어)

    분류 작업의 경우 소프트맥스(Softmax) 함수를 사용하여 클래스별 확률을 출력한다.


CNN 핵심 개념

Stride

  • CNN에서 필터가 입력 데이터 위를 이동하는 간격. 필터를 얼마나 많이 이동시키는지를 결정한다.

  • 주로 1이나 2값을 사용한다.
    2면 필터가 한번에 두칸씩 이동해 계산량을 줄이고 출력 크기를 더 작게한다.

Padding

  • 연산을 수행할 때 입력 데이터의 가장자리에 특정 값을 추가하여 입력 데이터의 크기를 인위적으로 확장하는 것

  • 주로 입력 데이터의 크기를 유지하거나 출력의 크기를 제어하기 위해 사용된다.

Channel

  • 입력 데이터의 깊이를 나타내며, 이미지의 경우 색상 채널(RGB)로 구성된다.

  • 각 필터는 입력 데이터의 모든 채널과 독립적으로 Convolution 연산을 수행하여 출력 채널을 생성한다.


본 포스트의 학습 내용은 부스트클래스 <AI 엔지니어 기초 다지기 : 부스트캠프 AI Tech 준비과정> 강의 내용을 바탕으로 작성되었습니다.

profile
Backend Dev / Data Engineer

0개의 댓글