Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Learning About Machine Learning

371 views

Published on

Dans le cadre du PHP Tour à Nantes en mai 2017. Présentation en français, slides en anglais.
From chatbots to your home thermostat, it seems like machine learning algorithms are everywhere nowadays. How about understanding how this works now? In this talk, you will learn about the basics of machine learning through various basic examples, without the need for a PhD or deep knowledge of assembly. At the end of this talk, you will know what the Naive Bayes classifiers, sentiment analysis and basic genetic algorithms are and how they work. You will also see how to create your own implementations in PHP.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Learning About Machine Learning

  1. 1. Learning Machine Learning A little intro to a (not that complex) world
  2. 2. @joel__lord #phptour About Me
  3. 3. @joel__lord #phptour Our Agenda for today… • AI vs ML • Deep Learning & Neural Networks • Supervised vs unsupervised • Naïve Bayes Classifier • Genetic Algorithms
  4. 4. @joel__lord #phptour
  5. 5. @joel__lord #phptour Artificial Intelligence Artificial intelligence (AI) is intelligence exhibited by machines. In computer science, the field of AI research defines itself as the study of "intelligent agents": any device that perceives its environment and takes actions that maximize its chance of success at some goal.
  6. 6. @joel__lord #phptour Artificial Intelligence “takes actions that maximize its chance of success at some goal”
  7. 7. @joel__lord #phptour Examples in real life
  8. 8. @joel__lord #phptour Machine Learning Machine learning (ML) is the subfield of computer science that gives "computers the ability to learn without being explicitly programmed."
  9. 9. @joel__lord #phptour
  10. 10. @joel__lord #phptour
  11. 11. @joel__lord #phptour
  12. 12. @joel__lord #phptour
  13. 13. @joel__lord #phptour
  14. 14. @joel__lord #phptour “Don’t be afraid of artificial intelligence, be afraid of humanity.”
  15. 15. @joel__lord #phptour Deep Learning & Big Data • Explosion of digital data • Can’t be processed with traditional methods anymore
  16. 16. @joel__lord #phptour Neural Networks • Breaking big problems in small layers
  17. 17. @joel__lord #phptour Supervised Learning • Requires feedback • Starts with nothing and increases its understanding • Useless if the data is of bad quality • Use cases: • Classification
  18. 18. @joel__lord #phptour Unsupervised Learning • There is no feedback • Good in the case of no right or wrong answer • Helps to identify patterns or data structures • Use case: • You might also be interested in… • Grouping customers by purchasing behaviors
  19. 19. @joel__lord #phptour The Naïve Bayes Classifier
  20. 20. @joel__lord #phptour Bayes Theorem • 𝑃 𝐴 𝐵 = % 𝐴 𝐵 % & % '
  21. 21. @joel__lord #phptour Bayes Theorem • 𝑃 𝐴 𝐵 = % 𝐵 𝐴 % & % 𝐵 𝐴 % & ( )*% 𝐵 𝐴 )*% &
  22. 22. @joel__lord #phptour Bayes Theorem • 𝑃 𝐴 𝐵 = ∏ % 𝐴 𝑊- . /01 ∏ % 𝐴 𝑊- . /01 ( ∏ )*% 𝐴 𝑊- . /01
  23. 23. @joel__lord #phptour Bayes Theorem • 𝑃 𝐴 𝐵 = 𝑊2∱
  24. 24. @joel__lord #phptour Naive Bayes Classifier • Let’s look at a concrete example. • You never know what you’re gonna get
  25. 25. @joel__lord #phptour Probability that a chocolate has nuts Nuts No Nuts Round 25% 75% Square 75% 25% Dark 10% 90% Light 90% 10%
  26. 26. @joel__lord #phptour Do round, light chocolates have nuts? Nuts No Nuts Round 25% 75% 0.25 0.75 Square 75% 25% - - Dark 10% 90% - - Light 90% 10% 0.9 0.1
  27. 27. @joel__lord #phptour Do round, light chocolates have nuts? Nuts No Nuts Round 25% 75% 0.25 0.75 Square 75% 25% - - Dark 10% 90% - - Light 90% 10% 0.9 0.1 4 𝑷𝒊 𝒏 𝒊8𝟏 0.225 0.075
  28. 28. @joel__lord #phptour Do round, light chocolates have nuts? Nuts No Nuts Round 25% 75% 0.25 0.75 Square 75% 25% - - Dark 10% 90% - - Light 90% 10% 0.9 0.1 4 𝑷𝒊 𝒏 𝒊8𝟏 0.225 0.075 𝑃 🌰 = 0.225 0.225 + 0.075 = 0.75 = 75%
  29. 29. @joel__lord #phptour Naïve Bayes Classifier in code var Classifier = function() { this.dictionaries = {}; }; Classifier.prototype.classify = function(text, group) { }; Classifier.prototype.categorize = function(text) { };
  30. 30. @joel__lord #phptour
  31. 31. @joel__lord #phptour Sentiment Analysis • Not Machine Learning • Uses classifiers and AFINN-165 (and emojis)
  32. 32. @joel__lord #phptour Sentiment Analysis • Javascript: • npm install sentiment • PHP: • composer require risan/sentiment- analysis
  33. 33. @joel__lord #phptour Genetic Algorithm • Awesome shit!
  34. 34. @joel__lord #phptour Genetic Algorithm • Create a population of random individuals • Keep the closest individuals • Keep a few random individuals • Introduce random mutations • Randomly create ”children” • Magically end up with a valid solution
  35. 35. @joel__lord #phptour Genetic Algorithm • Create a population of random individuals • Keep the closest individuals • Keep a few random individuals • Introduce random mutations • Randomly create ”children” • Magically end up with a valid solution
  36. 36. @joel__lord #phptour Genetic Algorithm Credit: AutoDesk https://autodeskresearch.com/projects/Dreamcatcher
  37. 37. @joel__lord #phptour https://www.youtube.com/watch?v=yci5FuI1ovk
  38. 38. @joel__lord #phptour Genetic Algorithm in code //Declare Consts function randomInt(min, max) {…} function random(min, max) {…} function randomIndividual() {…} function randomPopulation(size) {…} function fitness(individual) {…} function sortByFitness(population) {…} 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();
  39. 39. Impact of parameters on Genetic Algorithms
  40. 40. @joel__lord #phptour What did we learn? • Machine Learning and Artificial Intelligence • Big Data and Deep Learning • Supervised vs unsupervised • Basic Algorithms • Naïve Bayes Classifier • Sentiment Analysis • Genetic Algorithm • Hopefully, you don’t feel intimidated by ML anymore
  41. 41. Presented By JOEL LORD PHP Tour Nantes, May 19th 2017 @joel__lord joellord Thank you https://joind.in/talk/9e7e2
  42. 42. Presented By JOEL LORD PHP Tour Nantes, May 19th 2017 @joel__lord joellord Questions? https://joind.in/talk/9e7e2

×