기본 CNN 아키텍처: 컨볼루션 신경망의 5개 계층 설명
게시 됨: 2020-12-07목차
소개
IT 산업의 지난 몇 년 동안 딥 러닝으로 알려진 특정 기술 세트에 대한 수요가 많았습니다. 딥 러닝은 인간 두뇌 또는 신경망의 기능에서 영감을 얻은 알고리즘으로 구성된 기계 학습의 하위 집합입니다.
이러한 구조를 신경망이라고 합니다. 그것은 컴퓨터가 인간에게 자연스럽게 오는 일을 하도록 가르칩니다. 딥 러닝에는 인공 신경망(ANN), 자동 인코더, 순환 신경망(RNN) 및 강화 학습과 같은 여러 유형의 모델이 있습니다. 그러나 CNN(Convolutional Neural Networks) 또는 ConvNet인 컴퓨터 비전 및 이미지 분석 분야에서 많은 기여를 한 특정 모델이 있습니다.
CNN은 이미지에서 특정 특징을 인식하고 분류할 수 있는 심층 신경망(Deep Neural Network)의 클래스로, 시각적 이미지 분석에 널리 사용됩니다. 응용 프로그램은 이미지 및 비디오 인식, 이미지 분류, 의료 이미지 분석, 컴퓨터 비전 및 자연어 처리에 이르기까지 다양합니다.
CNN에서 'Convolution'이라는 용어는 두 함수를 곱하여 한 함수의 모양이 다른 함수에 의해 어떻게 수정되는지를 나타내는 세 번째 함수를 생성하는 특수한 종류의 선형 연산인 컨볼루션의 수학적 함수를 나타냅니다. 간단히 말해서, 행렬로 나타낼 수 있는 두 개의 이미지를 곱하여 이미지에서 특징을 추출하는 데 사용되는 출력을 제공합니다.
세계 최고의 대학에서 온라인으로 머신 러닝을 배우십시오 . 석사, 대학원 대학원 과정, ML 및 AI 고급 인증 프로그램을 통해 빠르게 경력을 쌓을 수 있습니다.
배우기: 딥 러닝 및 신경망 소개

