본문 바로가기
인공지능

[AI학습방법]인공지능 학습, CNN(합성곱 신경망) 알아보기 5장

by y은광 2024. 6. 17.
728x90

딥러닝의 CNN의 역사는 초기신경망 연구로부터 시작되었습니다. 이전 포스팅에서 언급한 퍼셉트론과 역전파 알고리즘으로 신경망의 가중치를 효율적으로 학습할 수 있게 하여 딥러닝 발전에 큰 중심 역할을 하였지요. 우리가 사용하는 이미지 학습모델인 CNN의 유래와 기본 구조를 알아보겠습니다.

 

1. CNN(Convolutional Neural Network) 의유래

1980년 일본의 과학자 후쿠시마 쿠니히코는 Neocognitron(네오코그니트론)이라는 모델개발하였습니다. 이 모델은 층구조와 지역 수용영역 (Receptive Field) 개념을 도입하여 이미지 인식에 사용되었습니다. Neocognitron은 CNN의 초기 형태로 볼 수 있습니다.

네오코그니트론
<출처 : labelyourdata>

 

1989년 얀 르쿤(Yann LeCun)은 LeNet-5라는 CNN 모델을 제안하여 손글씨 숫자 인식(MNIST 데이터셋)에서 뛰어난 성능을 보였습니다. LeNet-5는 합성곱 층, 풀링 층, 완전 연결 층을 포함하는 현대 CNN의 기본 구조를 갖추고 있었습니다.

 

MINIST데이터셋
<MNIST 데이터 셋 출처 : sdc-james>

 

2012년 제프리 힌튼과 그의 학생인 알렉스 크리제브스키(Alex Krizhevsky), 일리아 수츠케버(Ilya Sutskever)가 개발한 AlexNet은 ILSVRC인 ImageNet대회에서 다른 머신러닝 모델보다 에러가 가장 적게 나오며 압도적인 성능을 보여주었습니다. 단일 AlexNet 모델로도 18.2%의 낮은 오차율을 보였습니다. 결국 7개의 앙상블 AlexNet 모델로는 15.4%의 최고 성적을 거두며 우승을 차지했습니다. 이는 다음 순위 모델(26.2 %) 대비 10% 이상 성능이 향상한 결과였으며, 컴퓨터 비전 분야에 지각 변동을 일으킨 사건이었습니다. AlexNet CNN(합성곱 신경망) 구조와 GPU를 활용한 병렬 처리를 통해 딥러닝의 가능성을 입증했습니다. 이후 VGGNet, GoogLeNet, ResNet 등 다양한 CNN 아키텍처가 제안되었으며, 각각 깊이와 복잡성을 증가시키면서도 성능을 향상하는 데 기여했습니다.

imagenet대회
<출처 : GDSC UOS>

 

또한 AlexNet 논문은 2012년 NeurIPS(Neural Information Processing Systems)에 발표되었으며, 현재까지 28,000회 이상 인용될 정도로 학계에 큰 영향을 미쳤습니다. 이 논문을 통해 CNN 모델의 우수성이 입증되면서 딥러닝 연구가 다시 활기를 띠게 되었습니다.

 

2. CNN의 기본 구조

합성곱 신경망(CNN, Convolutional Neural Network)은 주로 이미지 데이터의 공간적 및 위치적 정보를 보존하면서 중요한 특징을 자동으로 추출합니다. 전통적인 기법들과 비교하자면 사람이 직접 특징을 설계할 필요 없고 더 정교한 모델을 만들어 낼 수 있습니다. 특히 이미지 분류, 객체 탐지, 얼굴 인식 등에서 성능을 발휘하죠.

 

CNN은 합성곱 층과 풀링 층으로 구성되며, 입력 데이터를 점진적으로 더 추상적이고 고차원적인 표현으로 변환합니다. 초기에는 텍스처 같은 저 수준의 특징을, 후반에는 더 복잡한 패턴이나 객체를 하면서 특징 추출과 차원 축소를 수행합니다. 자연어 처리, 음성인식등에서도 계층적 표현 학습의 이점을 잘 활용하고 있습니다.

 

필터(커널)를 여러 위치에 공유하여 학습 파라미터의 수를 크게 줄일 수 있습니다. 이는 학습 속도를 높이고, 과적합(overfitting)을 방지하며, 메모리 사용량을 줄이는 데 도움을 줄 수 있지요. 이에 관한 활용은 제한된 데이터 셋에서도 높은 성능을 유지하는 모델을 개발할 수 있습니다.

 

사전 학습된 CNN 모델을 새로운 문제에 재사용할 수도 있습니다. 데이터가 부족한 상황에 매우 유용하죠. 데이터로부터 직접 특징을 학습하는 모델이라 머신러닝 모델 개발의 복잡성을 크게 줄일 뿐만 아니라 다양한 데이터에 응용될 수 있습니다. 그 변형 모델들이 자연어 처리, 시계열 데이터 분석, 의료 진단등 다양한 분야에서 사용됩니다.

 

가장 획기적인 개발이라 할 수 있는 CNN과 GPU는 같은 병렬 처리 장치와 결합하여 매우 높은 처리 속도와 성능을 발휘할 수 있다는 거죠, 이는 실시간 애플리케이션에 적합합니다. 예를 들어 자율주행, 실시간 비디오 분석, 증강 현실 등 실시간 성능 요구 사항을 충족합니다. CNN 구조를 나열하자면 아래와 같은 방향으로 이동합니다.

 

