Sviluppo dell'apprendimento automatico - corso gratuito della School of Data Analysis, formazione 4 semestri, data: 2 dicembre 2023.
Miscellanea / / December 06, 2023
Questa direzione è adatta a coloro che amano programmare e creare servizi e applicazioni che possano essere utilizzati da migliaia e milioni di persone.
Scrivi codice efficace, costruisci e ottimizza sistemi basati sui dati efficienti a livello industriale.
Nello sviluppo di prodotti high-tech basati sul machine learning.
Ogni studente deve completare con successo almeno tre corsi durante il semestre. Ad esempio, se ce ne sono due nel programma principale, devi scegliere uno dei corsi speciali.
La conoscenza viene verificata principalmente attraverso i compiti: esami e test vengono condotti solo in alcune materie.
Primo semestre
Obbligatorio
Algoritmi e strutture dati, parte 1
01Complessità e modelli computazionali. Analisi dei valori contabili (inizio)
02Analisi dei valori contabili (fine)
03Algoritmi Merge-Sort e Quick-Sort
04Statistiche ordinali. Cumuli (inizio)
05Cumelli (fine)
06Hashing
07Alberi di ricerca (inizio)
08Alberi di ricerca (continua)
09Alberi di ricerca (fine). Sistema di insiemi disgiunti
10Problemi di RMQ e LCA
11Strutture dati per la ricerca geometrica
12Problema di connettività dinamica in un grafo non orientato
Formazione linguistica C++, parte 1
Il C++ è un linguaggio potente con una ricca eredità. Per coloro che hanno appena intrapreso il percorso per padroneggiare questa lingua, è molto facile perdersi nell'abbondanza di tecniche e tecniche create negli ultimi 30 anni. Il corso insegna "Modern C++" - un sottoinsieme moderno del linguaggio (standard 11, 14 e 17). Molta attenzione viene prestata agli strumenti e alle librerie, cose che non fanno parte del linguaggio, ma senza le quali non sarà possibile costruire un progetto ampio e complesso.
01Introduzione al C++.
02Costanti. Puntatori e collegamenti. Passaggio di argomenti a una funzione.
03Classi.
04Gestione dinamica della memoria.
05Variabili, puntatori e riferimenti.
06Gestione della memoria, puntatori intelligenti, RAII.
07Libreria di modelli standard.
08Ereditarietà e funzioni virtuali.
09Gestione degli errori.
10Modelli di progettazione.
11Spazi dei nomi Sposta la semantica Inoltro perfetto.
12Rappresentazione di strutture e classi in memoria. Allineamento dei dati. Puntatori ai membri/metodi della classe. Modelli variadici.
Apprendimento automatico, parte 1
01Concetti di base ed esempi di problemi applicati
02Metodi di classificazione metrica
03Metodi di classificazione logica e alberi decisionali
04Metodi di classificazione lineare dei gradienti
05Supporto macchina vettoriale
06Regressione lineare multivariata
07Regressione non lineare e non parametrica, funzioni di perdita non standard
08Previsione delle serie temporali
09Metodi di classificazione bayesiana
10Regressione logistica
11Cerca le regole di associazione
Secondo termine
Obbligatorio
Apprendimento automatico, parte 2
01Metodi di classificazione e regressione delle reti neurali
02Metodi compositivi di classificazione e regressione
03Criteri di scelta dei modelli e modalità di scelta delle caratteristiche
04Classifica
05Apprendimento per rinforzo
06Apprendere senza insegnante
07Problemi con l'allenamento parziale
08Filtraggio collaborativo
09Modellazione tematica
Scegliere da
Algoritmi e strutture dati, parte 2
01Bypass in larghezza. Prima traversata in profondità (inizio)
02 Scansione in profondità (continua)
03 Scansione in profondità (fine). 2 tagli
04Trovare i percorsi più brevi (inizio)
05Trovare i percorsi più brevi (continua)
06Alberi di copertura minimi
07Tagli minimi. Cerca sottostringhe (inizio)
08Ricerca sottostringhe (continua)
09Ricerca sottostringhe (fine)
10Alberi dei suffissi (inizio)
11Alberi dei suffissi (finale). Array di suffissi (inizio)
12Array di suffissi (finali)
13Sottostringhe comuni più lunghe. Ricerca approssimativa di sottostringhe.
O
Linguaggio Python
01 Nozioni di base sulla lingua (Parte 1)
02 Nozioni di base sulla lingua (Parte 2)
03Programmazione orientata agli oggetti
04Gestione degli errori
05Progettazione e test del codice
06Lavorare con le corde
07Modello di memoria
08Programmazione funzionale
09Recensione della biblioteca (parte 1)
10Recensione della biblioteca (parte 2)
11Calcolo parallelo in Python
12Lavoro avanzato con gli oggetti
O
Formazione linguistica C++, parte 2
La seconda parte del corso C++, che copre argomenti avanzati e capacità linguistiche.
01Programmazione multi-thread. Sincronizzazione dei thread utilizzando mutex e variabili di condizione.
02Variabili atomiche. Modello di memoria C++. Esempi di strutture dati prive di lock.
03Tecniche avanzate di metaprogrammazione in C++. Metafunzioni, SFINAE, concetti.
04Programmazione competitiva, interazione con la rete.
Architettura 05llvm. Lavorare con l'albero di analisi C++. Sviluppo di strumenti per l'analisi del codice C++.
Terzo semestre
Scegliere da
Elaborazione del linguaggio naturale
“La PNL (Natural Language Processing) è un sottoinsieme del campo più ampio dell’intelligenza artificiale che tenta di insegnare a un computer a comprendere ed elaborare dati grezzi in linguaggio naturale. La maggior parte delle informazioni disponibili oggi non sono testo strutturato. Come esseri umani, ovviamente, non è difficile per noi capirli (se sono nella nostra lingua madre), ma non siamo in grado di elaborare tanti dati quanti ne potrebbe elaborare una macchina. Ma come si può far sì che una macchina comprenda questi dati e, inoltre, estragga da essi qualche informazione? Diversi anni fa, all'apertura dell'ACL (una delle principali, se non la più importante conferenza sulla PNL) nel suo Nel discorso presidenziale Marti Hearst ha ammesso di non poter più dare agli studenti il suo preferito esercizio. Utilizzando HAL 9000 come esempio (uno degli esempi di intelligenza artificiale nella fantascienza), ha chiesto agli studenti cosa potrebbe fare la macchina come HAL e cosa non potrebbe ancora fare. Al giorno d'oggi questo non è più un buon esercizio, poiché quasi tutto questo può essere fatto da un computer. È incredibile la rapidità con cui il settore sta crescendo e i risultati che abbiamo raggiunto. Nel corso cercheremo di farti comprendere e sentire cosa sta succedendo nel mondo. Quali problemi vengono risolti, come ciò avviene; come alcuni approcci statistici (a cui i corsi di PNL erano quasi interamente dedicati qualche anno fa) ricevono una nuova vita e una nuova interpretazione nelle reti neurali, e quali gradualmente si estinguono. Mostreremo che la PNL non è un insieme di coppie (problema, soluzione), ma idee generali che penetrano diversi problemi e riflettono alcuni concetti comuni. Imparerai anche cosa succede nella pratica e quando quali approcci sono più applicabili. Questo è ciò che facciamo, ciò che amiamo e siamo pronti a condividerlo con voi :)"
01 https://lena-voita.github.io/nlp_course.html
02 https://github.com/yandexdataschool/nlp_course
O
Visione computerizzata
"Il corso è dedicato ai metodi e agli algoritmi della visione artificiale, ovvero all'estrazione di informazioni da immagini e video. Diamo un'occhiata alle basi dell'elaborazione delle immagini, della classificazione delle immagini, della ricerca delle immagini per contenuto, del riconoscimento dei volti, della segmentazione delle immagini. Poi parleremo degli algoritmi di elaborazione e analisi video. L'ultima parte del corso è dedicata alla ricostruzione 3D. Per la maggior parte dei problemi discuteremo i modelli di rete neurale esistenti. Nel corso cerchiamo di prestare attenzione solo ai metodi più moderni attualmente utilizzati per risolvere problemi pratici e di ricerca. Il corso è in gran parte pratico piuttosto che teorico. Pertanto, tutte le lezioni sono dotate di laboratorio e compiti a casa, che consentono di provare nella pratica la maggior parte dei metodi discussi. Il lavoro viene eseguito in Python utilizzando varie librerie."
01Imaging digitale e correzione del tono
02Nozioni di base sull'elaborazione delle immagini
03Cucitura di immagini
04Classificazione delle immagini e ricerca di quelle simili
05Reti neurali convoluzionali per la classificazione e la ricerca di immagini simili
06Rilevamento oggetti
07Segmentazione semantica
08Trasferimento di stili e sintesi di immagini
09Riconoscimento video
10Ricostruzione 3D sparsa
11Ricostruzione 3D densa
12Ricostruzione da un fotogramma e nuvole di punti, modelli parametrici
O
Metodi bayesiani nell'apprendimento automatico
01Approccio bayesiano alla teoria della probabilità
02Inferenza bayesiana analitica
03Selezione del modello bayesiano
04Determinazione automatica della rilevanza
05 Metodo del vettore di rilevanza per problemi di classificazione
06Modelli probabilistici con variabili latenti
07Inferenza bayesiana variazionale
08Modello di separazione della miscela bayesiana delle gaussiane
09Metodi Monte Carlo con catene di Markov
10 Allocazione di Dirichlet latente
11Processi gaussiani di regressione e classificazione
12Metodi bayesiani non parametrici
Quarto semestre
Obbligatorio
Pratica di ingegneria ML
Il corso è un lavoro di progetto sullo sviluppo di progetti ML in team.
Pratica di ricerca sul machine learning
Il corso rappresenta il lavoro su progetti di ricerca di gruppo nel campo dell'apprendimento automatico.
Corsi speciali consigliati
Apprendimento approfondito
01Materiale del corso
Insegnamento rafforzativo
01Materiale del corso
Auto a guida autonoma
Il corso copre i componenti principali della tecnologia di guida autonoma: localizzazione, percezione, previsione, livello comportamentale e pianificazione del movimento. Per ciascuna componente verranno descritti gli approcci principali. Inoltre, gli studenti acquisiranno familiarità con le attuali condizioni di mercato e le sfide tecnologiche.
01Panoramica dei principali componenti e sensori di un veicolo senza pilota. Livelli di autonomia. Guida tramite filo. L’auto a guida autonoma come prodotto aziendale. Modi per valutare i progressi nella creazione di droni. Nozioni di base sulla localizzazione: gnss, odometria delle ruote, filtri bayesiani.
02Metodi di localizzazione Lidar: ICP, NDT, LOAM. Introduzione allo SLAM visivo utilizzando ORB-SLAM come esempio. Enunciato del problema GraphSLAM. Riduzione del problema GraphSLAM a un metodo dei minimi quadrati non lineare. Selezionare la parametrizzazione corretta. Sistemi con struttura speciale in GraphSLAM. Approccio architetturale: frontend e backend.
03Compito di riconoscimento in un'auto a guida autonoma. Ostacoli statici e dinamici. Sensori per il sistema di riconoscimento. Rappresentazione di ostacoli statici. Rilevamento di ostacoli statici tramite lidar (VSCAN, metodi di rete neurale). Utilizzo di lidar insieme alle immagini per rilevare la statica (segmentazione semantica delle immagini, completamento della profondità). Fotocamera stereo e acquisizione della profondità da un'immagine. Il mondo Stixel.
04Rappresentazione degli ostacoli dinamici in un'auto a guida autonoma. Metodi di rete neurale per il rilevamento di oggetti in 2D. Rilevamento basato sulla vista Bird-eye della rappresentazione della nuvola lidar. Utilizzo del lidar con immagini per rilevare ostacoli dinamici. Rilevamento auto in 3D basato su immagini (montaggio di scatole 3D, modelli CAD). Rilevamento dinamico degli ostacoli basato su radar. Tracciamento degli oggetti.
05Schemi di guida dell'auto: ruota posteriore, ruota anteriore. Pianificazione del percorso. Il concetto di spazio delle configurazioni. Metodi grafici per la costruzione di traiettorie. Traiettorie che riducono al minimo il jerk. Metodi di ottimizzazione per la costruzione di traiettorie.
06Pianificazione della velocità in un ambiente dinamico. Pianificazione ST. Prevedere il comportamento degli altri utenti della strada
Metodi neuro-bayesiani
Il corso si concentra sull'applicazione dei metodi bayesiani nel deep learning. Le lezioni parleranno dell'uso della modellazione probabilistica per costruire modelli di dati generativi, dell'uso della competizione reti per inferenza approssimata, modellazione dell'incertezza nei parametri della rete neurale e alcuni problemi aperti in profondità formazione.
01Inferenza variazionale stocastica
02Inferenza variazionale doppiamente stocastica
03 Autocodificatore variazionale, normalizzazione dei flussi per l'inferenza variazionale
04Metodi per ridurre la varianza nei modelli a variabile latente
05Stima del rapporto delle densità di distribuzione, applicazione sull'esempio di \alpha-GAN
06Reti neurali bayesiane
07Compressione bayesiana delle reti neurali
08Inferenza variazionale semi-implicita