CNN(Convolutional Neural Networks): 소개

게시 됨: 2022-08-30

컨볼루션 신경망은 객체 인식 및 이미지 분류 작업에 보다 확장 가능한 방법을 제공합니다.

기술의 세계에는 많은 발전이 일어나고 있습니다. 인공 지능과 기계 학습은 자주 들을 수 있는 일반적인 것들입니다.

현재 이러한 기술은 마케팅, 전자 상거래 및 소프트웨어 개발에서 은행, 금융 및 의료에 이르기까지 거의 모든 분야에서 사용됩니다.

AI와 ML은 광대한 분야이며, 많은 실제 문제를 해결하기 위해 응용을 확대하기 위해 노력하고 있습니다. 이것이 이러한 기술 내에서 많은 분기를 볼 수 있는 이유입니다. ML은 AI 자체의 하위 집합입니다.

컨볼루션 신경망은 요즘 인기를 얻고 있는 AI 분야 중 하나입니다.

이 기사에서 나는 CNN이 무엇인지, 어떻게 작동하는지, 현대 세계에서 그 유용성에 대해 논의할 것입니다.

바로 뛰어들자!

컨볼루션 신경망이란 무엇입니까?

컨볼루션 신경망(ConvNet 또는 CNN)은 딥 러닝 알고리즘을 사용하여 이미지를 분석하고, 시각적 개체를 분류하고, 컴퓨터 비전 작업을 수행하는 인공 신경망(ANN)입니다.

컨볼루션 신경망

CNN은 행렬 곱셈과 같은 선형 대수학 원리를 활용하여 이미지의 패턴을 감지합니다. 이러한 프로세스에는 복잡한 계산이 포함되므로 모델 교육을 위한 그래픽 처리 장치(GPU)가 필요합니다.

간단히 말해서 CNN은 딥 러닝 알고리즘을 사용하여 이미지와 같은 입력 데이터를 가져오고 해당 이미지의 다양한 측면에 편향 및 학습 가능한 가중치의 형태로 중요도를 할당합니다. 이런 식으로 CNN은 이미지를 구별하거나 분류할 수 있습니다.

CNN의 간략한 역사

Convolutional 신경망은 인공 신경망이므로 신경망을 반복하는 것이 중요합니다.

계산에서 신경망은 딥 러닝 알고리즘을 사용하는 머신 러닝(ML)의 일부입니다. 이는 인간 두뇌의 뉴런이 뒤따르는 연결 패턴과 유사합니다. 인공 신경망은 또한 시각 피질의 배열 방식에서 영감을 얻습니다.

CNN의 간략한 역사

따라서 다양한 유형의 신경망 또는 인공 신경망(ANN)이 다른 목적으로 사용됩니다. 그 중 하나는 이미지 감지 및 분류 등에 사용되는 CNN입니다. 1980년대에 박사후 연구원인 Yann LeCun에 의해 소개되었습니다.

CNN의 초기 버전인 LeCun의 이름을 딴 LeNet은 손으로 쓴 숫자를 인식할 수 있었습니다. 그런 다음 은행 및 우편 서비스에서 수표의 숫자와 봉투에 쓰여진 우편 번호를 읽는 데 사용되었습니다.

그러나 이 초기 버전에는 확장성이 없었습니다. 따라서 CNN은 인공 지능과 컴퓨터 비전에서 많이 활용되지 않았습니다. 또한 더 큰 이미지를 보다 효율적으로 작업하려면 상당한 계산 리소스와 데이터가 필요했습니다.

또한 2012년 AlexNet은 다중 레이어로 구성된 신경망을 활용한 딥 러닝을 재검토했습니다. 이 즈음에 기술이 향상되었고 컴퓨터 비전 활동을 효율적으로 수행할 수 있는 복잡한 CNN을 생성할 수 있도록 대규모 데이터 세트와 무거운 컴퓨팅 리소스를 사용할 수 있었습니다.

CNN의 레이어

