Чудові алгоритми, машинне навчання та відсутність лінійної алгебри


30

Я викладаю передовий курс алгоритмів і хочу включити деякі теми, пов'язані з машинним навчанням, які будуть цікаві моїм студентам. Як результат, я хотів би почути думку людей щодо найбільш цікавих / найбільших алгоритмічних результатів у машинному навчанні. Потенційно складне обмеження полягає в тому, що студенти не матимуть жодних попередніх знань про лінійну алгебру чи інші основні теми машинного навчання.

Це дійсно для того, щоб хвилювати їх щодо цієї теми та дати їм знати, що ML - це потенційно захоплююча дослідницька область для експертів з алгоритмів.

EDIT: Це підсумковий курс бакалаврату (оскільки у нас в Великобританії головне не є аспірантура). Вони заздалегідь виконали принаймні один базовий алгоритм і, мабуть, добре виконали його, щоб обрати передовий наступний курс. Поточний навчальний план прогресивного курсу має такі теми, як ідеальне хешування, фільтри Блюма, дерева Ван Емде Боас, лінійний прог., Бл. алгоритми для NP-важких проблем і т. д. Я не збираюся проводити більше однієї лекції виключно на ML, але якщо щось дійсно має відношення як до курсу алгоритмів, так і до ML, то, звичайно, воно також може бути включене.


1
Будь ласка, уточнюйте дві речі: 1) Це бакалаврат чи аспірантура? Які пов'язані курси (якщо такі є) пройшли? 2) Скільки часу ви хочете присвятити ML?
MS Dousti

3
Хммм, я думаю, лінійна алгебра є необхідним і важливим фундаментальним курсом, принаймні, з боку машинного навчання. і я думаю, що лінійна модель є дуже хорошим вступом до алгоритмів машинного навчання. ви можете подумати про інші алгоритми базового рівня, такі як K-найближчий сусід чи алгоритми логістичної регресії. це може допомогти вам en.wikipedia.org/wiki/List_of_machine_learning_algorithms
Deyaa

1
Можливо, кілька ідей з того, як Хал Дауме навчає машинного навчання - nlpers.blogspot.com/2010/04/how-i-teach-machine-learning.html
Ярослав Булатов

3
Шановний Рафаель, Аврім Блюм зазвичай закінчує свій клас алгоритмів старшого рівня машинним навчанням та кількома спорідненими темами; недавню ітерацію можна знайти за наступним посиланням cs.cmu.edu/~avrim/451f09/index.html , і ви можете отримати більше інформації з його веб-сторінки. Отримавши і TA'd, і взявши цей клас, я можу сказати, що його (та його заключний матеріал) дуже тепло сприймають учні.
матус

1
див., наприклад, генетичні алгоритми або також глибоке навчання
vzn

Відповіді:


29

Ви можете охопити прискорення . Це дуже розумно, легко здійснити, широко використовується на практиці і не потребує особливих необхідних знань для розуміння.


5
Я представив деякі частини опитування Arora et al. ( cs.princeton.edu/~arora/pubs/MWsurvey.pdf ) в класі теорії градусів кілька років тому. Людям здавалося, що це подобається, і я думаю, що для розуміння цього матеріалу вам майже не потрібна інформація.
Дунай

9

Якщо ви просто хочете розкрити їх апетит в одній лекції, може бути найвигіднішим представити потужний додаток. Наприклад, підтримуючі векторні машини та інші алгоритми машинного навчання використовуються в хіміоінформатиці для виявлення наркотиків.

Проблема навчання по суті полягає в тому, що: враховуючи поведінку, яку ми хочемо проявити, хімічна речовина, розробити структуру, яка демонструє таку поведінку, виводячи її з бази даних відомих структур, що виявляють подібну (або різницю) поведінку. Проблема навчання має додаткові зморшки: новий препарат повинен бути «віддалений» у світовій структурі від відомих раніше препаратів, щоб знайти патентне майно.

