Dou aulas de algoritmos avançados e gostaria de incluir alguns tópicos relacionados ao aprendizado de máquina que serão do interesse dos meus alunos. Como resultado, eu gostaria de ouvir as opiniões das pessoas sobre os resultados algorítmicos atualmente mais interessantes / maiores no aprendizado de máquina. A restrição potencialmente complicada é que os alunos não terão nenhum conhecimento prévio específico de álgebra linear ou outros tópicos principais no aprendizado de máquina.
Isso realmente os excita sobre o assunto e informa que o ML é uma área de pesquisa potencialmente interessante para especialistas em algoritmos.
EDIT: Este é um curso de graduação do último ano (já que não temos cursos de pós-graduação no Reino Unido). Eles terão realizado pelo menos um curso básico de algoritmos e presumivelmente se saíram bem ao escolher o curso avançado de acompanhamento. O currículo atual do curso avançado inclui tópicos como hash perfeito, filtros Bloom, árvores van Emde Boas, programa linear, aprox. algoritmos para problemas difíceis de NP etc. Não pretendo passar mais de uma palestra exclusivamente em ML, mas se algo for realmente relevante tanto para um curso de algoritmos quanto para um de ML, é claro que também poderia ser incluído.
Respostas:
Você pode cobrir o aumento . É muito inteligente, fácil de implementar, é amplamente utilizado na prática e não requer muito conhecimento prévio para entender.
fonte
Se você deseja apenas estimular o apetite em uma única palestra, pode ser mais emocionante apresentar uma aplicação poderosa. Por exemplo, máquinas de vetores de suporte e outros algoritmos de aprendizado de máquina são usados na quimioinformática para descoberta de medicamentos.
O problema de aprendizagem é essencialmente: dado um comportamento que queremos que um produto químico exiba, crie uma estrutura que exiba esse comportamento deduzindo-o de um banco de dados de estruturas conhecidas que exibem comportamentos semelhantes (ou diferentes). O problema do aprendizado tem uma ruga extra: o novo medicamento precisa estar "distante" na estrutura global dos medicamentos anteriormente conhecidos, a fim de fundar uma patente.
Uma fonte é Métodos de agrupamento e seus usos na química computacional .
fonte
K-Means e KNN são muito poderosos e não requerem Álgebra Linear, exceto o cálculo das distâncias dos pontos.
fonte
A segunda parte de "Redes Neurais e Aprendizado de Máquina", de Christopher Bishop (na MSR), trata de algoritmos em ML. Os livros didáticos de Bishop são comumente usados para livros de pós-graduação (e mais tarde na graduação) e são extremamente bem escritos.
fonte
Esse algoritmo usa cortes mínimos de gráfico para classificar grande quantidade de amostras não rotuladas usando apenas uma pequena quantidade de amostras rotuladas.
Sua graduação amigável. Eu expliquei isso para alguns graduandos escolhidos aleatoriamente e eles entenderam.
Ref: Blum, A., & Chawla, S. (2001). Aprendendo com dados rotulados e não rotulados usando atalhos de gráfico.
Auto-promoção Visualização do algoritmo no youtube .
fonte
Vejo que a Expectation Maximization (EM) não foi mencionada e certamente está "lá em cima" no top 10: http://www.cs.uvm.edu/~icdm/algorithms/10Algorithms-08.pdf .
fonte
Os algoritmos de aprendizado por reforço (especialmente Q-Learning e SARSA) são bastante simples de entender e muito poderosos para resolver alguns problemas de aprendizado. Eles não exigem nenhum conhecimento avançado em álgebra linear, exceto prova de convergência e taxa de convergência.
Você pode usar a bem conhecida pesquisa de Littman e outros: http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/kaelbling96a-html/rl-survey.html
fonte
Você pode cobrir alguns algoritmos clássicos ou com boa intuição.
Por exemplo, C4.5 e CART, que são algoritmos clássicos de árvore de decisão.
Você também pode abordar alguns métodos de ensemble (por exemplo, AdaBoost (Boosting), Bagging), que têm um desempenho muito bom em aplicativos do mundo real.
Além disso, o aprendizado profundo também é um bom tópico, porque é muito quente.
fonte
Bayes nativos e rede bayesiana, algoritmos de árvore de decisão são bastante fáceis de visualizar do que começar com uma rede neutra ou svm
fonte
A programação genética é muito legal. Ele se inspira na biologia e pode ser aplicado a um grande número de problemas (por exemplo, problema das n rainhas e TSP).
Não requer habilidades matemáticas profundas.
EDIT: Requer apenas uma maneira de estimar quão boa é uma solução em potencial. Pode ser usado, por exemplo, para adivinhar a regra por trás de uma série de números, localizando mínimos / máximos para problemas com diversas variáveis e pesquisando espaços de parâmetros enormes. É adequado quando você não está interessado na solução ideal, mas quando uma solução boa o suficiente serve. Acredito que isso tenha sido usado para encontrar boas estratégias para jogos (ordens de construção em Starcraft 2 e jogabilidade ideal em Mario).
fonte