Deep learning

Documente similare
PowerPoint Presentation

Inteligență artificială Laboratorul 8 Perceptronul și rețele de perceptroni în Scikit-learn Stanga :multimea de antrenare a punctelor 3d; Dreapta : mu

Învățare automată Laborator 9 Rețele neuronale în TensorFlow TensorFlow (abreviat TF) este o bibliotecă open source ce permite efectuarea de calcule ș

Microsoft Word - 2 Filtre neliniare.doc

Inferenţa statistică

ERASMUS RO01-KA IULIE 2018 IANUARIE 2019 ACTIVE CITIZENSHIP ÎN CIFRE 6 luni de proiect, 6 clipuri, 7 organizații partenere din 7 țăr


Ingineria Sistemelor de Programare

Microsoft Word - projects.doc

Paradigme de programare

4. Detectarea cantelor Calculul gradientului într-o imagine Detectorul de cante Canny Transformata Hough În această lucrare vor fi studiate metode de

Lucrarea 7 Filtrarea imaginilor BREVIAR TEORETIC Filtrarea imaginilor se înscrie în clasa operaţiilor de îmbunătăţire, principalul scop al acesteia fi

Microsoft Word - fisa-Prelucrarea-Digitala_Imaginilor-RO-Anca-Ignat-2018

Slide 1

Introducere

Proiectarea Sistemelor Software Complexe

Microsoft PowerPoint - curs5-DPT-2010V97 [Compatibility Mode]

Sistem de supraveghere video inteligent cu localizarea automata a evenimentelor de interes SCOUTER, cod proiect PN-II-IN-DPST , contract nr

Slide 1

Procesarea Imaginilor Laborator 3: Histograma nivelurilor de intensitate 1 3. Histograma nivelurilor de intensitate 3.1. Introducere În această lucrar

STORY NAME: Being 20: Japanese culture and Game Development in Moldova COPYRIGHT HOLDER: COPYRIGHT NOTICE: Gabriel Encev / OPEN Media Hub Ownership of

RAPORT ŞTIINŢIFIC Contract nr 33CI/2017, cod PN-III-P2-2.1-CI Titlu proiect: Sistem integrat de analiză și prognoză a consumului pentru dist

IBR 8 iulie 2019

Microsoft Word - Tema 06 - Convertoare analog-numerice.doc

STORY NAME: Young musician COPYRIGHT HOLDER: COPYRIGHT NOTICE: Telefilm Chisinau / OPEN Media Hub Ownership of content belongs to Telefilm Chisinau /

consum redus de energie şi confort plăcut

Slide 1

Untitled-1

PowerPoint Presentation

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Babeş-Bolyai Cluj-Napoca 1.2 Facultatea Facultatea de Mate

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea de Vest din Timișoara 1.2 Facultatea Matematică și Informa

Example Title with Registration Microsoft® and Trademark SQL ServerTM

Microsoft Word - L_TI_4_C2_Tehnici_de_Analiza_a_Imaginilor_Brad_Remus.doc

PowerPoint Presentation

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Babeş-Bolyai Cluj-Napoca 1.2 Facultatea Facultatea de Mate

Carrier Pidgeon Protocol

Universitatea Tehnică Gheorghe Asachi, Iași Facultatea de Electronică, Telecomunicații și Tehnologia Informației Triangulaţia și aplicații (referat) P

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

PowerPoint-Präsentation

Microsoft Word - FLIR - camere portabile de securitate si supraveghere.doc

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test

consideratii privind analiza statica

Transmisia datelor multimedia in retele de calculatoare <Titlu Lucrare>

Microsoft Word - Sinteza_EtapaIII_Contract 69_IDEI_final_.doc

User guide

Analiză statică Analiza fluxului de date 23 octombrie 2014

Lideri pentru Justiţie 2016 Program de leadership pentru tineri jurişti din România (Ediţia a 7-a) Programul Statul de Drept Europa de Sud-Est al Fund

Gestionarea I/E

Lucrarea 13. Controlul unor procese complexe printr-o platforma de tip Arduino (continuarea lucrarii 12) 1. Obiectivul lucrarii Lucrarea isi propune s

