66
www.spiria.com Apprendre l’apprentissage automatisé Présenté par JOEL LORD Web à Québec 4 avril, 2017

Apprendre l'apprentissage automatisé

Embed Size (px)

Citation preview

Page 1: Apprendre l'apprentissage automatisé

www.spiria.com

Apprendre l’apprentissage automatisé

Présenté par

JOEL LORD

Web à Québec4 avril, 2017

Page 2: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

JOEL LORDÀ propos de moi

• Adorateur de Javascript• Bidouilleur• Enthousiaste des

technologies

Page 3: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Agenda

• Intelligence articifielle vs Apprentissage automatisé• Big Data et apprentissage profond• Les algo de base

• Naïve Bayes Classifier• Sentiment Analysis• Genetic Algorithm

Page 4: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Agenda

• Intelligence articifielle vs Apprentissage automatisé• Big Data et apprentissage profond• Les algo de base

• Naïve Bayes Classifier• Sentiment Analysis• Genetic Algorithm

• Le tout parsemé de démos

Page 5: Apprendre l'apprentissage automatisé

Intelligence Articielle et Apprentissage automatisé

UN PEU PLUS AU SUJET DE…

Page 6: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Intelligence artificielleQU’EST CE QUI EN EST

Page 7: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

L'intelligence artificielle (IA) estl'intelligence fournie par les machines. Eninformatique, le domaine de la recherchesur l'IA se définit comme l'étude des «agents intelligents»: tout dispositif qui perçoit son environnement et prend des mesures qui maximisent ses chances de succès à un but.

Page 8: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Intelligence ArtificielleEXEMPLES CONCRETS

Page 9: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Intelligence ArtificielleEXEMPLES CONCRETES

• Filtres de pouriels

Page 10: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Intelligence ArtificielleEXEMPLES CONCRETES

• Filtres de polluriels• Prévention de la fraude

Page 11: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Intelligence ArtificielleEXEMPLES CONCRETES

• Filtres de polluriels• Prévention de la fraude• Reconnaissance faciale

Page 12: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

L'apprentissage automatisé est le sous-domaine de l'informatique qui donne aux «ordinateurs la possibilité d'apprendresans être explicitement programmés».

Page 13: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage automatiséEXEMPLES CONCRETS

• Thermostats intelligents

Page 14: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage automatiséEXEMPLES CONCRETS

• Thermostats intelligents• Cortana, Siri et Ok Google

Page 15: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage automatiséEXEMPLES CONCRETS

• Thermostats intelligents• Cortana, Siri et Ok Google• Chat Bots

Page 16: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage automatiséEXEMPLES CONCRETS

• Thermostats intelligents• Cortana, Siri et Ok Google• Chat Bots

Page 17: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage automatiséEXEMPLES CONCRETS

• Thermostats intelligents• Cortana, Siri et Ok Google• Chat Bots

Page 18: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage automatiséEXEMPLES CONCRETS

• Thermostats intelligents• Cortana, Siri et Ok Google• Chat Bots

Page 19: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage automatiséEXEMPLES CONCRETS

• Thermostats intelligents• Cortana, Siri et Ok Google• Chat Bots

Page 20: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage automatiséEXEMPLES CONCRETS

• Thermostats intelligents• Cortana, Siri et Ok Google• Chat Bots

Page 21: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage automatiséEXEMPLES CONCRETS

• Thermostats intelligents• Cortana, Siri et Ok Google• Chat Bots

Page 22: Apprendre l'apprentissage automatisé

Big Data et apprentissageprofond

ENCORE UN PEU DE THÉORIE

Page 23: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Big DataQU’EST-CE QUE C’EST?

• Croissanceexponentielle des données digitales

• Trop complexe à traiterde façon traditionnelle

• Principalement utiliséepour de la prédictionou analyse des comportements des utilisateurs

Page 24: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage profonD (Deep learning)QU’EST-CE QUE C’EST

• Utilise des réseaux neuronaux pour traiter les données• Idéal pour des classsificateurs complexes• Un moyen de traiter le big data

Page 25: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Réseaux NeuronauxEUH…. WHAT?

• Une collection de couches d’opérations

• Déconstruction d’uneproblème complexe entâches plus simples

Page 26: Apprendre l'apprentissage automatisé