기본 아키텍처
CNN 아키텍처에는 두 가지 주요 부분이 있습니다.
- 특징 추출이라고 하는 프로세스에서 분석을 위해 이미지의 다양한 특징을 분리하고 식별하는 컨볼루션 도구
- 컨볼루션 프로세스의 출력을 활용하고 이전 단계에서 추출한 특징을 기반으로 이미지의 클래스를 예측하는 완전 연결 계층입니다.
원천
컨볼루션 레이어
CNN을 구성하는 3가지 유형의 레이어는 컨볼루션 레이어, 풀링 레이어 및 완전 연결(FC) 레이어입니다. 이러한 레이어가 쌓이면 CNN 아키텍처가 형성됩니다. 이 세 개의 레이어 외에도 아래에 정의된 드롭아웃 레이어와 활성화 함수라는 두 가지 더 중요한 매개변수가 있습니다.
1. 컨볼루션 레이어
이 레이어는 입력 이미지에서 다양한 특징을 추출하는 데 사용되는 첫 번째 레이어입니다. 이 레이어에서 입력 이미지와 특정 크기 MxM의 필터 사이에서 수학적 컨볼루션 연산이 수행됩니다. 필터를 입력 이미지 위로 밀어서 내적은 필터와 필터 크기(MxM)에 대한 입력 이미지 부분 사이에서 취합니다.
출력은 모서리 및 가장자리와 같은 이미지에 대한 정보를 제공하는 기능 맵이라고 합니다. 나중에 이 기능 맵은 입력 이미지의 여러 다른 기능을 학습하기 위해 다른 레이어에 제공됩니다.
2. 풀링 레이어
대부분의 경우 Convolutional Layer 다음에 Pooling Layer가 옵니다. 이 레이어의 주요 목표는 합성된 피쳐 맵의 크기를 줄여 계산 비용을 줄이는 것입니다. 이는 레이어 간의 연결을 줄임으로써 수행되며 각 피쳐 맵에서 독립적으로 작동합니다. 사용된 방법에 따라 여러 유형의 풀링 작업이 있습니다.
Max Pooling에서 가장 큰 요소는 기능 맵에서 가져옵니다. Average Pooling은 미리 정의된 크기의 이미지 섹션에 있는 요소의 평균을 계산합니다. 미리 정의된 섹션에 있는 요소의 총합은 Sum Pooling에서 계산됩니다. Pooling Layer는 일반적으로 Convolutional Layer와 FC Layer 사이의 다리 역할을 합니다.
필독: 신경망 프로젝트 아이디어
3. 완전 연결 계층
완전 연결(FC) 계층은 뉴런과 함께 가중치와 편향으로 구성되며 두 개의 서로 다른 계층 사이의 뉴런을 연결하는 데 사용됩니다. 이러한 레이어는 일반적으로 출력 레이어 앞에 배치되며 CNN 아키텍처의 마지막 몇 레이어를 형성합니다.
여기에서 이전 레이어의 입력 이미지가 평면화되어 FC 레이어에 공급됩니다. 그런 다음 평평한 벡터는 수학 함수 연산이 일반적으로 발생하는 몇 가지 FC 레이어를 더 거칩니다. 이 단계에서 분류 프로세스가 시작됩니다.
4. 탈락
일반적으로 모든 기능이 FC 계층에 연결되면 훈련 데이터 세트에서 과적합이 발생할 수 있습니다. 과적합은 특정 모델이 훈련 데이터에서 너무 잘 작동하여 새 데이터에 사용될 때 모델의 성능에 부정적인 영향을 미칠 때 발생합니다.
이 문제를 극복하기 위해 훈련 과정에서 신경망에서 몇 개의 뉴런을 떨어뜨리는 드롭아웃 레이어를 사용하여 모델의 크기를 줄였습니다. 0.3의 드롭아웃을 통과하면 노드의 30%가 신경망에서 무작위로 드롭아웃됩니다.
5. 활성화 기능
마지막으로 CNN 모델의 가장 중요한 매개변수 중 하나는 활성화 함수입니다. 그것들은 네트워크 변수 사이의 모든 종류의 연속적이고 복잡한 관계를 학습하고 근사하는 데 사용됩니다. 간단히 말해서, 모델의 어떤 정보가 순방향으로 발생하고 어떤 정보가 네트워크의 끝에서 발생하지 않아야 하는지를 결정합니다.
네트워크에 비선형성을 추가합니다. ReLU, Softmax, tanH 및 Sigmoid 함수와 같이 일반적으로 사용되는 몇 가지 활성화 함수가 있습니다. 이러한 각 기능에는 특정 용도가 있습니다. 이진 분류 CNN 모델의 경우 다중 클래스 분류에는 sigmoid 및 softmax 함수가 선호되며 일반적으로 softmax가 사용됩니다.

LeNet-5 CNN 아키텍처
1998년에 LeNet-5 아키텍처는 Yann LeCun, Leon Bottou, Yoshua Bengio 및 Patrick Haffner의 "Gradient-Based Learning Applied to Document Recognition"이라는 연구 논문에서 소개되었습니다. 가장 초기의 가장 기본적인 CNN 아키텍처 중 하나입니다.
7개의 레이어로 구성되어 있습니다. 첫 번째 레이어는 32×32 크기의 입력 이미지로 구성됩니다. 크기가 5x5인 6개의 필터로 연결되어 크기가 28x28x6이 됩니다. 두 번째 레이어는 크기 2x2와 보폭 2를 필터링하는 풀링 작업입니다. 따라서 결과 이미지 크기는 14x14x6이 됩니다.
유사하게, 세 번째 레이어는 크기가 5x5인 필터 16개와 필터 크기가 2x2이고 보폭이 2인 네 번째 풀링 레이어가 뒤따르는 컨볼루션 연산을 포함합니다. 따라서 결과 이미지 크기는 5x5x16으로 줄어듭니다.
이미지 차원이 줄어들면 다섯 번째 레이어는 각각 크기가 5×5인 120개의 필터가 있는 완전히 연결된 컨볼루션 레이어입니다. 이 레이어에서 이 레이어의 120개 유닛 각각은 이전 레이어의 400개(5x5x16) 유닛에 연결됩니다. 여섯 번째 레이어는 84개의 유닛이 있는 완전 연결 레이어이기도 합니다.
마지막 일곱 번째 레이어는 데이터 세트의 클래스 수에 따라 'n'개의 가능한 클래스가 있는 softmax 출력 레이어입니다.
원천
위의 다이어그램은 LeNet-5 CNN 아키텍처의 7개 레이어를 나타낸 것입니다.
아래는 TensorFlow 프레임워크와 함께 keras 라이브러리를 사용하여 LeNet-5 CNN 아키텍처를 구축하는 Python 코드의 스냅샷입니다.

