Workshop innovativo a Fisica e Tecnologia: vere storie di successo di Fisica e Tecnologia. Ma molte aziende ora pensano che se investono denaro nell’apprendimento automatico, i loro giardini fioriranno immediatamente. Questo è sbagliato. L’apprendimento automatico dovrebbe risolvere problemi specifici, non solo quelli reali

12.10.2023

Nell'ambito del progetto congiunto “ABC of AI” con MIPT, abbiamo già scritto dei cosiddetti, che consentono di “far crescere” i programmi secondo i principi e le leggi dell'evoluzione darwiniana. Tuttavia, per ora, questo approccio all’intelligenza artificiale è sicuramente un “ospite dal futuro”. Ma come nascono oggi i sistemi di intelligenza artificiale? Come vengono addestrati? Victor Kantor, docente senior presso il Dipartimento di algoritmi e tecnologie di programmazione del MIPT e capo del gruppo di analisi del comportamento degli utenti presso Yandex Data Factory, ci ha aiutato a capirlo.

Secondo un recente rapporto della società di ricerca Gartner, che aggiorna regolarmente il suo “ciclo di maturità tecnologica”, l’apprendimento automatico è attualmente al culmine delle aspettative in tutto l’IT. Ciò non sorprende: negli ultimi anni l'apprendimento automatico è uscito dalla sfera degli interessi di una ristretta cerchia di matematici e specialisti nella teoria degli algoritmi ed è penetrato prima nel vocabolario degli uomini d'affari IT, e poi nel mondo della gente comune. Ora, chiunque abbia utilizzato l'app Prisma, cercato brani utilizzando Shazam o visto immagini trasmesse tramite DeepDream sa che esistono reti neurali con la loro speciale "magia".

Tuttavia, una cosa è usare la tecnologia, un’altra è capire come funziona. Parole generali come “un computer può imparare se gli dai un suggerimento” o “una rete neurale è composta da neuroni digitali ed è strutturata come il cervello umano” possono aiutare qualcuno, ma più spesso confondono solo la situazione. Chi si accinge a studiare seriamente la matematica non ha bisogno di testi divulgativi: per loro ci sono libri di testo e ottimi corsi online. Cercheremo di prendere una via di mezzo: spiegare come avviene effettivamente l'apprendimento su un compito molto semplice, e poi mostrare come lo stesso approccio può essere applicato per risolvere problemi davvero interessanti.

Come apprendono le macchine

Per cominciare, per capire esattamente come avviene il machine learning, definiamo i concetti. Come definito da uno dei pionieri di questo campo, Arthur Samuel, l’apprendimento automatico si riferisce a metodi che “consentono ai computer di apprendere senza programmarli direttamente”. Esistono due grandi classi di metodi di apprendimento automatico: apprendimento supervisionato e apprendimento non supervisionato. Il primo serve quando, ad esempio, dobbiamo insegnare a un computer a cercare foto con immagini di gatti, il secondo è quando abbiamo bisogno che la macchina, ad esempio, sia in grado di raggruppare autonomamente le notizie in storie, come avviene nei servizi come Yandex.News o Google News. Cioè nel primo caso si tratta di un compito che implica l'esistenza di una risposta corretta (il gatto nella foto o c'è oppure no), nel secondo caso non esiste un'unica risposta corretta, ma esistono diverse modalità per risolvere il problema. Ci concentreremo specificamente sulla prima classe di problemi in quanto più interessanti.

Quindi dobbiamo insegnare al computer a fare alcune previsioni. Inoltre, è auspicabile essere il più precisi possibile. I pronostici possono essere di due tipi: o è necessario scegliere tra più opzioni di risposta (se nella foto c'è o meno un gatto è una scelta tra due, la capacità di riconoscere le lettere nelle immagini è una scelta tra un'opzione tra diverse decine, e così via), o fare una previsione numerica. Ad esempio, puoi prevedere il peso di una persona in base alla sua altezza, età, numero di scarpe e così via. Questi due tipi di problemi sembrano solo diversi, ma in realtà vengono risolti in modo quasi identico. Cerchiamo di capire esattamente come.

La prima cosa di cui abbiamo bisogno per realizzare un sistema di previsione è raccogliere il cosiddetto campione di addestramento, ovvero i dati sul peso delle persone nella popolazione. Il secondo è decidere una serie di segni in base ai quali possiamo trarre conclusioni sul peso. È chiaro che uno dei segni "più forti" sarà l'altezza di una persona, quindi in prima approssimazione è sufficiente prendere solo questo. Se il peso dipende linearmente dall'altezza, la nostra previsione sarà molto semplice: il peso di una persona sarà uguale alla sua altezza moltiplicata per un coefficiente, più un valore costante, che è scritto con la formula più semplice y=kx+b. Tutto quello che dobbiamo fare per addestrare una macchina a prevedere il peso di una persona è trovare in qualche modo i valori corretti di k e b.

Il bello del machine learning è che anche se la relazione che stiamo studiando è molto complessa, sostanzialmente non cambierà nulla nel nostro approccio. Avremo ancora a che fare con la stessa regressione.

