Marzo 2018

Volume 33 Numero 3

Il presente articolo è stato tradotto automaticamente.

Artificially Intelligent - Esplorazione dei toolkit per Deep Learning con notebook Jupyter

Dal Frank La La | 2018 marzo

Frank La VigneNell'ultimo articolo, è possibile esplorare il server Jupyter Notebook, un'open source, soluzione software basato su browser che consente agli utenti di creare e condividere documenti che contengono testo, visualizzazioni e codice in tempo reale. Mentre non è ideale per la creazione di applicazioni, Jupyter notebook sono un ottimo modo per esplorare e provare a utilizzare i dati. Immaginano come un tipo di interattivo "Lavagna" per l'analisi scientifica dei dati. Notebook Jupyter specificando un formato comune per gli esperti di dati condividere codice, informazioni e documentazione. Molti dei comune apprendimento librerie, ad esempio CNTK e TensorFlow, fornire Jupyter notebook come documentazione per facilitare l'apprendimento come utilizzarle. Fortunatamente, è un modo semplice per ottenere l'accesso a numerosi blocchi appunti di esempio per tutte le librerie più diffusi, ovvero tutti in un'unica posizione e senza installare software.

La macchina virtuale di analisi scientifica dei dati

Analisi scientifica dei dati e al machine learning richiedono nuovi strumenti e molti dei quali possono essere poco note agli sviluppatori di .NET. Fortunatamente, Microsoft Azure offre un'immagine di macchina virtuale (VM), chiamato la macchina virtuale di analisi scientifica dei dati (DSVM), che è precaricato con un numero di strumenti e utilità di analisi scientifica dei dati e di lavoro di apprendimento automatico. L'immagine DSVM rende facile iniziare a usare le tecnologie di formazione e include il Keras Microsoft cognitivi Toolkit (CNTK), TensorFlow, PyTorch e altro ancora, già compilato, installarla e configurarla. Ogni toolkit è predisposta per l'utilizzo.

Migliore di tutti e più rilevanti per questo articolo, sono inclusi anche numerosi esempio Jupyter notebook. In breve, il DSVM fornisce un modo semplice per iniziare senza dover installare altro nel computer locale. L'immagine DSVM è disponibile in Windows, Ubuntu e CentOS. In questo articolo è incentrato su versione Ubuntu, come è possibile individuare risulti il più completo. È possibile trovare un elenco completo degli strumenti installati in immagine DSVM bit.ly/2Dc5uA4.

La creazione di un DSVM è semplice. Per iniziare, accedere al portale di Azure e fare clic su Nuovo, quindi digitare "macchina virtuale di analisi scientifica dei dati" la casella di testo di ricerca e premere INVIO. Dovrebbe essere simile a risultati di ricerca figura 1. Fare clic sull'elemento di macchina virtuale di analisi scientifica dei dati per Linux (Ubuntu).

La ricerca del Marketplace per l'immagine di macchina virtuale di analisi scientifica dei dati
Figura 1, la ricerca del Marketplace per l'immagine di macchina virtuale di analisi scientifica dei dati

Per creare un'istanza di DSVM, seguire le istruzioni del pannello Crea macchina virtuale. Specificare un nome per la macchina virtuale, un nome utente e scegliere "Password" per il tipo di autenticazione. Creare un nuovo gruppo di risorse per il DSVM o utilizzarne uno esistente. Tenere presente il nome del gruppo di risorse oltre al nome utente e password. Lasciare le altre opzioni in base ai valori predefiniti.

