J'enseigne un cours d'algorithmes avancés et j'aimerais inclure quelques sujets liés à l'apprentissage automatique qui intéresseront mes étudiants. En conséquence, j'aimerais entendre l'opinion des gens sur les résultats algorithmiques actuellement les plus intéressants / les plus importants en apprentissage automatique. La contrainte potentiellement délicate est que les élèves n'auront aucune connaissance préalable particulière de l'algèbre linéaire ou des autres sujets principaux de l'apprentissage automatique.
C'est vraiment pour les exciter sur le sujet et pour leur faire savoir que le ML est un domaine de recherche potentiellement passionnant pour les experts en algorithmes.
EDIT: Il s'agit d'un cours de premier cycle de dernière année (car nous n'avons pas de cours d'études supérieures au Royaume-Uni dans l'ensemble). Ils auront suivi au moins un cours d'algorithmes de base au préalable et auront vraisemblablement bien réussi en ayant choisi le cours de suivi avancé. Le programme actuel du cours avancé comprend des sujets tels que le hachage parfait, les filtres Bloom, les arbres van Emde Boas, le prog linéaire, env. algorithmes pour les problèmes NP-difficiles, etc. Je n'ai pas l'intention de passer plus d'une conférence exclusivement sur le ML, mais si quelque chose est vraiment pertinent à la fois pour un cours d'algorithmes et pour un cours de ML, alors bien sûr, cela pourrait aussi être inclus.
Réponses:
Vous pouvez couvrir le boosting . Il est très intelligent, facile à mettre en œuvre, est largement utilisé dans la pratique et ne nécessite pas beaucoup de connaissances préalables pour être compris.
la source
Si vous voulez simplement aiguiser leur appétit en une seule conférence, il pourrait être très excitant de présenter une application puissante. Par exemple, les machines à vecteurs de support et d'autres algorithmes d'apprentissage automatique sont utilisés en chimio-informatique pour la découverte de médicaments.
Le problème d'apprentissage est essentiellement: étant donné un comportement que nous voulons qu'un produit chimique expose, concevoir une structure qui présente ce comportement en le déduisant d'une base de données de structures connues qui présentent des comportements similaires (ou différents). Le problème d'apprentissage a une ride supplémentaire: le nouveau médicament doit être "éloigné" dans sa structure mondiale des médicaments précédemment connus, afin de fonder un domaine de brevet.
Une source est les méthodes de clustering et leurs utilisations en chimie computationnelle .
la source
Les K-Means et KNN sont très puissants et ne nécessitent aucune algèbre linéaire sauf le calcul des distances de points.
la source
La deuxième partie de "Neural Networks and Machine Learning" de Christopher Bishop (au MSR) porte sur les algorithmes en ML. Les manuels de Bishop sont couramment utilisés pour les manuels des cycles supérieurs (et plus tard du premier cycle) et sont extrêmement bien écrits.
la source
Cet algorithme utilise des coupes minimales de graphe pour classer une grande quantité d'échantillons non étiquetés en utilisant seulement une petite quantité d'échantillons étiquetés.
Son amical de premier cycle. J'ai expliqué cela à quelques étudiants de premier cycle choisis au hasard et ils l'ont compris.
Réf: Blum, A., et Chawla, S. (2001). Apprendre à partir de données étiquetées et non étiquetées à l'aide de raccourcis graphiques.
Auto promotion Visualisation de l'algorithme sur youtube .
la source
Je constate que la maximisation des attentes (EM) n'a pas été mentionnée, et elle est certainement "là-haut" dans le top 10: http://www.cs.uvm.edu/~icdm/algorithms/10Algorithms-08.pdf .
la source
Les algorithmes d'apprentissage par renforcement (en particulier Q-Learning et SARSA) sont assez simples à comprendre et très puissants pour résoudre certains problèmes d'apprentissage. Ils ne nécessitent aucune connaissance avancée en algèbre linéaire, à l'exception de la preuve de convergence et du taux de convergence.
Vous pouvez utiliser l'enquête bien connue de Littman et al.: Http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/kaelbling96a-html/rl-survey.html
la source
Vous pouvez couvrir certains algorithmes classiques ou avec une bonne intuition.
Par exemple, C4.5 et CART, qui sont des algorithmes d'arbre de décision classiques.
Vous pouvez également couvrir certaines méthodes d'ensemble (par exemple, AdaBoost (Boosting), Bagging), qui ont de très bonnes performances dans des applications du monde réel.
En outre, l'apprentissage en profondeur est également un bon sujet, car il fait très chaud.
la source
Bayes natifs et réseau bayésien, les algorithmes d'arbre de décision sont assez faciles à visualiser que de démarrer avec un réseau neutre ou svm
la source
La programmation génétique est vraiment cool. Il utilise l'inspiration de la biologie et peut être appliqué à un grand nombre de problèmes (par exemple, problème des n-reines et TSP).
Il ne nécessite pas de compétences mathématiques approfondies.
EDIT: Il suffit d'un moyen d'estimer la qualité d'une solution potentielle. Il peut être utilisé, par exemple, pour deviner la règle derrière une série de nombres, trouver des minima / maxima pour résoudre des problèmes à plusieurs variables et rechercher des espaces de paramètres énormes. Il convient lorsque vous n'êtes pas intéressé par la solution optimale, mais lorsqu'une solution suffisamment bonne fera l'affaire. Je crois que cela a été utilisé pour trouver de bonnes stratégies pour les jeux (construire des ordres dans Starcraft 2 et un jeu optimal dans Mario).
la source