Diciamo che il peso di una persona è influenzato dalla sua altezza non in modo lineare, ma al terzo grado (cosa generalmente prevista, perché il peso dipende dal volume corporeo). Per tenere conto di questa dipendenza, introduciamo semplicemente un altro termine nella nostra equazione, ovvero la terza potenza di crescita con il proprio coefficiente, ottenendo così y=k 1 x+k 2 x 3 +b. Ora, per addestrare la macchina, dovremo trovare non due, ma tre quantità (k 1, k 2 e b). Diciamo che nella nostra previsione vogliamo tenere conto anche del numero delle scarpe di una persona, della sua età, del tempo che ha passato davanti alla televisione e della distanza dal suo appartamento al fast food più vicino. Nessun problema: aggiungiamo semplicemente queste funzionalità come termini separati nella stessa equazione.

La cosa più importante è creare un modo universale per trovare i coefficienti richiesti (k 1, k 2, ... k n). Se esiste, per noi sarà quasi indifferente quali caratteristiche utilizzare per la previsione, perché la macchina stessa imparerà a dare grande peso a quelle importanti e poco peso a quelle non importanti. Fortunatamente, un metodo del genere è già stato inventato e quasi tutto l'apprendimento automatico funziona con successo su di esso: dai modelli lineari più semplici ai sistemi di riconoscimento facciale e agli analizzatori del parlato. Questo metodo è chiamato discesa del gradiente. Ma prima di spiegarvi come funziona occorre fare una piccola digressione e parlare delle reti neurali.

Reti neurali

Nel 2016, le reti neurali sono entrate così saldamente nell’agenda informatica da essere quasi identificate con qualsiasi apprendimento automatico e IT avanzato in generale. Formalmente questo non è vero: non sempre le reti neurali vengono utilizzate nell’apprendimento matematico; esistono altre tecnologie. Ma in generale, ovviamente, tale associazione è comprensibile, perché sono i sistemi basati su reti neurali che ora forniscono i risultati più “magici”, come la capacità di cercare una persona in una fotografia, l’emergere di applicazioni che trasferiscono lo stile di un'immagine rispetto a un'altra o sistemi per generare testi nel modo di parlare di una determinata persona.

Il modo in cui sono strutturate le reti neurali, già... Qui voglio solo sottolineare che la forza delle reti neurali rispetto ad altri sistemi di machine learning risiede nella loro natura multistrato, ma questo non le rende qualcosa di fondamentalmente diverso nel modo in cui funzionano. Il multistrato ti consente davvero di trovare caratteristiche generali e dipendenze molto astratte in insiemi complessi di funzionalità, come i pixel in un'immagine. Ma è importante capire che dal punto di vista dei principi di apprendimento, una rete neurale non è radicalmente diversa da un insieme di formule di regressione lineare convenzionali, quindi lo stesso metodo di discesa del gradiente funziona benissimo anche qui.

La “potenza” di una rete neurale risiede nella presenza di uno strato intermedio di neuroni, che combinano sommariamente i valori dello strato di input. Per questo motivo, le reti neurali possono trovare caratteristiche molto astratte nei dati che sono difficili da ridurre a formule semplici come una relazione lineare o quadratica.

Spieghiamo con un esempio. Abbiamo optato per una previsione in cui il peso di una persona dipende dalla sua altezza e dall'altezza al cubo, espressa dalla formula y=k 1 x+k 2 x 3 +b. Con un certo allungamento, ma in realtà anche una formula del genere può essere chiamata rete neurale. In essa, come in una normale rete neurale, c’è un primo strato di “neuroni”, che è anche uno strato di caratteristiche: questi sono x e x 3 (beh, il “neurone unitario” che teniamo presente e per il quale il coefficiente b è responsabile). Lo strato superiore, o risultante, è rappresentato da un “neurone” y, cioè il peso previsto della persona. E tra il primo e l'ultimo strato di "neuroni" ci sono connessioni, la cui forza o peso è determinata dai coefficienti k 1, k 2 e b. Addestrare questa “rete neurale” significa semplicemente trovare questi stessi coefficienti.

L’unica differenza rispetto alle reti neurali “reali” è che non abbiamo un singolo strato intermedio (o nascosto) di neuroni, il cui compito è combinare le caratteristiche di input. L'introduzione di tali livelli consente di non inventare possibili dipendenze tra caratteristiche esistenti “fuori di testa”, ma di fare affidamento sulle loro combinazioni già esistenti nella rete neurale. Ad esempio, l’età e il tempo medio trascorso davanti alla TV possono avere un effetto sinergico sul peso di una persona, ma, avendo una rete neurale, non siamo tenuti a saperlo in anticipo e a inserire il prodotto nella formula. Nella rete neurale ci sarà sicuramente un neurone che combina l'influenza di due caratteristiche qualsiasi, e se questa influenza è davvero evidente nel campione, dopo l'allenamento questo neurone riceverà automaticamente un peso elevato.

Discesa gradiente

Quindi, abbiamo un set di esempi con dati noti, ovvero una tabella con il peso di una persona misurato accuratamente, e alcune ipotesi di relazione, in questo caso la regressione lineare y=kx+b. Il nostro compito è trovare i valori corretti di k e b, non manualmente, ma automaticamente. E preferibilmente un metodo universale che non dipenda dal numero di parametri inclusi nella formula.

