Без заголовка
Есть еще всякие варианты скрещивания learn и search типа Learning to search
Я лично рассматриваю как базовый паттерн такую иерархию понятий: learn - это (очень часто) optimization, а optimization - это search (можно считать что всегда).
Я бы сказал, что инженерия скорее занимаеццо оптимизацией: если у нас есть инженерное воображение и инженерный фкус, то добавив сюда инженерный поиск, получаем инженерную оптимизацию. Хотя тут можно сказать и learn тоже - ибо получив какой-то экспириенс конструирования/оптимизации, мы умеем какие-то задачи делать лучше чем раньше.
Но мне думается что в инженерии основное - это оптимизация (с учетом всеразличных ограничений). Т.е. генерируем варианты и модифицируем их в поисках чего-то лучшего (лучше подходящего под требования).
Я сейчас занимаюсь инженерией МЛ, в том смысле, что разрабатываю методику/технологию решения МЛ задач (в контексте технологии/методики реализации МЛ проектов). Ну и там паттерн learn-optimize-search постоянно на разных уровнях встречается, что намекает нам, что можно туда приплетать опыт из других сфер (и генерить огромное пространство поиска, которое замучаешься перебирать :)).
Само определение МЛ Tom'а Mitchell'а (... performance at tasks in T, as measured by P, improves with experience E) намекает нам что ML есть оптимизация. Ну и обычно как только мы добавляем пространство поиска (в моей технологии - конструируем его), то получаем оптимизационную задачу. Которую обычно решают поисковым алгоритмом (например, градиентным спуском, т.е. перемещаемся в этом пространстве, делая шаги в направлении обратном градиенту).
Конечно, на практике посложнее, ибо мы хотим не просто оптимум целевой функции, а чтобы решение генерализовалось, что мы тестируем на валидационном наборе (метрика), ну и генерим обычно кучу моделей (процесс управляемый через пространство гиперпараметров), ну и вобщем выбираем лучшую модель с точки зрения генерализации. Т.е. опять-таки learn получается как оптимизация посредством поиска.
При строительстве ансамблей картина та же самая, только мы модели не выкидывам, и генерим их немного по другому, но в общем, там тот же поиск и оптимизация.
Байес сюда тоже можно запихнуть, хотя это может получиццо и натянуто, хотя в случае Variational Bayes достаточно прямолинейно возникает оптимизационная задача.
Далее, применение модели (инференс) может проходить в форме оптимизации (и поиска), при этом пространство поиска может быть даже и некислым, так что приходится применять упрощенные методы (как это бывает в structured prediction, всякие там CRF, MRF и проч). В самом простом случае - мультиклассификация, у нас есть несколько классов, допустим у каждого есть вектор-прототип, ну и мы смотрим к кому из них пример ближе. Это ведь тоже оптимизация и поиск. А если кол-во классов очень большое, то тут сразу возникает дерево поиска, ибо там уже у нас log k, вместо k операций.
Регрессию тоже можно рассмотреть как оптимизацию - ибо нас обычно интересует mean или median в качестве точечного прогноза по модели. Ну и эту примитивную оптимизацию можно обобщить (квантильная регрессия к примеру).
Вобщем, подводя итоги, рассматривать МЛ с точки зрения оптимизации/поиска очень удобно в инженерных целях, ибо это применимо сразу на нескольких уровнях:
1 генерация и поиск моделей (часто даже 2-3 уровня: конструирование пространств поиска, перебор разных методов МЛ и поиск гипер-параметров в рамках конкретного метода, еще 1-2 уровня с добавлением ансамблей).
2 оценка параметров (model fit)
3 инференс часто удобно задавать как optimization задачу (и решать явным поиском в сложных случаях)
Удобно в инженерных целях ибо можно сюда приплести алгоритмы поиска/оптимизации из других сфер.