Dezvoltare machine learning - curs gratuit de la Scoala de Analiza Datelor, training 4 semestre, Data: 2 decembrie 2023.
Miscelaneu / / December 06, 2023
Această direcție este potrivită pentru cei cărora le place să programeze și să creeze servicii și aplicații care pot fi folosite de mii și milioane de oameni.
Scrieți cod eficient, construiți și optimizați sisteme bazate pe date eficiente din punct de vedere industrial.
În dezvoltarea de produse high-tech bazate pe machine learning.
Fiecare student trebuie să parcurgă cu succes cel puțin trei cursuri pe parcursul semestrului. De exemplu, dacă există două dintre ele în programul principal, atunci trebuie să alegeți unul dintre cursurile speciale.
Cunoștințele sunt testate în primul rând prin teme - examenele și testele se desfășoară doar la unele materii.
Primul semestru
Obligatoriu
Algoritmi și structuri de date, partea 1
01Complexitate și modele de calcul. Analiza valorilor contabile (început)
02 Analiza valorilor contabile (sfârșit)
03 Algoritmi Merge-Sort și Quick-Sort
04 Statistici ordinare. grămezi (început)
05 grămezi (sfârșit)
06 Hashing
07 Căutați copaci (început)
08 Căutați arbori (continuare)
09 Căutați copaci (sfârșit). Sistem de mulțimi disjunse
10Probleme ale RMQ și LCA
11 Structuri de date pentru căutare geometrică
12Problemă de conectivitate dinamică într-un grafic nedirecționat
Pregătirea limbajului C++, partea 1
C++ este un limbaj puternic, cu o moștenire bogată. Pentru cei care tocmai au pornit pe calea stăpânirii acestui limbaj, este foarte ușor să se piardă în abundența de tehnici și tehnici create în ultimii 30 de ani. Cursul predă „Modern C++” - un subset modern al limbajului (standardele 11, 14 și 17). Se acordă multă atenție instrumentelor și bibliotecilor - lucruri care nu fac parte din limbaj, dar fără de care nu se va putea construi un proiect amplu și complex.
01 Introducere în C++.
02Constante. Indicatori și link-uri. Transmiterea de argumente unei funcții.
03 Clasele.
04 Gestionarea dinamică a memoriei.
05Variabile, indicatoare și referințe.
06Gestiunea memoriei, pointeri inteligente, RAII.
07Bibliotecă de șabloane standard.
08Moștenire și funcții virtuale.
09 Gestionarea erorilor.
10 Modele de design.
11 Spații de nume Mutare semantică Redirecționare perfectă.
12 Reprezentarea structurilor și claselor în memorie. Alinierea datelor. Indicatori către membrii/metodele clasei. Șabloane variadice.
Învățare automată, partea 1
01 Concepte de bază și exemple de probleme aplicate
02Metode de clasificare metrică
03Metode de clasificare logică și arbori de decizie
04Metode de clasificare liniară cu gradient
05 Suport Vector Machine
06 Regresie liniară multivariată
07 Regresie neliniară și neparametrică, funcții de pierdere non-standard
08Prognoza serii temporale
09Metode bayesiene de clasificare
10 Regresie logistică
11Căutați regulile de asociere
Al doilea mandat
Obligatoriu
Învățare automată, partea a 2-a
01Metode ale rețelelor neuronale de clasificare și regresie
02Metode compoziționale de clasificare și regresie
03Criterii de selectare a modelelor și metode de selectare a caracteristicilor
04 Clasament
05 Învățare prin întărire
06 Învățarea fără profesor
07Probleme cu antrenamentul parțial
08Filtrare în colaborare
09 Modelare tematică
A alege din
Algoritmi și structuri de date, partea 2
01 Ocolire în lățime. Adâncime prima traversare (început)
02 Târătură în adâncime (continuare)
03 Târătură de adâncime (capăt). 2-tăieri
04Găsirea celor mai scurte căi (început)
05Găsirea celor mai scurte căi (continuare)
06 Arbori care se întind minim
07 Tăieri minime. Căutați subșiruri (start)
08Căutare subșiruri (continuare)
09 Căutați subșiruri (sfârșit)
10 Arbori cu sufix (început)
11 Arbori de sufix (termină). Matrice de sufixe (start)
12 Matrice de sufixe (termină)
13 Cele mai lungi subșiruri comune. Căutare aproximativă de subșiruri.
sau
Limbajul Python
01 Bazele limbii (Partea 1)
02 Bazele limbii (Partea a 2-a)
03Programare orientată pe obiecte
04 Gestionarea erorilor
05Proiectarea codului și testarea
06 Lucrul cu șiruri
07 Model de memorie
08 Programare funcțională
09Recenzia bibliotecii (partea 1)
10Recenzia bibliotecii (partea 2)
11Calcul paralel în Python
12 Lucru avansat cu obiecte
sau
Pregătirea limbajului C++, partea a 2-a
A doua parte a cursului C++, care acoperă subiecte avansate și capacități lingvistice.
01 Programare cu mai multe fire. Sincronizarea firelor de execuție folosind mutexuri și variabile de condiție.
02 Variabile atomice. Model de memorie C++. Exemple de structuri de date fără blocare.
03Tehnici avansate de meta-programare în C++. Metafuncții, SFINAE, concepte.
04Programare competitivă, interacțiune cu rețeaua.
05llvm arhitectura. Lucrul cu arborele de analiză C++. Dezvoltarea de instrumente pentru analiza codului C++.
Al treilea semestru
A alege din
Procesarea limbajului natural
„NLP (Natural Language Processing) este un subset al domeniului mai larg al AI care încearcă să învețe un computer să înțeleagă și să proceseze date brute în limbaj natural. Majoritatea informațiilor disponibile astăzi nu sunt text structurat. Ca oameni, desigur, nu ne este greu să le înțelegem (dacă sunt în limba noastră maternă), dar nu suntem capabili să procesăm atât de multe date pe cât ar putea procesa o mașină. Dar cum poți face o mașină să înțeleagă aceste date și, în plus, să extragi câteva informații din ele? Cu câțiva ani în urmă, la deschiderea ACL (una dintre principalele, dacă nu cea mai importantă conferință NLP) din Discursul prezidențial Marti Hearst a recunoscut că nu mai poate oferi studenților favoritul ei exercițiu. Folosind HAL 9000 ca exemplu (unul dintre exemplele de inteligență artificială din science fiction), ea i-a întrebat pe studenți ce ar putea face mașina ca HAL și ce nu ar putea face încă. În zilele noastre, acesta nu mai este un exercițiu atât de bun, deoarece aproape toate acestea pot fi făcute acum de un computer. Este uimitor cât de repede crește domeniul și cât de mult am realizat. În cadrul cursului vom încerca să vă facem să înțelegeți și să simțiți ce se întâmplă în lume. Ce probleme sunt rezolvate, cum se întâmplă acest lucru; cum unele abordări statistice (cărora cursuri de NLP au fost dedicate aproape în întregime acum câțiva ani) primesc o nouă viață și o nouă interpretare în rețelele neuronale și care se sting treptat. Vom arăta că NLP nu este un set de perechi (problemă, soluție), ci idei generale care pătrund diferite probleme și reflectă un concept comun. De asemenea, veți afla ce se întâmplă în practică și când ce abordări sunt mai aplicabile. Aceasta este ceea ce facem, ceea ce iubim și suntem gata să vă împărtășim cu voi :)"
01 https://lena-voita.github.io/nlp_course.html
02 https://github.com/yandexdataschool/nlp_course
sau
Viziune computerizată
„Cursul este dedicat metodelor și algoritmilor de viziune computerizată, adică extragerea de informații din imagini și videoclipuri. Să ne uităm la elementele de bază ale procesării imaginilor, clasificării imaginilor, căutării imaginilor după conținut, recunoașterii feței, segmentării imaginilor. Apoi vom vorbi despre procesarea video și algoritmii de analiză. Ultima parte a cursului este dedicată reconstrucției 3D. Pentru majoritatea problemelor vom discuta modelele de rețele neuronale existente. În cadrul cursului încercăm să acordăm atenție doar celor mai moderne metode care sunt utilizate în prezent în rezolvarea problemelor practice și de cercetare. Cursul este mai degrabă practic decât teoretic. Prin urmare, toate cursurile sunt dotate cu laborator și teme, care vă permit să încercați majoritatea metodelor discutate în practică. Lucrarea este efectuată în Python folosind diferite biblioteci.”
01 Imagistica digitală și corecția tonului
02 Noțiuni de bază pentru procesarea imaginilor
03 Cusătură imagini
04Clasificarea imaginilor și căutarea unora similare
05Rețele neuronale convoluționale pentru clasificare și căutare de imagini similare
06Detecția obiectului
07Segmentare semantică
08Transfer de stil și sinteza imaginii
09Recunoaștere video
10 Reconstrucție 3D rară
11 Reconstrucție 3D densă
12 Reconstrucție dintr-un cadru și nori de puncte, modele parametrice
sau
Metode bayesiene în învățarea automată
01 Abordarea bayesiană a teoriei probabilităților
02 Inferență Bayesiană analitică
03Selectarea modelului bayesian
04Determinarea automată a relevanței
05 Metoda vectorului de relevanță pentru problema de clasificare
06Modele probabilistice cu variabile latente
07 Inferența Bayesiană variațională
08Model bayesian de separare a amestecurilor a gaussienilor
09Metode Monte Carlo cu lanțuri Markov
10Alocarea latentă de Dirichlet
11 Procese gaussiene pentru regresie și clasificare
12 Metode bayesiene neparametrice
Al patrulea semestru
Obligatoriu
Practică de inginerie ML
Cursul este un proiect de lucru pentru dezvoltarea proiectelor ML în echipe.
Practică de cercetare ML
Cursul reprezintă munca pe proiecte de cercetare în echipă în domeniul învățării automate.
Cursuri speciale recomandate
Invatare profunda
01 Material de curs
Consolidarea învățării
01 Material de curs
Mașini cu conducere autonomă
Cursul acoperă componentele de bază ale tehnologiei auto-conducerii: localizarea, percepția, predicția, nivelul comportamental și planificarea mișcării. Pentru fiecare componentă, vor fi descrise principalele abordări. În plus, studenții se vor familiariza cu condițiile actuale ale pieței și cu provocările tehnologice.
01Prezentare generală asupra principalelor componente și senzori ai unui vehicul fără pilot. Niveluri de autonomie. Conduceți prin cablu. Mașinile cu conducere autonomă ca produs de afaceri. Modalități de evaluare a progresului în crearea de drone. Elemente de bază ale localizării: gnss, odometria roții, filtre bayesiene.
02Metode de localizare Lidar: ICP, NDT, LOAM. Introducere în SLAM vizual folosind ORB-SLAM ca exemplu. Declarația problemei GraphSLAM. Reducerea problemei GraphSLAM la o metodă neliniară a celor mai mici pătrate. Selectarea parametrizării corecte. Sisteme cu o structură specială în GraphSLAM. Abordare arhitecturală: frontend și backend.
03 Sarcina de recunoaștere într-o mașină cu conducere autonomă. Obstacole statice și dinamice. Senzori pentru sistemul de recunoaștere. Reprezentarea obstacolelor statice. Detectarea obstacolelor statice folosind lidar (VSCAN, metode de rețea neuronală). Utilizarea lidar împreună cu imaginile pentru a detecta statica (segmentarea semantică a imaginii, completarea adâncimii). Cameră stereo și obținerea profunzimii dintr-o fotografie. Lumea Stixel.
04Reprezentarea obstacolelor dinamice într-o mașină cu conducere autonomă. Metode de rețea neuronală pentru detectarea obiectelor în 2D. Detectarea bazată pe vizualizarea de tip Bird-eye a reprezentării norului lidar. Utilizarea lidar cu imagini pentru a detecta obstacole dinamice. Detectarea mașinii în 3D pe baza imaginilor (montarea cutiilor 3D, modele CAD). Detectarea dinamică a obstacolelor bazată pe radar. Urmărirea obiectelor.
05 Modele de conducere auto: roată din spate, roată din față. Planificarea traseului. Conceptul de spațiu de configurare. Metode grafice pentru construirea traiectoriilor. Traiectorii care minimizează smucitura. Metode de optimizare pentru construirea traiectoriilor.
06Planificarea vitezei într-un mediu dinamic. planificarea ST. Prezicerea comportamentului altor utilizatori ai drumului
Metode neuro-bayesiene
Cursul se concentrează pe aplicarea metodelor bayesiene în deep learning. Prelegerile vor vorbi despre utilizarea modelării probabilistice pentru a construi modele de date generative, utilizarea concurenței rețele pentru inferență aproximativă, modelarea incertitudinii în parametrii rețelei neuronale și unele probleme deschise în adâncime Instruire.
01 Inferența variațională stocastică
02 Inferență variațională dublu stocastică
03 Autoencoder variațional, fluxuri de normalizare pentru inferența variațională
04Metode pentru reducerea varianței în modelele variabile latente
05Estimarea raportului densităților de distribuție, aplicare folosind exemplul \alpha-GAN
06Rețele neuronale bayesiene
07 Compresia bayesiană a rețelelor neuronale
08 Inferență variațională semi-implicita