In generale, questo non è difficile da fare. L’idea principale è quella di creare una funzione che misurerà l’attuale livello di errore totale e “modificherà” i coefficienti in modo che il livello di errore totale diminuisca gradualmente. Come posso ridurre il livello di errore? Dobbiamo modificare i nostri parametri nella giusta direzione.

Immagina i nostri due parametri che stiamo cercando, gli stessi k e b, come due direzioni su un piano, come gli assi nord-sud e ovest-est. Ogni punto su tale piano corrisponderà a un certo valore dei coefficienti, a un certo rapporto specifico tra altezza e peso. E per ciascuno di questi punti sul piano, possiamo calcolare il livello di errore totale fornito da questa previsione per ciascuno degli esempi del nostro campione.

Si scopre qualcosa come un'altezza specifica su un aereo e l'intero spazio circostante inizia ad assomigliare a un paesaggio montano. Le montagne sono punti dove il tasso di errore è molto alto, le valli sono luoghi dove ci sono meno errori. È chiaro che addestrare il nostro sistema significa trovare il punto più basso sul terreno, il punto in cui il tasso di errore è minimo.

Come puoi trovare questo punto? Il modo più corretto è spostarsi continuamente dal punto in cui ci siamo trovati inizialmente. Quindi prima o poi arriveremo a un minimo locale, un punto al di sotto del quale non c'è nulla nelle immediate vicinanze. Inoltre è consigliabile fare gradini di diverse dimensioni: quando la pendenza è ripida si possono fare passi più ampi; quando la pendenza è piccola è meglio avvicinarsi di soppiatto al minimo locale “in punta di piedi”, altrimenti si rischia di oltrepassare.

Questo è esattamente il modo in cui funziona il metodo della discesa del gradiente: modifichiamo i pesi delle caratteristiche nella direzione del calo maggiore nella funzione di errore. Li modifichiamo iterativamente, cioè con un certo passo, il cui valore è proporzionale alla pendenza della pendenza. La cosa interessante è che quando il numero di caratteristiche aumenta (aggiungendo un cubo dell’altezza di una persona, della sua età, numero di scarpe e così via), essenzialmente non cambia nulla, è solo che il nostro paesaggio non diventa bidimensionale, ma multidimensionale.

La funzione di errore può essere definita come la somma dei quadrati di tutte le deviazioni consentite dalla formula attuale per le persone di cui conosciamo già esattamente il peso. Prendiamo alcune variabili casuali k e b, ad esempio 0 e 50. Quindi il sistema ci prevede che il peso di ogni persona nel campione è sempre uguale a 50 chilogrammi y=0×x+50 Sul grafico, ad esempio la dipendenza apparirà come una linea retta parallela all'orizzontale. Chiaramente, questa non è una previsione molto buona. Ora prendiamo la deviazione in peso da questo valore previsto, eleviamola al quadrato (in modo che vengano presi in considerazione anche i valori negativi) e riassumiamola: questo sarà l'errore a questo punto. Se hai familiarità con l'inizio dell'analisi, puoi anche chiarire che la direzione del calo maggiore è data dalla derivata parziale della funzione di errore rispetto a k e b, e il passo è un valore che viene scelto per ragioni pratiche: i piccoli passi richiedono molto tempo per essere calcolati e quelli grandi possono portare al fatto che supereremo il minimo.

Ok, e se non avessimo solo una regressione complessa con molte funzionalità, ma una vera rete neurale? Come applichiamo la discesa del gradiente in questo caso? Si scopre che la discesa del gradiente funziona esattamente allo stesso modo con una rete neurale, solo che l'addestramento avviene 1) passo dopo passo, da strato a strato e 2) gradualmente, da un esempio nel campione a un altro. Il metodo qui utilizzato è chiamato backpropagation ed è stato descritto in modo indipendente nel 1974 dal matematico sovietico Alexander Galushkin e dal matematico dell'Università di Harvard Paul John Webros.

Anche se per una presentazione rigorosa dell'algoritmo sarà necessario scrivere le derivate parziali (come, ad esempio), a livello intuitivo tutto avviene in modo abbastanza semplice: per ciascuno degli esempi del campione, abbiamo in uscita una certa previsione della rete neurale. Avendo la risposta corretta, possiamo sottrarre la risposta corretta dalla previsione e ottenere così un errore (più precisamente, un insieme di errori per ciascun neurone dello strato di output). Ora dobbiamo trasferire questo errore allo strato precedente di neuroni, e più questo particolare neurone di questo strato ha contribuito all'errore, più dobbiamo ridurne il peso (in effetti, stiamo ancora parlando di prendere la derivata parziale, di muoversi lungo la massima ripidità del nostro paesaggio immaginario). Fatto ciò, bisognerà ripetere la stessa procedura per lo strato successivo, muovendosi nella direzione opposta, ovvero dall'output della rete neurale all'input.

