主要内容

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

심층 신경망 디자이너

딥러닝 신경망의 설계, 시각화 및 훈련

설명

심층 신경망 디자이너 앱을 사용하여 딥러닝 신경망을 구축, 시각화, 편집 및 훈련시킬 수 있습니다. 이 앱을 사용하여 다음을 수행할 수 있습니다.

  • 신경망 구축, 가져오기, 편집 및 결합.

  • 전이 학습을 위해 사전 훈련된 신경망을 불러와 편집.

  • 계층 속성 보기 및 편집, 새로운 계층과 연결 추가.

  • 신경망 아키텍처를 올바르게 정의했는지 확인하고 훈련 전에 문제를 파악할 수 있도록 신경망 분석.

  • 훈련 및 검증을 위해 데이터저장소 및 영상 데이터 가져오기 및 시각화.

  • 영상 분류 훈련 데이터에 증대 적용, 클래스 레이블의 분포 시각화.

  • 정확도, 손실 및 검증 메트릭으로 구성된 플롯을 사용하여 신경망 훈련 및 훈련 모니터링.

  • MATLAB®코드를 생성하여 신경망 구축 및 훈련시키기.

심층 신경망 디자이너 앱 열기

  • MATLAB툴스트립:탭의머신러닝 및 딥러닝에서 앱 아이콘을 클릭합니다.

  • MATLAB명령 프롬프트:deepNetworkDesigner를 입력합니다.

예제

모두 확장

심층 신경망 디자이너에서 사전 훈련된 간단한 영상 분류 신경망을 살펴보겠습니다.

앱을 열고 사전 훈련된 신경망을 선택합니다.디자이너탭을 선택하고새로 만들기를 클릭하여 사전 훈련된 신경망을 불러올 수도 있습니다. 신경망을 다운로드해야 할 경우에는설치를 클릭하여 애드온 탐색기를 엽니다.

시작하려면 挤压网이나 水壶과 같이 상대적으로 속도가 빠른 신경망을 선택해 보십시오. 어느 설정이 적절한지 파악했으면 Inception-v3이나 ResNet과 같이 보다 정확한 신경망을 사용해 보며 결과가 개선되는지 살펴봅니다. 사전 훈련된 신경망 선택에 대한 자세한 내용은사전 훈련된 심층 신경망항목을 참조하십시오.

디자이너창에서 신경망을 시각화하고 살펴봅니다. 사용 가능한 사전 훈련된 신경망 목록과 이들을 비교하는 방법은사전 훈련된 심층 신경망항목을 참조하십시오.

심층 신경망 디자이너를 사용하여 신경망을 생성하는 방법에 대한 자세한 내용은심층 신경망 디자이너를 사용하여 신경망 구축하기항목을 참조하십시오.

전이 학습을 위해 심층 신경망 디자이너에서 신경망을 편집하여 준비합니다.

전이 학습은 사전 훈련된 딥러닝 신경망이 새로운 작업을 학습하도록 미세 조정하는 과정입니다. 학습된 특징을 보다 적은 개수의 훈련 영상을 사용하여 새로운 작업으로 빠르게 전이할 수 있습니다. 따라서 전이 학습을 사용하는 것은 신경망을 처음부터 훈련시키는 것보다 훨씬 쉽고 빠릅니다. 사전 훈련된 신경망을 전이 학습을 위해 사용하려면 클래스 개수가 새로운 데이터 세트와 일치하도록 변경해야 합니다.

挤压网과 함께 심층 신경망 디자이너를 엽니다.

deepNetworkDesigner(挤压网)

전이 학습을 위해 신경망을 준비하려면 마지막 학습 가능한 계층과 마지막 분류 계층을 바꾸십시오. 挤压网의 마지막 학습 가능한 계층은“conv10”이라는 2.차원 컨벌루션 계층입니다.

  • 캔버스에 새卷积层를 끌어서 놓습니다.过滤속성을1,1로 설정하고微粒过滤器로 속성을 새 클래스 개수로 설정합니다.

  • 전이된 계층보다 새 계층에서 학습이 더 빨리 이루어지도록加权比率因子双线性学习因子를 늘려서 학습률을 변경합니다.

  • 마지막卷积层를 삭제하고 새로 추가한 계층을 대신 연결합니다.

대부분의 사전 훈련된 신경망에서(예: 谷歌网)마지막 학습 가능한 계층은 완전 연결 계층입니다. 전이 학습을 위해 신경망을 준비하려면 완전 연결 계층을 새로운 완전 연결 계층으로 바꾸고输出大小속성을 새 클래스 개수로 설정하십시오. 예제는심층 신경망 디자이너 시작하기항목을 참조하십시오.

