Давайте посмотрим на будущее через 30 лет. Давайте будем оптимистичными и предположим, что области, связанные с машинным обучением, продолжают развиваться так же быстро, как мы видели за последние 10 лет. Это было бы здорово, но какова будет роль традиционной алгоритмики в таком будущем?
Здесь под «традиционной алгоритмикой» я подразумеваю обычный процесс, которому мы следуем в TCS: формализовать четко определенную вычислительную задачу , спроектировать алгоритмы для решения проблемы и доказать формальные гарантии производительности .
Теперь , каковы области применения , в которых мы должны использовать традиционный дизайн и анализ алгоритма и в будущем, и весьма маловероятно , что любые успехи машинного обучения сделают традиционную алгоритмика в основном не имеет значение?
Поначалу это может показаться глупым вопросом: конечно, в будущем нам потребуется возможность сортировки, поиска, индексации и т. Д.! Конечно, нам нужно уметь эффективно выполнять преобразования Фурье, умножать большие матрицы, находить кратчайшие пути, решать задачи линейной оптимизации!
Но опять же, как только вы начнете присматриваться к приложениям, в которых мы традиционно используем алгоритмы, которые мы разрабатываем, совсем не ясно, что традиционный дизайн и анализ алгоритмов - правильный ответ на такие проблемы: в приложениях, связанных с поиском , обычно мы заинтересованы в том, чтобы найти что-то, что близко соответствует человеку в каком-то смутном неопределенном смысле (например, семантическое сходство), а не то, что является оптимальным в некотором математическом смысле (например, минимальное расстояние редактирования). В приложениях, связанных с планированием маршрутаОбычно мы заинтересованы в поиске хороших маршрутов на основе примеров (например, другие люди предпочитают это), а не маршрутов, которые являются оптимальными в некотором математическом смысле (например, кратчайшее расстояние или самая низкая цена). И если у вас есть какой-то нечеткий, нечетко выраженный человеческий компонент на картинке, возможно, нам лучше научить компьютер давать хорошие ответы на примерах, чем пытаться позволить исследователю TCS придумать с формальной вычислительной проблемой, которую мы можем решить с помощью традиционного алгоритма проектирования и анализа.
Итак, каковы области применения (предпочтительно реальные и прямые промышленные приложения), в которых совершенно ясно, что то, что мы делали в алгоритмике в прошлом, также будет правильным (и единственным возможным) способом достижения прогресса в будущее?
Алгоритмы, которые используются в качестве подпрограмм в методах машинного обучения, выглядят как очевидный кандидат на будущее, но это сильно зависит от конкретной технологии машинного обучения, которую мы используем, и, как мы видели в последние десять лет или около того, это может быстро измениться ,
источник
Ответы:
Это вопрос, который преследует меня в последнее время, поэтому я рад, что вы задали его.
Тем не менее, я менее заинтересован в классификации областей применения, для которых машинное обучение будет доминировать в вычислительном подходе, чем в влиянии на прогресс в области (традиционных) алгоритмов. Какого рода исследования "человеческих алгоритмов" нас еще заинтересуют через 30 лет? Надо признать, что на этот вопрос сложнее ответить в целом, потому что именно приложение определяет, какое качество результата требуется.
Я думаю, что алгоритмы перечисления будут в числе выживших. По-прежнему будет необходимо проверять все входные данные для чипа или проводить исчерпывающий поиск. Специфичное для объекта внимание, тонко настроенный дизайн, необходимый для создания каждого экземпляра объекта ровно (или хотя бы) один раз; и усиление во время выполнения любого потраченного впустую усилия (может быть экспоненциальное число случаев, как функция описания объекта) - эти факторы заставляют меня скептически относиться к тому, что универсальный автоматизированный процесс обучения может соответствовать умному, Специально разработанное решение в этой области.
источник
Проблема с решениями машинного обучения заключается в том, что нет способа узнать, действительно ли они вычислили то, что вы хотели.
Я бы ожидал, что они вступят во владение во всех областях, где неправильный результат не является катастрофическим (т. Е. Везде, где мы в настоящее время используем эвристику), или результат может быть легко проверен (проблемы поиска, для которых, как вы знаете, существует решение (потому что проверка «там») нет решения "может быть трудно)).
Для остальных областей я бы ожидал, что алгоритмы будут проверяться формально (например, с использованием Coq / Gallina) все чаще и чаще. Хотелось бы надеяться, что машинное обучение в конечном итоге сделает проверку данных в таких системах такой же простой, как на бумаге (или даже проще). Это может даже привести к тому, что люди только напишут спецификацию, а алгоритм и подтверждение его правильности будут найдены с помощью машинного обучения. (Обратите внимание, что сам алгоритм не использует машинное обучение, но он и его доказательства правильности были найдены с помощью машинного обучения)
Таким образом, мы можем писать только корректоров, спецификации программ и алгоритмы машинного обучения.
источник