CNN의 다른 계층을 이해합시다. CNN에서 레이어를 늘리면 복잡성이 증가하고 이미지의 더 많은 측면이나 영역을 감지할 수 있습니다. 단순한 특징에서 시작하여 최종적으로 이미지를 감지할 수 있을 때까지 물체의 모양 및 더 큰 요소와 같은 복잡한 특징을 감지할 수 있게 됩니다.

컨볼루션 레이어

CNN의 첫 번째 레이어는 컨볼루션 레이어입니다. 대부분의 계산이 발생하는 CNN의 주요 빌딩 블록입니다. 입력 데이터, 기능 맵 및 필터와 같은 더 적은 수의 구성 요소가 필요합니다.

컨볼루션 레이어

CNN에는 추가 컨볼루션 레이어가 있을 수도 있습니다. 이것은 후속 레이어가 이전 레이어의 수용 필드 내의 픽셀을 시각화할 수 있기 때문에 CNN 구조를 계층적으로 만듭니다. 다음으로, 컨볼루션 레이어는 주어진 이미지를 숫자 값으로 변환하고 네트워크가 가치 있는 패턴을 이해하고 추출할 수 있도록 합니다.

풀링 레이어

풀링 레이어는 차원을 줄이는 데 사용되며 다운샘플링이라고 합니다. 입력에 사용되는 매개변수를 줄입니다. 풀링 작업은 합성곱 계층과 같이 완전한 입력에 대해 필터를 이동할 수 있지만 가중치가 없습니다. 여기에서 필터는 결과 배열을 채우기 위해 수신 필드의 숫자 값에 결합 함수를 적용합니다.

풀링에는 두 가지 유형이 있습니다.

  • 평균 풀링: 평균 값은 파일러가 입력을 스윕하여 출력 어레이로 전송하는 수신 필드에서 계산됩니다.
  • 최대 풀링: 최대값 픽셀을 선택하고 필터가 입력을 스윕할 때 출력 배열로 보냅니다. 최대 풀링은 평균 풀링보다 더 많이 사용됩니다.

풀링에서 중요한 데이터가 손실되지만 여전히 CNN에 많은 이점을 제공합니다. 효율성을 향상시키면서 과적합 위험과 복잡성을 줄이는 데 도움이 됩니다. 또한 CNN의 안정성을 향상시킵니다.

완전 연결(FC) 계층

완전 연결(FC) 계층

이름에서 알 수 있듯이 출력 계층의 모든 노드는 완전 연결 계층의 이전 계층 노드에 직접 연결됩니다. 필터와 함께 이전 레이어를 통해 추출된 특징을 기반으로 이미지를 분류합니다.

또한 FC 계층은 일반적으로 ReLu 함수 대신 입력을 올바르게 분류하기 위해 softmax 활성화 함수를 사용합니다(풀링 및 컨볼루션 계층의 경우와 같이). 이것은 0 또는 1의 확률을 생성하는 데 도움이 됩니다.

CNN은 어떻게 작동합니까?

컨볼루션 신경망은 수백 개의 레이어로 구성됩니다. 이 레이어는 주어진 이미지의 다양한 특징을 식별하는 방법을 배웁니다.

CNN은 신경망이지만 아키텍처는 일반 ANN과 다릅니다.

CNN은 어떻게 작동합니까?

후자는 많은 은닉층을 통해 입력을 넣어 변환합니다. 여기서 각 레이어는 인공 뉴런 세트로 생성되고 동일한 레이어의 모든 뉴런에 완전히 연결됩니다. 마지막으로 결과를 표시하는 완전 연결 계층 또는 출력 계층이 있습니다.

반면 CNN은 너비, 깊이 및 높이의 3차원으로 레이어를 구성합니다. 여기에서 뉴런의 레이어는 다음 레이어의 각 뉴런과 연결되는 대신 작은 영역의 뉴런에만 연결됩니다. 결국 최종 결과는 확률 점수가 있는 단일 벡터로 표현되며 깊이 차원만 있습니다.

이제 CNN에서 "컨볼루션"이 무엇인지 물을 수 있습니다.

