topics 합성곱 신경망(Convolutional neural network : CNN)이란? 콘볼루션 신경망이란 무엇인가요?
IBM의 신경망 솔루션 살펴보기 AI 업데이트 구독
구름 픽토그램, 파이 차트, 그래프 픽토그램이 콜라주된 다음 일러스트
콘볼루션 신경망이란 무엇인가요?

합성곱 신경망은 3차원 데이터를 사용하여 이미지 분류 및 오브젝트 인식 작업을 수행합니다.

신경망은 머신 러닝의 하위 집합이며 딥러닝 알고리즘의 핵심입니다. 이들은 인풋 계층, 하나 이상의 숨겨진 계층 및 아웃풋 계층을 포함하는 노드 계층으로 구성됩니다. 각 노드는 서로 연결되어 있으며 연계된 가중치와 임곗값을 가집니다. 개별 노드의 아웃풋이 지정된 임곗값을 초과하면 해당 노드가 활성화되어 네트워크의 다음 계층으로 데이터를 보냅니다. 그렇지 않으면 데이터는 네트워크의 다음 계층으로 전달되지 않습니다.

이 기사에서는 주로 피드포워드 네트워크에 중점을 두었지만 다양한 사용 사례와 데이터 유형에 사용되는 다양한 유형의 신경망이 있습니다. 예를 들어, 재발생 신경망은 일반적으로 자연 언어 처리 및 음성 인식에 사용되는 반면 합성곱 신경망(ConvNets 또는 CNN)은 분류 및 컴퓨팅 비전 태스크에 더 자주 사용됩니다. CNN 이전에는 이미지에서 오브젝트를 식별하기 위해 시간이 많이 소요되는 수동 특징 추출 방법이 사용되었습니다. 그러나 이제 합성곱 신경망이 이미지 분류 및 오브젝트 인식 작업에 대한 보다 확장 가능한 접근 방식을 제공하며, 행렬 곱셈의 원리를 비롯한 선형 대수학을 활용하여 이미지 내의 패턴을 식별합니다. 즉, 계산이 까다로울 수 있으며 모델을 훈련시키기 위해 GPU(그래픽 처리 장치)가 필요할 수 있습니다.

AI를 위한 데이터 저장소

AI 확장을 위한 개선 및 비용 최적화 기회 등의 데이터 레이크하우스 전략을 데이터 아키텍처에 통합하는 것의 이점을 살펴보세요.

관련 내용

데이터 리더를 위한 가이드 읽기

콘볼루션 신경망은 어떻게 작동하나요?

컨볼루션 신경망은 이미지, 음성 또는 오디오 신호 입력에 대한 우수한 성능으로 인해 다른 신경망과 구별됩니다. 여기에는 세 가지 주요 유형의 계층이 있습니다.

  • 콘볼루션 계층
  • 풀링 계층
  • 완전 연결(FC) 계층

컨볼루션 계층은 컨볼루션 네트워크의 첫 번째 계층입니다. 컨볼루션 계층 다음에 추가 컨볼루션 계층 또는 풀링 계층이 올 수 있지만 마지막 계층은 완전 연결 계층입니다. 각 계층에서 CNN은 복잡성이 증가하여 이미지의 더 많은 부분을 식별합니다. 이전 계층은 색상 및 가장자리와 같은 간단한 기능에 중점을 둡니다. 이미지 데이터가 CNN의 계층을 따라 진행됨에 따라 최종적으로 의도된 오브젝트를 식별할 때까지 개체의 오브젝트 큰 요소 또는 모양을 인식하기 시작합니다.

콘볼루션 계층

컨볼루션 계층은 CNN의 핵심 빌딩 블록이며 대부분의 계산이 이루어지는 곳입니다. 입력 데이터, 필터 및 기능 맵과 같은 몇 가지 구성 요소가 필요합니다. 입력이 3D의 픽셀 매트릭스로 구성된 컬러 이미지라고 가정해 보겠습니다. 이는 입력이 이미지의 RGB에 해당하는 높이, 너비 및 깊이의 3차원을 갖게 됨을 의미합니다. 또한 이미지의 수용 필드를 가로질러 이동하여 기능이 있는지 확인하는 기능 감지기(커널 또는 필터라고도 함)가 있습니다. 이 프로세스를 컨볼루션이라고 합니다.

기능 감지기는 이미지의 일부를 나타내는 가중치의 2차원(2-D) 배열입니다. 크기는 다양할 수 있지만 필터 크기는 일반적으로 3x3 행렬이며, 이것은 또한 수용 필드의 크기를 결정합니다. 그런 다음 필터가 이미지 영역에 적용되고 입력 픽셀과 필터 사이에서 점곱이 계산됩니다. 그런 다음 이 점곱은 출력 배열로 공급됩니다. 그런 다음 필터가 한 칸씩 이동하면서 커널이 이미지 전체를 스윕할 때까지 이 프로세스를 반복합니다. 입력과 필터로부터의 연속된 점곱으로 이루어진 최종 출력을 기능 맵, 활성화 맵 또는 컨볼빙된 기능이라고 합니다.