Python 프로그래밍에서 가장 일반적으로 사용되는 모델 유형은 Sequential 유형입니다. keras에서 CNN 모델을 구축하는 가장 쉬운 방법입니다. 이를 통해 레이어별로 모델을 구축할 수 있습니다. 'add()' 함수는 모델에 레이어를 추가하는 데 사용됩니다. 위에서 설명한 대로 LeNet-5 아키텍처에는 두 개의 Convolution 및 Pooling 쌍이 있으며 그 뒤에는 일반적으로 Convolution과 Dense 레이어 간의 연결로 사용되는 Flatten 레이어가 있습니다.
Dense 레이어는 출력 레이어에 주로 사용되는 레이어입니다. 사용된 활성화는 각 클래스에 대한 확률을 제공하는 'Softmax'이며 모두 합이 1입니다. 모델은 가장 높은 확률을 가진 클래스를 기반으로 예측합니다.
모델의 요약이 아래와 같이 표시됩니다.
결론
따라서 이 기사에서는 기본 CNN 구조, 아키텍처 및 CNN 모델을 구성하는 다양한 계층을 이해했습니다. 또한 Python 프로그램이 포함된 매우 유명하고 전통적인 LeNet-5 모델의 아키텍처 예제를 보았습니다.
기계 학습 과정 에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 450시간 이상의 엄격한 교육, 30개 이상의 사례 연구 및 과제, IIIT-B 동문 자격, 5개 이상의 실용적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
CNN의 활성화 함수는 무엇입니까?
활성화 함수는 CNN 모델에서 가장 중요한 구성 요소 중 하나입니다. 그것들은 연속적이고 복잡한 모든 형태의 네트워크 변수 대 변수 연관을 배우고 근사하는 데 사용됩니다. 간단히 말해서 어떤 모델 정보가 순방향으로 흘러야 하고 어떤 것이 네트워크의 끝에서 흐르지 않아야 하는지를 결정합니다. 네트워크에 비선형성을 제공합니다. ReLU, Softmax, tanH 및 Sigmoid 함수는 가장 자주 사용되는 활성화 함수 중 일부입니다. 이러한 모든 기능에는 고유한 용도가 있습니다. 2-class CNN 모델의 경우 sigmoid 및 softmax 함수가 선호되는 반면 softmax는 일반적으로 다중 클래스 분류에 사용됩니다.
컨볼루션 신경망 아키텍처의 기본 구성 요소는 무엇입니까?
입력 레이어, 출력 레이어 및 여러 은닉 레이어가 컨볼루션 네트워크를 구성합니다. 컨볼루션 네트워크 계층의 뉴런은 표준 신경망(너비, 높이 및 깊이 차원)의 뉴런과 달리 3차원으로 배열됩니다. 이를 통해 CNN은 3차원 입력 볼륨을 출력 볼륨으로 변환할 수 있습니다. 컨볼루션, 풀링, 정규화 및 완전 연결 계층은 은닉 계층을 구성합니다. 다중 변환 레이어는 CNN에서 더 높은 수준의 추상화로 입력 볼륨을 필터링하는 데 사용됩니다.
표준 CNN 아키텍처의 이점은 무엇입니까?
기존 네트워크 아키텍처가 스택형 컨볼루션 레이어로만 구성되어 있는 반면, 새로운 아키텍처는 학습 효율성을 향상시키기 위해 컨볼루션 레이어를 구성하는 새롭고 참신한 방법을 모색합니다. 이러한 아키텍처는 기계 학습 실무자가 다양한 컴퓨터 비전 문제를 처리하기 위해 적응할 수 있는 일반적인 아키텍처 권장 사항을 제공합니다. 이러한 아키텍처는 이미지 분류, 객체 식별, 사진 분할 및 기타 다양한 고급 작업을 위한 풍부한 기능 추출기로 활용할 수 있습니다.