11

Ho imparato molto sull'utilizzo di grafici per l'apprendimento automatico guardando i video di Christopher Bishops (http://videolectures.net/mlss04_bishop_gmvm/). Lo trovo molto interessante e ne guardo alcuni altri nelle stesse categorie (machine learning/graph) ma mi chiedevo se qualcuno avesse qualche suggerimento su come imparare di più?Consigli per l'utilizzo della teoria dei grafici nell'apprendimento automatico?

Il mio problema è che, sebbene i video abbiano fornito un ottimo livello di comprensione, non ho ancora molte competenze pratiche. Ho letto il libro dei Vescovi su machine learning/patterns e il libro di Norvig sull'AI, ma entrambi sembrano non toccare molto i grafici specifici. Con l'emergere di motori di ricerca e social networking, penserei che l'apprendimento automatico sui grafici sarebbe popolare.

Se possibile, qualcuno può suggerire una risorsa da cui imparare? (Sono nuovo in questo campo e lo sviluppo è un hobby per me, quindi mi dispiace in anticipo se c'è una risorsa super ovvia da cui imparare. Ho provato i siti di Google e università).

Grazie in anticipo!

risposta

9

MacArthur destinatario Genius Grant e professore di Stanford Daphne Koller co-autore di un libro di testo definitivo sulle reti bayesiane intitolato Probabalistic Graphical Models, che contiene un'introduzione rigorosa per rappresentare graficamente la teoria applicata alla IA. Potrebbe non corrispondere esattamente a quello che stai cercando, ma nel suo campo è molto apprezzato.

+0

Solo per aggiungere alla tua raccomandazione libro grande. Gli autori (prof. Stanford) hanno una lezione gratuita a partire da quest'anno: http://www.pgm-class.org/ – Lostsoul

3

È possibile frequentare le lezioni on-line gratuito a Stanford per l'apprendimento della macchina e l'intelligenza artificiale:

https://www.ai-class.com/
http://www.ml-class.org/

Le classi non sono semplicemente concentrati sulla teoria dei grafi, ma comprendono un'introduzione più vasta in campo e ti daranno una buona idea di come e quando dovresti applicare quale algoritmo. Capisco che tu abbia letto i libri introduttivi su AI e ML, ma penso che i corsi online ti forniranno molti esercizi che puoi provare.

15

In primo luogo, che vi consiglio vivamente il libro Social Network Analysis for Startups da Maksim Tsvetovat e Alexander Kouznetsov. Un libro come questo è una manna dal cielo per i programmatori che hanno bisogno di acquisire rapidamente una fluidità di base in una specifica disciplina (in questo caso la teoria dei grafi) in modo che possano iniziare a scrivere codice per risolvere i problemi in questo dominio. Entrambi gli autori sono teorici del grafo accademico, ma il pubblico previsto del loro libro è programmatore. Quasi tutti i numerosi esempi presentati nel libro sono in python usando la libreria networkx.

In secondo luogo, per i progetti che avete in mente, due tipi di librerie sono molto utili, se non indispensabili:

  • grafico di analisi: ad esempio, l'eccellente networkx (python), oppure igraph (python, R, et. al.) sono due che posso raccomandare altamente; e

  • grafico di rendering: l'eccellente graphViz, che può essere utilizzato autonomo dalla riga di comando, ma più probabilmente si vuole utilizzarlo come una libreria; ci sono attacchi graphviz in tutte le principali lingue (ad esempio, per Python ci sono almeno tre io sappia, anche se pygraphviz è la mia preferenza, per la R c'è rgraphviz che è parte della suite bioconductor pacchetto). Rgraphviz ha una documentazione eccellente (vedi in particolare la vignetta inclusa nel pacchetto).

È molto facile da installare e cominciare a sperimentare con queste librerie e in particolare il loro utilizzo

  • imparare all'essenziale grafico lessico teorico e unità di analisi (ad esempio, distribuzione sequenza gradi, nodi traversali, grafico operatori);

  • per distinguere nodi critici in un grafico (ad es. Centralità del grado, centralità dell'autovettore, assortimento); e

  • per identificare le sottostrutture del grafico prototipo (ad esempio, struttura bipartitica, triangoli , cicli, cricche, cluster, comunità e nuclei).

il valore di usare una libreria grafo-analisi per comprendere rapidamente questi elementi essenziali della teoria dei grafi è che per la maggior parte v'è una mappatura 1: 1 tra le concetti ho appena citato e funzioni nella libreria (networkx o igraph).

Ad esempio, è possibile generare rapidamente due grafici casuali di dimensioni uguali (numero di nodo), renderli e quindi visualizzarli, quindi calcolare facilmente per esempio la sequenza di gradi media o la centralità di interferenza per entrambi e osservatore di prima mano come il valore di questi parametri influenza la struttura di un grafico.

W/r/t la combinazione di tecniche Teoriche ML e Graph, ecco la mia esperienza personale limitata. Io uso ML nel mio lavoro quotidiano e nella teoria dei grafi meno spesso, ma raramente insieme. Questa è solo un'osservazione empirica limitata alla mia esperienza personale, quindi il fatto di non aver trovato un problema in cui mi è sembrato naturale combinare tecniche in questi due domini. Molto spesso l'analisi teorica del grafico è utile nel punto cieco di ML, che è la disponibilità di una quantità notevole di dati di addestramento etichettati - le tecniche ML supervisionate dipendono fortemente da questo.

Una classe di problemi per illustrare questo punto è rilevamento/previsione di frodi online. Non è quasi mai possibile raccogliere dati (ad es. Set di transazioni online attribuite a un particolare utente) che è possibile separare con ragionevole certezza e etichettare come "account fraudolento". Se fossero particolarmente intelligenti ed efficaci, dichiarerai erroneamente "legittimi" e per quelli per i quali è stata sospettata la frode, molto spesso la diagnostica di primo livello (ad es., ulteriori verifiche di identificazione o un periodo di attesa maggiore per incassare) sono spesso sufficienti a far cessare ulteriori attività (che consentirebbe una classificazione definita). Infine, anche se in qualche modo riesci a raccogliere un set di dati ragionevolmente privo di rumore per addestrare il tuo algoritmo ML, sarà certamente seriamente sbilanciato (cioè, molto più punti "legittimi" di "frodi"); questo problema può essere gestito con la pre-elaborazione delle statistiche (ricampionamento) e con la regolazione degli algoritmi (ponderazione), ma è comunque un problema che probabilmente peggiorerà la qualità dei risultati.

Così mentre non sono mai stato in grado di utilizzare con successo le tecniche ML per questi tipi di problemi, in almeno due casi, ho usato la teoria dei grafi con un certo successo - nell'istanza più recente, applicando un modello adattato da il progetto di un gruppo di Carnegie Mellon inizialmente diretto a detection of online auction fraud on ebay.

1

Anche se non corrisponde esattamente a ciò che si sta cercando, textgraphs è un workshop incentrato sul collegamento tra teoria dei grafi e elaborazione del linguaggio naturale. Here è un collegamento. Credo che l'officina abbia anche generato il libro this.