기본 CNN 아키텍처: 컨볼루션 신경망의 5계층 설명 [미국]
게시 됨: 2023-04-16CNN(Convolutional Neural Network)은 컨볼루션 및 서브샘플링 레이어의 조합을 사용하여 대규모 데이터 집합에서 기능을 학습하는 딥 러닝 신경망 유형입니다. 일반적으로 이미지 인식 및 분류 작업에 사용됩니다. 컨벌루션 계층은 입력 데이터에 필터를 적용하고 서브샘플링 계층은 입력 데이터 크기를 줄입니다. Convolutional Neural Network 아키텍처는 입력에서 개체를 분류하거나 감지하는 데 사용할 수 있는 데이터에서 기능을 학습하는 것을 목표로 합니다. 다음은 5개의 CNN 레이어에 대한 설명 입니다 .
세계 최고의 대학에서 제공하는 기계 학습 과정 에 등록하십시오 . Master, Executive PGP 또는 Advanced Certificate Program을 취득하여 경력을 빠르게 쌓으십시오.
목차
컨벌루션 신경망의 5계층
1. 컨볼루션 레이어:
이 계층은 입력 데이터에 대해 컨볼루션 작업을 수행하여 데이터에서 다양한 기능을 추출합니다.
CNN 모델 아키텍처 의 컨볼루션 레이어는 CNN 레이어 의 가장 중요한 구성 요소 중 하나입니다 . 이러한 계층은 입력 데이터에서 기능을 추출하고 추가 처리 및 학습을 위한 기반을 형성하는 역할을 합니다.
컨벌루션 계층은 슬라이딩 윈도우 방식으로 입력 데이터에 적용되는 필터 세트(커널이라고도 함)로 구성됩니다. 각 필터는 연관된 가중치를 기반으로 입력 데이터에서 특정 기능 집합을 추출합니다.
컨볼루션 레이어에서 사용되는 필터의 수는 아키텍처의 핵심 하이퍼파라미터 중 하나입니다. 처리 중인 데이터 유형과 원하는 모델 정확도에 따라 결정됩니다. 일반적으로 필터가 많을수록 입력 데이터에서 더 많은 기능이 추출되어 더 복잡한 네트워크 아키텍처가 데이터를 더 잘 이해할 수 있습니다.
컨볼루션 작업은 각 필터를 슬라이딩 윈도우 내의 데이터와 곱하고 결과를 합산하는 것으로 구성됩니다. 이 작업은 모든 필터에 대해 반복되어 단일 컨벌루션 레이어에 대한 여러 기능 맵이 생성됩니다. 이러한 기능 맵은 다음 레이어의 입력으로 사용되어 네트워크가 데이터에서 더 복잡한 기능을 학습할 수 있도록 합니다.
컨벌루션 레이어는 딥 러닝 아키텍처의 기반이며 이미지 인식, 자연어 처리, 음성 인식과 같은 다양한 애플리케이션에 사용됩니다. 입력 데이터에서 가장 중요한 기능을 추출함으로써 컨볼루션 계층은 네트워크가 더 복잡한 패턴을 학습하고 더 나은 예측을 할 수 있도록 합니다.
2. 풀링 레이어:
이 계층은 기능 맵에서 다운샘플링 작업을 수행하여 필요한 계산량을 줄이고 과적합을 줄이는 데 도움이 됩니다.
풀링 레이어는 CNN 아키텍처 의 중요한 구성 요소입니다 . 일반적으로 데이터에서 의미 있는 정보를 추출하면서 입력 볼륨 크기를 줄이는 데 사용됩니다. 풀링 레이어는 일반적으로 CNN의 후반 단계에서 사용되어 네트워크가 이미지 또는 다른 입력 유형의 보다 추상적인 기능에 집중할 수 있도록 합니다. 풀링 계층은 입력 볼륨 위로 창을 밀고 창 내의 값에 대한 요약 통계를 계산하여 작동합니다.
일반적인 통계에는 창 내 값의 최대값, 평균 또는 합계를 취하는 것이 포함됩니다. 이것은 데이터에 대한 중요한 정보를 보존하면서 입력 볼륨의 크기를 줄입니다.
풀링 계층은 또한 일반적으로 공간 불변성을 도입하는 데 사용됩니다. 즉, 이미지 내의 입력 위치에 관계없이 네트워크가 동일한 출력을 생성합니다. 이를 통해 네트워크는 이미지의 정확한 위치를 단순히 기억하는 대신 이미지에 대한 보다 일반적인 기능을 상속할 수 있습니다.
3. 활성화 계층:
이 계층은 ReLU 또는 tanh와 같은 비선형 활성화 함수를 적용하여 모델에 비선형성을 추가합니다.
CNN의 활성화 계층은 컨볼루션 계층의 출력에서 비선형 변환 역할을 하는 계층입니다. 네트워크의 기본 구성 요소로서 입력 데이터와 출력 데이터 간의 복잡한 관계를 학습할 수 있습니다.
활성화 계층은 컨볼루션 계층의 출력을 가져와 다른 값 집합에 매핑하는 함수로 생각할 수 있습니다. 이를 통해 네트워크는 데이터에서 더 복잡한 패턴을 학습하고 더 잘 일반화할 수 있습니다.
CNN에서 사용되는 일반적인 활성화 함수에는 ReLu(Rectified Linear Unit), 시그모이드 및 tanh가 있습니다. 각 활성화 기능은 다른 용도로 사용되며 다른 시나리오에서 사용할 수 있습니다.
ReLu는 대부분의 컨볼루션 네트워크에서 가장 일반적으로 사용되는 활성화 함수입니다. 모든 음수 값에 대해 0을 출력하고 모든 양수 값에 대한 입력 값과 동일한 값을 출력하는 비선형 변환입니다. 이를 통해 네트워크는 데이터에서 더 복잡한 패턴을 흡수할 수 있습니다.
Sigmoid는 일반적으로 사용되는 또 다른 활성화 함수로 주어진 입력에 대해 0과 1 사이의 값을 출력합니다. 이는 네트워크가 입력 데이터와 출력 데이터 간의 복잡한 관계를 이해하는 데 도움이 되지만 ReLu보다 계산 비용이 더 많이 듭니다.
Tanh는 주어진 입력에 대해 -1과 1 사이의 값을 출력하는 가장 덜 일반적으로 사용되는 활성화 함수입니다.
활성화 계층은 출력의 선형성을 방지하고 비선형성을 향상시키기 때문에 CNN의 필수 구성 요소입니다. 각 활성화 기능은 다른 용도로 사용되며 다른 시나리오에서 사용할 수 있으므로 네트워크에 적합한 활성화 기능을 선택하는 것이 중요합니다. 적절한 활성화 함수를 선택하면 CNN 구조 의 성능이 향상될 수 있습니다 .
4. 완전히 연결된 계층:
이 계층은 한 계층의 각 뉴런을 다음 계층의 모든 뉴런에 연결하여 완전히 연결된 네트워크를 만듭니다.
CNN의 완전 연결 계층은 네트워크의 이전 계층에 있는 모든 뉴런에 연결된 뉴런 계층입니다. 이는 뉴런이 특정 패턴을 기반으로 이전 레이어의 뉴런 하위 집합에만 연결되는 컨볼루션 레이어와 대조됩니다.
Fully Connected Layer는 한 레이어의 모든 뉴런을 다음 레이어의 모든 뉴런에 연결함으로써 이전 레이어의 정보를 전체 네트워크에서 공유할 수 있도록 하여 데이터를 보다 포괄적으로 이해할 수 있는 기회를 제공합니다.
CNN의 완전 연결 레이어는 일반적 으로 컨볼루션 레이어와 풀링 레이어 다음에 CNN 모델 아키텍처 의 끝 부분에 사용됩니다 . 컨볼루션 레이어가 인식하지 못할 수 있는 패턴과 상관 관계를 식별하는 데 도움이 되기 때문입니다.
또한 완전 연결 계층은 분류에 사용할 수 있는 비선형 결정 경계를 생성하는 데 사용됩니다. 결론적으로 완전히 연결된 레이어는 모든 CNN의 필수적인 부분이며 데이터의 패턴과 상관 관계를 식별하기 위한 강력한 도구를 제공합니다.
5. 출력 레이어:
이것은 출력 레이블 또는 값을 생성하는 네트워크의 마지막 계층입니다.
CNN의 출력 레이어는 네트워크의 마지막 레이어이며 출력 생성을 담당합니다. 이전 레이어에서 추출한 기능을 가져와서 원하는 출력을 생성할 수 있는 방식으로 결합하는 레이어입니다.
완전 연결 계층은 일반적으로 분류 또는 회귀 문제와 같이 출력이 단일 값일 때 사용됩니다. 단일 뉴런 계층은 일반적으로 결과가 확률 분포와 같은 벡터일 때 사용됩니다.
softmax 활성화 함수는 출력이 클래스에 대한 확률 분포와 같은 확률 분포일 때 사용됩니다. CNN의 출력 계층은 원하는 출력을 얻기 위해 필요한 계산을 수행하는 역할도 합니다. 여기에는 필요한 출력을 수신하기 위해 입력의 필수 선형 또는 비선형 변환을 완료하는 것이 포함됩니다.
마지막으로 CNN의 출력 레이어는 드롭아웃 또는 배치 정규화와 같은 정규화 기술을 수행하여 네트워크 성능을 향상시키는 데 사용할 수도 있습니다.
결론
CNN 아키텍처는 이미지 및 비디오 처리 작업을 위한 강력한 도구입니다. 컨볼루션 레이어, 풀링 레이어 및 완전 연결 레이어의 조합입니다. 이미지, 비디오 및 기타 데이터 소스에서 특징을 추출할 수 있으며 객체 인식, 이미지 분류 및 얼굴 인식과 같은 다양한 작업에 사용할 수 있습니다. 전반적으로 이러한 유형의 아키텍처는 적절한 함수 및 데이터 세트에 적용될 때 매우 효과적입니다.
upGrad로 ML 및 DL에서 능숙한 기술 습득
IIIT-B에서 제공하는 upGrad의 머신 러닝 및 딥 러닝 고급 인증 프로그램을 통해 머신 러닝 및 딥 러닝에 능숙해질 수 있습니다. 이 프로그램은 지도 및 비지도 학습, 선형 및 로지스틱 회귀, 컨볼루션 신경망, 강화 학습 및 자연어 처리와 같은 주제를 포함하여 ML 및 DL의 기초를 다룹니다. 또한 Python 및 TensorFlow에서 ML 및 DL 모델을 빌드 및 배포하는 방법을 배우고 실제 프로젝트에서 작업하여 실용적인 경험을 얻습니다.
이 과정에는 다음과 같은 혜택도 포함되어 있습니다.
- 업계 전문가의 멘토링 및 지도
- 올바른 직업을 찾는 데 도움이 되는 배치 지원
- IIIT Bangalore의 고급 인증서
관리, 데이터 과학, 기계 학습, 디지털 마케팅 및 기술 분야에서 upGrad가 제공하는무료 과정을확인할 수도 있습니다. 이 모든 과정에는 최고 수준의 학습 리소스, 주간 라이브 강의, 업계 과제 및 과정 수료증이 모두 무료입니다!
CNN에 사용할 수 있는 Python 라이브러리는 무엇입니까?
CNN에 사용할 수 있는 Python 라이브러리에는 TensorFlow, Keras, PyTorch, Caffe, Theano, Scikit-learn, MxNet, CNTK, OpenCV 및 SciPy가 있습니다. 이러한 라이브러리를 사용하여 애플리케이션을 생성하고 CNN 알고리즘을 쉽게 구현하기 위해 미리 빌드된 모듈을 얻을 수 있습니다.
CNN 레이어에는 몇 개의 차원이 있습니까?
컨벌루션 신경망에는 너비, 높이 및 깊이의 3차원으로 배열된 뉴런이 포함됩니다. 이 뉴런의 3차원 구조는 컨볼루션 레이어 내에 존재하며 주어진 입력으로 컴퓨팅 프로세스를 통해 작동하여 결과 출력을 제공합니다.
R로 CNN을 개발할 수 있습니까?
예, CNN은 Python과 R을 모두 사용하여 개발할 수 있습니다. R이 매우 상세한 라이브러리를 제공하므로 R로 회선 신경망을 만드는 것은 매우 쉽습니다.