Fare clic su OK per procedere al passaggio successivo: il prelievo di una dimensione per la macchina virtuale. Per il momento, dimensioni non è rilevante, pertanto solo passare con una dimensione che rientra il budget. Se un'opzione economicamente conveniente non viene visualizzato, scegliere "Visualizza tutto" per visualizzare tutte le configurazioni di macchina virtuale. Fare clic su Seleziona per scegliere una dimensione e una configurazione. Nel terzo passaggio, lasciare tutti gli elementi come valori predefiniti e fare clic su OK. Il passaggio finale è la schermata di riepilogo. Vale la pena notare che alcuni dei piani di Azure non includono il DSVM e l'account verrà addebitato separatamente. Schermata di riepilogo verrà che indicano se in questo caso. Fare clic su Crea per creare un'istanza della macchina virtuale per continuare.

La connessione per l'interfaccia utente grafica DSVM

Il modo migliore per sfruttare al meglio il DSVM è connettersi a tale graficamente. Mentre il pannello per l'istanza di macchina virtuale nel portale vengono fornite informazioni sulla connessione tramite un servizio SSH, non offre le informazioni aggiuntive su una connessione tramite una shell grafica. Fortunatamente, è un'ampia documentazione su come eseguire questa operazione usando Desktop remoto per Windows (bit.ly/2Davn3j). L'immagine DSVM Ubuntu include l'ambiente desktop xcfe4 già installato e che sia creato un account utente locale durante il provisioning della macchina virtuale. Tutto ciò che viene lasciato a scopo è ora configurare il servizio desktop remoto per l'ascolto delle connessioni Remote Desktop Protocol (RDP) in ingresso. A tale scopo, è necessario abilitare xrdp, un server di origine aprire RDP che funziona con xfce.

Per installare xrdp il DSVM Ubuntu, è necessario connettersi a esso tramite un servizio SSH, che in Windows spesso richiede un programma terminal, ad esempio PuTTY (putty.org). Se il PC è in esecuzione Windows 10 compilare 1709 o versioni successive, è possibile scegliere invece di installare Ubuntu in Windows tramite l'archivio (bit.ly/2Dm8fSR). Per ottenere le informazioni di connessione, cercare il pulsante Connetti nel pannello per l'istanza DSVM. Fare clic su di esso per visualizzare la finestra di dialogo racchiusa figura 2 per ottenere le informazioni di connessione.

Recupero delle informazioni di connessione SSH per il DSVM
Figura 2 recupero delle informazioni di connessione SSH per il DSVM

Nella finestra del terminale, immettere le informazioni di connessione e, quando richiesto, immettere "yes" da considerare attendibile la connessione, aggiungendo la password per il nome utente. Per installare e abilitare il servizio xrdp operare xfce4, immettere le tre righe seguenti:

sudo apt-get install xrdp
echo xfce4-session >~/.xsession
sudo service xrdp restart

Se richiesto, rispondere con "Y" per abilitare l'uso di spazio su disco aggiuntivo. Una volta xfce è installato il DSVM, è necessario creare una regola nel gruppo di sicurezza di rete per consentire il traffico RDP tramite la macchina virtuale. Questa operazione può essere eseguita tramite il portale di Azure (bit.ly/2mDQ1lt), o tramite l'esecuzione all'istruzione seguente nella riga di comando tramite l'interfaccia CLI di Azure:

az vm open-port --resource-group ResourceGroup --name DSVM-Name --port 3389

Assicurarsi di sostituire "Gruppo di risorse" e "DSVM-Name" con il nome del gruppo di risorse e del nome della macchina virtuale da versioni precedenti. Una volta completato il processo, aprire l'applicazione connessione Desktop remoto, immettere l'indirizzo IP dell'istanza DSVM e fare clic su Connetti. Se richiesto, scegliere di considerare attendibile il computer e immettere le credenziali dell'account insieme il DSVM creato.

Tutte le questa attività di configurazione nella CLI Ubuntu possano sembrare superflue per una colonna sull'intelligence artificiale, ma tenere presente che molti strumenti in questo spazio si presuppongono una conoscenza di base con Linux e della shell Bash della riga di comando. Prima familiarizzare con Bash e Linux, prima sarà produttivi.