특징 감지기의 가중치는 이미지를 가로질러 이동할 때 고정된 상태로 유지되며, 이를 파라미터 공유라고도 합니다. 가중치 값과 같은 일부 파라미터는 역전파 및 경사하강법 과정을 통해 훈련 중에 조정됩니다. 그러나 신경망 학습이 시작되기 전에 설정해야 하는 아웃풋의 볼륨 크기에 영향을 주는 세 가지 하이퍼파라미터가 있습니다. 여기에는 다음이 포함됩니다.

1.  필터의 개수는 아웃풋의 깊이에 영향을 줍니다. 예를 들어, 세 개의 서로 다른 필터는 세 개의 서로 다른 기능 맵을 생성하여 3의 깊이를 만듭니다. 

2. 스트라이드는 커널이 인풋 행렬 위로 이동하는 거리 또는 픽셀 수입니다. 스트라이드 값이 2 이상인 경우는 드물지만 스트라이드가 클수록 아웃풋이 작아집니다.

3. 제로 패딩은 일반적으로 필터가 인풋 이미지에 맞지 않을 때 사용됩니다. 이렇게 하면 인풋 행렬을 벗어나는 모든 요소가 0으로 설정되어 더 크거나 동일한 크기의 아웃풋이 생성됩니다. 패딩에는 세 가지 유형이 있습니다.

  • 유효한 패딩: 패딩 없음이라고도 합니다. 이 경우 차원이 정렬되지 않으면 마지막 합성곱이 삭제됩니다.
  • 동일한 패딩: 이 패딩은 아웃풋 계층이 인풋 계층과 동일한 크기를 갖도록 보장합니다.
  • 전체 패딩: 이 유형의 패딩은 인풋 테두리에 0을 추가하여 아웃풋의 크기를 늘립니다.

각 컨볼루션 작업 후 CNN은 기능 맵에 ReLU(Rectified Linear Unit) 변환을 적용하여 모델에 비선형성을 도입합니다.

추가 합성곱 계층

앞서 언급했듯이 이후 합성곱 계층은 이전 합성곱 계층을 따를 수 있습니다. 이 경우 이후 계층이 이전 계층의 수용 필드 내에서 픽셀을 볼 수 있으므로 CNN은 계층화 구조가 될 수 있습니다.  예를 들어 이미지에 자전거가 포함되어 있는지 확인하려고 한다고 가정해 보겠습니다. 자전거를 부품의 총합으로 생각하면 됩니다. 자전거는 프레임, 핸들바, 휠, 페달 등으로 구성되어 있습니다. 자전거의 각 개별 부품은 신경망에서 하위 수준의 패턴을 구성하고, 부품의 조합은 상위 수준의 패턴을 나타내며, CNN 내에서 특징 계층 구조를 만듭니다. 궁극적으로 합성곱 계층은 이미지를 숫자 값으로 변환하여 신경망이 관련 패턴을 해석하고 추출할 수 있도록 합니다.

풀링 계층

다운샘플링이라고도 하는 풀링 계층은 차원 감소를 수행하여 입력의 매개변수 수를 줄입니다. 컨벌루션 계층과 마찬가지로 풀링 작업은 전체 입력에 걸쳐 필터를 스윕하지만 이 필터에는 가중치가 없다는 차이가 있습니다. 대신 커널은 수용 필드 내의 값에 집계 함수를 적용하여 출력 배열을 채웁니다. 풀링에는 크게 두 가지 유형이 있습니다.

  • 최대 풀링: 필터는 입력을 가로질러 이동할 때 출력 배열로 보낼 최대값을 가진 픽셀을 선택합니다. 참고로 이 접근 방식은 평균 풀링에 비해 더 자주 사용되는 경향이 있습니다.
  • 평균 풀링: 필터가 인풋을 가로질러 이동하면서 수신 필드 내의 평균값을 계산하여 아웃풋 배열로 보냅니다.

CNN은 풀링 계층에서 많은 정보가 손실되지만 많은 이점도 있습니다. 복잡성을 줄이고 효율성을 개선하며 과적합의 위험을 제한하는 데 도움이 된다는 것입니다. 

완전 연결 계층

완전 연결 계층이라는 이름은 그 자체를 적절하게 설명합니다. 앞서 언급했듯이 부분 연결 계층에서는 입력 이미지의 픽셀 값이 출력 계층에 직접 연결되지 않습니다. 그러나 완전 연결 계층에서는 출력 계층의 각 노드가 이전 계층의 노드에 직접 연결됩니다.