Supervisé vs non-superviséUNE DERNIÈRE PETITE CHOSE…

Page 27: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage superviséQU’EST-CE QUE C’EST

• Requiert une rétroaction• Débute avec aucune connaissance et augmente sa compréhension• Inutile lorsque les données sont de mauvaise qualité• Cas pratiques

• Classification

Page 28: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Apprentissage non-superviséCONTRAIRE DE SUPERVISÉ?

• Besoin d’aucun feedback• Pratique lorsqu’il n’y a pas de bonne ou mauvais réponse• Aide à trouver des patterns ou structures de données• Cas pratiques

• “Vous pourriez aussi être intéressé par…”• Grouper des clients selon leur comportement

Page 29: Apprendre l'apprentissage automatisé

Apprentissage automatiséDE RETOUR À LA PROGRAMMATION NORMALE

Page 30: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneDÉFINITION

• Algorithme supervisé• Un simple moyen de classifier et identifier l’information

var classifier = new Classifier();classifier.classify("J'adore le Javascript", POSITIVE);classifier.classify('WebStorm est génial', POSITIVE);classifier.classify('Non, Javascript est mauvais', NEGATIVE);classifier.classify("Je n'aime pas le brocoli", NEGATIVE);

console.log(classifier.categorize("Javascript est génial"));// "positive"

console.log(classifier.categorize("J'aime WebStorm"));// undefined

Page 31: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneDÉFINITION

• Algorithme supervisé• Un simple moyen de classifier et identifier l’information• Mathématiquement exprimé par la fonction suivante

Page 32: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneDÉFINITION DE LA STRUCTURE

var Classifier = function() {this.dictionaries = {};};

Classifier.prototype.classify = function(text, group) {

};

Classifier.prototype.categorize = function(text) {

};

Page 33: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneCRÉATION DE LA CLASSIFICATION

Classifier.prototype.classify = function(text, group) {var words = text.split(" ");this.dictionaries[group] ? "" : this.dictionaries[group] = {};

var self = this;words.map((w) => {if (self.dictionaries[group][w]) {self.dictionaries[group][w]++;} else {self.dictionaries[group][w] = 1;}});};

Page 34: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneET LE RESTE…Classifier.prototype.categorize = function(text) {var self = this;var probabilities = {};var groups = [];var finals = {};//Find the groupsfor (var k in this.dictionaries) {groups.push(k);}var sums = {};var probs = {};//Loop through the groups to calculate the sums of found textfor (var j = 0; j < groups.length; j++) {if (!sums[text]) sums[text] = 0;if (!this.dictionaries[groups[j]][text]) this.dictionaries[groups[j]][text] = 0;sums[text] += this.dictionaries[groups[j]][text];probs[groups[j]] = (this.dictionaries[groups[j]][text]) ? this.dictionaries[groups[j]][text] : 0;}// Perform calculationsfor (var j = 0; j < groups.length; j++) {(!probabilities[text]) ? probabilities[text] = {} : "";(!probs[groups[j]]) ? probabilities[text][groups[j]] = 0 : probabilities[text][groups[j]] =

probs[groups[j]]/sums[text];}//Average out the probabilities

for (var j = 0; j < groups.length; j++) {if (!finals[groups[j]]) finals[groups[j]] = [];finals[groups[j]].push(probabilities[text][groups[j]]);}for (var i = 0; i < groups.length; i++) {finals[groups[i]] = average(finals[groups[i]]);}//Find the largest probabilityvar highestGroup = "";var highestValue = 0;for (var group in finals) {if (finals[group] > highestValue) {highestGroup = group;highestValue = finals[group];}}

return highestGroup;};

Page 35: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneCATÉGORISATION

Classifier.prototype.categorize = function(text) {var self = this;var probabilities = {};var groups = [];var finals = {};

};

Page 36: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneCATÉGORISATION

Classifier.prototype.categorize = function(text) {…//Find the groupsfor (var k in this.dictionaries) {groups.push(k);}var sums = {};var probs = {};

};

Page 37: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneCATÉGORISATION

Classifier.prototype.categorize = function(text) {…//Loop through the groups to calculate the sums of found textfor (var j = 0; j < groups.length; j++) {if (!sums[text]) sums[text] = 0;if (!this.dictionaries[groups[j]][text]) this.dictionaries[groups[j]][text]

= 0;sums[text] += this.dictionaries[groups[j]][text];probs[groups[j]] = (this.dictionaries[groups[j]][text]) ?

this.dictionaries[groups[j]][text] : 0;}};

