Regardons l'avenir dans une trentaine d'années. Soyons optimistes et supposons que les domaines liés à l'apprentissage automatique continuent de se développer aussi rapidement que ce que nous avons vu au cours des 10 dernières années. Ce serait formidable, mais alors quel serait le rôle de l'algorithmique traditionnelle dans un tel avenir?
Ici, par «algorithmique traditionnelle», je me réfère au processus habituel que nous suivons dans TCS: formaliser un problème de calcul bien défini , concevoir des algorithmes pour résoudre le problème et prouver des garanties de performance formelles .
Maintenant, quels sont les domaines d'application dans lesquels nous devons également utiliser la conception et l'analyse d'algorithmes traditionnels à l'avenir, et il est très peu probable que des progrès de l'apprentissage automatique rendent la algorithmique traditionnelle pour la plupart non pertinente?
Au début, cela peut sembler une question stupide: bien sûr, nous devrons être en mesure de faire du tri, de la recherche, de l'indexation, etc. à l'avenir également! Bien sûr, nous devrons être capables de faire des transformées de Fourier efficacement, multiplier les grandes matrices, trouver les chemins les plus courts, résoudre les problèmes d'optimisation linéaire!
Mais là encore, une fois que vous commencez à approfondir les applications dans lesquelles nous utilisons traditionnellement les algorithmes que nous concevons, il n'est pas du tout clair que la conception et l'analyse d'algorithmes traditionnels soient la bonne réponse à de tels problèmes: dans les applications liées à la recherche , en général, nous sommes intéressés à trouver quelque chose qui correspond étroitement à un être humain dans un sens vague et mal défini (par exemple, une similitude sémantique), et non quelque chose qui est optimal au sens mathématique (par exemple, une distance d'édition minimale). Dans les applications liées à la planification d'itinéraire, généralement, nous sommes intéressés à trouver des itinéraires qui sont bons sur la base d'exemples (par exemple, d'autres personnes le préfèrent), pas des itinéraires qui sont optimaux dans un sens mathématique (par exemple, la distance la plus courte ou le prix le moins cher). Et une fois que vous avez une composante humaine vague et mal définie dans l'image, il pourrait être préférable d'essayer d'enseigner à l'ordinateur à produire de bonnes réponses basées sur des exemples, au lieu d'essayer de laisser un chercheur du SDC venir avec un problème de calcul formel que nous pouvons résoudre au moyen de la conception et de l'analyse d'algorithmes traditionnels.
Alors, quels sont les domaines d'application (de préférence les applications industrielles réelles et directes) dans lesquels il est absolument clair que ce que nous avons fait dans le passé par l'algorithmique sera également la bonne manière (et la seule manière possible) de progresser dans le futur?
Les algorithmes utilisés comme sous-programmes dans les techniques d'apprentissage automatique semblent être un candidat à l'épreuve du temps évident, mais cela dépend fortement de la technique d'apprentissage automatique particulière que nous utilisons, et comme nous l'avons vu au cours des dix dernières années, cela pourrait rapidement changer .