Advance CAD 2016 SP1 Acest document descrie îmbunătățirile pentru Advance CAD 2016 Service Pack 1. Notă: Advance CAD 2016 Service Pack 1 este compatib

TEZA de ABILITARE Corelatii intre biomateriale, proteze valvulare cardiace si tehnici chirurgicale folosite in protezarea valvulara aortica Horatiu Mo

Microsoft Word - O problema cu bits.doc

Curs 6: Clasificarea surselor de informatii - Clasificarea Bayes Naiva. Modelul Bernoulli

A.E.F. - suport laborator nr.10 sem.ii Analiza stării de contact între elemente 3D În acest laborator sunt atinse următoarele aspecte: analiza contact

Analiză de flux de date 29 octombrie 2012

Laborator - Configurarea Rutelor IPv4 Statice și Implicite Topologie Tabela de Adresare Echipame nt Interfață Adresă IP Masca de subreţea Default Gate

Anexa nr. 7 - PV punere in functiune, Certificat de conformitate, Raport calibrare debitmetre

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Microsoft Word - Manual_GTA_470_ROU.doc

PACHETUL PROMO BUGET 1. Autolensmetru CANTON model LM Autorefractometru automat CANTON model FA Optotip luminos LED (3 sau 5 metri) 4.

SSC-Introducere-2

PowerPoint Presentation

UNIVERSITATEA DIN CRAIOVA FACULTATEA DE STIINTE EXACTE DEPARTAMENTUL DE INFORMATICA Pozitia postului: 23 Disciplina postului: Inteligenta artificială

PowerPoint Presentation

Microsoft Word - Algoritmi genetici.docx

INTREBARI FRECVENTE SI MANUAL DE UTILIZARE hub.sendsms.ro

Slide 1

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

1 Smartree Romania

CL2009R0976RO bi_cp 1..1

Document2

PAS cap. 2: Reprezentări rare p. 1/35 Prelucrarea avansată a semnalelor Capitolul 2: Reprezentări rare Bogdan Dumitrescu Facultatea de Automatică şi C

IR Update February 2014

A.E.F. - suport laborator nr.3 sem.ii Aplicațe privind utilizarea rețelelor 1D În acest laborator sunt atinse următoarele aspecte: realizarea schițelo

Microsoft Word - Diplome_ doc

EN_VI_2019_Limba_comunicare_test_2_engleza

Ch

Utilizarea Internetului in Afaceri FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 1. Google Drive, Google Calendar, WeTr

Inserarea culorilor in tabele

Investeşte în oameni Proiect cofinanţat din Fondul Social European prin Programul Operaţional Sectorial pentru Dezvoltarea Resurselor Umane

Investeşte în oameni

Manual Utilizare SEPA DD

PowerPoint Presentation

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

Microsoft Word - IngineriF_A.DOC

Microsoft Word - Lab1a.doc

Microsoft Word - PI-L7r.doc

Slide 1

PowerPoint Presentation

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

INDICATORI AI REPARTIŢIEI DE FRECVENŢĂ

Seminar 05 Metode de învățare automată - clasificare

Company Overview_NTT DATA's Corporate Overview Presentation

Procesarea documentelor XML in Linux

METHODS OF AIR FLOW ANALYSIS IN THE COMBUSTION CHAMBER

Prezentare Stâlpi Solari de iluminat Stradal şi Ornamental Alternative Pure Energy se ocupa de proiectarea, producerea, comercializarea, montarea si i

Transcriere:

Deep learning Retele neuronale convolutive (Convolutional neural networks) Ruxandra Stoean rstoean@inf.ucv.ro http://inf.ucv.ro/~rstoean

