Продолжаем пересказывать "Верховный алгоритм". За описанным вчера "логическим" подходом следуют "коннекционистский" и "эволюционный" взгляды на машинное обучение.
Коннекционизм основан на правиле Хэбба - между нейронами в мозге человека, которые часто срабатывают вместе, постепенно усиливается связь. Перцептроны (это простая математическая модель нейрона) были популярны в середине XX века, но они справлялись далеко не со всеми поставленными задачами. Интересна связь нейровычислений с термодинамикой - например, машины Больцмана, имитирующие сознание, то спящее, то бодрствующее, и основанные на процессе, напоминающем остывание вещества. Важная составляющая нейронок - логистическая кривая (сигмоида), придающая нелинейность.
Возродились нейронки, когда изобрели градиентный спуск с обратным распространением ошибки - способ обучать одновременно большую систему нейронов. В двухтысячных они уже вовсю распознавали картинки и предсказывали цены акций.
Клетка - система нелинейная, и описать её (в задаче борьбы с раком) может быть удобно как раз нейронкой. Автоэнкодер - нейронка, которая умеет сжато описывать сложные объекты. Взгромоздим их друг на друга побольше, и вот у нас уже глубокое обучение. Но есть вещи, которые легко даются людям, и сложно нейронкам (начиная с базовой логики). Как люди смогли научиться этому?
Представьте себе огромную фабрику роботов, где они хаотично создают сами себя, поколение за поколением. Нечто подобное создал Джон Холланд, когда в пятидесятых годах он описал генетические алгоритмы (хотя первым их описал таки Дарвин). Гены мутируют, скрещиваются, размножаются, подвергаются отбору - всё то же можно делать с алгоритмами, меняя случайные части, комбинируя, копируя, и оставляя самые эффективные. За счёт случайных мутаций и перекомбинаций, такие алгоритмы могут выскакивать из локальных оптимумов, но важно сохранять баланс между поиском принципиально новых решений и улучшением (эксплуатацией) имеющихся.
Представление алгоритмов как деревьев из блоков кода, выращенных генетически, позволило комбинировать их настолько эффективно, что с их помощью начали оптимизировать заводы. Кстати, оказалось, что для генетических алгоритмов рекомбинация не очень важна, и вопрос о роли секса в эволюции остаётся открытым.
ГА хорошо обучают структуру, а нейронки параметры, и неплохо бы их объединять - эдакая ламарковская эволюция. Но и те, и другие непрозрачны, хаотичны, и добиваются результатов лишь случайно. Поэтому дальше мы поговорим о более структурированных подходах к машинному обучению.
#матчасть #weirdMath #machinelearning #верховныйалгоритм #themasteralgorithm #deeplearning #нейросети #geneticalgorithm
Post #138
303