Analizzando la rete neurale in questo modo con ogni esempio del campione di addestramento e “ruotando” i pesi dei neuroni nella direzione desiderata, alla fine dovremmo ottenere una rete neurale addestrata. Il metodo di backpropagation è una semplice modifica del metodo di discesa del gradiente per le reti neurali multistrato e pertanto dovrebbe funzionare per reti neurali di qualsiasi complessità. Qui diciamo "dovrebbe" perché in realtà ci sono casi in cui la discesa del gradiente fallisce e non consente di fare una buona regressione o addestrare una rete neurale. Può essere utile sapere perché sorgono tali difficoltà.

Le difficoltà della discesa del gradiente

Scelta sbagliata del minimo assoluto. Il metodo della discesa del gradiente aiuta a cercare un estremo locale. Ma non possiamo sempre usarlo per raggiungere il minimo o il massimo globale assoluto della funzione. Ciò accade perché quando ci muoviamo lungo un antigradiente ci fermiamo nel momento in cui raggiungiamo il primo minimo locale che incontriamo e l'algoritmo smette di funzionare.

Immagina di trovarti sulla cima di una montagna. Se vuoi scendere sulla superficie più bassa della zona, il metodo della discesa in pendenza non sempre ti aiuterà, perché il primo punto basso sul tuo percorso non sarà necessariamente il punto più basso. E se nella vita riesci a vedere che se sali un po' e poi puoi scendere ancora più in basso, allora l'algoritmo in una situazione del genere semplicemente si fermerà. Spesso questa situazione può essere evitata se si sceglie il passo giusto.

Selezione del passo errata. Il metodo della discesa del gradiente è un metodo iterativo. Cioè, dobbiamo scegliere noi stessi la dimensione del passo, la velocità con cui scendiamo. Scegliendo un passo troppo grande, potremmo sorvolare l’estremo di cui abbiamo bisogno e non trovare il minimo. Questo può accadere se ti trovi ad affrontare una discesa molto brusca. E scegliere un passo troppo piccolo rischia di rendere l’algoritmo estremamente lento se ci troviamo su una superficie relativamente piana. Se immaginiamo ancora di essere in cima a una montagna ripida, potrebbe verificarsi una situazione in cui, a causa di una discesa molto ripida vicino al minimo, la sorvoliamo semplicemente.

Paralisi della rete. A volte capita che il metodo della discesa del gradiente non riesca affatto a trovare un minimo. Ciò può accadere se ci sono aree piatte su entrambi i lati del minimo: l'algoritmo, quando colpisce un'area piatta, riduce il passo e alla fine si ferma. Se ti trovi in ​​cima a una montagna e decidi di dirigerti verso casa tua in pianura, il viaggio potrebbe essere troppo lungo se ti trovi accidentalmente in una zona molto pianeggiante. Oppure, se lungo i bordi delle zone pianeggianti sono presenti “pendii” quasi verticali, l'algoritmo, avendo scelto un gradino molto ampio, salterà da un pendio all'altro, praticamente senza spostarsi verso il minimo.

Tutte queste questioni complesse devono essere prese in considerazione quando si progetta un sistema di apprendimento automatico. Ad esempio, è sempre utile tenere traccia esattamente di come la funzione di errore cambia nel tempo: cade con ogni nuovo ciclo o segna il tempo, come cambia la natura di questa caduta a seconda della modifica della dimensione del passo. Per evitare di cadere in un cattivo minimo locale, può essere utile iniziare da diversi punti del paesaggio selezionati casualmente: in questo modo la probabilità di rimanere bloccati è molto inferiore. Ci sono molti altri piccoli e grandi segreti sull’uso della discesa del gradiente, e ci sono anche modi di apprendimento più esotici che sono vagamente simili alla discesa del gradiente. Questo, tuttavia, è un argomento per un’altra conversazione e un articolo separato nell’ambito del progetto ABC of AI.

Preparato da Alexander Ershov

- Puoi usare un esempio completamente primitivo per spiegarci come funziona l'apprendimento automatico?

Potere. C'è un esempio di una tecnica di apprendimento automatico chiamata Decision Tree, che è una delle cose più antiche. Facciamolo adesso. Diciamo che una persona astratta ti chiede un appuntamento. Cosa è importante per te?

- Prima di tutto, che lo conosca o no...

(Victor scrive questo sulla lavagna.)

...Se non lo so, allora devo rispondere alla domanda se è attraente o no.

E se lo sai, allora non importa? Penso di aver capito, questo è il thread della zona amici! In generale, scrivo se non lo sai e non è attraente, allora la risposta è "no, probabilmente". Se lo sai, la risposta è “sì”.

- Se lo so, anche questo è importante!

No, questo sarà un ramo della zona amici.

Ok, allora indichiamo qui se è interessante o meno. Eppure, quando non si conosce una persona, la prima reazione è all’apparenza; con un conoscente guardiamo già cosa pensa e come.

Facciamolo diversamente. Che sia ambizioso o meno. Se è ambizioso, sarà difficile amicizia con lui, perché vorrà di più. Ma chi è privo di ambizione resisterà.

(Victor finisce di disegnare l’albero decisivo.)

Pronto. Ora puoi prevedere con quale ragazzo avrai più probabilità di uscire. A proposito, alcuni servizi di appuntamenti prevedono queste cose. Per analogia, puoi prevedere quanti beni acquisteranno i clienti e dove si troveranno le persone a quell'ora del giorno.