Одним із джерел є методи кластеризації та їх використання в обчислювальній хімії .


1
Дякую за довідку. Я думав, можливо, викладаю SVM як застосування опуклої оптимізації. Це добре поєднало б частину алгоритмів з частиною ML.
Рафаель

2
як ви охоплюєте SVM без лінійної алгебри?
Лев Рейзін

Я сподівався навчити їх мінімальних передумов для цього у своєму курсі. Можливо, це було занадто оптимістично :-)
Рафаель

Чи є ще важливі приклади, коли векторні машини підтримки - найкращий вибір? Я зауважую, що, наприклад, на змаганнях з караглів вони ніколи не є основною частиною виграшного конкурсу. Принаймні, не те, що я бачив недавно. (Маю на увазі виправити звичайно.)
Лембік

7

K-Means і KNN дуже потужні і не вимагають ніякої лінійної алгебри, крім обчислення відстаней точок.


Зокрема, K-Means - це дуже потужний алгоритм. Він неймовірно ефективний, не маючи доведених меж його об'єктивних функцій, настільки моторошно, що це майже як ефективна поліноміальна складність алгоритму Simplex (незважаючи на реальну експоненціальну складність). Його онлайн-версія корисна також у масштабних додатках даних.
Elliot JJ

5

Друга частина "Нейронних мереж та машинного навчання" Крістофера Бішопа (в MSR) розроблена за алгоритмами в ML. Єпископські підручники зазвичай використовуються для випускників (а пізніше і для студентів) підручників і надзвичайно добре написані.


4

Цей алгоритм використовує графік мінімальних скорочень для класифікації великої кількості незазначених зразків, використовуючи лише невелику кількість мічених зразків.

Її недооцінка. Я пояснив це декільком випадково вибраним студентам, і вони зрозуміли це.

Літ .: Blum, A., & Chawla, S. (2001). Навчання з маркованих та не маркованих даних за допомогою графіків мінкотів.

Самореклама Візуалізація алгоритму на youtube .



1

Алгоритми зміцнення навчання (особливо Q-Learning і SARSA) досить прості для розуміння та дуже потужні для вирішення деяких проблем навчання. Вони не вимагають ніяких передових знань з лінійної алгебри, крім доказів конвергенції та швидкості конвергенції.

Ви можете використовувати добре відоме опитування Littman та ін .: http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/kaelbling96a-html/rl-survey.html


1

Ви можете висвітлити деякі алгоритми, які є класичними або з доброю інтуїцією.

Наприклад, C4.5 і CART, які є класичними алгоритмами дерева рішень.

Ви також можете охопити деякі ансамблеві методи (наприклад, AdaBoost (Boosting), Bagging), які мають дуже хороші показники в реальних програмах.

Крім того, глибоке навчання - це також хороша тема, бо дуже гаряче.



0

Рідні байеси та байєсівські алгоритми дерева рішень досить легко уявити, ніж починати з нейтральної мережі або svm


0

Генетичне програмування дійсно круто. Він використовує натхнення з біології і може бути застосований до величезної кількості проблем (наприклад, проблема n-queens і TSP).

Це не вимагає глибоких математичних навичок.

EDIT: Це вимагає лише способу оцінити, наскільки хорошим є потенційне рішення. Це можна використовувати, наприклад, для відгадування правила за рядом чисел, знаходження мінімумів / максимумів для багатовимірних задач та пошуку величезних просторів параметрів. Він підходить, коли вас не цікавить оптимальне рішення, але коли достатньо хорошого рішення буде. Я вважаю, що це було використано для пошуку хороших стратегій для ігор (створення замовлень у Starcraft 2 та оптимальної гри в Маріо).


Чи є якась важлива проблема, для якої це найкращий метод? Я маю на увазі, це, звичайно, не для TSP, наприклад.
Лембік
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.