이론

이미지를 이해하는 마법, 합성곱 신경망(CNN)

Simon Yoon 2024. 1. 6. 21:47

오늘은 인공지능 분야에서 이미지 처리의 핵심 역할을 하는 합성곱 신경망(CNN)에 대해 알아보려고 합니다.

 

1. 합성곱 신경망(CNN)이란 무엇인가요?

합성곱 신경망은 이미지 처리와 패턴 인식에 사용되는 강력한 딥러닝 알고리즘 중 하나입니다. 이는 주로 이미지의 특징을 추출하고 패턴을 학습하는 데 특화되어 있습니다.

 



2. 컨볼루션 레이어

CNN의 핵심은 컨볼루션 레이어입니다. 이 레이어는 작은 필터를 사용하여 입력 이미지를 스캔하면서 다양한 특징을 감지합니다. 예를 들어, 엣지, 색깔, 질감 등의 특징을 추출합니다.

 

컨볼루션에 대해서 좀 더 자세히 살펴보겠습니다.

 

  2-1. 합성곱(컨볼루션)이란?

    2-1-1. 이미지에서 특징 추출
➢ 합성곱은 주로 이미지에서 특징을 추출하는 데 사용됩니다. 우선, 작은 필터(커널)를 정의하고 이를 입력 이미지에 적용합니다. 필터는 이미지를 스캔하면서 특정한 패턴이나 특징을 찾아냅니다.

 

https://towardsdatascience.com/intuitively-understanding-convolutions-for-deep-learning-1f6f42faee1


    2-1-2. 작은 필터의 이동
필터는 이미지의 왼쪽 상단에서 시작하여 오른쪽으로 이동하면서 지역적인 특징을 감지합니다. 이때 필터의 크기는 일반적으로 3x3 또는 5x5입니다.

    2-1-3. 특징 맵(feature map) 생성
➢ 필터가 이미지를 스캔하면서 각 지역에서의 특징을 곱하고 합하여 새로운 값을 생성합니다. 이 값들을 모아서 새로운 이미지, 즉 "특징 맵(feature map)"을 만듭니다. 이 특징 맵은 입력 이미지에서 특정 패턴이나 특징이 어디에 있는지를 나타냅니다.

 

https://www.kdnuggets.com/2016/11/intuitive-explanation-convolutional-neural-networks.html/2


    2-1-4. 스트라이드(Stride)와 패딩(Padding)
스트라이드필터가 이미지를 얼마나 빨리 이동하는지를 결정하는 매개변수입니다. 패딩이미지 주변에 빈 공간을 추가하여 특징 맵의 크기를 조절하는 역할을 합니다.
이렇게 합성곱을 통해 이미지의 지역적인 패턴이나 특징을 추출할 수 있습니다. 이러한 과정은 합성곱 신경망의 여러 레이어에서 반복되며, 다양한 특징을 계층적으로 학습하여 복잡한 패턴을 인식하는 데 기여합니다.
간단히 말해서, 합성곱은 이미지에서 지역적인 특징을 감지하여 더 높은 수준의 특징을 학습하는 과정이라고 이해할 수 있습니다.

 

 

계속해서 합성곱 신경망을 알아보자면...

 

3. 풀링(Pooling) 레이어

풀링(Pooling) 레이어는 공간 차원을 줄이고 계산 비용을 낮추는 역할을 합니다. 최대 풀링이나 평균 풀링과 같은 기법을 사용하여 특징 맵(feature map)의 크기를 감소시킵니다.

  • 최대 풀링: 각 지역에서 가장 큰 값을 선택하여 해당 지역의 특징을 강조하는 방식입니다. 주로 가장 강한 특징을 추출하는 데 사용됩니다.
  • 평균 풀링: 각 지역에서 값을 평균내어 지역의 대표값을 생성합니다. 주로 특징의 전반적인 정보를 유지하는 데 사용됩니다.

 

https://medium.com/@Suraj_Yadav/in-depth-knowledge-of-convolutional-neural-networks-b4bfff8145ab

 

4. 완전 연결 레이어

추출된 특징을 바탕으로 최종적인 분류를 수행하는 데 사용되는 레이어입니다. 입력된 특징을 기반으로 클래스에 대한 확률을 계산하여 객체를 인식하거나 분류합니다.

 

5. 이미지 처리뿐만 아니라...

CNN은 이미지 처리에 주로 사용되지만, 자연어 처리 등 다른 분야에서도 효과적으로 활용될 수 있습니다. 텍스트의 지역적 특징을 추출하여 문맥을 이해하는 데에도 적용될 수 있죠.

제 이전 포스팅인 <목소리 음 높이 확인하기> 에서도 CNN을 활용한 적이 있었습니다!

 

→ 2022.08.16 - [[Python] 연습] - [Python] 목소리 음 높이 확인하기(Voice Pitch Tracker)

https://simon-yoon.tistory.com/114

 

6. 마치며

이렇게 합성곱 신경망은 이미지를 이해하고 처리하는데 있어서 강력한 도구로 작용합니다. 딥러닝 분야에서의 혁신적인 발전 중 하나로, 우리의 일상에서도 많은 영향을 미치고 있습니다.

이 글이 여러분이 합성곱 신경망에 대해 더 깊이 이해하는 데 도움이 되었으면 좋겠습니다. 더 많은 AI 관련 정보를 공유하겠습니다. 감사합니다!