Le risposte possono essere non solo “sì” e “no”, ma anche sotto forma di numeri. Se desideri una previsione più accurata, puoi creare diversi alberi di questo tipo e calcolarne la media. E con l'aiuto di una cosa così semplice puoi effettivamente predire il futuro.

Ora immaginate, era difficile per le persone elaborare uno schema del genere duecento anni fa? Assolutamente no! Questo schema non comporta alcuna scienza missilistica. Come fenomeno, l’apprendimento automatico esiste da circa mezzo secolo. Ronald Fisher iniziò a fare previsioni basate sui dati all'inizio del XX secolo. Prese gli iris e li distribuì secondo la lunghezza e la larghezza dei sepali e dei petali, utilizzando questi parametri determinò il tipo di pianta.

Nell'industria, l'apprendimento automatico è stato utilizzato attivamente negli ultimi decenni: macchine potenti e relativamente economiche necessarie per elaborare grandi quantità di dati, ad esempio per tali alberi decisionali, sono apparse non molto tempo fa. Ma è comunque entusiasmante: disegniamo queste cose per ogni attività e le usiamo per prevedere il futuro.

- Beh, sicuramente non meglio di qualsiasi polpo predittore di partite di calcio...

No, cosa ci importa dei polpi? Anche se abbiamo più variabilità. Ora, con l’aiuto dell’apprendimento automatico, puoi risparmiare tempo, denaro e migliorare il comfort della vita. L’apprendimento automatico ha battuto gli umani qualche anno fa quando si tratta di classificazione delle immagini. Ad esempio, un computer può riconoscere 20 razze di terrier, ma una persona comune non può.

- E quando analizzi gli utenti, ogni persona per te è un insieme di numeri?

In parole povere, sì. Quando lavoriamo con i dati, tutti gli oggetti, compreso il comportamento dell'utente, sono descritti da un determinato insieme di numeri. E questi numeri riflettono le caratteristiche del comportamento delle persone: quanto spesso prendono un taxi, che classe di taxi usano, in quali luoghi vanno abitualmente.

Ora stiamo costruendo attivamente modelli di somiglianza da utilizzare per identificare gruppi di persone con comportamenti simili. Quando introduciamo un nuovo servizio o vogliamo promuoverne uno vecchio, lo offriamo a chi fosse interessato.

Ad esempio, ora disponiamo di un servizio: due seggiolini per bambini in un taxi. Possiamo inviare spam a tutti con queste notizie oppure possiamo informarne specificamente solo una determinata cerchia di persone. Nel corso dell'anno abbiamo accumulato diversi utenti che hanno scritto nei commenti di aver bisogno di due seggiolini per bambini. Abbiamo trovato loro e persone simili a loro. Convenzionalmente si tratta di persone di età superiore ai 30 anni che viaggiano regolarmente e amano la cucina mediterranea. Sebbene, ovviamente, ci siano molti altri segnali, questo è solo un esempio.

- Anche queste sottigliezze?

Questa è una questione semplice. Tutto viene calcolato utilizzando le query di ricerca.

Potrebbe in qualche modo funzionare in un'applicazione? Ad esempio, sai che sono un mendicante e mi iscrivo a gruppi come "Come sopravvivere con 500 rubli al mese" - mi offrono solo macchine scassate a buon mercato, mi iscrivo alle notizie di SpaceX - e di tanto in tanto mi vendono una Tesla?

Potrebbe funzionare in questo modo, ma queste cose non sono approvate da Yandex, perché è una discriminazione. Quando si personalizza un servizio, è meglio offrire non il più accettabile, ma il meglio disponibile e quello che piace alla persona. E la distribuzione secondo la logica “questa ha bisogno di un’auto migliore e questa ne ha bisogno di una meno buona” è malvagia.


Tutti hanno desideri pervertiti e a volte è necessario trovare non una ricetta per un piatto mediterraneo, ma, ad esempio, immagini sulla coprofilia. La personalizzazione funzionerà ancora in questo caso?

C'è sempre una modalità privata.

Se non voglio che nessuno sappia dei miei interessi o, diciamo, che gli amici vengano da me e vogliano guardare della spazzatura, allora è meglio usare la modalità di navigazione in incognito.

Puoi anche decidere quale servizio dell’azienda utilizzare, ad esempio Yandex o Google.

- C'è differenza?

Problema complesso. Non so gli altri, ma Yandex è severo con la protezione dei dati personali. I dipendenti sono particolarmente monitorati.

- Cioè, se ho rotto con un ragazzo, non potrò scoprire se è andato in questa dacia o no?

Anche se lavori in Yandex. Questo è, ovviamente, triste, ma sì, non c'è modo di scoprirlo. La maggior parte dei dipendenti non ha nemmeno accesso a questi dati. Tutto è crittografato. È semplice: non puoi spiare le persone, queste sono informazioni personali.

A proposito, abbiamo avuto un caso interessante sul tema della rottura con i ragazzi. Quando abbiamo fatto una previsione per il punto “B” - il punto di destinazione nel taxi, abbiamo introdotto dei suggerimenti. Ecco guarda.

