Дисклеймер: на момент написания заметки, я был знаком с The Master Algorithm на уровне описания в ОдО (то есть, примерно никак), но на данный момент я посмотрел часовое видео, где он презентует свои пять типов алгоритмов. Наверное, если бы я посмотрел видео или прочитал книгу раньше, не написал бы заметку.
> а сама их форма – да любая! То есть «ходил по базару, видел разные модели» ничего не даёт, если не понимать, как эти разные модели потом использовать. Разные использования дают разные классификации. Общий принцип тут такой: если не знаешь, как использовать, то и не классифицируй, пользуйся полнотекстовым поиском, не подводи под тип! И дальше: сколько разных целей, столько и разных классификаций будет. Цель же не заявлена!
В дополнение к фразе из книги за которую я зацепился, есть еще соображение из рабочего проекта, где текущее решение – на “классических” алгоритмах, и есть мнение, что “ML тут не подходит”. Но вот под этим “ML”, скорее всего, имеется ввиду чистый Deep Learning, как сейчас модно, а на другие типы алгоритмов/моделей – может быть смотрели, может быть, нет – надо проверять.
Я согласен, что от данной классификации толку нет, например, потому что очень много всего внутри statistical/vote-based, да и вообще, те же интересные эволюционные алгоритмы по этой схеме не классифицируются однозначно, потому что имеют много разнотипных элементов. Спасибо за объяснение.
В разделе ОдО про исследования еще, похоже, подразумевается, что исследования – это не только про нахождение “объяснений”, но и собственно алгоритмов/решений задач (там, где про решение противоречий в СМД и ТРИЗ). Или это уже относится к алгоритмике? Тут в ОдО говорится практически только то, что решения так или иначе берутся “из шума”/“творчеством”: либо эволюционной подстройкой существующих прототипов решений в неком эволюционном процессе, либо прогоном этого шума через автоэнкодер. Тут, мне кажется, классификация алгоритмов обучения (а не любых моделей/алгоритмов) Педро Домингоса очень подходит. Оттуда видно, что решения (или хотя бы догадки) берутся не только из шума: 1) перебором/индукцией, 2) чистой интуицией (условие задачи на вход нейросети – решение на выход, что бы оно ни значило), 3) из шума – это Домингосовские эволюционные алгоритмы, 4) Байесовские сети – не знаю как притянуть, но наверное как-то можно, и, наконец, 5) по аналогии.
Наглядный пример обучения, о котором я думаю – это спортивное программирование. Спортсмен-программист “выучивает” за 10 минут решение – текст программы, имея условия на вход, несколько примеров правильного входа–выхода, и проверяльщика решений – черный ящик. Сами алгоритмы там обычно императивные, интересен процесс поиска решения. Также, хотя это и “тренируемый навык”, в какой-то немалой степени спортивное программирование – это интеллектуальное занятие, потому что оно далеко от чистой интуиции/S1.
В процессе нахожения (выучения) решений в спортивном программировании, кажется, присутствуют все четыре способа нахождения решений: перебор/индукция (из библиотеки заранее выученных шаблонов/приемов), интуиция, решение по аналогии, и даже эволюционные приемы: исправить инициализацию переменной с нуля на единицу, или поправить аналогично наугад в тексте за минуту до конца приема решений, в надежде на то, что программа вдруг пройдет проверку – это классика спортивного программирования, и это иногда срабатывает!