Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Premiers pas en Deep Learning, avec Keras - Light

Premiers pas en Deep Learning, avec Keras - Light

Premiers pas en Deep Learning, avec Keras - version courte
Technozaure Lille - Février 2017

Manuel Verriez

February 27, 2017
Tweet

More Decks by Manuel Verriez

Other Decks in Technology

Transcript

  1. Classifions du vin avec Keras Alcool Acide malique Alcalinité des

    cendres Magnesium Phénols … OD280/OD315 Proline https://archive.ics.uci.edu/ml/datasets/Wine
  2. Classifions du vin avec Keras Alcool Acide malique Cendres Alcalinité

    des cendres Magnesium Phénols Flavanoïdes Non-Flavanoïdes Proanthocyanidins Intensité de la couleur Teinte OD280/OD315 Proline Producteur Input Output https://archive.ics.uci.edu/ml/datasets/Wine
  3. Classifions du vin avec Keras https://archive.ics.uci.edu/ml/datasets/Wine Alcool Acide malique Cendres

    Alcalinité des cendres Magnesium Phénols Flavanoïdes Non-Flavanoïdes Proanthocyanidins Intensité de la couleur Teinte Producteur Input Output ? Bouteille #1
  4. Classifions du vin avec Keras https://archive.ics.uci.edu/ml/datasets/Wine Alcool Acide malique Cendres

    Alcalinité des cendres Magnesium Phénols Flavanoïdes Non-Flavanoïdes Proanthocyanidins Intensité de la couleur Teinte Producteur Input Output 14.23 1.71 2.43 15.6 Producteur numéro 3 ! ? 40 15 1 10 14.6 18 21 Bouteille #1
  5. Classifions du vin avec Keras https://archive.ics.uci.edu/ml/datasets/Wine Alcool Acide malique Cendres

    Alcalinité des cendres Magnesium Phénols Flavanoïdes Non-Flavanoïdes Proanthocyanidins Intensité de la couleur Teinte Producteur Input Output 6 2 5 1,23 Producteur numéro 2 ! ? 14 7 9 1,2 14.6 18 21 Bouteille #2
  6. Réseau de neurones (MLP) ... 15 secondes ... -2 7

    1 3 a b c -2*a +7*b + c + 3 Poids Biais
  7. Réseau de neurones (MLP) ... 10 secondes ... -1 6

    4 2 a b c -1*a +6*b + 4*c + 2 Poids Biais
  8. Réseau de neurones (MLP) ... 5 secondes ... -1 4

    5 2 a b c -1*a +4*b + 5*c + 2 Poids Biais Coût = Sortie générée - Réalité
  9. Classifions du vin avec Keras MLP avec Keras. 1 “Input

    Layer” avec 13 noeuds en entrée + 1 (biais) 1 “Hidden Layer” avec 16 neurones 1 “Output Layer” avec 3 noeuds de sortie
  10. Introduction à Keras model = Sequential() model.add(Dense(16, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation('softmax')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20)
  11. Introduction à Keras model = Sequential() model.add(Dense(16, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation(‘softmax’)) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20) Model : Sequential ou Functional
  12. Introduction à Keras model = Sequential() model.add(Dense(16, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation(‘softmax’)) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20) Layer : Dense, Activation, Dropout, Flatten, Reshape, Permute, Merge, convolutional, recurrent, etc.
  13. Introduction à Keras model = Sequential() model.add(Dense(32, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation(‘softmax’)) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20) Activation : softmax,softplus, softsign, relu, tanh, sigmoid, hard_sigmoid, linear
  14. Introduction à Keras model = Sequential() model.add(Dense(16, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation(‘softmax’)) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20) Initialisation des poids : uniform, lecun, normal, zero, one, etc.
  15. Introduction à Keras model = Sequential() model.add(Dense(16, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation('sigmoid')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20) Objectives : categorical_crossent ropy, mse, binary_crossentropy, custom function, etc..
  16. Introduction à Keras model = Sequential() model.add(Dense(16, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation('sigmoid')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20) Optimizer : adam, SGD, RMSProp, Adagrad, etc.
  17. Introduction à Keras model = Sequential() model.add(Dense(16, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation('sigmoid')) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20) Metrics : accuracy, mse, categorical_accurac y, etc.
  18. Introduction à Keras model = Sequential() model.add(Dense(16, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation(‘softmax’)) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20) On entraîne le modèle avec X en entrée, y en sortie visée.
  19. Introduction à Keras model = Sequential() model.add(Dense(16, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation(‘softmax’)) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20) Donne le nombre itérations
  20. Introduction à Keras model = Sequential() model.add(Dense(16, input_dim = 13,

    init='uniform', bias=True)) model.add(Activation('relu')) model.add(Dense(3, init='uniform')) model.add(Activation(‘softmax’)) model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(X, y, nb_epoch=200, validation_split=.20) Teste le modèle sur 20% des données
  21. Classifions les images avec Keras Keras fournit des modèles pré-entrainés

    sur des catégories ImageNet: • VGG16 • VGG19 • Xception • Resnet50 • InceptionV3
  22. Que peut-on faire avec un RNN? • Génération de texte

    • Traduction automatisée • Reconnaissance vocale • Auto-tag d’images • Combiné avec CNN • Analyse sémantique • ...
  23. RNN avec Keras Compréhension de texte: Facebook bAbI dataset (https://research.fb.com/projects/babi/)

    John travelled to the hallway. Mary journeyed to the bathroom. Daniel went back to the bathroom. John moved to the bedroom. Where is Mary? → bathroom Sandra travelled to the kitchen. Sandra travelled to the hallway. Mary went to the bathroom. Sandra moved to the garden. Where is Sandra? →garden Daniel went to the bathroom. John went to the garden. John went back to the bedroom. Mary journeyed to the office. Where is John? → bedroom Startup.ML Deep Learning Conference: François Chollet on Keras https://www.youtube.com/watch?v=YimQOpSRULY
  24. RNN avec Keras Compréhension de texte: MemNN network Startup.ML Deep

    Learning Conference: François Chollet on Keras https://www.youtube.com/watch?v=YimQOpSRULY
  25. Pour aller plus loin • Import / export des modèles

    (avec ou sans poids) au format HDF5 • Import des modèles Keras vers Deeplearning4j • Distribution • GPU / Instances avec Tensorflow • Spark ( https://github.com/maxpumperla/elephas )
  26. Pour conclure Keras: https://keras.io Créé par François Chollet Août 2016

    - https://twitter.com/fchollet/status/765212287531495424
  27. Références Liens et références: https://keras.io https://archive.ics.uci.edu/ml/datasets/Wine http://ahogrammer.com/2016/11/15/deep-learning-enables-you-to-hide-screen-when-your-boss-is-approaching/ http://www.image-net.org/ https://yanpanlau.github.io/2016/10/11/Torcs-Keras.html http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-introduction-to-rnns/

    https://medium.com/@ageitgey/machine-learning-is-fun-part-3-deep-learning-and-convolutional-neural-networks- f40359318721#.qpo3wxhaq https://www.youtube.com/watch?v=YimQOpSRU https://transcranial.github.io/keras-js Crédits icônes: http://www.flaticon.com/packs/essential-collection http://www.flaticon.com/packs/celebrations