글쎄, 컨볼 루션은 두 데이터 세트를 병합하는 수학 연산을 나타냅니다. CNN에서는 입력 데이터에 컨볼루션 개념을 적용하여 정보를 필터링하여 특징 맵을 출력합니다.

이것은 CNN에서 사용되는 몇 가지 중요한 개념과 용어를 알려줍니다.

  • 필터 : 특징 검출기 또는 커널이라고도 하는 필터는 3×3과 같은 특정 차원을 가질 수 있습니다. 입력 이미지에 대해 각 요소에 대해 행렬 곱셈을 수행하여 컨볼루션을 적용합니다. 다양한 해상도와 합성 이미지의 출력에서 ​​모든 훈련 이미지에 필터를 적용하면 후속 레이어의 입력으로 작동합니다.
  • Padding : 가짜 픽셀을 삽입하여 입력 행렬을 행렬의 경계까지 확장하는 데 사용됩니다. 컨볼루션이 행렬 크기를 줄인다는 사실에 대응하기 위해 수행되었습니다. 예를 들어, 9×9 행렬은 필터링 후에 3×3 행렬로 바뀔 수 있습니다.
  • Striding : 입력보다 작은 출력을 얻으려면 striding을 수행할 수 있습니다. 필터가 이미지 위로 미끄러지는 동안 특정 영역을 건너뛸 수 있습니다. 2개 또는 3개의 픽셀을 건너뛰면 공간 해상도를 줄여 보다 효율적인 네트워크를 생성할 수 있습니다.
  • 가중치와 편향: CNN은 뉴런에 가중치와 편향이 있습니다. 모델은 훈련하는 동안 이러한 값을 학습할 수 있으며 값은 모든 뉴런에 대해 주어진 계층 전체에서 동일하게 유지됩니다. 이것은 각각의 은닉 뉴런이 이미지의 다른 영역에서 동일한 특징을 감지한다는 것을 의미합니다. 결과적으로 네트워크는 객체를 주어진 이미지로 변환하는 동안 더 관대해집니다.
  • ReLU : Rectified Linear Unit(ReLu)의 약자로 보다 효과적이고 빠른 훈련에 사용됩니다. 음수 값을 0으로 매핑하고 양수 값을 유지합니다. 네트워크는 활성화된 이미지 기능만 후속 계층으로 전달하므로 활성화라고도 합니다.
  • 수용 필드: 신경망에서 모든 뉴런은 이전 계층의 다른 위치에서 입력을 받습니다. 그리고 컨볼루션 계층에서 모든 뉴런은 뉴런의 수용 영역이라고 하는 이전 계층의 제한된 영역에서만 입력을 받습니다. FC 계층의 경우 이전 계층 전체가 수신 필드입니다.

실제 계산 작업에서 일반적으로 3D 필터가 필요한 3D 이미지에서 컨볼루션이 수행됩니다.

CNN으로 돌아가면 다른 부분 또는 노드 레이어로 구성됩니다. 각 노드 계층에는 임계값과 가중치가 있으며 다른 계층에 연결됩니다. 임계값 제한을 초과하면 이 네트워크의 다음 계층으로 데이터가 전송됩니다.

이러한 계층은 관련 기능을 학습하기 위해 데이터를 변경하는 작업을 수행할 수 있습니다. 또한 이러한 작업은 이미지의 다른 특징을 감지하는 방법을 계속 학습하는 수백 개의 서로 다른 레이어를 반복합니다.

작업

CNN의 일부는 다음과 같습니다.

  • 입력 레이어: 이미지와 같이 입력을 받는 곳입니다. 높이, 너비 및 깊이가 정의된 3D 개체가 됩니다.
  • 하나/여러 개의 은닉 레이어 또는 특징 추출 단계: 이러한 레이어는 컨볼루션 레이어, 풀링 레이어 및 완전 연결 레이어가 될 수 있습니다.
  • 출력 레이어: 여기에 결과가 표시됩니다.

컨볼루션 레이어를 통해 이미지를 전달하면 기능 맵 또는 활성화 맵으로 변환됩니다. 입력을 컨벌루션한 후 레이어는 이미지를 컨벌루션하고 결과를 다음 레이어로 전달합니다.