Se si desidera evitare i passaggi precedenti per installare e configurare xrdp, X2Go (wiki.x2go.org) è un'alternativa per gli utenti Mac e Windows. X2Go comunica direttamente con DSVM tramite il protocollo xfce, pertanto non è necessario installare altro nella macchina virtuale o per modificare il gruppo di sicurezza di rete. È sufficiente installare X2Go sul desktop locale e connettersi con l'indirizzo IP e nome utente per il DSVM.

Dopo la connessione con il DSVM, fare clic sul menu di applicazioni nell'angolo superiore sinistro della GUI. Fare clic sullo sviluppo e fare clic su JupyterHub nel sottomenu risulta. JupyterHub è un hub con più utenti per la gestione di più istanze del server Jupyter Notebook utente singolo. E può essere utilizzato per servire notebook a un gruppo di utenti, ad esempio gli studenti in una classe, un gruppo di ricerca o un team di esperti di dati.

Verrà ora visualizzata una finestra terminale e verrà aperto il browser predefinito del sistema (FireFox) http://localhost:8888/struttura ad albero. Fare clic sulla cartella CNTK per accedere agli esempi Microsoft cognitivi Toolkit. Successivamente, fare clic sul file CNTK_101_LogisticRegression.ipynb per accedere al blocco appunti Logistic Regression e nozioni di base su Machine Learning, che contiene un'esercitazione per quelli nuovi per l'apprendimento e la CNTK. Il blocco dell'esercitazione viene scritto per Python. Se viene visualizzato l'errore "Impossibile execvp Jupyter: File o directory non trovata,"è necessario utilizzare X2Go per continuare.

La classificazione esistevano

Il problema poste nei centri di notebook CNTK_101_LogisticRegression intorno classificazione aumenti dimensioni tumor come maligni o innocui. Si tratta di un problema di classificazione, in particolare una classificazione binaria, sono presenti solo due classificazioni di output. Per classificare il tipo di crescita di ogni paziente, ospedale ha fornito all'età del paziente e le dimensioni di tumor immetterà il proprio. L'ipotesi di lavoro è che sono minore probabilità di produrre un aumento delle dimensioni maligni giovani pazienti e pazienti con esistevano più piccoli. Figura 3 viene mostrato come ogni paziente nel set di dati è rappresentato come un punto nel tracciato del blocco note. Punti rossi indicano maligni aumenti dimensioni e i punti blu indicano innocui. L'obiettivo consiste nel creare un classificatore binario per separare il maligni da grave, simili per il grafico a dispersione in uscita [3] cella del blocco note e duplicati nel figura 3.

Grafico a dispersione con classificatore binario indicato dalla linea verde
Figura 3 grafico a dispersione con classificatore binario indicato dalla linea verde

Il blocco per appunti include un messaggio di avviso che informa che il set di dati utilizzato in questo argomento è semplicemente un esempio a scopo didattico. Un sistema di classificazione di produzione per determinare lo stato di aumenti dimensioni prevederà più punti dati, funzionalità, i risultati dei test e input dal personale medico per effettuare la diagnosi finale.

Le cinque fasi di un progetto di apprendimento

I progetti di Machine learning in genere si suddividono nelle cinque fasi: La lettura dei dati, il data shaping, creazione di un modello, i parametri del modello di apprendimento e la valutazione delle prestazioni del modello. La lettura dei dati comporta il caricamento di set di dati in una struttura. Per Python, si tratta in genere un frame di dati Pandas (bit.ly/2EPC8rI). Frame di dati sono essenzialmente una struttura di dati tabulari composte da righe e colonne.

Il secondo passaggio è shaping dei dati dal formato di input in un formato che accetta l'algoritmo di machine learning. Questo processo è noto anche come "pulizia dei dati" o "dati munging". Molto spesso questa fase consuma la maggior parte del tempo e risorse nei progetti di machine learning.

