[Study] CNN

Na young·2024년 1월 12일
0

Study

목록 보기
2/6

https://www.youtube.com/watch?v=6TGyI4XjlCk&list=PL7ZVZgsnLwEElur9LpRW9w3NYGVgA3n6t

[DL] 딥러닝 CNN (합성곱 신경망)알고리즘 의 동작원리 (tistory.com)

: 티스토리 설명 간단요약 후 강의 내용에서 추가적인 부분을 더 적어 넣었어요

: 아직 강의 내용에 있는 코드는 안 썼어요..

  • 목차 1~6까지는 CNN의 작동원리 순서로 기

1. CNN

필터를 이용한 컨볼루션과 풀링 연산을 반복적으로 진행하며 이미지의 특징 검출

1.1. Convolution 합성곱

Convolution

특정 크기를 가진 필터(사진에서는 3x3)를 일정 간격으로 이동하며

입력데이터에 각각의 행과 열에 필터 값을 곱해주고 그 결과를 모두 더하여

새로운 행열에 넣는 연산 작업임

1.2. 필터 (kernel)

  • 필터의 사이즈는 거의 홀수 → 짝수이면 패딩이 비대칭 → 왼쪽 오른쪽을 다르게 주어야 함 → 중심 위치가 존재, 구별된 하나의 픽셀이 존재
  • 필터의 학습 파라미터 개수는 입력 데이터의 크기와 상관없이 일정

2. Padding & Stride

필터(커널) 사이즈과 함께 입력 이미지와 출력 이미지의 사이즈를 결정하기 위해 사용

사용자가 결정할 수 있음

2.1. padding

  • padding의 파라미터 1) valid 패딩 없음 2) same 패딩 있음 → 입력 이미지의 크기와 연산 후의 이미지 크기를 같도록 유지 만약, 필터(커널)의 크기가 k 라면, 패딩의 크기는 p = (k-1)/2 [단, stride=1]
  • padding 하는 이유

5x5 크기에 이미지에 3x3 필터를 적용시켜주니 출력 이미지가 축소됨

여러 번 계산을 해야하는데 이미지가 너무 작아져버리니 학습시킬 데이터가 부족해짐

이를 방지하기 위해 zero padding을 활용함.

2.2. Stride

Stride

필터를 적용하는 간격을 의미

3. 출력 데이터의 크기

conv=Conv2D(filters=16, kernel_size=3, padding='same', stride=1, activation='relu')

4. Pooling

필터 사이즈 내에서 특정 값을 추출하는 과정

4.1. Max pooling

  • 최댓값을 추출
  • 출력 데이터의 사이즈 계산은 컨볼루션 연산과 동일
  • stride=2, kernel_size=2를 통해 feature map의 크기를 절반으로 줄여줌
  • 모델이 주요한 특징을 학습하게 해주며 컨볼루션 신경망이 이동 불변성 특성을 가지게 해줌

초록색 사각형에 2와 4의 위치가 바뀌어도, 8을 뽑아내기 때문에 이동 불변성이 생김

  • 모델의 파라미터 개수를 줄여주고, 연산속도가 빨라짐

  • 오버피팅 발생 방지 (과적합, 학습 데이터를 너무 잘 학습해서 새로운 데이터가 들어오면 낮은 성능을 보이는 것)

  • avg pooling & Global Avg Pooling

    평균 풀링 : 위에는 최댓값을 풀링 했더라면 얘는 필터의 평균 값을 풀링. 현재에는 잘 사용안함.

    전역 평균 풀링 : feature map 각각의 평균값을 풀링. 대부분의 정보를 잃음. 출력층에서는 유용할 수 있음

5. 컨볼루션과 풀링의 반복

이렇게 반복해주면 최초 이미지에서 주요 특이점(feature map)만 남게 됨.

5.3. feature map

필터를 통과한 이미지는 각각의 특성을 가지고 있음

컨볼루션 과정을 거친 이미지들은 색상, 선, 형태, 경계 등의 특징이 뚜렷해짐

5.1. flatten

1차원 데이터로 펴주는 작업

왜 펴주나요?

fully connected layer에 넣기 위해

5. 완전 연결 계층 (Fully Connected layer)

Dense layer라고도 함

flatten 과정에서 1차원 벡터 형태의 데이터들은 하나로 이어짐 → fully connected 계층을 갖게 되는 것

6. softmax

  • 활성화 함수

결과 수에 제한 없이 전체에 대한 각각의 확률을 구할 때 사용하는 함수

입력 값에 대한 각각의 편차를 확대시켜 큰 값은 상대적으로 더 크게 작은 값은 더 작게 만들어줌

⇒ 최종적으로 입력 이미지가 어떤 이미지인 지 확률을 통하여 분류해줌


7. 유효 수용 영역 (ERF, Effective Receptive Field)

컨볼루션 신경망은 동물의 시각피질 구조에서 영향을 받음

  • 시각피질에 관하여 시각피질의 신경세포는 시야 내의 특정 영역에 대한 자극만 수용하고, 수용 영역이 존재하며, 해당 영역의 특정 특징에 대해서만 반응함 내가 무언갈 보면 (시각 자극) 1차 시각피질을 통해서 처리된 다음, 2차 시각피질을 들렸다가, 3차 시각피질 등 여러 영역을 통과하여 계층적으로 정보처리를 함. 이 계층적으로 처리하는 과정에서 추상적인 특징이 추출되어 시각을 인지하게 되는 것임.
  • 입력 이미지에서 거리가 먼 요소를 (상호 참조를 통해) 결합하여 네트워크 능력에 영향을 줌
  • 입력 이미지의 영역을 정의해 주어진 계층을 위한 뉴런의 활성화에 영향을 미침
  • 한 계층의 필터 크기나 윈도우 크기로 불리기 때문에 RF(receptive field, 수용 영역)이라는 용어를 흔히 볼 수 있음

  • 상호 참조를 통해 결합하는 과정 (?) (빨간색 or 파란색으로 표시한) 9개의 수용영역이 있음. → 이 부분이 다시 수용영역(보라색)이 되어 다른 수용영역(C)에 영향을 주게 됨.
  • RF의 중앙에 위치한 픽셀(빨간색 파란색 겹치는 2열 3행)은 주변에 있는 픽셀보다 더 높은 가중치를 가짐 → 중앙부에 위치한 픽셀은 여러 개의 계층을 전파한 값 → 중앙부에 있는 픽셀은 주변에 위치한 픽셀보다 더 많은 정보를 가짐

이 뒤에는.. 모델들 얘긴데 … 와진짜듣고십지않다…….. 보류입니다..

profile
개발어린이

0개의 댓글

관련 채용 정보