CNN은 특징 추출 단계에서 특징을 감지하기 위해 많은 컨볼루션 및 풀링 기술을 수행합니다. 예를 들어 고양이의 이미지를 입력하면 CNN은 네 다리, 색상, 두 눈 등을 인식합니다.

다음으로 CNN의 완전 연결 계층은 추출된 특징에 대한 분류기 역할을 합니다. 딥 러닝 알고리즘이 이미지에 대해 예측한 것을 기반으로 레이어는 결과를 산출합니다.

CNN의 장점

CNN의 장점

더 높은 정확도

CNN은 컨볼루션을 사용하지 않는 일반 신경망보다 더 높은 정확도를 제공합니다. CNN은 특히 작업에 많은 데이터, 비디오 및 이미지 인식 등이 포함될 때 유용합니다. 매우 정확한 결과와 예측을 생성합니다. 따라서 다양한 분야에서 사용이 증가하고 있습니다.

계산 효율성

계산 효율성

CNN은 다른 일반 신경망보다 더 높은 계산 효율성 수준을 제공합니다. 이것은 컨볼루션 프로세스를 사용하기 때문입니다. 또한 차원 축소 및 매개변수 공유를 사용하여 모델을 더 빠르고 쉽게 배포할 수 있습니다. 이러한 기술은 스마트폰이나 노트북 등 다양한 장치에서 작동하도록 최적화할 수도 있습니다.

특징 추출

CNN은 수동 엔지니어링 없이도 이미지의 기능을 쉽게 학습할 수 있습니다. 사전 훈련된 CNN을 활용하고 새로운 작업을 수행할 때 데이터를 제공하여 가중치를 관리할 수 있으며 CNN은 이에 원활하게 적응합니다.

CNN의 응용

CNN은 다양한 사용 사례에 대해 다양한 산업에서 사용됩니다. CNN의 실제 응용 프로그램은 다음과 같습니다.

이미지 분류

이미지 분류

CNN은 이미지 분류에 널리 사용됩니다. 이들은 가치 있는 특징을 인식하고 주어진 이미지에서 물체를 식별할 수 있습니다. 따라서 의료, 특히 MRI와 같은 분야에서 사용됩니다. 또한 이 기술은 컴퓨터 비전에서 CNN의 초기 사용 사례 중 하나인 손으로 쓴 숫자 인식에 사용됩니다.

물체 감지

CNN은 실시간으로 이미지의 객체를 감지하고 레이블을 지정하고 분류할 수 있습니다. 따라서 이 기술은 자동화 차량에 널리 사용됩니다. 또한 스마트 홈과 보행자가 차량 소유자의 얼굴을 인식할 수 있습니다. 또한 AI 기반 감시 시스템에서 물체를 감지하고 표시하는 데 사용됩니다.

물체 감지

시청각 매칭

시청각 매칭에 대한 CNN의 도움은 Netflix, YouTube 등과 같은 비디오 스트리밍 플랫폼을 개선하는 데 도움이 됩니다. 또한 "Elton John의 사랑 노래"와 같은 사용자 요청을 충족하는 데 도움이 됩니다.

음성 인식

음성 인식

이미지 외에도 CNN은 자연어 처리(NLP) 및 음성 인식에 유용합니다. 이에 대한 실제 예는 음성 인식 시스템에서 CNN을 사용하는 Google이 될 수 있습니다.

개체 재구성

CNN은 디지털 환경에서 실제 객체를 3D 모델링하는 데 사용할 수 있습니다. CNN 모델이 이미지를 사용하여 3D 얼굴 모델을 만드는 것도 가능합니다. 또한 CNN은 생명 공학, 제조, 생명 공학 및 건축 분야에서 디지털 트윈을 구성하는 데 유용합니다.