Page 38: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneCATÉGORISATION

Classifier.prototype.categorize = function(text) {…// Perform calculationsfor (var j = 0; j < groups.length; j++) {(!probabilities[text]) ? probabilities[text] = {} : "";(!probs[groups[j]]) ? probabilities[text][groups[j]] = 0 :

probabilities[text][groups[j]] = probs[groups[j]]/sums[text];}};

Page 39: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneCATÉGORISATION

Classifier.prototype.categorize = function(text) {…

//Average out the probabilities

for (var j = 0; j < groups.length; j++) {if (!finals[groups[j]]) finals[groups[j]] = [];finals[groups[j]].push(probabilities[text][groups[j]]);

}for (var i = 0; i < groups.length; i++) {finals[groups[i]] = average(finals[groups[i]]);

}};

Page 40: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneCATÉGORISATION

Classifier.prototype.categorize = function(text) {…//Find the largest probabilityvar highestGroup = "";var highestValue = 0;for (var group in finals) {if (finals[group] > highestValue) {highestGroup = group;highestValue = finals[group];

}}

return highestGroup;};

Page 41: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Classification naïve bayésienneSOMMAIREClassifier.prototype.categorize = function(text) {var self = this;var probabilities = {};var groups = [];var finals = {};//Find the groupsfor (var k in this.dictionaries) {groups.push(k);}var sums = {};var probs = {};//Loop through the groups to calculate the sums of found textfor (var j = 0; j < groups.length; j++) {if (!sums[text]) sums[text] = 0;if (!this.dictionaries[groups[j]][text]) this.dictionaries[groups[j]][text] = 0;sums[text] += this.dictionaries[groups[j]][text];probs[groups[j]] = (this.dictionaries[groups[j]][text]) ? this.dictionaries[groups[j]][text] : 0;}// Perform calculationsfor (var j = 0; j < groups.length; j++) {(!probabilities[text]) ? probabilities[text] = {} : "";(!probs[groups[j]]) ? probabilities[text][groups[j]] = 0 : probabilities[text][groups[j]] =

probs[groups[j]]/sums[text];}//Average out the probabilities

for (var j = 0; j < groups.length; j++) {if (!finals[groups[j]]) finals[groups[j]] = [];finals[groups[j]].push(probabilities[text][groups[j]]);}for (var i = 0; i < groups.length; i++) {finals[groups[i]] = average(finals[groups[i]]);}//Find the largest probabilityvar highestGroup = "";var highestValue = 0;for (var group in finals) {if (finals[group] > highestValue) {highestGroup = group;highestValue = finals[group];}}

return highestGroup;};

Page 42: Apprendre l'apprentissage automatisé

Montrez moi !CLASSIFICATION NAÏVE BAYÉSIENNE

Page 43: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Analyse de sentimentsCOMMENT ÇA FONCTIONNE

• Approche similaire aux classificateurs• Utilise une liste de mots (AFINN-165) et parfois les emoticons pour

donner un score.

Page 44: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Analyse de sentimentsEXEMPLE DE CODE

var twit = require("twit");var sentiment = require("sentiment");

Page 45: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Analyse de sentimentsEXEMPLE DE CODE

var keyword = "#waq17";var t = new twit(require("./credentials"));var stream1 = t.stream("statuses/filter", {track: keyword});

Page 46: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Analyse de sentimentsEXEMPLE DE CODE

stream1.on("tweet", function (tweet) {

});

Page 47: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Analyse de sentimentsEXEMPLE DE CODE

var score = sentiment(tweet.text);console.log("--- \n New Tweet\n" + tweet.text + "\n" + (score > 0 ?

"Positive" : "Negative"));

Page 48: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Analyse de sentimentsEXEMPLE DE CODE

var twit = require("twit");var sentiment = require("sentiment");var keyword = "#waq17";var t = new twit(require("./credentials"));var stream1 = t.stream("statuses/filter", {track: keyword});stream1.on("tweet", function (tweet) {var score = sentiment(tweet.text);console.log("--- \n New Tweet\n" + tweet.text + "\n" + (score > 0 ?

"Positive" : "Negative"));});

