1. 정의

- 2차원 데이터에서 특징을 자동으로 추출하고 분류하는 신경망

- 네오코그니트론(Neocognitron)신경망을 바탕으로 만들어짐 

 

네오코그니트론(Neocognitron)

- 일본의 후쿠시마 쿠니히코가 만든 신경망 구조로 고양이의 시각세포 연구(후벨과 위젤의 연구)를 보고 아이디어를 얻었다

- 사람이나 동물이 시각적으로 사물을 인식하는 방식을 본떠서 만든 것

- 구성

  - S셀 (단순 세포) : 입력에서 특징(선, 점 등)을 뽑아내는 역할 = 컨볼루션

  - C셀 (복합 세포) : 여러개의 S셀을 보고 좀 더 강한 특징을 요약한다 = 폴링


2. 구조

 

입력 → [컨볼루션 → ReLU → 풀링] × 반복 → Flatten → Fully Connected → Softmax 출력

 

- 입력층 : 이미지를 받아들임
- 컨볼루션층 : 이미지에서 특징을 뽑음
- ReLU : 음수 제거, 비선형성 추가
- 풀링층 : 크기를 줄여 요약함
(위 과정을 여러 번 반복)


- 평탄화(Flatten) : 1차원 벡터로 펼침
- 완전연결층(Dense) : 특징을 바탕으로 판단
- 출력층(Softmax) : 결과를 확률로 출력

 


 

3. 특징

3.1. 연결구조

 

각 뉴런이 입력 전체(초록)가 아니라 일부 영역(노랑)만 본다

사람이 한 번에 전체를 다 보는게 아니라 부분만 보고 특징을 추출하는 방식

과적합(모델이 훈련 데이터에 지나치게 맞춰져서 새로운 데이터에는 성능이 떨어지는 현상) 위험이 낮아진다 

 

 

3.2. 용도와 중요성

다양한 이미지 관련 작업에 사용된다 

 

 

용도 설명

용도 설명
이미지 분류 어떤 종류의 이미지인지 판단 (예: 개, 고양이, 자동차 등)
객체 탐지(Object Detection) 이미지 안에서 물체의 위치와 종류를 찾아냄
얼굴 인식 사람 얼굴을 인식하고 구별함
숫자 인식 필기 숫자나 자동차 번호판 인식 등
이미지 설명 생성 이미지 내용을 이해하고 설명하는 데도 활용 가능

 

2차원 구조를 가진 데이터에 잘 맞는 구조라 적은 계산으로도 중요한 시각적 특징(엣지, 모양)을 효과적으로 추출할 수 있다 

 


4. 컨벌루션 연산

 

주변 화솟값(픽셀)에 필터(마스크)의 가중치를 곱해서 더한 값을 새로운 픽셀값으로 만드는 연산이다

이미지에서 중요한 특징을 추출하기 위한 계산방식 = 즉, 강조하기 위해 

 

 

 

- 입력 영상 : 원래의 이미지 픽셀 값 

- 컨볼루션 마스크 : 각 위치에 a, b, c... 같은 가중치 값이 있는데 이 필터를 이미지 위에 겹쳐놓고 대응되는 입력영상 픽셀들과 각각 곱한 후 전부 더한다 

- 출력 영상 : 위 계산결과를 순차적으로 완료한 새로운 이미지 

 

 

 

 

 

4.1. 보폭 (Stride)

필터가 이미지를 따라 얼마만큼 이동하며 연산을 할지를 정하는 값 

보폭이 크면 출력이 작아진다

 

4.2. 패딩 (Padding)

이미지의 가장자리를 처리하기 위해 0을 채워 넣는 것

필터를 가장자리에도 적용하고 싶은데, 필터가 이미지 밖으로 튀어나갈 수 있기 때문에 0을 덧붙여 늘리는 방식을 사용

 

4.3. 커널 (필터)

- 한 장의 입력 이미지에서 다양한 종류의 정보를 추출하기 위해 여러개의 필터(커널)을 동시에 적용한다

- CNN에서는 하나의 컨볼루션 레이어에서 128, 256개 처럼 수십-수백 개의 필터를 동시에 학습한다 

- 각 필터는 서로 다른 특징을 감지하려고 노력한다 

 

 


5. 풀링 (Pooling) = 서브 샘플링

입력 데이터의 크기를 줄이는 작업

 

5.1. 방법

입력 이미지에 여러 개의 필터(커널)를 겹쳐서 슬라이딩하며 연산한다

 

5.2. 종류

 

파일을 일정한 크기로 나누어서 각 영역에서 대표값만 남긴다 

  • MaxPooling : 가장 큰 값만 남김
  • AveragePooling : 평균값만 남김 

 

5.3. 장/단점

장점

- 데이터 크기를 줄이기 때문에 연산 속도가 빨라진다

- 과적합이 방지된다

 

단점

- 자세한 특징이 사라질 수 있다

- 성능이 저하될 수 있다 

 

반응형

'CS > AI' 카테고리의 다른 글

kNN(k-Nearest Neighbor) 알고리즘  (0) 2025.06.09
선형 회귀(Linear Regression)  (0) 2025.06.08
머신 러닝  (0) 2025.06.07

+ Recent posts