Non è fino alla terza fase che inizia l'apprendimento lavoro effettivo. In questo blocco, creare un modello per separare la grave aumenti dimensioni tra quelle maligni. La regressione logistica è un modello lineare semplice che accetta valori di input (rappresentata dai cerchi blu nel figura 4) di sto la classificazione e calcola un output. Ognuno dei valori di input ha un diverso livello di peso nell'output, rappresentati figura 4 come riga spessore.

Diagramma dell'algoritmo di regressione logistica
Figura 4 diagramma dell'algoritmo di regressione logistica

Il passaggio successivo consiste per ridurre al minimo l'errore o la perdita, utilizzando una tecnica di ottimizzazione. Questo blocco utilizza stocastico sfumatura Descent (SGD), una tecnica comune che inizia in genere l'inizializzazione in modo casuale i parametri di modello. In questo caso, i parametri di modello sono i pesi e i pregiudizi. Per ogni riga nel set di dati, query optimizer SGD possibile calcolare l'errore tra il valore stimato e il valore true corrispondente. L'algoritmo applicherà quindi descent con sfumatura stocastica per creare nuovi parametri di modello dopo ogni osservazione. SGD è spiegati dettagliatamente più avanti all'interno del blocco appunti e in un video di YouTube da Siraj Raval (bit.ly/2B8lHEz).

Il passaggio finale consiste nel valutare le prestazioni del modello predittivo in base ai dati di test. Sono disponibili essenzialmente quattro risultati per questo classificatore binario:

  1. Etichetta correttamente il valore come maligni.
  2. Etichetta correttamente il valore come innocui.
  3. Il valore come maligni con etichetta in modo non corretto.
  4. Erroneamente identificato il valore come innocui.

In questo scenario, risultato n. 3 sarebbe un falso negativo. Il tumor non è grave, ma l'algoritmo contrassegnata erroneamente come maligni è. Questo è noto anche come un errore di tipo II. Risultato n. 4 rappresenta l'operazione inversa, un falso positivo. Il tumor è maligni, ma l'algoritmo contrassegnata come grave, un errore di tipo I. Altre informazioni su tipo I ed errori II, consultare l'articolo di Wikipedia ai risultati errati di test statistici bit.ly/2DccUU8.

Utilizzando il tracciato nella figura 5, è possibile determinare che l'algoritmo con l'etichetta tre esistevano maligni come grave, mentre non mislabeling qualsiasi esistevano grave come maligni.

Tre esistevano contrassegnati in modo non corretto
Figura 5 tre contrassegnati in modo non corretto esistevano

Conclusioni

Il modo migliore per un'introduzione rapida esplorazione diversi framework di analisi scientifica dei dati, l'apprendimento e intelligence artificiale è attraverso l'immagine di DSVM in Azure. Non richiede alcuna installazione o configurazione e può essere ridimensionato verso l'alto o verso il basso in base al problema da risolvere. È un ottimo modo per gli utenti interessati a machine learning per avviare subito la sperimentazione. Soprattutto, il DSVM include numerose esercitazioni server Jupyter Notebook sul Framework più diffusi di apprendimento.

In questo articolo, è possibile impostare un DSVM e ha impiegato i primi passaggi in esplorazione il CNTK. Tramite la creazione di un classificatore binario con la regressione logistica e di valori descent con sfumatura Stocastica, eseguito il training un algoritmo per determinare se un tumor è grave o maligni. Anche questo modello si basava su solo due dimensioni e potrebbe non essere pronto per la produzione, si ha ottenuto la comprensione del modo in cui questo problema potrebbe essere affrontato nel mondo reale.


Frank La Vignecomporta la pratica di dati & Analitica Wintellect e CO-host il podcast DataDriven. Il suo blog è regolarmente al FranksWorld.com ed è possibile guardare quest'ultimo nel canale YouTube, "Di Frank mondo TV" (FranksWorld.TV).

Grazie al seguente esperto tecnico per la revisione dell'articolo: Andy Leonard


Viene illustrato in questo articolo nel forum di MSDN Magazine