다음으로, 분류 출력 계층을 삭제합니다. 그런 다음 새分类层를 캔버스에 끌어서 놓고 이 계층을 대신 연결합니다. 출력 계층의 디폴트 설정으로 인해 훈련 중에 신경망이 클래스의 개수를 학습하게 됩니다.

디자이너탭에서분석을 클릭하여 신경망을 확인합니다. 딥러닝 신경망 분석기에 보고되는 오류가 없으면 신경망이 훈련할 준비가 된 것입니다. 새 영상을 분류하도록 신경망을 훈련시키는 방법을 보여주는 예제는심층 신경망 디자이너를 사용한 전이 학습항목을 참조하십시오.

계층 속성을 이해하고 편집하는 데 도움이 필요하면 계층 이름 옆에 있는 도움말 아이콘을 클릭하십시오.

디자이너창에서 계층을 선택하여 속성을 확인하고 편집합니다. 계층 속성에 대한 자세한 정보를 보려면 계층 이름 옆에 있는 도움말 아이콘을 클릭하십시오.

계층 속성에 대한 자세한 내용은딥러닝 계층 목록항목을 참조하십시오.

심층 신경망 디자이너에서 계층을 작업 공간으로부터 신경망에 추가합니다.

심층 신경망 디자이너의계층 라이브러리에서디자이너창으로 내장 계층을 끌어서 놓고 연결하여 신경망을 구축할 수 있습니다. 사용자 지정 계층을 작업 공간으로부터디자이너창의 신경망에 추가할 수도 있습니다. 변수myCustomLayer에 저장된 사용자 지정 계층이 있다고 가정하겠습니다.

  1. 디자이너탭에서새로 만들기를 클릭합니다.

  2. 작업 공간에서 일시 중지하고가져오기를 클릭합니다.

  3. myCustomLayer를 선택하고확인을 클릭합니다.

  4. 추가를 클릭합니다.

앱이디자이너창의 상단에 사용자 지정 계층을 추가합니다. 새 계층을 보려면 마우스를 사용하여 확대하거나확대를 클릭하십시오.

디자이너창에서myCustomLayer를 신경망에 연결합니다. 심층 신경망 디자이너에서 사용자 지정 계층을 사용하여 신경망을 구축하는 방법을 보여주는 예제는将自定义层导入Deep Network Designer항목을 참조하십시오.

심층 신경망 디자이너에서 신경망을 결합할 수도 있습니다. 예를 들어, 사전 훈련된 신경망을 디코더 하위 신경망과 결합하여 의미론적 분할 신경망을 만들 수 있습니다.

훈련을 위해 심층 신경망 디자이너로 데이터를 가져옵니다.

심층 신경망 디자이너의데이터탭을 사용하여 훈련 데이터와 검증 데이터를 가져올 수 있습니다. 심층 신경망 디자이너에서는 영상 데이터 및 数据存储객체를 가져올 수 있습니다. 작업 유형에 따라 가져오기 방법을 선택하십시오.

작업 데이터 유형 데이터 가져오기 방법 시각화 예
영상 분류

图像数据存储객체, 또는 각 클래스에 대한 영상을 하위 폴더에 포함하는 폴더. 클래스 레이블은 하위 폴더 이름에서 가져옵니다.

데이터 가져오기>영상 데이터 가져오기를 선택합니다.

영상 데이터 가져오기 대화 상자에서 증대 옵션을 선택하고 검증 데이터를 지정할 수 있습니다. 자세한 내용은将数据导入Deep Network Designer항목을 참조하십시오.

기타 확장 워크플로(예: 숫자형 특징 입력값, 메모리에 담을 수 없는 큰 데이터, 영상 처리, 오디오 및 음성 처리)

데이터저장소.

그 밖의 확장 워크플로의 경우에는 적합한 数据存储객체를 사용하십시오. 예:增强图像数据存储,组合数据存储,像素标签图像数据存储(计算机视觉工具箱)또는 사용자 지정 데이터저장소.

列车网络함수와 함께 작동하는 모든 数据存储객체를 가져오고 훈련시킬 수 있습니다. 딥러닝 응용 분야를 위해 数据存储객체를 생성하고 사용하는 방법에 대한 자세한 내용은用于深度学习的数据存储항목을 참조하십시오.

데이터 가져오기>데이터저장소 가져오기를 선택합니다.

데이터저장소 가져오기 대화 상자에서 검증 데이터를 지정할 수 있습니다. 자세한 내용은将数据导入Deep Network Designer항목을 참조하십시오.

