수달이네 기술 블로그

3. CNN(Convolution Neural Network) 본문

학교공부/생성형 인공지능

3. CNN(Convolution Neural Network)

슬픈 수달이 2025. 9. 19. 15:29

머신러닝 vs딥러닝

머신러닝: 특징추출, 다운스트림 작업이 분리되어있음.

  • 전체 시스템 자체로 하는 머신러닝은 없음.

딥러닝: 다층 신경망으로 특징추출, 다운스트림 작업을 결합함.

  • 특징추출 또한 모델에 의해 학습되므로 수작업으로 특징을 만들 필요 없음.

컨볼루션

두 함수를 결합하여 세번째 함수를 생성하는 수학적 연산

이미지 처리: 전체 이미지에서 각 픽셀과 그 이웃 픽셀에 커널을 적용해 이미지를 변환하는 프로세스

딥러닝: 이미지 입력에서 특징을 추출하기 위해 신경망에 컨볼루션 연산 수행(계층적 표현 생성)

이미지 처리에서의 공식은 아래와 같다.

(I * K)(i, j) = ∑∑ I(i-m, j-n) K(m, n)
  • I는 입력 이미지
  • K는 컨볼루션 커널(필터)
  • (i, j)는 출력 이미지의 픽셀 좌표
  • (m, n)은 커널 내의 좌표

영상 입력과 필터(커널)이 주어지면 각 요소에 쌍단위로 곱한다..

필터와 동일한 크기의 데이터가 선택되고 컨볼루션 연산이 수행되어, 곱의 합을 계산한다.

컨볼루션 연산을 거치며 이미지는 점차 축약된 정보를 담게 된다.

커널은 영상의 모든 요소 집합에 적용한다.

패딩

컨볼루션 과정에서 출력 특징 맵의 크기는 입력특징 맵의 크기, 커널의 크기, 보폭에 의해 결정된다.

입력 특징 맵에 커널을 적용하면 출력 특징 맵이 입력보다 작아진다.

이로인해 정보 손실 가능성이 있기 때문에 이를 막기 위해 패딩을 사용한다.

위처럼 합성곱 신경망이 이미지를 처리하는 영역을 확장한다.

CNN의 패딩이 0일경우 모든 테두리 픽셀 값이 0이됨.

컨볼루션 응용(CNN)

컨볼루션을 응용한 CNN은 컴퓨터 비전 작업을 잘 수행한다.

이미지 분류, 객체 감지, 인스턴스 세분화, 시맨틱 세분화, 팬옵틱 세분화 등에 사용한다.

다층 구조 신경망

input layer

데이터 셋의 특징, 영상의 픽셀값 등 원시 입력 데이터 수신.

각 뉴런은 하나의 피처, 픽셀을 나타내며, 활성화된 뉴런은 다음 레이어로 전달한다.

hidden layer

입력과 출력 사이의 레이어

학습 데이터 상에서 직접 관찰할 수 없고, 네트워크가 학습하여 생성하는 추상적 표현

입력 데이터에서 계층적 특징과 패턴을 학습한다.

레이어가 많을수록 심층적인 레이어이다.

  • 원래는 히든 레이어 하나하나가 안정적이지 않았음. 그러나 힌튼, 르쿤, 벤지오의 세 딥러닝의 아버지의 연구로 히든레이어를 늘려도 네트워크의 안정성에 문제가 없고, 오히려 효과가 좋아짐을 발견했다.

output layer

최종 예측, 출력을 생성

출력 계층의 뉴런 수는 네트워크가 해결하도록 설계된 작업의 특성에 따라 달라진다.

활성화 함수

y = f(x)로 인해 출력을 나타낼때 여기서 사용되는 함수

네트워크에 비선형성(non linear)을 도입해 데이터의 복잡한 패턴과 관계를 학습한다.

  • 원래는 liner한 값이었음.
  • Tanh(하이퍼볼릭탄젠트), ReLU(정류된 선형단), Sigmoid(시그모이드), Linear(선형)

하이퍼 파라미터(경험적)

사용자가 훈련전에 수동으로 설정하는 구성 설정

  • 에폭(실행 횟수), 학습비율, 배치크기, 옵티마이저 등

학습 알고리즘이 데이터에 적응하는 방식에 영향을 미침

  • 적절한 하이퍼 파라미터의 선택은 최적의 성능을 달성하고, 과적합, 과소적합의 문제를 방지하는데 중요

다층 구조 신경망의 구조

CNN의 주요 구성요소

컨볼루션 레이어: 입력 데이터에 필터를 적용하여 데이터의 패턴과 특징을 감지

풀링 레이어: 입력 데이터의 공간적 차원을 줄여 가장 중요한 기능을 요약하고, 선택하여 필수 정보를 보존

완전 연결 레이어(Fully-connected layer): 이전 레이어의 모든 뉴런을 현재 레이어의 각 뉴런에 녀결해 가중치 합산, 활성화를 수행해 최종 출력을 생성

  • 이전 신경망에서 레이어 사이사이의 연결된 선들
  • CNN에서는 마지막에만 사용한다.
  • 장점: 원하는 아웃풋을 충실히 이행
  • 단점: 계산량이 많아 네트웍 유지에 어려움

기타 구성요소

정규화레이어(Normalization): 이전 레이어의 활성화를 표준화하여 훈련중 모델 안정성과 수렴을 향상