(Victor accede all'applicazione Yandex.Taxi.)

Ad esempio, il taxi pensa che io sia a casa. Mi suggerisce di andare al lavoro o alla RUDN University (dove tengo lezioni come parte del corso di machine learning Data Mining in Action). E ad un certo punto, mentre sviluppavamo questi suggerimenti, ci siamo resi conto che dovevamo evitare di compromettere l’utente. Chiunque può vedere il punto B. Per questi motivi ci siamo rifiutati di suggerire luoghi in base alla somiglianza. Altrimenti ti siedi in un posto decente con persone decenti, ordini un taxi e ti scrivono: "Guarda, non sei ancora stato in questo bar!"

- Cosa sono quei punti blu che lampeggiano sulla tua mappa?

Questi sono i punti di raccolta. Questi punti indicano dove è più conveniente chiamare un taxi. Dopotutto, puoi chiamare in un posto dove sarebbe del tutto scomodo andare. Ma in generale puoi chiamare ovunque.

- Sì, in qualsiasi momento. In qualche modo ho volato per due isolati con questo.

Recentemente si sono verificati vari problemi con il GPS, questo ha portato a diverse situazioni divertenti. Le persone, ad esempio, a Tverskaya, venivano trasportate dalla navigazione attraverso l'Oceano Pacifico. Come puoi vedere, a volte ci sono errori e più di due blocchi.

- E se riavvii l'applicazione e fai nuovamente clic, il prezzo cambia di diversi rubli. Perché?

Se la domanda supera l'offerta, l'algoritmo genera automaticamente un coefficiente crescente: questo aiuta chi ha bisogno di partire il più velocemente possibile a utilizzare un taxi, anche durante i periodi di forte domanda. A proposito, con l'aiuto dell'apprendimento automatico puoi prevedere dove ci sarà una maggiore domanda, ad esempio tra un'ora. Questo ci aiuta a dire agli autisti dove ci saranno più ordini in modo che l'offerta corrisponda alla domanda.

- Non pensi che Yandex.Taxi ucciderà presto l'intero mercato dei taxi?

Penso che nessuno. Siamo per una sana competizione e non ne abbiamo paura.

Io stesso, ad esempio, utilizzo diversi servizi di taxi. Per me il tempo di attesa è importante, quindi guardo diverse app per vedere quale taxi arriverà più velocemente.


- Hai collaborato con Uber. Per quello?

Non spetta a me commentare. Penso che unirsi sia una decisione profondamente sensata.

In Germania, un ragazzo ha installato una vasca da bagno sui droni ed è volato via per un hamburger. Hai pensato che sia giunto il momento di dominare lo spazio aereo?

Non so per quanto riguarda lo spazio aereo. Seguiamo notizie come “Uber ha lanciato i taxi sulle barche”, ma non posso dire nulla sull’aria.

- E i taxi a guida autonoma?

C'è un punto interessante qui. Li stiamo sviluppando, ma dobbiamo pensare a come dovrebbero essere utilizzati esattamente. È troppo presto per prevedere in che forma e quando appariranno sulle strade, ma stiamo facendo di tutto per sviluppare la tecnologia per un’auto completamente autonoma, dove il conducente umano non sarà affatto necessario.

- Si teme che il software del drone venga violato per poter controllare l'auto a distanza?

Ci sono rischi sempre e ovunque dove ci sono tecnologie e gadget. Ma insieme allo sviluppo della tecnologia si sta sviluppando anche un'altra direzione: la loro protezione e sicurezza. Tutti coloro che in un modo o nell'altro sono coinvolti nello sviluppo tecnologico lavorano sui sistemi di sicurezza.

- Quali dati degli utenti raccogli e come li proteggi?

Raccogliamo dati di utilizzo anonimi, come dove, quando e dove è stato effettuato il viaggio. Tutto ciò che è importante è sottoposto ad hashing.

- Pensi che il numero di posti di lavoro diminuirà a causa dei droni?

Penso che diventerà solo più grande. Tuttavia, anche questi droni devono essere mantenuti in qualche modo. Questa, ovviamente, è una situazione un po' stressante, cambiare la tua specialità, ma cosa puoi fare?

- In ciascuna delle sue lezioni, Gref afferma che una persona cambierà radicalmente la sua professione almeno tre volte.

Non posso nominare nessuna specialità che durerà per sempre. Uno sviluppatore non lavora nella stessa lingua e con le stesse tecnologie per tutta la vita. Ovunque dobbiamo ricostruire. Con l’apprendimento automatico, posso sentire chiaramente come i ragazzi di sei anni più giovani di me riescano a pensare molto più velocemente di me. Allo stesso tempo, le persone di 40 o 45 anni lo avvertono in modo ancora più forte.

- L'esperienza non ha più un ruolo?

Giocando. Ma i metodi cambiano, puoi arrivare in un ambito dove per esempio non si usa il deep learning, lavori lì da tempo, poi i metodi del deep learning vengono introdotti ovunque, e non ne capisci niente. È tutto. La tua esperienza può essere utile solo per pianificare il lavoro del team, e anche in questo caso non sempre.

- E la tua professione è data scientist, è richiesta?

La domanda di specialisti in scienza dei dati è semplicemente fuori scala. Ovviamente, questo è un periodo di folle clamore. Grazie a Dio, la blockchain ha aiutato un po’ questo clamore a placarsi. Gli specialisti della blockchain vengono presi ancora più velocemente.

Ma molte aziende ora pensano che se investono denaro nell’apprendimento automatico, i loro giardini fioriranno immediatamente. Questo è sbagliato. L’apprendimento automatico dovrebbe risolvere problemi specifici, non semplicemente esistere.

Ci sono momenti in cui una banca vuole creare un sistema di raccomandazione per i servizi per gli utenti. Chiediamo: “Pensa che questo sarà economicamente giustificato?” Rispondono: “Non ci interessa. Fallo. Tutti hanno sistemi di raccomandazione, saremo di tendenza”.

Il dolore è che qualcosa di veramente utile per il business non può essere fatto in un giorno. Dobbiamo osservare come il sistema imparerà. Ma all'inizio commette sempre degli errori; durante l'allenamento potrebbero mancare alcuni dati. Correggi gli errori, poi li correggi di nuovo e rifai persino tutto. Dopodiché è necessario configurare il sistema in modo che funzioni in produzione, in modo che sia stabile e scalabile, questo è ancora tempo. Di conseguenza, un progetto richiede sei mesi, un anno o più.


Se consideri i metodi di apprendimento automatico come una scatola nera, puoi facilmente non notare quando iniziano a verificarsi cose folli. C'è una storia barbuta. I militari hanno chiesto di sviluppare un algoritmo che possa essere utilizzato per analizzare se c'è o meno un carro armato nella foto. I ricercatori l'hanno realizzato, testato, la qualità è eccellente, tutto è fantastico, l'hanno dato ai militari. Arrivano i militari e dicono che non funziona niente. Gli scienziati stanno cominciando a capire nervosamente. Si scopre che in tutte le fotografie con il carro armato portato dai militari, nell'angolo è stato posizionato un segno di spunta con una penna. L'algoritmo ha imparato perfettamente a trovare il segno di spunta; non sapeva nulla del serbatoio. Naturalmente sulle nuove immagini non c'erano segni di spunta.

Ho incontrato bambini che sviluppano i propri sistemi di dialogo. Hai mai pensato che è necessario collaborare con i bambini?

Da molto tempo partecipo a tutti i tipi di eventi per gli scolari e tengo lezioni sull'apprendimento automatico. E, a proposito, uno degli argomenti mi è stato insegnato da uno studente della decima elementare. Ero assolutamente sicuro che la mia storia sarebbe stata bella e interessante, ero orgoglioso di me stesso, ho iniziato a trasmettere e la ragazza ha detto: "Oh, vogliamo minimizzare questa cosa". Guardo e penso, davvero, perché, e la verità può essere minimizzata, e non c'è niente di speciale da dimostrare qui. Sono già passati diversi anni, ora ascolta le nostre lezioni come studentessa presso l'Istituto di Fisica e Tecnologia. Yandex, a proposito, ha Yandex.Lyceum, dove gli scolari possono acquisire gratuitamente le conoscenze di base della programmazione.

- Consigliare università e facoltà in cui attualmente viene insegnato l'apprendimento automatico.

Ci sono MIPT, facoltà FIVT e FUPM. L'HSE ha anche un meraviglioso dipartimento di informatica e all'Università statale di Mosca c'è l'apprendimento automatico nel complesso di informatica. Bene, ora puoi ascoltare il nostro corso alla RUDN University.

Come ho già detto, questa professione è molto richiesta. Per molto tempo, le persone che hanno ricevuto un'istruzione tecnica hanno fatto cose completamente diverse. L’apprendimento automatico è un meraviglioso esempio in cui tutte le cose insegnate dalle persone con un’istruzione tecnica sono ora direttamente necessarie, utili e ben pagate.

- Quanto è buono?

Assegna un nome all'importo.

- 500mila al mese.

Puoi, senza essere un normale data scientist. Ma in alcune aziende uno stagista può guadagnare 50mila per un lavoro semplice, la gamma è molto ampia. In generale, lo stipendio di un bravo scienziato dei dati può essere paragonato allo stipendio dell'amministratore delegato di un'azienda di medie dimensioni. In molte aziende, oltre allo stipendio, il dipendente ha molti altri vantaggi, e se è chiaro che la persona non è venuta per aggiungere un buon marchio al suo curriculum, ma per lavorare effettivamente, allora per lui andrà tutto bene.

È passato quasi un anno da quando alla FIVT è nato un tema insolito: un workshop innovativo. La sua essenza è la creazione di startup IT da parte di team di studenti sotto la guida di mentori esperti. È andata bene: grazie al corso, qualcuno ha trascorso parte dell'estate a Cream Valley, qualcuno ha ricevuto una borsa di studio per un importo di 800.000 rubli per lo sviluppo del progetto e ABBYY è pronta ad acquistare completamente il progetto da qualcuno. E questi non sono tutti i risultati del workshop!

All'inizio del 2011, gli studenti del terzo anno della FIVT si sono riuniti nell'aula magna e hanno detto: nel prossimo anno dovrai creare la tua startup. Gli studenti non hanno accettato questa idea in modo ambiguo: non era affatto chiaro come farlo e la responsabilità era insolita: era necessario creare un'impresa tecnologica e non solo un altro progetto educativo. Ecco cosa ne pensa il vincitore delle Olimpiadi studentesche del MIPT in fisica, studente del dipartimento Yandeska, Viktor Kantor:

Quando ho scelto FIVT al momento del ricovero, speravo che avremmo avuto qualcosa di simile. Quindi sono felice che le mie speranze non siano state vane. Durante l'anno si è sentito che il corso era ancora in fase di formazione, c'era molto di nuovo in esso, molte questioni si sono rivelate controverse non solo per gli studenti, ma anche per gli organizzatori, ma in generale penso che le tendenze siano positive. Mi è piaciuto questo corso.

Per facilitare il lavoro degli studenti, diversi curatori sono stati invitati a proporre le loro idee per costruire imprese innovative. Tra loro c'erano persone completamente diverse: dagli studenti universitari e laureati del MIPT al consulente per l'innovazione di Ernst&Young Yuri Pavlovich Ammosov (è stato il leader dell'intero corso) e Mikhail Batin, che si occupa di medicina rigenerativa e questioni di estensione della vita. Di conseguenza, gli studenti di fisica e tecnologia hanno scelto le idee che ritenevano più interessanti, i curatori si sono uniti ai team e il lavoro, duro ma entusiasmante, è iniziato.

In quasi un anno trascorso da allora, i ragazzi hanno dovuto affrontare moltissimi problemi, alcuni dei quali risolti. Ora possiamo valutare i loro risultati: nonostante le difficoltà, i ragazzi hanno affrontato la situazione. Gli studenti del MIPT (oltre alla Facoltà di Filosofia, si sono uniti al processo anche alcuni studenti della Facoltà di Filologia e di altre facoltà) sono riusciti a preparare diversi progetti piuttosto interessanti e realizzabili:

Askeroid (precedentemente Ask Droid) – cerca smartphone ( Anastasia Uryasheva)

Un'applicazione Android che ti consente di effettuare ricerche comodamente in un gran numero di motori di ricerca. Alcuni esperti hanno mostrato interesse per lo sviluppo e, di conseguenza, Anastasia ha trascorso l'intera estate passata in uno degli incubatori più famosi della Silicon Valley: Plug&Play. apprendere le basi dell'imprenditorialità tecnologica e parlare con esperti di venture capital internazionali.

1minute.ru – un minuto per sempre (Lev Grunin)

Questo progetto dà a chiunque la possibilità di svolgere attività di beneficenza in modo semplice, veloce e completamente gratuito. Il modello è semplice: gli inserzionisti offrono un certo insieme di attività sul sito, gli utenti vi partecipano volontariamente e tutto il denaro derivante dalla pubblicità viene trasferito a una fondazione di beneficenza. Nel giro di una settimana dal suo lancio, il progetto ha raccolto più di 6.500 utenti e non si fermerà qui. Di conseguenza, grazie a Lev e al suo team, 600 bambini degli orfanotrofi riceveranno preziosi regali da Babbo Natale per il nuovo anno. Hai già dedicato un minuto a fare una buona azione?!

Desktop incorporato: un computer nel telefono (Alexey Vukolov)

Un'applicazione che ti consente di combinare le funzionalità di un computer e la mobilità di un telefono in un unico pacchetto: un prodotto estremamente utile per le persone impegnate che viaggiano spesso in viaggio d'affari. È sufficiente installarlo su uno smartphone e l'utente potrà “procurarsi” il proprio computer in qualsiasi albergo, ufficio, anzi ovunque possa trovare un monitor (va bene anche un televisore), una tastiera e un topo. Il progetto ha ricevuto un finanziamento per lo sviluppo dell'idea ed è stato presentato alla fiera Technovation Cup e, con il denaro ricevuto, il team sta già acquistando attivamente l'attrezzatura. Il produttore americano di processori MIPS è estremamente interessato allo sviluppo.

Smart Tagger – ricerca semantica attraverso i documenti (Victor Kantor)

Cosa dovresti fare se ricordi che da qualche parte nella tua casella di posta c'era una lettera molto importante che parlava dell'ultimo episodio di Big Bang Theory, ma non ricordi nessuna parola chiave del testo? Yandex e la ricerca di Google sono impotenti. Lo sviluppo di Smart Tagger verrà in soccorso: un programma “intelligente” che utilizza la ricerca semantica ti fornirà tutti i testi il ​​cui significato è intrecciato con le popolari serie TV. Il progetto ha vinto una borsa di studio al concorso U.M.N.I.K. per un totale di 400.000 rubli!

MathOcr – riconoscimento di formule (Viktor Prun)

ABBYY ha proposto un compito interessante per l'implementazione: creare un programma in grado di riconoscere formule matematiche di qualsiasi complessità. Gli studenti FIVT, dopo aver collaborato con gli studenti interessati, hanno completato il compito: il modulo riconosce effettivamente le formule scansionate da libri di testo di matematica o fisica. Risultato: ABBYY è pronta ad acquistare questo prodotto per un sacco di soldi.



© mashinkikletki.ru, 2024
Reticolo Zoykin - Portale delle donne