Prowadzę kurs zaawansowanych algorytmów i chciałbym uwzględnić niektóre tematy związane z uczeniem maszynowym, które zainteresują moich studentów. W związku z tym chciałbym usłyszeć opinie ludzi na temat najbardziej interesujących / największych wyników algorytmicznych w uczeniu maszynowym. Potencjalnie trudnym ograniczeniem jest to, że uczniowie nie będą mieli żadnej konkretnej wcześniejszej wiedzy na temat algebry liniowej ani innych głównych tematów uczenia maszynowego.
To naprawdę ekscytuje ich tematem i informuje, że ML jest potencjalnie ekscytującym obszarem badań dla ekspertów w dziedzinie algorytmów.
EDYCJA: To jest ostatni rok studiów licencjackich (ponieważ nie mamy kursów magisterskich w Wielkiej Brytanii). Zrobili wcześniej co najmniej jeden podstawowy kurs algorytmów i prawdopodobnie dobrze w nim wybrali, aby wybrać zaawansowany kurs kontrolny. Aktualny program zaawansowanego kursu obejmuje takie tematy, jak haszowanie idealne, filtry Blooma, drzewa van Emde Boasa, program liniowy, ok. algorytmy dla problemów NP-trudnych itp. Nie zamierzam spędzać więcej niż jednego wykładu wyłącznie na ML, ale jeśli coś jest naprawdę istotne zarówno dla kursu algorytmów, jak i ML, to oczywiście można je również uwzględnić.
źródło
Odpowiedzi:
Możesz pokryć wzmocnienie . Jest bardzo sprytny, łatwy do wdrożenia, jest szeroko stosowany w praktyce i nie wymaga dużej wiedzy wstępnej do zrozumienia.
źródło
Jeśli chcesz tylko zwiększyć ich apetyt w jednym wykładzie, najbardziej ekscytujące może być zaprezentowanie potężnej aplikacji. Na przykład maszyny wektorów pomocniczych i inne algorytmy uczenia maszynowego są wykorzystywane w chemoinformatyce do odkrywania leków.
Problem uczenia się zasadniczo polega na tym: biorąc pod uwagę zachowanie, które chcemy, aby substancja chemiczna wykazywała, opracuj strukturę, która wykazuje to zachowanie, dedukując ją z bazy danych znanych struktur, które wykazują podobne (lub niepodobne) zachowania. Problem uczenia się ma dodatkowe zmarszczki: nowy lek musi być „odległy” w globalnej strukturze od znanych wcześniej leków, aby założyć patent.
Jednym ze źródeł są metody grupowania i ich zastosowania w chemii obliczeniowej .
źródło
Środki K i KNN są bardzo potężne i nie wymagają żadnej algebry liniowej, z wyjątkiem obliczania odległości punktów.
źródło
Druga część „Sieci neuronowych i uczenia maszynowego” Christophera Bishopa (w MSR) dotyczy algorytmów w ML. Podręczniki biskupa są powszechnie używane do podręczników dla absolwentów (a później studentów) i są wyjątkowo dobrze napisane.
źródło
Ten algorytm wykorzystuje minimalne cięcia na wykresie, aby sklasyfikować dużą liczbę próbek nieznakowanych przy użyciu tylko niewielkiej ilości próbek oznakowanych.
Jest przyjazny dla studentów. Wyjaśniłem to kilku losowo wybranym studentom i oni to zrozumieli.
Patrz: Blum, A. i Chawla, S. (2001). Uczenie się na podstawie danych oznaczonych i nieznakowanych przy użyciu skrótów grafowych.
Autopromocja Wizualizacja algorytmu na youtube .
źródło
Widzę, że nie wspomniano o Expectation Maximization (EM), a na pewno jest to „tam” w pierwszej dziesiątce: http://www.cs.uvm.edu/~icdm/algorithms/10Algorithms-08.pdf .
źródło
Algorytmy uczenia się przez zbrojenie (szczególnie Q-Learning i SARSA) są dość proste do zrozumienia i bardzo skuteczne w rozwiązywaniu niektórych problemów uczenia się. Nie wymagają żadnej zaawansowanej wiedzy z zakresu algebry liniowej, z wyjątkiem dowodu zbieżności i współczynnika zbieżności.
Możesz skorzystać ze znanej ankiety Littmana i in .: http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/kaelbling96a-html/rl-survey.html
źródło
Możesz omówić niektóre algorytmy, które są klasyczne lub mają dobrą intuicję.
Na przykład C4.5 i CART, które są klasycznymi algorytmami drzewa decyzyjnego.
Możesz także omówić niektóre metody zespołowe (np. AdaBoost (Boosting), Bagging), które mają bardzo dobrą wydajność w rzeczywistych zastosowaniach.
Ponadto głębokie uczenie się jest również dobrym tematem, ponieważ jest bardzo gorące.
źródło
Natywne bayes i sieć bayesowska, algorytmy drzewa decyzyjnego są dość łatwe do wizualizacji niż rozpoczynanie od neutralnej sieci lub svm
źródło
Programowanie genetyczne jest naprawdę fajne. Wykorzystuje inspirację z biologii i można go zastosować do wielu problemów (na przykład problemu n-królowych i TSP).
Nie wymaga głębokich umiejętności matematycznych.
EDYCJA: Wymaga tylko sposobu oszacowania, jak dobre jest potencjalne rozwiązanie. Można go na przykład użyć do odgadnięcia reguły za szeregiem liczb, znajdowania minimów / maksimów w przypadku problemów z wieloma odmianami i wyszukiwania ogromnych przestrzeni parametrów. Jest odpowiedni, gdy nie interesuje Cię optymalne rozwiązanie, ale gdy wystarczy dobre rozwiązanie. Uważam, że wykorzystano to do znalezienia dobrych strategii do gier (budowanie zamówień w Starcraft 2 i optymalna gra w Mario).
źródło