Grandi algoritmi, apprendimento automatico e nessuna algebra lineare


30

Insegno un corso di algoritmi avanzati e vorrei includere alcuni argomenti relativi all'apprendimento automatico che saranno di interesse per i miei studenti. Di conseguenza, vorrei sentire l'opinione della gente sui risultati algoritmici più interessanti / attualmente più interessanti nell'apprendimento automatico. Il vincolo potenzialmente complicato è che gli studenti non avranno alcuna particolare conoscenza precedente dell'algebra lineare o degli altri argomenti principali nell'apprendimento automatico.

Questo è davvero per entusiasmarli sull'argomento e far loro sapere che ML è un'area di ricerca potenzialmente eccitante per gli esperti di algoritmi.

EDIT: Questo è un corso di laurea dell'ultimo anno (in quanto non abbiamo corsi di laurea nel Regno Unito in generale). Avranno già svolto almeno un corso di algoritmi di base e presumibilmente fatto bene in esso per aver scelto il corso di follow-up avanzato. L'attuale programma del corso avanzato ha argomenti come hashing perfetto, filtri Bloom, alberi di Van Emde Boas, prog lineare, ca. algoritmi per problemi NP-difficili ecc. Non intendo spendere più di una lezione esclusivamente su ML ma se qualcosa è veramente rilevante sia per un corso di algoritmi che per uno di ML, ovviamente potrebbe anche essere incluso.


1
Per favore, chiarisci due cose: 1) È un corso di laurea o un corso di laurea? Quali corsi correlati (se presenti) hanno superato? 2) Quanto tempo vuoi dedicare alla ML?
MS Dousti,

3
hmmm Penso che l'algebra lineare sia un must e un corso di base importante, almeno per quanto riguarda l'apprendimento automatico. e penso che il modello lineare sia un'ottima introduzione agli algoritmi di machine learning. potresti pensare ad altri algoritmi di livello base come il vicino K-più vicino o algoritmi di regressione logistica. questo potrebbe aiutarti en.wikipedia.org/wiki/List_of_machine_learning_algorithms
Deyaa

1
Forse alcune idee da come Hal Daume insegna Machine Learning - nlpers.blogspot.com/2010/04/how-i-teach-machine-learning.html
Yaroslav Bulatov

3
Caro Raffaele, Avrim Blum di solito conclude la sua lezione di algoritmi di livello senior con apprendimento automatico e alcuni argomenti correlati; una recente iterazione è al seguente link cs.cmu.edu/~avrim/451f09/index.html e puoi ottenere maggiori informazioni dalla sua pagina web. Avendo entrambi TA e preso questa lezione, posso dire che (e il suo materiale conclusivo) sono stati accolti calorosamente dagli studenti.
matus,

1
vedi ad esempio algoritmi genetici o anche apprendimento profondo
vzn

Risposte:


29

Puoi coprire il potenziamento . È molto intelligente, facile da implementare, ampiamente utilizzato nella pratica e non richiede molte conoscenze preliminari per capire.


5
Ho presentato alcune parti del sondaggio di Arora et al. ( cs.princeton.edu/~arora/pubs/MWsurvey.pdf ) nella classe di teoria dei laureati qualche anno fa. Alla gente sembrava piacere e penso che tu non abbia quasi bisogno di uno sfondo per capire questo materiale.
Danu,

9

Se vuoi solo stimolare il loro appetito in una singola lezione, potrebbe essere molto eccitante presentare una potente applicazione. Ad esempio, supportano le macchine vettoriali e altri algoritmi di apprendimento automatico, vengono utilizzati in chemioinformatica per la scoperta di farmaci.

Il problema di apprendimento è essenzialmente: dato un comportamento che vogliamo che una sostanza chimica mostri, escogita una struttura che mostri quel comportamento deducendolo da un database di strutture conosciute che mostrano comportamenti simili (o diversi). Il problema dell'apprendimento ha una ruga in più: il nuovo farmaco deve essere "distante" nella struttura globale dai farmaci precedentemente noti, al fine di fondare una proprietà brevettuale.

Una fonte sono i metodi di clustering e i loro usi nella chimica computazionale .


1
Grazie per il riferimento. Pensavo forse di insegnare le SVM come un'applicazione di ottimizzazione convessa. Ciò metterebbe bene in relazione la parte degli algoritmi con la parte ML.
Raffaello,

2
come si coprono gli SVM senza algebra lineare?
Lev Reyzin

Speravo di insegnare loro i requisiti minimi per questo nel mio corso. Forse era troppo ottimista :-)
Raffaello

Ci sono ancora esempi importanti in cui le macchine vettoriali di supporto sono la scelta migliore? Ho notato che nelle competizioni kaggle, ad esempio, non sono mai la parte principale di un ingresso vincente. Almeno non quello che ho visto di recente. (Sto per essere corretto, ovviamente.)
Lembik,

7

K-Means e KNN sono molto potenti e non richiedono alcuna algebra lineare tranne il calcolo delle distanze dei punti.


K-Means in particolare è un algoritmo molto potente. È incredibilmente efficace nonostante non abbia dimostrato limiti alle prestazioni della sua funzione oggettiva, a un livello così spettrale che è quasi come l'effettiva complessità polinomiale dell'algoritmo Simplex (nonostante la reale complessità esponenziale). La sua versione online è utile anche in applicazioni dati su larga scala.
Elliot JJ,

5

La seconda parte di "Neural Networks and Machine Learning" di Christopher Bishop (presso MSR) riguarda gli algoritmi in ML. I libri di testo di Bishop sono comunemente usati per i libri di testo laureati (e in seguito universitari) e sono estremamente ben scritti.


4

Questo algoritmo utilizza tagli minimi grafici per classificare una grande quantità di campioni senza etichetta utilizzando solo una piccola quantità di campioni etichettati.

È amichevole agli studenti. Ho spiegato questo a pochi studenti scelti casualmente e l'hanno capito.

Rif: Blum, A., & Chawla, S. (2001). Imparare da dati etichettati e senza etichetta usando i tagli grafici.

Autopromozione Visualizzazione dell'algoritmo su youtube .




1

Puoi coprire alcuni algoritmi che sono classici o con una buona intuizione.

Ad esempio, C4.5 e CART, che sono algoritmi classici dell'albero delle decisioni.

Puoi anche includere alcuni metodi di ensemble (ad es. AdaBoost (Boosting), Bagging), che hanno prestazioni molto buone nelle applicazioni del mondo reale.

Inoltre, il deep learning è anche un buon argomento, perché fa molto caldo.



0

Bayes nativi e rete bayesiana, gli algoritmi dell'albero decisionale sono abbastanza facili da visualizzare che iniziare con una rete neutra o svm


0

La programmazione genetica è davvero interessante. Utilizza l'ispirazione dalla biologia e può essere applicato a un gran numero di problemi (ad esempio, problema n-queens e TSP).

Non richiede profonde abilità matematiche.

EDIT: richiede solo un modo per stimare quanto sia valida una potenziale soluzione. Può essere usato, ad esempio, per indovinare la regola dietro una serie di numeri, trovare i minimi / massimi per problemi a più variabili e cercare enormi spazi di parametri. È adatto quando non sei interessato alla soluzione ottimale, ma quando farà una soluzione abbastanza buona. Credo che questo sia stato usato per trovare buone strategie per i giochi (costruisci ordini in Starcraft 2 e gioco ottimale in Mario).


C'è qualche problema importante per il quale è il metodo migliore? Voglio dire, certamente non è per TSP per esempio.
Lembik,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.