자료실/과학상식

4. 컨볼루션신경망(Convolutional Neural Network, CNN)의 원리와 응용 분야

abst 2023. 6. 22. 14:29
반응형

컨볼루션신경망(Convolutional Neural Network, CNN)은 영상이나 음성등의 복작한 데이터를 처리하고 분류하는 머신러닝 모델중 하나이다. 다른능력보다 가장 뛰어난 것은 이미지 분류 분야에서 뛰어난 능력을 보여주고 있다.

CNN은 크게 두가지로 나뉘어 볼수 있는데 첫번째는 컨볼루션 연산과 두번째는 폴링 연산이 있습니다. 두개의 가장큰 차이점은 컨볼루션은 필터링을 해서 특징을 추출하여 작게 만드는 것이고 폴링은 압축하여 특징을 추출하여 작게 만드는 것이다.

 왼쪽의 녹색이 하나의 이미지라고 봤을떄 3x3짜리 필터를 한칸씩 옮기면서 마스크를 씌운후 그 값을 저장 하고 있습니다.  움직이는 노란색은 사람이 정한 사이즈에 컴퓨터가 스스로 정한 가중치를 가지게 됩니다. 예시에서는 x1로 되어 있지만 이것은 컴퓨터 스스로가 이미지를 분류하며 스스로 정하는 것이기에 값은 언제나 변할수 있습니다.

 이렇듯 마스크를 씌워서 나온 결과값의 합을 한칸에 넣어서 5x5짜리 이미지가 3x3 으로 줄어든것을 확인할수 있죠? 이미지의 사이즈는 줄여서 연산 속도는 높이고 특징은 추출하는 방식이 컨볼루션 입니다.

 그렇다면 폴링은 무엇이냐? 컴퓨터의 자울보다 인간의 제어를 조금더 활용할수 있는 방식입니다. 풀링 레이어에서 사용되는 대표적인 방법은 맥스 풀링(Max Pooling)과 평균 풀링(Average Pooling)입니다.  말그대로 제일 높은값과 평균의값 을 사용하는 방식입니다. 

 방식은 위의 예시와 같이 이미지안에서 인간이 설정한 영역의 안에서 인간이 설정한 옵션값으로 특징을 추출하여 압축합니다. 3x3 or 5x5 사이즈로 제일 큰 값이나 평균값 아니면 제일 작은값을 추출해서 저장해줘 라고 해도 되겠죠? 

CNN을 활용하여 여러가지 분류작없을 하다보면 컴퓨터 스스로에게 맡겨둬도 분류가 잘되는 경우도 있으나 아무리 학습을 해도 인식을 잘 못하는 경우가 생길수 있습니다. 이런경우는 폴링방식을 활용하여 개발자가 스스로 필터의 사이즈나 추출할 값의 설정을 바꿔주다 보면 더욱 정교한 값을 구할 수도 있습니다.

CNN의 활용

CNN은 주로 이미지와 영상 분야에서 사용되며, 특히 컴퓨터 비전 분야에서 많이 활용됩니다. 하지만 최근에는 다양한 분야에서 CNN을 응용하는 연구와 적용 사례가 계속해서 발생하고 있습니다.

1. 의료 이미지 분석 의료 영상 분석은 질환의 정확한 진단과 치료 등에 매우 중요합니다. 이를 위해 의료 이미지 분석에서 CNN 모델이 사용되고 있습니다. 인공지능 기술과 진단 분야에서 제한된 자원을 가진 의료 시스템에서 CNN은 정확한 분류 및 진단을 지원합니다.

2. 보안 최근에는 딥러닝 공격 및 보안 문제를 조사하는 연구가 활발하게 진행되고 있습니다. CNN은 많은 용도로 사용될 수 있으며, 특히 사기 혹은 안전 문제와 관련된 작업에서도 사용됩니다. CNN은 큰 양의 데이터를 사용하여 공격자가 어떻게 시스템을 공격하는지 빠르게 감지하고 이에 대한 대응책을 적용할 수 있게 됩니다.

3. 자연어 처리 최근에는 CNN이 자연어 처리에 사용되기 시작했습니다. 이전까지는 순환 신경망(RNN)이 자연어 처리와 문서 분류 등의 분야에서 많이 쓰였지만, 깊은 CNN 구조와 임베딩을 활용한 네트워크 모델이 최근 대규모 텍스트 처리를 지원할 수 있게 되었습니다.

4. 자율주행 자율주행 차량은 근처 환경에서 정보 및 이벤트를 확인하는 데 CNN을 활용할 수 있습니다. CNN은 영상 데이터의 처리에 뛰어나며, 이미지에 있는 정보를 가져와 차량이 어떻게 반응해야 하는지 지시할 수 있습니다.

5. 게임 이미지 분석 및 분류를 위해 CNN이 비디오 게임에서도 사용됩니다. 이는 게임 내에 인테리어를 제공하는데 필요한 영상 데이터 분류, 감지 등에서 사용됩니다. 위와 같이 CNN은 이미지에서부터 자연어 처리, 안보, 자율주행 및 게임까지 여러 분야에서 적용되고 있으며, 더 많은 분야에서 사용될 가능성이 있습니다.

반응형