Page 49: Apprendre l'apprentissage automatisé

Montrez moi !ANALYSE DE SENTIMENTS

Page 50: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesÇA MANGE QUOI EN HIVER

• Moyen de trouver une solution idéaleen utilisant des solutions aléatoires

• Cas pratiques• Moteurs d’avion• Hackrod

Page 51: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesCOMMENT ÇA FONCTIONNE

• On crée une population d’individus aléatoires• On garde les plus proches de la solution• On garde des individus aléatoires• On introduit des mutations aléatores• On crée aléatoirement des “enfants”• On arrive magiquement à une solution!

Page 52: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesCOMMENT ÇA FONCTIONNE

• On crée une population d’individus aléatoires• On garde les plus proches de la solution• On garde des individus aléatoires• On introduit des mutations aléatores• On crée aléatoirement des “enfants”• On arrive magiquement à une solution!

Page 53: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesL’IMPORTANCE DES MUTATIONS

Page 54: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesEXEMPLE DE CODE

var population = [];const TARGET = 200;const MIN = 0;const MAX = TARGET - 1;const IND_COUNT = 4;const POP_SIZE = 100;const CLOSE_ENOUGH = 0.001;var RETAIN = 0.02;var RANDOM_SELECTION = 0.05;var MUTATION_PROBABILITY = 0.01;

Page 55: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesEXEMPLE DE CODE

//Declare Consts

function randomInt(min, max) {return Math.round(random(min, max));

}

function random(min, max) {if (max == undefined) { max = min; min = 0; }if (max == undefined) { max = 100; }return (Math.random()*(max-min)) + min;

}

Page 56: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesEXEMPLE DE CODE

//Declare Constsfunction randomInt(min, max) {…}function random(min, max) {…}

function fitness(individual) {sum = individual.reduce((a,b) => a + b, 0);return Math.abs(TARGET - sum);

}

function sortByFitness(population) {population.sort((a, b) => {var fitA = fitness(a); var fitB = fitness(b);return fitA > fitB ? 1 : -1;

});return population;

}

Page 57: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesEXEMPLE DE CODE

//Declare Constsfunction randomInt(min, max) {…}function random(min, max) {…}function fitness(individual) {…}function sortByFitness(population) {…}

function randomIndividual() {var individual = [];for (var i = 0; i < IND_COUNT; i++) {individual.push(random(MIN, MAX));

}return individual;

}

function randomPopulation(size) {var population = [];for (var i = 0; i < size; i++) {population.push(randomIndividual());

}return population;

}

Page 58: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesEXEMPLE DE CODE

//Declare Constsfunction randomInt(min, max) {…}function random(min, max) {…}function fitness(individual) {…}function sortByFitness(population) {…}function randomIndividual() {…}function randomPopulation(size) {…}

function mutate(population) {for (var i=0; i < population.length; i++) {if (MUTATION_PROBABILITY > Math.random()) {var index = randomInt(population[i].length);population[i][index] = random(MIN, MAX);

}}return population;

}

Page 59: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesEXEMPLE DE CODE

//Declare Constsfunction randomInt(min, max) {…}function random(min, max) {…}function fitness(individual) {…}function sortByFitness(population) {…}function randomIndividual() {…}function randomPopulation(size) {…}function mutate(population) {…}

function reproduce(father, mother) {var half = father.length / 2;var child = [];child = child.concat(father.slice(0, half), mother.slice(half,

mother.length));return child;

}

Page 60: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesEXEMPLE DE CODE

//Declare Constsfunction randomInt(min, max) {…}function random(min, max) {…}function fitness(individual) {…}function sortByFitness(population) {…}function randomIndividual() {…}function randomPopulation(size) {…}function mutate(population) {…}function reproduce(father, mother) {…}

function evolve(population) {var parents = [];//Keep the best solutionsparents=sortByFitness(population).slice(0,Math.round(POP_SIZE*RETAIN));//Randomly add new elementsfor (var i = parents.length; i < POP_SIZE - parents.length; i++) {if (RANDOM_SELECTION > Math.random()) {parents.push(randomIndividual());

}}

}

Page 61: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesEXEMPLE DE CODE

