Давайте подивимось на майбутнє через 30 років. Будьмо оптимістичними та припустимо, що сфери, пов'язані з машинним навчанням, розвиваються так само швидко, як і те, що ми спостерігали за останні 10 років. Це було б чудово, але яка тоді буде роль традиційної алгоритміки в такому майбутньому?
Тут під «традиційною алгоритмом» я посилаюсь на звичайний процес, який ми дотримуємося в TCS: формалізувати чітко визначену обчислювальну задачу , розробити алгоритми вирішення проблеми та довести формальні гарантії ефективності .
Тепер, які сфери застосувань, в яких ми також повинні використовувати традиційний алгоритм проектування та аналізу в майбутньому, і малоймовірно, що будь-які досягнення машинного навчання зроблять традиційні алгоритми здебільшого неактуальними?
Спочатку це може здатися дурним питанням: Звичайно, нам потрібно буде мати можливість сортування, пошуку, індексації тощо в майбутньому! Звичайно, нам потрібно буде вміти ефективно робити перетворення Фур'є, множувати великі матриці, знаходити найкоротші шляхи, вирішувати задачі лінійної оптимізації!
Але знову ж таки, як тільки ви почнете глибше дивитися на програми, в яких ми традиційно використовуємо алгоритми, які ми розробляємо, зовсім не зрозуміло, що традиційне проектування та аналіз алгоритмів - це правильна відповідь на такі проблеми: У додатках, пов’язаних із пошуком , зазвичай нам цікаво знайти щось, що є близьким для людини в якомусь неясному погано визначеному сенсі (наприклад, семантична подібність), а не те, що є оптимальним в якомусь математичному сенсі (наприклад, мінімальна відстань редагування). У додатках, пов'язаних з плануванням маршруту, як правило, ми зацікавлені в пошуку маршрутів, які добре базуються на прикладах (наприклад, інші люди віддають перевагу), а не маршрутам, які є оптимальними в деякому математичному сенсі (наприклад, найкоротша відстань або найдешевша ціна). І як тільки у вас є якийсь розпливчастий, чітко визначений людський компонент на малюнку, можливо, нам буде краще намагатися навчити комп’ютер створювати хороші відповіді на основі прикладів, а не намагатися дозволити досліднику TCS придумати. з формальною обчислювальною проблемою, яку ми можемо вирішити за допомогою традиційного алгоритму проектування та аналізу.
Отже, які сфери застосування (бажано, реальні та прямі промислові програми), в яких абсолютно зрозуміло, що те, що ми робили в минулому в алгоритмі, також буде правильним (і єдино можливим способом) прогресу в галузі майбутнє?
Алгоритми, які використовуються як підпрограми в техніці машинного навчання, виглядають як очевидний майбутній кандидат, але це сильно залежить від конкретної методики машинного навчання, яку ми використовуємо, і, як ми бачили за останні десять років, це може швидко змінитися .