CNTK: Microsoft의 Open-Source Deep-Learning 도구 키트
KDD 2016 Hands-On 자습서: Frank Seide and Amit Agarwal, Microsoft
참고: CNTK 이진 파일(~300MB) 및 CIFAR-10 데이터 집합(170MB)의 두 가지 큰 다운로드를 수행하고 CNTK 이진 파일 및 모든 필수 종속성을 컴퓨터에 설치해야 합니다. 호텔 객실과 같이 사전에 이 작업을 수행하는 것이 좋습니다. 지침은 아래 를 참조하세요.
Microsoft 제품 그룹과 같은 신경망을 학습하세요! 이 자습서에서는 Windows 및 Linux용 Microsoft의 확장 가능한 오픈 소스 심층 학습 도구 키트인 Microsoft Cognitive Toolkit 또는 CNTK를 소개합니다. CNTK는 심층 신경망을 학습하고 평가하기 위한 강력한 계산 그래프 기반 딥 러닝 도구 키트입니다. 예를 들어 Microsoft 제품 그룹은 CNTK를 사용하여 Cortana 음성 모델 및 웹 순위를 만듭니다.
대상 그룹 및 기대치
이 자습서는 실제 워크로드를 위해 다중 머신 GPU 클러스터에서 사용하기 쉽고효율적이고 확장 가능한 도구를 찾고 있는 현재 또는 미래의 딥 러닝 실무자를 대상으로 합니다.
이 자습서에서는 딥 러닝에 대한 기본 지식을 가정합니다. 참가자는 CNTK의 핵심 개념 및 사용을 이해하고 이미지 인식 및 텍스트 처리를 위해 CNTK를 사용하여 신경망 교육을 실행하는 방법을 연습합니다. 이 자습서는 CNTK를 사용하여 고유한 실제 딥 러닝 작업을 해결하기 위한 시작점이 될 것입니다.
필수 구성 요소, 다운로드 및 설정 지침
자습서에서 실습 랩 세션을 수행하려면 64비트 Windows 8.1+ 또는 Linux가 있는 랩톱 또는 원격 컴퓨터가 필요하며 CUDA 지원 GPU를 사용하는 것이 좋습니다(더 빠를수록 빠름). 컴퓨터에서 Mac-OS를 실행하는 경우 Docker 컨테이너 내에서 Linux를 실행하고 이 Docker 컨테이너 내에서 아래에 설명된 설치/설정을 수행할 수 있습니다.
CNTK 이진 패키지, CIFAR-10 집합 및 자습서 파일을 총 약 500MB로 다운로드하여 설치해야 합니다. 미리 수행하는 것이 좋습니다.
- CNTK 이진 파일을 다운로드하고 설치합니다.
이 페이지에서는 컴퓨터에 Microsoft Cognitive Toolkit 설치하는 다양한 대안에 대해 설명합니다. 이 자습서의 범위에서는 이진 CNTK 설치를 기반으로 설치하는 것으로 충분합니다. 소스 코드에서 CNTK를 빌드할 필요가 없습니다. 설치 지침을 참조하세요. 해당 페이지에서 이진 설치 패키지를 다운로드하기 위한 지침을 따를 수 있습니다.
어떤 경우에도 CNTK 실행 파일이 사용자 환경에 포함되어 있는지 확인합니다.
CIFAR-10 집합 다운로드: CIFAR-10 집합의 경우 다음 파일을 다운로드하세요. http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
이 링크를 열고 다운로드 단추를 클릭하여 자습서 파일(~12MB)을 다운로드합니다.
온라인으로 실습 자습서 수행
두 실습 자습서는 다음에 따라 수행할 수 있는 페이지로 게시되었습니다.
- CIFAR-10의 이미지 인식: 나선형 및 잔차 그물을 사용하는 CIFAR-10의 이미지 인식
- ATIS를 사용한 Language Understanding: 되풀이 네트워크를 사용한 슬롯 태그 지정 및 의도 분류
추상
이 자습서에서는 Windows 및 Linux용 Microsoft의 최첨단 오픈 소스 심층 학습 도구 키트인 Microsoft Cognitive Toolkit 또는 CNTK를 소개합니다. CNTK는 심층 신경망을 학습하고 평가하기 위한 강력한 계산 그래프 기반 딥 러닝 도구 키트입니다. 예를 들어 Microsoft 제품 그룹은 CNTK를 사용하여 Cortana 음성 모델 및 웹 순위를 만듭니다. CNTK는 음성, 이미지 및 텍스트 워크로드에 대한 피드 전달, 나선형 및 되풀이 네트워크를 함께 지원합니다. 인기 있는 네트워크 유형은 기본적으로(나선형) 지원되거나 CNTK 구성(LSTM, 시퀀스-시퀀스)으로 설명될 수 있습니다. CNTK는 여러 GPU 서버로 확장되며 효율성을 중심으로 설계되었습니다. 이 자습서에서는 CNTK의 일반 아키텍처에 대한 개요를 제공하고 자동 차별화, 되풀이 루프 유추 및 실행, 메모리 공유, 대규모 corpora의 즉석 임의화 및 다중 서버 병렬화에 사용되는 특정 메서드 및 알고리즘을 설명합니다. 그런 다음 이미지 인식, 시퀀스-시퀀스 모델링 및 음성 인식과 같은 관련 작업에 대해 일반적인 사용이 어떻게 표시되는지 보여 줍니다.
윤곽
이 자습서에서는 다음 항목을 다룹니다.
- CNTK란?
- 계산 네트워크 소개
- CNTK의 일반적인 사용은 어떻게 보이나요?
- 계산 네트워크 정의
- 데이터 I/O 구성
- SGD 하이퍼 매개 변수
- 일반적인 워크플로
- 특정 기술에 대한 심층 분석
- 암시적 시간 처리
- 가변 길이 시퀀스 미니배치
- 데이터 병렬 학습
- 다음을 비롯한 실습 예제
- 이미지 인식(AlexNet, ResNet)
- 텍스트 처리(ATIS)
- 미리 보기: Python 및 C++용 CNTK 라이브러리 API
발표자 전기
독일 함부르크 출신인 프랭크 세이드는 Microsoft Research의 선임 연구원입니다. 그의 현재 연구는 대화형 음성 인식을 위한 심층 신경망에 초점을 맞추고 있습니다. 공동 저자 인 Dong Yu와 함께 그는 대화형 음성을 인식하기 위해 심층 신경망의 효과를 처음으로 보여주었습니다. 그의 경력 전반에 걸쳐, 그는 음성 대화 시스템, 중국어 인식, 특히 오디오 인덱싱, 전사 및 음성 음성 변환에 대한 응용 프로그램을 사용하여 대화형 음성에 대한 대규모 어휘 인식을 포함하여 자동 음성 인식의 광범위한 주제와 구성 요소에 관심을 가지고 일했습니다. 현재 그의 초점은 Microsoft의 CNTK 심층 학습 도구 키트입니다.
Amit Agarwal 은 Microsoft 기술 및 연구 부서의 주요 소프트웨어 엔지니어입니다. 현재 그의 초점은 Microsoft의 대규모 분산 딥 러닝 플랫폼인 CNTK를 구축하여 Microsoft 및 커뮤니티에서 광범위한 음성, 이미지 및 텍스트 관련 딥 러닝 작업에 사용되는 방대한 데이터 세트에 대한 대규모 딥 러닝 모델을 학습하기 위한 전례 없는 규모, 속도 및 용량을 가능하게 하는 것입니다. Amit Agarwal은 광범위한 Microsoft 제품 및 멘토 그래픽에서 작업했습니다. 그는 이종 및 GPU 프로그래밍과 관련된 7개의 특허를 보유하고 있습니다.
REFERENCES
[1] 아미트 아가왈, 엘다르 아크추린, 크리스 바소글루, 구오구오 첸, 스콧 사이퍼스, 자샤 드롭포, 아담 에버솔, 브라이언 구엔터, 마크 힐레브란드, T. 라이언 호엔스, Xuedong Huang, Zhiheng Huang, Vladimir Ivanov, Alexey Kamenev, Philipp Kranen, Oleksii Kuchaiev, Wolfgang Manousek, Avner May, Bhaskar Mitra, Olivier Nano, Gaizka Navarro, Alexey Orlov, Hari Parthasarathi, Baolin Peng, Marko Radmilac, Alexey Reznichenko, Frank Seide, Michael L. Seltzer, Malcolm Slaney, Andreas Stolcke, Huaming Wang, Yongqiang Wang, Kaisheng Yao, Dong Yu, Yu Zhang, Geoffrey Zweig(사전순), "계산 네트워크 및 계산 네트워크 도구 키트 소개", Microsoft 기술 보고서 MSR-TR-2014-112, 2014.
[2] "CNTK"