Diamo un'occhiata al futuro tra circa 30 anni. Siamo ottimisti e supponiamo che le aree relative all'apprendimento automatico continuino a svilupparsi rapidamente come quelle che abbiamo visto negli ultimi 10 anni. Sarebbe fantastico, ma quale sarebbe il ruolo degli algoritmi tradizionali in un futuro simile?
Qui con "algoritmi tradizionali" mi riferisco al solito processo che seguiamo in TCS: formalizzare un problema computazionale ben definito , progettare algoritmi per risolvere il problema e dimostrare garanzie formali sulle prestazioni .
Ora quali sono le aree di applicazione in cui dovremo utilizzare la progettazione e l'analisi degli algoritmi tradizionali anche in futuro, ed è altamente improbabile che eventuali progressi dell'apprendimento automatico rendano gli algoritmi tradizionali per lo più irrilevanti?
All'inizio può sembrare una domanda sciocca: ovviamente dovremo essere in grado di fare l'ordinamento, la ricerca, l'indicizzazione, ecc. Anche in futuro! Ovviamente dovremo essere in grado di eseguire trasformazioni di Fourier in modo efficiente, moltiplicare matrici di grandi dimensioni, trovare percorsi più brevi, risolvere problemi di ottimizzazione lineare!
Ma ancora una volta, una volta che inizi a guardare più in profondità le applicazioni in cui tradizionalmente utilizziamo gli algoritmi che progettiamo, non è affatto chiaro che la progettazione e l'analisi degli algoritmi tradizionali siano la risposta giusta a tali problemi: nelle applicazioni correlate alla ricerca , di solito siamo interessati a trovare qualcosa che corrisponda a un essere umano in un vago senso mal definito (ad es. somiglianza semantica), non qualcosa che sia ottimale in qualche senso matematico (ad es. distanza minima di modifica). Nelle applicazioni relative alla pianificazione del percorso, di solito siamo interessati a trovare percorsi che siano validi sulla base di esempi (ad es. altre persone lo preferiscono), non percorsi ottimali in un certo senso matematico (ad esempio la distanza più breve o il prezzo più basso). E una volta che hai un componente umano vago e mal definito nell'immagine, potrebbe essere il caso che stiamo meglio cercando di insegnare al computer a produrre buone risposte basate su esempi, invece di cercare di far emergere un ricercatore TCS con un problema computazionale formale che possiamo affrontare mediante la progettazione e l'analisi di algoritmi tradizionali.
Quindi quali sono le aree di applicazione (preferibilmente applicazioni industriali reali e dirette) in cui è assolutamente chiaro che ciò che abbiamo fatto in passato negli algoritmi sarà anche il modo giusto (e l'unico modo possibile) di fare progressi nel futuro?
Gli algoritmi utilizzati come subroutine nelle tecniche di apprendimento automatico sembrano un ovvio candidato a prova di futuro, ma questo dipende fortemente dalla particolare tecnica di apprendimento automatico che utilizziamo e, come abbiamo visto negli ultimi dieci anni circa, questo potrebbe cambiare rapidamente .