//Declare Constsfunction randomInt(min, max) {…}function random(min, max) {…}function fitness(individual) {…}function sortByFitness(population) {…}function randomIndividual() {…}function randomPopulation(size) {…}function mutate(population) {…}function reproduce(father, mother) {…}

function evolve(population) {//Random Stuffparents = mutate(parents);var rndMax = parents.length - 1;while (parents.length < POP_SIZE) {var father = randomInt(rndMax);var mother = randomInt(rndMax);if (father != mother) {father = parents[father]; mother = parents[mother];parents.push(reproduce(father, mother));

}}return parents;

}

Page 62: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesEXEMPLE DE CODE

//Declare Constsfunction randomInt(min, max) {…}function random(min, max) {…}function fitness(individual) {…}function sortByFitness(population) {…}function randomIndividual() {…}function randomPopulation(size) {…}function mutate(population) {…}function reproduce(father, mother) {…}function evolve(population) {…}

function findSolution() {var population = randomPopulation(POP_SIZE);var generation = 0;while (fitness(population[0]) > CLOSE_ENOUGH) {generation++;population = evolve(population);

}return {solution: population[0], generations: generation};

}

var sol = findSolution();

Page 63: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

Algorithmes génétiquesEXEMPLE DE CODE

var population = [];const TARGET = 200;const MIN = 0;const MAX = TARGET - 1;const IND_COUNT = 4;const POP_SIZE = 100;const CLOSE_ENOUGH = 0.001;var RETAIN = 0.02;var RANDOM_SELECTION = 0.05;var MUTATION_PROBABILITY = 0.01;

function randomInt(min, max) {return Math.round(random(min, max));

}

function random(min, max) {if (max == undefined) { max = min; min = 0; }if (max == undefined) { max = 100; }return (Math.random()*(max-min)) + min;

}

function fitness(individual) {sum = individual.reduce((a,b) => a + b, 0);return Math.abs(TARGET - sum);

}

function sortByFitness(population) {population.sort((a, b) => {var fitA = fitness(a); var fitB = fitness(b);return fitA > fitB ? 1 : -1;

});return population;

}

function randomIndividual() {var individual = [];for (var i = 0; i < IND_COUNT; i++) {individual.push(random(MIN, MAX));

}return individual;

}

function randomPopulation(size) {var population = [];for (var i = 0; i < size; i++) {population.push(randomIndividual());

}return population;

}

function mutate(population) {for (var i=0; i < population.length; i++) {if (MUTATION_PROBABILITY > Math.random()) {var index = randomInt(population[i].length);population[i][index] = random(MIN, MAX);

}}return population;

}

function reproduce(father, mother) {var half = father.length / 2;var child = [];child = child.concat(father.slice(0, half), mother.slice(half, mother.length));return child;

}

function evolve(population) {var parents = [];//Keep the best solutionsparents = sortByFitness(population).slice(0, Math.round(POP_SIZE*RETAIN));//Randomly add new elementsfor (var i = parents.length; i < POP_SIZE - parents.length; i++) {if (RANDOM_SELECTION > Math.random()) {parents.push(randomIndividual());

}}//Mutate elementsparents = mutate(parents);var rndMax = parents.length - 1;while (parents.length < POP_SIZE) {var father = randomInt(rndMax);var mother = randomInt(rndMax);if (father != mother) {father = parents[father];mother = parents[mother];parents.push(reproduce(father, mother));

}}return parents;

}

function findSolution() {var population = randomPopulation(POP_SIZE);var generation = 0;while (fitness(population[0]) > CLOSE_ENOUGH) {generation++;population = evolve(population);

}return {solution: population[0], generations: generation};

}

var sol = findSolution();console.log("Found solution in " + sol.generations + " generations.", sol.solution);

Page 64: Apprendre l'apprentissage automatisé

Faut le voir pour le croireALGORITHMES GÉNÉTIQUES

Page 65: Apprendre l'apprentissage automatisé

DOCUMENT CONFIDENTIEL, TOUT DROIT RÉSERVÉ

PRESENTED BY

That’s all folks !Questions?

JOEL LORDApril 4th, 2017

TWITTER: @JOEL__LORDGITHUB: HTTP://GITHUB.COM/JOELLORD

Page 66: Apprendre l'apprentissage automatisé

@joel__lord#WAQ17

QuestionIMPACT OF PARAMETERS ON GENETIC ALGORITHMS