심층 신경망 디자이너로 가져온 데이터에 대해 신경망을 훈련시키려면훈련탭에서훈련을 클릭하십시오. 훈련을 보다 세부적으로 제어하려면훈련 옵션을 클릭하고 훈련 설정을 선택합니다. 훈련 옵션 선택에 대한 자세한 내용은培训选项를 참조하십시오. 영상 분류 신경망을 훈련시키는 방법을 보여주는 예제는심층 신경망 디자이너를 사용한 전이 학습항목을 참조하십시오.

심층 신경망 디자이너에서 신경망 아키텍처를 만들고 만든 신경망 아키텍처를 작업 공간으로 내보냅니다.

  • 초기 가중치와 함께 신경망 아키텍처를 내보내려면디자이너탭에서내보내기를 클릭하십시오. 심층 신경망 디자이너는 신경망 아키텍처에 따라 신경망을分层图lgraph또는객체 层로 내보냅니다.

  • 훈련된 가중치와 함께 신경망 아키텍처를 내보내려면훈련탭에서내보내기를 클릭하십시오. 심층 신경망 디자이너는 훈련된 신경망 아키텍처를达格网络객체 培训网络로 내보냅니다. 심층 신경망 디자이너는 훈련 및 검증 정확도와 같은 훈련 결과도 구조체형 배열 列车信息结构로 내보냅니다.

심층 신경망 디자이너에서 생성하고 훈련한 신경망을 다시 만들려면 MATLAB코드를 생성하십시오.

신경망 계층을 다시 만들려면디자이너탭에서내보내기>코드 생성을 선택하십시오. 또는내보내기>초기 파라미터로 코드 생성을 선택하여 학습 가능한 파라미터를 포함한 신경망을 다시 만들 수도 있습니다. 스크립트를 생성한 후에는 다음 작업을 수행할 수 있습니다.

  • 앱에서 만든 신경망 계층을 다시 만들기 위해 스크립트를 실행합니다.

  • 신경망을 훈련시키기 위해, 스크립트를 실행한 후列车网络함수에 계층을 입력합니다.

  • 코드를 검토하여 프로그래밍 방식으로 계층을 만들고 연결하는 방법을 알아봅니다.

  • 계층을 수정하기 위해 코드를 편집합니다. 스크립트를 실행하고 편집을 위해 신경망을 다시 앱으로 가져올 수도 있습니다.

신경망, 데이터 가져오기 및 훈련을 다시 생성하려면훈련탭에서내보내기>훈련에 사용할 코드 생성을 선택하십시오. 스크립트를 생성한 후에는 다음 작업을 수행할 수 있습니다.

  • 신경망 계층 및 앱에서 수행한 훈련을 다시 생성하기 위해 스크립트를 실행합니다.

  • 코드를 검토하여 프로그래밍 방식으로 데이터를 가져오고 신경망을 생성 및 훈련시키는 방법을 알아봅니다.

  • 코드를 수정하여 다른 신경망 아키텍처와 훈련 옵션을 사용해 보며 이것이 결과에 미치는 영향을 살펴봅니다.

자세한 내용은从deepnetworkdesigner生成MATLAB代码항목을 참조하십시오.

생성된 스크립트는 일련의 하이퍼파라미터 값을 스윕하거나 베이즈 최적화를 사용하여 최적의 훈련 옵션을 찾는 딥러닝 실험을 만들기 위한 출발점으로도 사용할 수 있습니다.실험 관리자를 사용하여 심층 신경망 디자이너에서 훈련된 신경망의 하이퍼파라미터를 조정하는 방법을 보여주는 예제는调整在Deep Network Designer中生成的代码以用于实验管理器항목을 참조하십시오.

관련 예제

프로그래밍 방식으로 사용

모두 확장

deepNetworkDesigner는 심층 신경망 디자이너 앱을 엽니다. 심층 신경망 디자이너가 이미 열려 있으면deepNetworkDesigner는 앱으로 포커스를 가져옵니다.

deepNetworkDesigner()은 심층 신경망 디자이너 앱을 열고 지정된 신경망을 앱으로 불러옵니다. 신경망은 시리즈 신경망, 达格신경망, 계층 그래프 또는 계층으로 구성된 배열일 수 있습니다.

예를 들어, 사전 훈련된 挤压网신경망을 사용하여 심층 신경망 디자이너를 엽니다.

净=挤压净;deepNetworkDesigner(net);

심층 신경망 디자이너가 이미 열려 있으면deepNetworkDesigner(net)은 앱으로 포커스를 가져오고 기존 신경망을 추가하거나 바꾸라는 메시지를 표시합니다.

여러 신경망을 훈련시키고 결과를 비교하려면실험 관리자를 사용해 보십시오.

R2018b에 개발됨