Definitii For most flavors of the old generations of learning algorithms performance will plateau. deep learning is the first class of algorithms that is scalable. performance just keeps getting better as you feed them more data - Andrew Ng ZDNet The hierarchy of concepts allows the computer to learn complicated concepts by building them out of simpler ones. If we draw a graph showing how these concepts are built on top of each other, the graph is deep, with many layers. For this reason, we call this approach to AI deep learning. Ian Goodfellow et al, Deep Learning, MIT Press, 2016, http://www.deeplearningbook.org/ Deep learning [is] a pipeline of modules all of which are trainable. deep because [has] multiple stages in the process of recognizing an object and all of those stages are part of the training - Yann LeCun At which problem depth does Shallow Learning end, and Deep Learning begin? Discussions with DL experts have not yet yielded a conclusive response to this question. [ ], let me just define for the purposes of this overview: problems of depth > 10 require Very Deep Learning. - Jurgen Schmidhuber https://machinelearningmastery.com/what-is-deep-learning/

Retele neuronale convolutive Convolutional Neural Networks (CNN) Extragere automata a trasaturilor: de la cele low-level la cele high-level Aplicatii importante in computer vision Clasificare Exista o cladire in aceasta imagine Segmentare semantica Acestia sunt pixelii cladirii Detectarea de obiecte Exista cladiri in aceasta imagine Segmentarea instantelor Exista cladiri in aceasta imagine si acestia sunt pixelii fiecareia

Arhitectura Straturi (layers) Invatarea trasaturilor Convolutie ReLU Pooling Clasificare Fully connected https://medium.com/@raghavprabhu/understanding-of-convolutional-neural-networkcnn-deep-learning-99760835f148

Convolutia Input Volum de forma Latime x Inaltime x Adancime Kernel (sau filtru) o multime partajata de ponderi (weights) Trecere inainte (Forward pass) convolutie intre filtru si volumul de intrare Patru hiperparametri: Marime kernel (Kernel size) Adancime kernel sau numar de filter (Kernel depth) Pas (Stride) Umplere cu zero (Zero-padding) http://cs231n.github.io/convolutional-networks/ https://www.youtube.com/watch?v=aqirpkraydg

ReLU & Pooling Rectified Linear Unit un strat de transfer pentru a adauga nonlinearitate (Max) Pooling micsoreaza volumul Marimea ferestrei Pas http://cs231n.github.io/convolutional-networks/ https://www.youtube.com/watch?v=aqirpkraydg

Practica Alegerea unei arhitecturi potrivite Dependenta parametrilor de problema Timp de rulare mare Putere computationala mare necesara Baze de date mici in realitate Overfitting Interpretare dificila a modelelor Nu sunt plug & play!

Parametrizarea Kernelele convolutive Marime, adancime, pasi Straturile de pooling Marimea ferestrelor, pasi Rata de dropout pentru straturile ce controleaza overfitting Marime lotului pentru batch normalization inspre cresterea vitezei de invatare Rata de invatare Numarul de unitati in straturile fully connected Numarul of epoci Ponderile initiale Topologia Optimizatorii Functiile de activare Functiile de pierdere Parametrizare Manuala Automata (printr-o euristica?)

Overfitting Cand modelul e prea complex pentru date Lucrul cu probleme reale Esantioane mici Mijloace de combatere: Augmentarea datelor Reorientare, rotire, scalare, crop, translatie, zgomot Gaussian Retele adversariale generative - Generative adversarial networks (GAN): o retea genereaza, alta evalueaza Straturi de dropout Regularizare Penalizarea pentru ponderi L1 si L2 Oprire timpurie Utilizare de puncte de control pentru a salva modelul la fiecare epoca Alegerea celui mai bun candidat din rezultatele pe validare dupa ultima epoca

Invatare prin transfer(transfer learning) CNN au nevoie de Big data Resurse computationale mari Se iau parametric de la o retea deja antrenata pe o multime mare de date Multimi mari de date: ImageNet, CIFAR Modele pre-antrenate: VGG, Inception, AlexNet, ResNet Straturile initiale invata trasaturi generale Se antreneaza straturile finale pentru problema curenta Se invata trasaturile specific problemei date Asadar Se rezolva problema datelor Sunt mai putin parametri de antrenat

Cadre pentru implementare Deep Learning https://towardsdatascience.com/deep-learning-framework-powerscores-2018-23607ddf297a