이 계층은 이전 계층과 다른 필터를 통해 추출된 기능을 기반으로 분류 작업을 수행합니다. 컨벌루션 계층과 풀링 계층은 ReLU 함수를 사용하는 경향이 있지만 FC 계층은 일반적으로 소프트맥스 활성화 함수를 활용하여 입력값을 적절하게 분류하여 0에서 1까지의 확률을 생성합니다.

콘볼루션 신경망의 유형

Kunihiko Fukushima와 Yann LeCun은 각각 1980년(ibm.com 외부 링크)과 1989년 "우편번호 인식에 적용된 역전파" 연구로 컨볼루션 신경망에 대한 연구의 토대를 마련했습니다. 더 유명한 사례로, Yann LeCun은 신경망 훈련에 역전파를 적용하여 손으로 쓴 일련의 우편 번호 내의 패턴을 식별하고 인식하는 데 성공했습니다. 그는 1990년대 내내 팀원들과 함께 연구를 계속했고, 이전 연구와 동일한 원리를 문서 인식에 적용한 'LeNet-5'로 정점을 찍었습니다. 그 이후로 MNIST 및 CIFAR-10과 같은 새로운 데이터 세트와 ILSVRC(ImageNet Large Scale Visual Recognition Challenge)와 같은 대회가 도입되면서 다양한 CNN 아키텍처가 등장했습니다. 이러한 아키텍처 중 일부는 다음과 같습니다.

그러나, LeNet-5가 고전적인 CNN 아키텍처로 알려져 있습니다.

콘볼루션 신경망과 컴퓨팅 비전

합성곱 신경망은 이미지 인식 및 컴퓨팅 비전 작업을 지원합니다. 컴퓨팅 비전은 컴퓨터와 시스템이 디지털 이미지, 비디오 및 기타 시각적 입력에서 의미 있는 정보를 도출하고 이러한 입력을 기반으로 조치를 취할 수 있도록 하는 인공 지능(AI)의 한 분야입니다. 추천을 제공하는 이 기능은 이미지 인식 작업과 구별됩니다. 오늘날 이 컴퓨팅 비전의 몇 가지 일반적인 응용 분야는 다음에서 볼 수 있습니다.

  • 마케팅: 소셜 미디어 플랫폼에서 프로필에 게시된 사진 속 인물 추천 기능을 제공하여 사진 앨범에서 친구를 쉽게 태그할 수 있도록 해 줍니다. 
  • 의료: 컴퓨팅 비전이 방사선 기술에 통합되어 의사가 건강한 해부학적 구조에서 암 종양을 더 잘 식별할 수 있습니다.
  • 소매업: 일부 전자 상거래 플랫폼에는 시각적 검색 기능이 통합되어 브랜드가 기존 옷장에 어울리는 아이템을 추천할 수 있습니다.   
  • 자동차: 아직 무인 자동차 시대가 도래하지는 않았지만, 차선 감지 등의 기능을 통해 운전자와 승객의 안전을 개선하는 기반 기술이 자동차에 적용되기 시작했습니다.
관련 솔루션
IBM SPSS 신경망

IBM SPSS Neural Networks는 복잡한 관계를 발견하고 데이터에서 더 큰 가치를 도출하는 데 도움이 될 수 있습니다.

IBM SPSS 신경망 살펴보기
IBM Watson Studio

모든 클라우드에서 신뢰할 수 있는 AI를 구축하고 확장합니다. ModelOps의 AI 라이프사이클을 자동화합니다.

IBM Watson Studio 자세히 알아보기
리소스 Python을 사용한 콘볼루션 신경망

Python을 사용하여 손으로 쓴 숫자를 분류하는 간단한 신경망 구현

콘볼루션 신경망 소개

합성곱 신경망을 만드는 다양한 단계를 살펴보세요.

이중 콘볼루션 신경망

이 논문에서 IBM 연구는 DCNN(Doublely Convolutional Neural Network)이 CNN의 성능을 크게 향상시킬 수 있다고 제안합니다.

딥 파트 임베딩을 사용한 콘벌루션 신경망 학습

IBM 연구원들은 다양한 클래스에 대한 새로운 CNN(Convolutional Neural Networks)의 학습에 유용한 DPE(Deep Part Embeddings)라는 새로운 개념을 제안합니다.

Python에서 YOLOv8 객체 감지 모델 학습

사전 학습된 객체 감지 모델을 미세 조정합니다.

다음 단계 안내

AI 빌더를 위한 차세대 엔터프라이즈 스튜디오인 IBM watsonx.ai로 생성형 AI, 파운데이션 모델 및 머신 러닝 기능을 학습, 검증, 조정 및 배포하세요. 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축하세요.

watsonx.ai 살펴보기 라이브 데모 예약하기