matlab cnn 예제

이 예제에서는 딥 러닝 분류를 위한 간단한 컨볼루션 신경망을 만들고 학습하는 방법을 보여 주며 있습니다. 컨볼루션 신경망은 딥 러닝에 필수적인 도구이며 특히 이미지 인식에 적합합니다. 이 예제에서는 꽃 데이터 집합[5]의 이미지가 이미지에서 추출된 CNN 기능으로 학습된 다중 클래스 선형 SVM을 사용하여 범주로 분류됩니다. 이미지 범주 분류에 대한 이 접근 방식은 이미지에서 추출된 기능을 사용하여 상용 분류기를 교육하는 표준 관행을 따릅니다. 예를 들어 피처 의 가방을 사용하는 이미지 범주 분류 예제에서는 기능 프레임워크 의 가방 내에서 SURF 기능을 사용하여 다중 클래스 SVM을 학습합니다. 여기서 차이점은 HOG 또는 SURF와 같은 이미지 기능을 사용하는 대신 CNN을 사용하여 기능을 추출한다는 것입니다. 컴퓨팅 기능 3.0 이상의 CUDA 지원 엔비디아™ GPU를 사용하면 이 예제를 실행하는 것이 좋습니다. GPU를 사용하려면 병렬 컴퓨팅 도구 상자™. 참고: 이 예제에서는 ResNet-50 네트워크에 대한 딥 러닝 도구 상자™ 통계 및 기계 학습 도구 상자™ 및 딥 러닝 도구 상자™ 모델이 필요합니다.

예를 들어, 딥 러닝 애플리케이션은 CNN을 사용하여 수천 건의 병리학 보고서를 검사하여 암세포를 시각적으로 감지합니다. 또한 CNN은 자율 주행 자동차가 물체를 감지하고 도로 표지판과 보행자의 차이를 구별하는 방법을 학습할 수 있도록 합니다. MATLAB® 간단한 웹캠 및 심층 신경망을 사용하여 주변의 물체를 식별하는 방법에 대한 간단한 데모를 시청하십시오. 이 데모에서는 백만 개 이상의 이미지에 대해 학습된 사전 학습된 심층 컨볼루션 신경망(CNN 또는 ConvNet)인 AlexNet을 사용합니다. 이 예제에는 카메라 설정 및 개체 인식 수행의 두 부분으로 구성됩니다. 첫 번째 부분은 웹캠 명령을 사용하여 카메라에서 이미지를 획득하는 방법을 보여줍니다. MATLAB은 drawnow 명령을 사용하여 카메라로 촬영한 이미지를 지속적으로 업데이트하고 표시할 수 있습니다. 두 번째 부분에서는 AlexNet이라는 미리 훈련된 심층 신경망을 다운로드하고 MATLAB을 사용하여 카메라 이미지를 지속적으로 처리하는 방법을 설명합니다. AlexNet은 이미지를 입력으로 가져와 이미지의 개체에 대한 레이블을 제공합니다. 주변의 객체를 실험하여 AlexNet이 얼마나 정확한지 확인할 수 있습니다.

오늘날 MATLAB을 사용하면 매우 쉽게 작업을 수행할 수 있지만, 불과 몇 년 전만 해도 공상 과학 소설로 간주되었을 것입니다. 최대 풀링 레이어 컨볼루션 레이어(활성화 함수 사용)는 피처 맵의 공간 크기를 줄이고 중복 공간 정보를 제거하는 다운 샘플링 작업뒤에 도포됩니다. 다운 샘플링을 사용하면 레이어당 필요한 계산량을 늘리지 않고도 더 깊은 컨볼루션 레이어에서 필터 수를 늘릴 수 있습니다. 다운 샘플링의 한 가지 방법은 maxPooling2dLayer를 사용하여 만드는 최대 풀링을 사용하는 것입니다. 최대 풀링 레이어는 첫 번째 인수poolSize에 의해 지정된 입력의 직사각형 영역의 최대 값을 반환합니다.