Instalare Keras in R Keras este un API high-level de retele neuronale care este scris in Python si foloseste TensorFlow ca backend. Pentru a lucra cu Keras sub R trebuie instalate pe calculator ultimele versiuni ale: R Rstudio Anaconda (pentru instalarea Python) Apoi se instaleaza pachetul keras din RStudio (se vor instala Keras si Tensorflow)

Problema recunoasterii cifrelor MNIST Vom aplica un CNN pentru recunoasterea cifrelor MNIST 1. library("keras") # incarcare BD MNIST mnist <- dataset_mnist() c(x_train, y_train) %<-% mnist$train c(x_test, y_test) %<-% mnist$test rbind(dim(x_train), dim(x_test)) 1 http://yann.lecun.com/exdb/mnist/

Transformare date de intrare in format CNN # transformare in formatul pentru CNN (Lungime x Latime x Numar de canale de culoare) x_train_original <- x_train x_test_original <- x_test x_train <- array_reshape(x_train, c(nrow(x_train), 28, 28, 1)) x_test <- array_reshape(x_test, c(nrow(x_test), 28, 28, 1)) input_shape <- c(28, 28, 1)

Transformare clase in codificare binara # transformare clase codificate prin cifrele 0-9 in codificare one-hot binara y_train_original <- y_train y_test_original <- y_test y_train <- to_categorical(y_train, 10) y_test <- to_categorical(y_test, 10)

Construirea arhitecturii CNN #un strat convolutiv cu 8 filtre de 3 x 3, urmat de ReLU, un al doilea strat convolutiv cu 16 filtre #de marime 5 x 5, urmat de RELU, un strat Max Pooling de marime 2 x 2 si stride 2, un strat de #dropout de 0.25, un strat fully connected cu 100 de unitati si activare ReLU, inca un dropout #de 0.5 si ultimul strat fully connected legat la cele10 clase de iesire cu activare softmax model <- keras_model_sequential() %>% layer_conv_2d(filters = 8, kernel_size = c(3,3), activation = 'relu', padding="same", input_shape = input_shape) %>% layer_conv_2d(filters = 16, kernel_size = c(5,5), activation = 'relu', padding="same") %>% layer_max_pooling_2d(pool_size = c(2, 2)) %>% layer_dropout(rate = 0.25) %>% layer_flatten() %>% layer_dense(units = 100, activation = 'relu') %>% layer_dropout(rate = 0.5) %>% layer_dense(units = 10, activation = 'softmax') summary(model)

Compilare model CNN # compilare model cu functia de pierdere, optimizatorul si metrica folosite model %>% compile( loss = 'categorical_crossentropy', # pentru clasificare multi-class optimizer = 'adam', # optimizatorul metrics = c('accuracy') # acuratetea ca performanta a modelului )

Antrenare model # antrenare model history <- model %>% fit( x_train, y_train, epochs = 10, # numarul de epoci (10 treceri complete ale multimii de antrenament) batch_size = 25, # marimea lotului validation_split = 0.25 # se imparte multimea de date in 75% antrenament si 25% validare )

Vizualizare antrenament si evaluare pe test # vizualizare pierdere si acuratete de-a lungul antrenarii plot(history) # evaluarea modelului pe test model %>% evaluate(x_test, y_test) # predictiile modelului de CNN y_test_predicted <- model %>% predict_classes(x_test)

Istoria antrenamentului

Vizualizare test # vizualizare date de test cu predictiile gasite #par(mfcol=c(6,6)) par(mar=c(0, 0, 3, 0), xaxs='i', yaxs='i') for (idx in 1:36) { im <- x_test_original[idx,,] im <- t(apply(im, 2, rev)) if (y_test_predicted[idx] == y_test_original[idx]) { color <- '#008800' } else { color <- '#bb0000' } image(1:28, 1:28, im, col=gray((0:255)/255), xaxt='n', main=paste0(y_test_predicted[idx], " (", y_test_original[idx], ")"), col.main=color) }

Acuratete: 98.43% Predictie pe test. Vizualizare