① 입력층 (Input Layer) 원본 이미지나 데이터가 입력됩니다.

 

② 합성곱 층 (Convolutional Layer) + 활성화 함수 (ReLu) 이미지의 공간적 구조를 유지하면서 특징을 추출합니다.

  • 필터(커널, Kernel) : 작은 크기의 행렬(예: 3x3 또는 5x5)이 이미지 위를 슬라이딩하며 합성곱 연산을 수행합니다. 커널은 랜덤으로 지정되었다가 학습되어 가면서 그에 적합한 커널을 생성합니다. 어떤 커널을 이용하는지에 따라 다양한 결과를 출력할 수 있습니다. 예를 들어 edge는 이미지 모서리나 가장자리 추출하고, sharpen은 선이나 색상 등 명확한 이미지, Blur는 이미지를 흐리게 만들 수 있습니다. 이에 해당하는 커널 숫자를 변경하면서 원하는 이미지를 추출합니다.
  • 스트라이드(Stride) : 필터가 이미지 위를 이동하는 간격을 의미합니다. 스트라이드 값이 클수록 출력 크기가 작아집니다. 아래 화면에서 박스 형태입니다.
  • 패딩(Padding) : 입력 이미지의 가장자리에 추가로 픽셀을 더해주는 기법으로, 출력 크기를 조정하면서 이미지 손상을 줄일 수 있습니다. 원본사진과 같은 픽셀로 출력하는 것을 볼 수 있습니다.
  • 출력:특징 맵(Feature Map)이라고 불리는 새로운 이미지가 생성됩니다.
  • 활성화 함수 층 (Activation Layer) : 비선형성을 추가하여 모델이 복잡한 패턴을 학습할 수 있도록 합니다. 활성화 함수 층에 ReLU(Rectified Linear Unit) 가장 많이 사용되는 활성화 함수로, 음수를 0으로 변환하고 양수는 그대로 두는 함수입니다. Sigmoid 및 Tanh는 자주 사용되지 않지만 특정 경우에 유용할 수 있습니다.
  • 아래 화면은 커널을 적용하여 연산하는 과정과 패딩 처리하는 화면입니다.

합성곱연산
<합성곱 연산 출처 : y은광>

 

 

③ 풀링 층 (Pooling Layer): 데이터의 공간적 크기를 줄여 계산량을 감소시키고, 중요한 특징을 유지하면서 불필요한 정보는 제거합니다.

폴링계산
<폴링계산 출처 : y은광>

  • 최대 풀링(Max Pooling) : 특정 영역에서 최댓값을 선택합니다.
  • 최소 폴링(Min Pooling) : 특정 영역에서 최솟값을 선택합니다.
  • 평균 풀링(Average Pooling): 특정 영역의 평균값을 계산합니다.
  • 출력 축소된 크기의 특징 맵이 생성됩니다.

 

④ 합성곱 층(Convolutional Layer)+ 활성화 함수 (ReLu) : 성곱 층을 반복하여 이미지를 추출하는 과정입니다.

 

⑤ 풀링 층(Pooling Layer) : 폴링 층을 반복하여 축소하는 과정입니다.

 

⑥ 완전 연결 층 (Fully Connected Layer) : CNN의 마지막 부분으로 입력을 1차원 벡터로 변환하여 분류 작업을 수행합니다.  모든 입력 뉴런이 모든 출력 뉴런과 연결되어, 추출된 특징을 바탕으로 최종 예측을 수행합니다.

  • 뉴런(Neuron) : 각 뉴런은 이전 층의 모든 뉴런과 연결되어 있습니다.
  • 가중치(Weights)와 바이어스(Bias) : 학습을 통해 최적화됩니다. (24. 6. 12. 포스팅 참고)

 

⑦ 출력 층 (Output Layer) 최종 예측값을 출력합니다.

  • 분류 문제 소프트맥스(Soft max) 함수가 주로 사용되어 각 클래스에 대한 확률을 출력합니다.
  • 회귀 문제 선형 활성화 함수가 사용될 수 있습니다.

CNN구조
<CNN구조 출처 : y은광>

 

3. 결론

CNN 구조는 초기신경망 연구에서부터 시작하여, Neocognitron과 LeNet은 같은 모델을 거쳐 발전해 왔습니다. 특히 2010년대 이후 딥러닝의 부활과 함께 급속한 발전이 이루어졌습니다. 구조층에는 합성곱 층활성화 함수 풀링 층, 완전 연결 층으로 구성되어 있으며, 합성곱 신경망으로 이미지의 특징을 추출하고 이를 기반으로 분류 작업을 수행합니다. CNN 구조는 효과적인 특징 추출과 계층적 표현학습, 전이 학습, 자동화된 특징 공학과 다양한 응용 가능성과 효율성이 있습니다. 또한 이미지 인식객체 탐지, 얼굴 인식 등 다양한 분야에서 뛰어난 성능을 발휘하는 인공지능 연구의 중요한 이정표로 자리 잡고 있으며 앞으로도 그 활용 범위가 계속 확장될 것입니다.

 

감사합니다

 

2024.06.12-인공지능 학습, 딥러닝 기본 구조 알아보기

 

인공지능 학습, 딥러닝 기본 구조 알아보기

인공지능학습방법 중 딥러닝은 인공신경망을 활용 하여 데이터에서 중요한 특성을 자동으로 학습하고 분류하는 기술입니다. 최근 다양한 분야에서 활발히 활용되고 있으며 앞

yej2413.com