드롭아웃 레이어: 훈련중 뉴런의 일부를 무작위로 비활성화하여 과적합을 방지하고 신경망의 견고성을 장려

균일한 레이어: 다차원 입력을 1차원 벡터로 재구성하여 신경망에서 완전히 연결된 레이어에 맞게 준비

LeNet

얀 르쿤(Yann LeCun)이 도입한 CNN아키텍쳐

컨볼루션 레이어 2개 평균 풀링 레이어 2개 완전연결레이어 3개 총 7개의 레이어로 구성

손으로 쓴 숫자의 인식을 위해 설계되었음.(MNIST데이터셋)

AlexNet

알렉스 크리제프스키등이 도입한 CNN아키텍처

5개의 컨볼루션 레이어, 3개의 완전 연결 레이어의 8개 레이어로 구성됨.

(ImageNet데이터셋에서 높은 인식확률을 보임)

VGG

카렌 시모니안, 엔드류 지저먼이 소개한 딥 CNN아키텍처

3x3컨볼루션 필터가 있는 16~19개 레이어로 구성됨.(단순성, 균일성)

이미지 분류 작업에서 탁월한 성능(깊이의 중요성 인식)

GoogleNet

구글의 Christian Szegedy등이 도입한 CNN아키텍쳐

병렬 1x1, 3x3, 5x5컨볼루션을 사용 후 연결하여 효율적으로 정보를 캡처

ResNet

카이밍 허가 도입한 CNN아키텍처

스킵, 잔여물결 등을 도입하여 심층적인 네트워크의 소실, 기울기문제를 해결

매우 심층적인 네트워크를 효과적으로 훈련 가능

DenseNet

Gao Huang등이 도입한 아키텍처

각 레이어가 모든 이전 레이어에서 특징 맵을 수신하여 직접적인 정보 흐름을 촉진하고 특징 재사용을 촉진하는 고밀도 연결성

다층 구조 신경망 학습

Feedforward

네트워크 레이어를 통해 입력 데이터를 전파

만약 입력 I를 넣었을 때 출력 I’의 에러가 크다, 하면 돌아가면서 이전 weight(가중치)를 조정

  • 이걸 전파시키는 알고리즘이 Back-propagation알고리즘이며
  • 앞에서부터 흐르는 네트웍을 Feedforward라 한다.(학습 할때는 뒤로 돌아가지만 학습이 끝나고 결과물을 낼땐 앞으로만 낸다.)

컨볼루션, 활성화 함수, 풀링 같은 연산을 순차적으로 적용하여 최종 출력 예측을 생성하는 프로세스

Loss function(손실함수)

Back-propagation으로 손실을 줄여가는 것, 손실함수라 한다.

비용함수, 목적함수라고도 부르며 예측 출력과 실제 목표값의 차이를 정량화 하기 위해 사용되는 척도

  • 큰 오류에 불이익을 주고 모델이 예측과 실제 목표 사이의 불일치를 최소화 하도록 유도
  • 손실 함수의 선택은 분류, 회귀 또는 기타 특수 작업과 같이 처리하는 특정 작업에 따라 달라짐
  • 원하는 로스율, 정확한 예측이 나오면 멈춘다.

손실함수의 예시

평균 제곱 오차 손실(MSE)

입력(x)-출력(y) 쌍의 데이터 집합에서 새로운 입력(x)이 주어졌을 때 출력(y)을 예측하는 모델을 학습하는 것

MSE손실은 예측과 실제 목표값 간의 평균 제곱 차이를 측정

MSE = (1/n) * Σ(yi - ŷi)²
  • n은 데이터 포인트의 수
  • yi는 실제 목표값
  • ŷi는 모델의 예측값
  • Σ는 모든 데이터 포인트에 대한 합계

최적화 알고리즘

학습과정에서 모델의 파라미터를 조정하는 중요한 구성요소

목표는 모델의 예측과 실제 목표값 간의 불일치를 나타내는 손실 함수의 값을 최소화

손실을 줄이는 방향으로 모델의 파라미터를 반복적으로 업데이트하여 달성

  • SGD(확률적 경사하강), Adam, RMSprop, AdaGrad
  • SGD: 모델의 파라미터를 무작위로 초기화 하고, 훈련 데이터 셋에서 작은 하위 집합을 무작위로 정한 후, 하위 집합의 데이터를 활용해 손실함수 기울기를 계산하고 파라미터 업데이트

역전파

출력 레이어에서 시작하여 역방향으로 작업하며 파라미터에 대한 손실함수의 기울기를 계산

Chain rule을 이용해 모델 파라미터를 업데이트해 손실을 줄이고 성능을 조정

  • Chainrule: 미분 방정식…

한계점

대량 데이터 요구, 이동 불변성, 적대적 공격 취약성

대량 데이터 요구

CNN은 높은 정확도를 위해 광범위한 데이터셋이 필요하며 수많은 예제를 분석해야함.

데이터셋이 제한적이면 overfit이 발생해 데이터의 성능이 저하됨.

이동불변성

방향, 위치를 변경해도 해당 물체를 인식하는 뉴런이 비활성화 될 수 있음.

데이터 증강으로 해결 가능하지만 한계.

적대적 공격 취약성

자율주행: 들어오는 이미지를 변조해 정지 사인을 없애버리는 공격등 입력데이터를 조적하여 잘못된 결과 생성하도록함.