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

An AI, NEAT plus ultra

An AI, NEAT plus ultra

You've been hearing about AI for a while, but it's still obscure for you.
How does it work, what's behind this word?
If reading white papers or doctoral papers is not your thing, the tensorflow doc is just a big pile of words, and if you've seen unclear presentations using the same vocabulary without really give you an idea of how it works and how to implement an AI at home... This presentation is for you.
At its end, you will be able to play with an AI, simple, but that will serve as a gateway to the beautiful world of machine-learning.

Grégoire Hébert

May 03, 2019
Tweet

More Decks by Grégoire Hébert

Other Decks in Programming

Transcript

  1. UNE IA

    NEAT PLUS ULTRA

    View Slide

  2. UNE IA

    NEAT PLUS ULTRA

    View Slide

  3. Grégoire Hébert
    Senior Developper - Trainer @ Les-Tilleuls.coop
    @gheb_dev
    @gregoirehebert
    UNE IA

    NEAT PLUS ULTRA

    View Slide

  4. @gheb_dev @gregoirehebert

    View Slide

  5. @gheb_dev @gregoirehebert
    REACTIVE MACHINES (Senarii reactive)

    View Slide

  6. @gheb_dev @gregoirehebert
    REACTIVE MACHINES (Senarii reactive)
    LIMITED MEMORY (Environment reactive)

    View Slide

  7. @gheb_dev @gregoirehebert
    REACTIVE MACHINES (Senarii reactive)
    LIMITED MEMORY (Environment reactive)
    THEORY OF MIND (People awareness)

    View Slide

  8. @gheb_dev @gregoirehebert
    REACTIVE MACHINES (Senarii reactive)
    LIMITED MEMORY (Environment reactive)
    THEORY OF MIND (People awareness)
    SELF AWARE

    View Slide

  9. SELF AWARE
    @gheb_dev @gregoirehebert
    REACTIVE MACHINES (Senarii reactive)
    LIMITED MEMORY (Environment reactive)
    THEORY OF MIND (People awareness)

    View Slide

  10. @gheb_dev @gregoirehebert
    REACTIVE MACHINES (Senarii reactive)

    View Slide

  11. @gheb_dev @gregoirehebert
    INPUT

    View Slide

  12. @gheb_dev @gregoirehebert
    INPUT
    ?

    View Slide

  13. @gheb_dev @gregoirehebert
    INPUT
    ?
    OUTPUT

    View Slide

  14. @gheb_dev @gregoirehebert
    INPUT ? OUTPUT
    PERCEPTRON

    View Slide

  15. @gheb_dev @gregoirehebert
    ?

    View Slide

  16. @gheb_dev @gregoirehebert
    ?
    Or not

    View Slide

  17. @gheb_dev @gregoirehebert
    ?
    Or not
    0 - 10

    View Slide

  18. @gheb_dev @gregoirehebert
    ?
    Or not
    0 - 10
    0 - 1 0 - 1
    Activation Activation

    View Slide

  19. ?
    Or not
    0 - 10
    0 - 1 0 - 1
    Activation Activation
    @gheb_dev @gregoirehebert

    View Slide

  20. @gheb_dev @gregoirehebert
    0 - 10
    ?
    Or not
    0 - 1 0 - 1
    Activation Activation

    View Slide

  21. @gheb_dev @gregoirehebert

    View Slide

  22. @gheb_dev @gregoirehebert
    Binary Step

    View Slide

  23. @gheb_dev @gregoirehebert
    Binary Step
    Gaussian

    View Slide

  24. @gheb_dev @gregoirehebert
    Binary Step
    Gaussian
    Hyperbolic Tangent

    View Slide

  25. @gheb_dev @gregoirehebert
    Binary Step
    Gaussian
    Hyperbolic Tangent
    Parametric Rectified Linear Unit

    View Slide

  26. @gheb_dev @gregoirehebert
    Binary Step
    Gaussian
    Hyperbolic Tangent
    Parametric Rectified Linear Unit
    Sigmoid

    View Slide

  27. @gheb_dev @gregoirehebert
    Binary Step
    Gaussian
    Hyperbolic Tangent
    Parametric Rectified Linear Unit
    Sigmoid
    Thresholded Rectified Linear Unit

    View Slide

  28. @gheb_dev @gregoirehebert
    Binary Step
    Gaussian
    Hyperbolic Tangent
    Parametric Rectified Linear Unit
    Sigmoid
    Thresholded Rectified Linear Unit

    View Slide

  29. @gheb_dev @gregoirehebert
    Sigmoid

    View Slide

  30. 0 - 10
    ?
    0 - 1 0 - 1
    Activation Activation

    View Slide

  31. @gheb_dev @gregoirehebert
    ?
    Or not
    0 - 10
    0 - 1 0 - 1
    Sigmoid Sigmoid

    View Slide

  32. ?
    Or not
    0 - 10
    0 - 1 0 - 1
    Sigmoid Sigmoid
    @gheb_dev @gregoirehebert

    View Slide

  33. ?
    Or not
    0 - 10
    0 - 1 0 - 1
    Sigmoid Sigmoid
    @gheb_dev @gregoirehebert
    Bias Bias

    View Slide

  34. ?
    Or not
    8
    0.2 0.3
    Sigmoid Sigmoid
    @gheb_dev @gregoirehebert
    0.4 0.8

    View Slide

  35. H
    Or not
    8
    0.2 0.3
    Sigmoid Sigmoid
    @gheb_dev @gregoirehebert
    0.4 0.8

    View Slide

  36. 0 - 10
    ?
    0 - 1 0 - 1
    Activation Activation

    View Slide

  37. @gheb_dev @gregoirehebert
    H = sigmoid (Input x weight + bias)

    View Slide

  38. @gheb_dev @gregoirehebert
    H = sigmoid (8 x 0.2 + 0.4)

    View Slide

  39. @gheb_dev @gregoirehebert
    H = sigmoid (8 x 0.2 + 0.4)
    H = 0.88078707797788

    View Slide

  40. @gheb_dev @gregoirehebert
    H = sigmoid (8 x 0.2 + 0.4)
    H = 0.88078707797788
    O = sigmoid (H x w + b)

    View Slide

  41. @gheb_dev @gregoirehebert
    H = sigmoid (8 x 0.2 + 0.4)
    H = 0.88078707797788
    O = sigmoid (H x 0.3 + 0.8)

    View Slide

  42. @gheb_dev @gregoirehebert
    H = sigmoid (8 x 0.2 + 0.4)
    H = 0.88078707797788
    O = sigmoid (H x 0.3 + 0.8)
    O = 0.74349981350761

    View Slide

  43. @gheb_dev @gregoirehebert
    H = sigmoid (8 x 0.2 + 0.4)
    H = 0.88078707797788
    O = sigmoid (H x 0.3 + 0.8)
    O = 0.74349981350761

    View Slide

  44. @gheb_dev @gregoirehebert
    H = sigmoid (8 x 0.2 + 0.4)
    H = 0.88078707797788
    O = sigmoid (H x 0.3 + 0.8)
    O = 0.74349981350761

    View Slide

  45. @gheb_dev @gregoirehebert
    H = sigmoid (2 x 0.2 + 0.4)
    H = 0.6897448112761
    O = sigmoid (H x 0.3 + 0.8)
    O = 0.73243113381927

    View Slide

  46. @gheb_dev @gregoirehebert
    H = sigmoid (2 x 0.2 + 0.4)
    H = 0.6897448112761
    O = sigmoid (H x 0.3 + 0.8)
    O = 0.73243113381927

    View Slide

  47. H = sigmoid (2 x 0.2 + 0.4)
    H = 0.6897448112761
    O = sigmoid (H x 0.3 + 0.8)
    O = 0.73243113381927
    @gheb_dev @gregoirehebert
    TRAINING

    View Slide

  48. @gheb_dev @gregoirehebert
    H = sigmoid (2 x 0.2 + 0.4)
    H = 0.6897448112761
    O = sigmoid (H x 0.3 + 0.8)
    O = 0.73243113381927

    View Slide

  49. H
    Or not
    8
    0.2 0.3
    Sigmoid Sigmoid
    @gheb_dev @gregoirehebert
    0.4 0.8
    BACK PROPAGATION

    View Slide

  50. H
    Or not
    8
    0.2 0.3
    Sigmoid Sigmoid
    @gheb_dev 0.4 0.8
    BACK PROPAGATION

    View Slide

  51. H
    Or not
    8
    0.2 0.3
    Sigmoid Sigmoid
    @gheb_dev 0.4 0.8
    BACK PROPAGATION

    View Slide

  52. H
    Or not
    8
    0.2 0.3
    Sigmoid Sigmoid
    @gheb_dev 0.4 0.8
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT

    View Slide

  53. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR

    View Slide

  54. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =

    View Slide

  55. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =

    View Slide

  56. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =

    View Slide

  57. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =

    View Slide

  58. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =

    View Slide

  59. @gheb_dev @gregoirehebert
    LINEAR GRADIENT DESCENT

    View Slide

  60. @gheb_dev @gregoirehebert
    LINEAR GRADIENT DESCENT

    View Slide

  61. @gheb_dev @gregoirehebert
    LINEAR GRADIENT DESCENT

    View Slide

  62. @gheb_dev @gregoirehebert
    LINEAR GRADIENT DESCENT

    View Slide

  63. @gheb_dev @gregoirehebert
    LINEAR GRADIENT DESCENT
    The derivative or Slope


    For any function f, it’s derivative f’

    calculate the direction


    S >= 0 then you must increase the value

    S <= 0 then you must decrease the value

    View Slide

  64. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =

    View Slide

  65. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =
    GRADIENT Sigmoid’ (OUTPUT)
    =

    View Slide

  66. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =
    GRADIENT Sigmoid’ (OUTPUT)
    =
    Multiplied by the error

    View Slide

  67. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =
    GRADIENT Sigmoid’ (OUTPUT)
    =
    Multiplied by the error
    And the LEARNING RATE

    View Slide

  68. @gheb_dev @gregoirehebert
    LINEAR GRADIENT DESCENT

    View Slide

  69. @gheb_dev @gregoirehebert
    LINEAR GRADIENT DESCENT

    View Slide

  70. @gheb_dev @gregoirehebert
    LINEAR GRADIENT DESCENT

    View Slide

  71. @gheb_dev @gregoirehebert
    LINEAR GRADIENT DESCENT

    View Slide

  72. @gheb_dev @gregoirehebert
    LINEAR GRADIENT DESCENT

    View Slide

  73. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =
    GRADIENT Sigmoid’ (OUTPUT)
    =
    Multiplied by the error
    And the LEARNING RATE

    View Slide

  74. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =
    GRADIENT Sigmoid’ (OUTPUT)
    =
    Multiplied by the error
    And the LEARNING RATE
    ΔWeights GRADIENT x H
    =

    View Slide

  75. H
    Or not
    8
    0.2 0.3
    Sigmoid Sigmoid
    @gheb_dev 0.4 0.8
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT

    View Slide

  76. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =
    GRADIENT Sigmoid’ (OUTPUT)
    =
    Multiplied by the error
    And the LEARNING RATE
    ΔWeights GRADIENT x H
    =
    Weights ΔWeights + weights
    =

    View Slide

  77. @gheb_dev @gregoirehebert
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    ERROR EXPECTATION - OUTPUT
    =
    GRADIENT Sigmoid’ (OUTPUT)
    =
    Multiplied by the error
    And the LEARNING RATE
    ΔWeights GRADIENT x H
    =
    Weights ΔWeights + weights
    =
    Bias Bias + GRADIENT
    =

    View Slide

  78. H
    Or not
    8
    0.2 0.3
    Sigmoid Sigmoid
    @gheb_dev
    0.4 0.8
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT

    View Slide

  79. H
    Or not
    8
    4.80 7.66
    Sigmoid Sigmoid
    @gheb_dev
    -26.61 -3.75
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT

    View Slide

  80. H
    8
    4.80 7.66
    Sigmoid Sigmoid
    @gheb_dev
    -26.61 -3.75
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    0.97988

    View Slide

  81. H
    4.80 7.66
    Sigmoid Sigmoid
    @gheb_dev
    -26.61 -3.75
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    2
    0.02295

    View Slide

  82. H
    4.80 7.66
    Sigmoid Sigmoid
    @gheb_dev
    -26.61 -3.75
    BACK PROPAGATION
    LINEAR GRADIENT DESCENT
    2
    0.02295

    View Slide

  83. @gheb_dev @gregoirehebert
    CONGRATULATIONS !

    View Slide

  84. CONGRATULATIONS !
    Let’s play together :)
    https://github.com/GregoireHebert/sflive-nn/
    @gheb_dev @gregoirehebert

    View Slide

  85. CONGRATULATIONS !
    Let’s play together :)
    https://github.com/GregoireHebert/sflive-nn/
    @gheb_dev @gregoirehebert

    View Slide

  86. @gheb_dev @gregoirehebert
    Hungry
    EAT

    View Slide

  87. @gheb_dev @gregoirehebert
    Hungry
    EAT

    View Slide

  88. @gheb_dev @gregoirehebert
    Hungry
    EAT
    MULTI LAYER PERCEPTRON
    Hungry
    EAT
    Hungry
    EAT

    View Slide

  89. @gheb_dev @gregoirehebert
    Hungry
    EAT
    MULTI LAYER PERCEPTRON
    Thirsty
    DRINK
    Sleepy
    SLEEP

    View Slide

  90. @gheb_dev @gregoirehebert
    Hungry
    EAT
    Thirsty
    DRINK
    Sleepy
    SLEEP

    View Slide

  91. @gheb_dev @gregoirehebert
    Hungry
    EAT
    Thirsty
    DRINK
    Sleepy
    SLEEP

    View Slide

  92. @gheb_dev @gregoirehebert
    Hungry
    EAT
    MULTI LAYER PERCEPTRON
    Thirsty
    DRINK
    Sleepy
    SLEEP

    View Slide

  93. @gheb_dev @gregoirehebert
    Hungry
    EAT
    N.E.A.T.
    Thirsty
    DRINK
    Sleepy
    SLEEP
    Neuro Evolution through Augmented Topology

    View Slide

  94. @gheb_dev @gregoirehebert
    Hungry
    EAT
    N.E.A.T.
    Thirsty
    DRINK
    Sleepy
    SLEEP
    Neuro Evolution through Augmented Topology
    https://github.com/GregoireHebert/tamagotchi

    View Slide

  95. @gheb_dev @gregoirehebert

    View Slide

  96. @gheb_dev @gregoirehebert
    THANK YOU !

    View Slide