Coder Social home page Coder Social logo

semi_supervised_deep_cnn's Introduction

Semi_supervised_deep_CNN

Implémentation de l'article "Unsupervised Data Augmentation for Consistency Training" de Xie et al. https://arxiv.org/pdf/1904.12848.pdf sur le jeu de données MNIST sous python.

Le but de l'article est d'obtenir de bonnes performances de classification dans un contexte semi-supervisé à l'aide de data augmentation, la méthode proposée peux se résumer par la représentation suivante :

drawing

La fonction de perte finale est donc un mélange ( plus précisément une somme pondérée ) d'une première perte supervisé et d'une seconde perte non supervisée se calculant à l'aide d'une entropie croisée. Plus précisément la fonction de perte finale à minimiser selon $\theta$ s'écrit :

drawing

Avec $p_L$ la densité des données labélisées, $p_U$ la densité des données non labélisées, $q(.|x)$ la densité des augmentations partant de la donnée x, $f^*(x)$ la classe de x et $\lambda$ un hyper-paramètre représentant l'importance accordé à la partie augmentée.

Ce repo est un travail en commun contenant une présentation de la méthode et des performances obtenues ainsi qu'un code sous python permétant d'implémenter cette technique sur les données MNIST. Nous nous sommes restreint à 1000 images MNIST pour la partie supervisée et avons utilisés le reste du train pour la partie data augmentation.

Nous avons entrainer deux types de réseaux de neuronnes, un réseau de neuronnes dense et un réseau de convolution. Nous avons ensuite appliqués la méthode de l'article au lieu de les entrainer uniquement sur les données labélisées ( 1000 images )et avons remarquer une augmentation de l'accuracy. Le but ici n'était pas d'avoir des réseaux performant mais uniquement de remarquer une augmentation de l'accuracy grace à la méthode proposer par l'article.

Le tableau suivant résume une partie des résultats obtenus :

Modèle Méthode supervisé Méthode semi-supervisé Gain d'accuracy
Réseau dense 72.80% 79.82% 7.02%
CNN 73.80% 76.52% 2.72%

semi_supervised_deep_cnn's People

Contributors

arfo-du-blo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.