다양한 분야에서 CNN의 사용은 다음과 같습니다.

  • 의료: 컴퓨터 비전은 방사선과에서 의사가 사람의 암성 종양을 더 효율적으로 감지하는 데 사용할 수 있습니다.
  • 농업: 네트워크는 LSAT와 같은 인공 위성의 이미지를 활용하고 이 데이터를 활용하여 비옥한 토지를 분류할 수 있습니다. 이는 또한 토지 비옥도 수준을 예측하고 수확량을 극대화하기 위한 효과적인 전략을 개발하는 데 도움이 됩니다.
  • 마케팅: 소셜 미디어 애플리케이션은 다른 사람의 프로필에 게시된 사진에서 사람을 추천할 수 있습니다. 이렇게 하면 사진 앨범에 있는 사람들을 태그하는 데 도움이 됩니다.
  • 소매: 전자 상거래 플랫폼은 시각적 검색을 사용하여 브랜드가 대상 고객이 구매하고 싶어하는 관련 항목을 추천할 수 있습니다.
  • 자동차: CNN은 자동차에서 승객과 운전자의 안전을 개선하는 용도를 찾습니다. 이는 차선 감지, 물체 감지, 이미지 분류 등과 같은 기능의 도움으로 이루어집니다. 이는 또한 자율 주행 자동차의 세계가 더 발전하는 데 도움이 됩니다.

CNN 학습을 위한 리소스

코세라:

Coursera에는 CNN에서 수강을 고려할 수 있는 이 과정이 있습니다. 이 과정은 컴퓨터 비전이 수년에 걸쳐 어떻게 발전해 왔으며 현대 세계에서 CNN의 일부 응용 프로그램을 가르쳐줍니다.

아마존:

다음 책과 강의를 읽고 CNN에 대해 자세히 알아볼 수 있습니다.

  • 신경망 및 딥 러닝: 모델, 알고리즘, 딥 러닝 및 신경망 이론을 다룹니다.
시사 제품 평가 가격
신경망과 딥 러닝: 교과서 신경망과 딥 러닝: 교과서 아직 평가가 없습니다. $49.00
  • A Guide to Convolutional Neural Networks for Computer Vision: 이 책은 CNN의 응용과 그 개념을 가르칠 것입니다.
시사 제품 평가 가격
Computer Vision을 위한 Convolutional Neural Networks 가이드(Computer Vision에 대한 종합 강의) Computer Vision을 위한 Convolutional Neural Networks 가이드(Computer Vision에 대한 종합 강의) 아직 평가가 없습니다. $49.26
  • Tensorflow를 사용한 실습 컨볼루션 신경망: 이 책의 도움으로 Python과 TensorFlow를 사용하여 컴퓨터 비전의 다양한 문제를 해결할 수 있습니다.
시사 제품 평가 가격
TensorFlow를 사용한 실습 컨볼루션 신경망: TensorFlow 및 Python의 모델링으로 컴퓨터 비전 문제 해결 TensorFlow를 사용한 실습 컨볼루션 신경망: 모델링으로 컴퓨터 비전 문제 해결... 아직 평가가 없습니다. $15.24
  • 고급 응용 딥 러닝: 이 책은 CNN, 딥 러닝 및 객체 감지를 포함한 고급 응용 프로그램을 이해하는 데 도움이 됩니다.
시사 제품 평가 가격
고급 응용 딥 러닝: 컨볼루션 신경망 및 객체 감지 고급 응용 딥 러닝: 컨볼루션 신경망 및 객체 감지 아직 평가가 없습니다. $23.74
  • Convolutional Neural Networks and Recurrent Neural Networks: 이 책은 CNN과 RNN과 이러한 네트워크를 구축하는 방법을 알려줍니다.
시사 제품 평가 가격
길쌈 신경망과 순환 신경망: 길쌈 신경망과 순환 신경망 길쌈 신경망과 순환 신경망: 길쌈 신경망과 ... 아직 평가가 없습니다. $1.99

결론

합성곱 신경망은 인공 지능, 기계 학습 및 딥 러닝의 새로운 분야 중 하나입니다. 그것은 거의 모든 분야에서 오늘날 세계에서 다양한 응용 프로그램을 가지고 있습니다. 사용량이 증가함에 따라 더욱 확장되고 실제 문제를 해결하는 데 더 유용할 것으로 예상됩니다.