Självstudie om KDD 2016
CNTK: Microsofts Open-Source Deep-Learning Toolkit
KDD 2016 Hands-On Självstudie av Frank Seide och Amit Agarwal, Microsoft
Bilder som används i självstudien
Obs! Du måste göra två stora nedladdningar, CNTK-binärfilen (~300 MB) och CIFAR-10-datauppsättningen (170 MB) och installera CNTK-binärfilerna och alla nödvändiga beroenden på datorn. Vi rekommenderar att du gör detta i förväg, t.ex. från ditt hotellrum. Anvisningar finns nedan .
Träna neurala nätverk som Microsoft-produktgrupper! Den här självstudien introducerar Microsoft Cognitive Toolkit, eller CNTK, Microsofts skalbara djupinlärningsverktyg med öppen källkod för Windows och Linux. CNTK är ett kraftfullt beräkningsgrafbaserat djupinlärningsverktyg för träning och utvärdering av djupa neurala nätverk. Microsofts produktgrupper använder CNTK, till exempel för att skapa Cortana-talmodeller och webbrankning.
Målgrupp och förväntningar
Den här självstudien riktar sig till nuvarande eller framtida djupinlärningsutövare som letar efter ett verktyg som är enkelt att använda men ändå effektivt och skalbart i GPU-kluster med flera datorer för verkliga arbetsbelastningar.
Självstudien förutsätter grundläggande kunskaper om djupinlärning. Deltagarna kommer att förstå CNTK:s grundläggande begrepp och användning och öva på att köra neurala nätverksträningar med CNTK för bildigenkänning och textbearbetning. Självstudien är en startpunkt för att lösa din egen verkliga djupinlärningsuppgift med CNTK.
Krav, instruktioner för nedladdning och installation
För att utföra praktiska labbsessioner i självstudien krävs en bärbar dator eller fjärrdator med 64-bitars Windows 8.1+ eller Linux, och en CUDA-kompatibel GPU rekommenderas (ju snabbare desto bättre). Om datorn kör Mac-OS kan du köra Linux i en Docker-container och utföra installationen/installationen som beskrivs nedan i den här Docker-containern.
Du måste ladda ned och installera det binära CNTK-paketet, CIFAR-10-uppsättningen och självstudiefilerna, totalt cirka 500 MB. Vi rekommenderar att du gör detta i förväg.
- Ladda ned och installera CNTK-binärfilerna:
På den här sidan beskrivs de olika alternativen för att installera Microsoft Cognitive Toolkit på din dator. För den här självstudiekursen räcker det med en installation baserad på en binär CNTK-installation. Du behöver inte skapa CNTK från källkoden. för installationsinstruktioner. Du kan bara följa anvisningarna för att ladda ned ett binärt installationspaket från den sidan.
Kontrollera i vilket fall som helst att CNTK-körbara filer ingår i din miljö.
Ladda ned CIFAR-10-uppsättningen: För CIFAR-10-uppsättningen laddar du ned den här filen: http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz
Ladda ned självstudiefilerna (~12 MB) genom att öppna den här länken och klicka på knappen Ladda ned.
Gör praktiska självstudier online
De två praktiska självstudierna har publicerats som sidor här som kan följas:
- Bildigenkänning på CIFAR-10: Bildigenkänning på CIFAR-10 med convolutional och residualnät
- Language Understanding med ATIS: Platstaggning och avsiktsklassificering med återkommande nätverk
ABSTRAKT
Den här självstudien introducerar Microsoft Cognitive Toolkit, eller CNTK, Microsofts senaste djupinlärningsverktyg med öppen källkod för Windows och Linux. CNTK är ett kraftfullt beräkningsgrafbaserat djupinlärningsverktyg för träning och utvärdering av djupa neurala nätverk. Microsofts produktgrupper använder CNTK, till exempel för att skapa Cortana-talmodeller och webbrankning. CNTK stöder feed-forward, convolutional och återkommande nätverk för tal-, bild- och textarbetsbelastningar, även i kombination. Populära nätverkstyper stöds antingen internt (faltning) eller kan beskrivas som en CNTK-konfiguration (LSTM, sekvens-till-sekvens). CNTK skalas till flera GPU-servrar och är utformat kring effektivitet. Den här självstudien ger en översikt över CNTK:s allmänna arkitektur och beskriver de specifika metoder och algoritmer som används för automatisk differentiering, upprepningsloopslutsatsdragning och körning, minnesdelning, slumpmässighet i farten för stora corpora och parallellisering med flera servrar. Sedan visar vi hur typiska användningsområden ser ut för relevanta uppgifter som bildigenkänning, sekvens-till-sekvens-modellering och taligenkänning.
DISPOSITION
Självstudien beskriver följande ämnen:
- Vad är CNTK?
- Introduktion till beräkningsnätverk
- Hur ser en typisk användning av CNTK ut?
- Definiera beräkningsnätverket
- Konfigurera data-I/O
- SGD-hyperparametrar
- Vanliga arbetsflöden
- Djupdykning i specifika tekniker
- Implicit hantering av tid
- Minibatching av sekvenser med variabel längd
- Dataparallell träning
- Praktiska exempel, inklusive
- Bildigenkänning (AlexNet, ResNet)
- Textbearbetning (ATIS)
- Förhandsversion: CNTK-biblioteks-API:er för Python och C++
TALARBIOGRAFIER
Frank Seide, från Hamburg, Tyskland, är senior forskare på Microsoft Research. Hans nuvarande forskning fokuserar på djupa neurala nätverk för samtalsigenkänning; Tillsammans med medförfattaren Dong Yu var han först med att visa effektiviteten hos djupa neurala nätverk för igenkänning av konversationstal. Under hela sin karriär har han varit intresserad av och arbetat med ett brett spektrum av ämnen och komponenter för automatisk taligenkänning, inklusive taldialogsystem, erkännande av mandarinkineser och, särskilt, stor vokabulärigenkänning av konversationstal med tillämpning på ljudindexering, transkription och tal till tal-översättning. Hans nuvarande fokus är Microsofts CNTK-verktyg för djupinlärning.
Amit Agarwal är huvudtekniker på Microsofts teknik- och forskningsavdelning. Hans nuvarande fokus ligger på att skapa CNTK, Microsofts storskaliga distribuerade djupinlärningsplattform, för att möjliggöra oöverträffad skalning, hastighet och kapacitet för att träna massiva djupinlärningsmodeller på enorma datamängder, som används i en mängd olika tal-, bild- och textrelaterade djupinlärningsuppgifter hos Microsoft och i communityn. Amit Agarwal arbetade med ett brett utbud av Microsoft-produkter och på Mentor-grafik. Han har 7 patent relaterade till heterogen och GPU-programmering.
REFERENSLISTA
[1] Amit Agarwal, Eldar Akchurin, Chris Basoglu, Guoguo Chen, Scott Cyphers, Jasha Droppo, Adam Eversole, Brian Guenter, Mark Hillebrand, T. Ryan Hoens, 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 (i alfabetisk ordning), "An Introduction to Computational Networks and the Computational Network Toolkit", Microsoft Technical Report MSR-TR-2014-112, 2014.
[2] "CNTK",