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

Intro to Machine Learning

Intro to Machine Learning

March 15, 2018 @ Code BEAM SF

Jesse J. Anderson

March 15, 2018
Tweet

More Decks by Jesse J. Anderson

Other Decks in Technology

Transcript

  1. to acquire knowledge or skill What is learning? Machine Learning

    through study, instruction, or experience
  2. 90 90 Simple Neural Network input output 90 90 |>

    simple() def simple(input), do: input
  3. 90 90 Simple Neural Network input output 90 90 |>

    simple() def simple(input), do: input
  4. 0.01 Simple Neural Network weight 0.9 90 input output 0.9

    90 |> simple(0.01) def simple(input, weight), do: input * weight
  5. 0.01 Simple Neural Network weight 0.9 90 input output 0.9

    90 |> simple(0.01) def simple(input, weight), do: input * weight
  6. 0.01 0.9 recommended box office oscar odds 0.002 500_000 90

    Multiple Output Neural Network $45m 0.18
  7. 0.01 0.9 $45m 0.18 500_000 0.002 recommended box office oscar

    odds 90 90 90 Multiple Output Neural Network
  8. 0.01 0.9 $45m 0.18 500_000 0.002 recommended box office oscar

    odds 90 90 90 Multiple Output Neural Network
  9. 0.01 0.9 $45m 0.18 500_000 0.002 recommended box office oscar

    odds 90 90 90 90 |> mult_outputs([0.01, 500_000, 0.002]) [0.9, 45_000_000, 0.18] def mult_outputs(input, list_of_weights) do Enum.map(list_of_weights, fn weight -> input * weight end) end Multiple Output Neural Network
  10. recommended box office oscar odds 90 |> mult_outputs([0.01, 500_000, 0.002])

    [0.9, 45_000_000, 0.18] def mult_outputs(input, list_of_weights) do Enum.map(list_of_weights, fn weight -> input * weight end) end Multiple Output Neural Network
  11. oscar odds box office recommended |> mult_outputs([ , , ])

    [ , , ] 0.18 _000_000 m 45 $ 0.9 0.002 500_000 0.01 90 Multiple Output Neural Network
  12. oscar odds box office recommended 0.18 _000_0 m 45 $

    0.9 0.002 500_000 0.01 90 Multiple Output Neural Network %
  13. 90% tomatometer Star Wars: The Last Jedi rottentomatoes.com 48% audience

    rottentomatoes.com director ? Rian Johnson Input Data
  14. 90% tomatometer Star Wars: The Last Jedi rottentomatoes.com 48% audience

    rottentomatoes.com Rian Johnson director ? true Input Data directed by
  15. 90% tomatometer Star Wars: The Last Jedi rottentomatoes.com 48% audience

    rottentomatoes.com Rian Johnson 1 ? ? Input Data directed by
  16. 0.2 1 0.12 48 0.45 90 1 48 90 Multiple

    Input / Single Output + + 139 output 0.005 0.0025 0.2 =
  17. 0.2 0.12 0.45 1 48 90 90 Multiple Input /

    Single Output 48 1 + + 0.77 output 0.005 0.0025 0.2 =
  18. 0.2 0.12 0.45 1 48 90 90 Multiple Input /

    Single Output 48 1 + + 0.77 output 0.005 0.0025 0.2 =
  19. 0.2 0.12 0.45 1 48 90 + + output 0.77

    0.2 0.0025 0.005 = Multiple Input / Single Output [0.45, 0.12, 0.2] [90, 48, 1] |> mult_inputs([0.005, 0.0025, 0.02]) end def mult_inputs(inputs, weights) do Enum.zip(inputs, weights) |> Enum.map(fn {i, w} -> i * w end)
  20. 0.2 0.12 0.45 1 48 90 + + output 0.77

    0.2 0.0025 0.005 = Multiple Input / Single Output [0.45, 0.12, 0.2] [90, 48, 1] |> mult_inputs([0.005, 0.0025, 0.02]) end def mult_inputs(inputs, weights) do Enum.zip(inputs, weights) |> Enum.map(fn {i, w} -> i * w end)
  21. 0.2 0.12 0.45 1 48 90 + + output 0.77

    0.2 0.0025 0.005 = Multiple Input / Single Output [0.45, 0.12, 0.2] [90, 48, 1] |> mult_inputs([0.005, 0.0025, 0.02]) end |> Enum.sum() def mult_inputs(inputs, weights) do Enum.zip(inputs, weights) |> Enum.map(fn {i, w} -> i * w end)
  22. 0.2 0.12 0.45 1 48 90 + + output 0.77

    0.2 0.0025 0.005 = Multiple Input / Single Output 0.77 [90, 48, 1] |> mult_inputs([0.005, 0.0025, 0.02]) end |> Enum.sum() def mult_inputs(inputs, weights) do Enum.zip(inputs, weights) |> Enum.map(fn {i, w} -> i * w end)
  23. 0.2 0.12 0.45 90 Multiple Input / Single Output 48

    1 + + 0.77 output 0.005 0.0025 0.2 =
  24. 90 48 1 0.49 $88m 0.77 0.008 -0.005 0.01 [0.77,

    88_000_000, 0.49] [90, 48, 1] |> network(weights) def network(inputs, weights) do weights |> Enum.map(&mult_inputs(&1)) end Multiple Input / Multiple Output
  25. 90 48 1 0.49 $88m 0.77 0.008 -0.005 0.01 [0.77,

    88_000_000, 0.49] [90, 48, 1] |> network(weights) weights = [[0.005, 0.0025, 0.02], [600_000, 500_000, 10_000_000], [0.008, -0.005, 0.01]] Multiple Input / Multiple Output def network(inputs, weights) do weights |> Enum.map(&mult_inputs(&1)) end
  26. input Activation Function |> activation_fn() inputs |> apply_weights(weights) |> Enum.sum()

    sigmoid() tanh() {0, :infinity} {0, 1} {-1, 1} ) ( relu ) ( relu
  27. input Activation Function def num when num < 0, do:

    0 def num , do: num ( ) relu ( ) relu
  28. Star Wars: The Last Jedi target: 1.0 48 90 1

    Training critics audience rian johnson
  29. Star Wars: The Last Jedi target: 1.0 48 90 1

    Training critics audience rian johnson
  30. Training 48 90 1 0.6 0.6 he ast edi TLJ

    Star Wars: 1.0 : target pred. iction T L J
  31. Training target pred. 1.0 0.6 : The Last Jedi Star

    Wars:TLJ M. Night Shyamalan's The Happening
  32. Training target pred. 1.0 0.6 : The Last Jedi Star

    Wars:TLJ The Happening 0.0 M. Night Shyamalan's The Happening
  33. Training target iction pred. : The Last Jedi Star Wars:TLJ

    1.0 0.6 The Happening The Happening 0.0 target: 0.0 ? 24 18 0
  34. Training target iction pred. : The Last Jedi Star Wars:TLJ

    1.0 0.6 24 18 0 The Happening 0.0 ? The Happening target: 0.0
  35. Training target iction pred. : The Last Jedi Star Wars:TLJ

    1.0 0.6 24 18 0 0.4 0.4 The Happening 0.0 ? The Happening target: 0.0
  36. 24 18 0 0.4 0.0 0.4 The Happening 1.0 0.6

    Star Wars:TLJ target pred. Training
  37. 0.0 0.4 The Happening 1.0 0.6 Star Wars:TLJ target pred.

    Training - - = = 0.4 -0.4 0.0 avg error
  38. The Happening Star Wars:TLJ Training 0.4 -0.4 x x =

    = 0.4 -0.4 0.16 0.16 delta error
  39. The Happening Star Wars:TLJ Training 0.4 -0.4 x x =

    = 0.4 -0.4 0.16 0.16 (large error) 1.0 x = 1.0 1.0 (small error) 0.1 x = 0.1 0.01 delta error
  40. The Happening Star Wars:TLJ Training 0.4 -0.4 x x =

    = 0.4 -0.4 0.16 0.16 delta error
  41. The Happening Star Wars:TLJ Training 0.4 -0.4 x x =

    = 0.4 -0.4 0.16 0.16 avg 0.16 delta error
  42. Gradient Descent 0.0 error rate 0.1 1.0 prediction 1.1 1.2

    1.3 0.9 0.8 0.7 0.2 0.3 0.4 0.0 error rate 0.1 1.0 prediction 1.1 1.2 1.3 0.9 0.8 0.7 0.2 0.3 0.4
  43. 0.4 0.8 Reducing Error 0.5 1.0 weight target prediction input

    delta = (prediction - target) -0.6 error = (delta * delta) 0.36
  44. 0.4 0.8 0.5 1.0 weight target prediction input delta =

    (prediction - target) -0.6 error = (delta * delta) nudge = (delta * input) 0.36 -0.48 Reducing Error
  45. You can't learn if the input is zero. Stopping nudge

    = (delta * input) Why Multiply By Input?
  46. A negative input will reverse delta direction. Negative Reversal You

    can't learn if the input is zero. Stopping nudge = (delta * input) Why Multiply By Input?
  47. A weight adjustment should scale to the input size. Scaling

    A negative input will reverse delta direction. Negative Reversal You can't learn if the input is zero. Stopping nudge = (delta * input) Why Multiply By Input?
  48. 0.4 0.8 0.5 1.0 weight target prediction input A weight

    adjustment should scale to the input size. Scaling A negative input will reverse delta direction. Negative Reversal You can't learn if the input is zero. Stopping nudge = (delta * input) Why Multiply By Input? *This can also cause problems delta = (prediction - target) error = (delta * delta)
  49. 0.4 0.8 0.5 1.0 weight target prediction input delta =

    (prediction - target) -0.6 error = (delta * delta) nudge = (delta * input) 0.36 -0.48 Reducing Error
  50. delta = (prediction - target) -0.6 error = (delta *

    delta) nudge = (delta * input) 0.36 -0.48 1.0 input 0.8 0.5 0.4 prediction target weight delta error nudge -0.6 0.36 -0.48 >
  51. delta = (prediction - target) -0.6 error = (delta *

    delta) nudge = (delta * input) 0.36 -0.48 1.0 input 0.8 0.5 0.4 prediction target weight nudge error delta -0.48 0.36 -0.6 > 01 :: Prediction: 0.4 Error: 0.36 >
  52. delta = (prediction - target) -0.6 error = (delta *

    delta) nudge = (delta * input) 0.36 -0.48 1.0 input 0.8 0.5 0.4 prediction target weight new_weight = (weight - nudge) nudge error delta -0.48 0.36 -0.6 > > 01 :: Prediction: 0.4 Error: 0.36
  53. delta = (prediction - target) -0.6 error = (delta *

    delta) nudge = (delta * input) 0.36 -0.48 1.0 input 0.8 0.5 0.4 prediction target weight new_weight = (weight - nudge) 0.98 nudge error delta -0.48 0.36 -0.6 > 01 :: Prediction: 0.4 Error: 0.36
  54. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 0.98 prediction target weight new_weight = (weight - nudge) nudge error delta > 01 :: Prediction: 0.4 Error: 0.36
  55. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 0.98 .784 prediction target weight new_weight = (weight - nudge) nudge error delta > 01 :: Prediction: 0.4 Error: 0.36
  56. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 0.98 .784 prediction target weight new_weight = (weight - nudge) nudge error delta -0.216 -0.216 > 01 :: Prediction: 0.4 Error: 0.36
  57. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 0.98 .784 prediction target weight new_weight = (weight - nudge) nudge error delta -0.216 -0.216 0.046656 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  58. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 0.98 .784 prediction target weight new_weight = (weight - nudge) nudge error delta -0.216 -0.216 0.046656 0.046656 -0.1728 -0.1728 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  59. delta = (prediction - target) -0.216 error = (delta *

    delta) nudge = (delta * input) 0.046656 -0.1728 1.0 input 0.8 0.98 .784 prediction target weight new_weight = (weight - nudge) 1.1528 nudge error delta -0.1728 0.046656 -0.216 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  60. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 1.1528 prediction target weight new_weight = (weight - nudge) nudge error delta > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  61. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 1.1528 prediction target weight new_weight = (weight - nudge) nudge error delta -0.062208 -0.062208 0.006046618 0.006046618 -0.07776 -0.07776 .92224 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  62. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 1.1528 prediction target weight new_weight = (weight - nudge) nudge error delta -0.062208 -0.062208 0.006046618 0.006046618 -0.07776 -0.07776 .92224 > 03 :: Prediction: 0.92224 Error: 0.006046618 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  63. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 1.1528 prediction target weight new_weight = (weight - nudge) nudge error delta 1.215008 -0.062208 -0.062208 0.006046618 0.006046618 -0.07776 -0.07776 .92224 > 03 :: Prediction: 0.92224 Error: 0.006046618 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  64. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 1.215008 prediction target weight new_weight = (weight - nudge) nudge error delta > 03 :: Prediction: 0.92224 Error: 0.006046618 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  65. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 1.215008 prediction target weight new_weight = (weight - nudge) nudge error delta 1.23740288 -0.02239488 -0.02239488 0.000783642 0.000783642 -0.0279936 -0.0279936 .9720064 > 04 :: Prediction: 0.9720064 Error: 0.000783642 > 03 :: Prediction: 0.92224 Error: 0.006046618 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  66. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 1.23740288 prediction target weight new_weight = (weight - nudge) nudge error delta > 04 :: Prediction: 0.9720064 Error: 0.000783642 > 03 :: Prediction: 0.92224 Error: 0.006046618 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  67. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 prediction target weight new_weight = (weight - nudge) nudge error delta 1.24546504 -0.00806216 -0.00806216 0.00010156 0.00010156 -0.0100777 -0.0100777 .9899223 1.23740288 > 05 :: Prediction: 0.9899223 Error: 0.00010156 > 04 :: Prediction: 0.9720064 Error: 0.000783642 > 03 :: Prediction: 0.92224 Error: 0.006046618 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  68. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) 1.0 input 0.8 prediction target weight new_weight = (weight - nudge) nudge error delta 1.24546504 > 05 :: Prediction: 0.9899223 Error: 0.00010156 > 04 :: Prediction: 0.9720064 Error: 0.000783642 > 03 :: Prediction: 0.92224 Error: 0.006046618 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  69. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) new_weight = (weight - nudge) 1.248367416 -0.002902376 0.000013162 -0.00362797 1.0 input 0.8 prediction target weight nudge error delta -0.002902376 0.000013162 -0.00362797 .99637203 1.24546504 > 06 :: Prediction: 0.99637203 Error: 0.000013162 > 05 :: Prediction: 0.9899223 Error: 0.00010156 > 04 :: Prediction: 0.9720064 Error: 0.000783642 > 03 :: Prediction: 0.92224 Error: 0.006046618 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  70. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) new_weight = (weight - nudge) 1.248367416 -0.002902376 0.000013162 -0.00362797 1.0 input 0.8 prediction target weight nudge error delta -0.002902376 0.000013162 -0.00362797 .99637203 1.24546504 > 06 :: Prediction: 0.99637203 Error: 0.000013162 > 05 :: Prediction: 0.9899223 Error: 0.00010156 > 04 :: Prediction: 0.9720064 Error: 0.000783642 > 03 :: Prediction: 0.92224 Error: 0.006046618 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  71. > 06 :: Prediction: 0.99637203 Error: 0.000013162 > 05 ::

    Prediction: 0.9899223 Error: 0.00010156 > 04 :: Prediction: 0.9720064 Error: 0.000783642 > 03 :: Prediction: 0.92224 Error: 0.006046618 > 02 :: Prediction: 0.784 Error: 0.046656 > 01 :: Prediction: 0.4 Error: 0.36
  72. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) new_weight = (weight - nudge) 0.8 1.0 Error Attribution
  73. 0.8 1.0 Error Attribution delta = (prediction - target) error

    = (delta * delta) nudge = (delta * input) new_weight = (weight - nudge) -0.2
  74. 0.8 1.0 Error Attribution delta = (prediction - target) error

    = (delta * delta) nudge = (delta * input) new_weight = (weight - nudge) -0.2
  75. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) new_weight = (weight - nudge) 0.8 1.0 Error Attribution prev_delta = (delta * weight) -0.2
  76. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) new_weight = (weight - nudge) 0.8 1.0 Error Attribution prev_delta = (delta * weight) -0.2
  77. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) new_weight = (weight - nudge) 0.8 1.0 Error Attribution prev_delta = (delta * weight) 1 0.5 -0.2
  78. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) new_weight = (weight - nudge) 0.8 1.0 Error Attribution prev_delta = 1 0.5 -0.2 (-0.2 * 0.5)
  79. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) new_weight = (weight - nudge) 0.8 1.0 Error Attribution 1 0.5 -0.2 delta = -0.1 prev_
  80. delta = (prediction - target) error = (delta * delta)

    nudge = (delta * input) new_weight = (weight - nudge) 0.8 1.0 Error Attribution 1 0.5 -0.2 delta = -0.1
  81. delta = (prediction - target) error = (delta * delta)

    nudge = -0.1 * 1 new_weight = (weight - nudge) 0.8 1.0 Error Attribution 1 0.5 -0.2 delta = -0.1
  82. delta = (prediction - target) error = (delta * delta)

    nudge = -0.1 new_weight = (weight - nudge) 0.8 1.0 Error Attribution 1 0.5 -0.2 delta = -0.1
  83. delta = (prediction - target) error = (delta * delta)

    nudge = -0.1 new_weight = 0.5 - -0.1 0.8 1.0 Error Attribution 1 0.5 -0.2 delta = -0.1
  84. delta = (prediction - target) error = (delta * delta)

    nudge = -0.1 new_weight = 0.8 1.0 Error Attribution 1 0.5 -0.2 delta = -0.1 0.6 0.6
  85. 0.8 1.0 1 0.6 -0.2 delta = (prediction - target)

    error = (delta * delta) nudge = -0.1 new_weight = Error Attribution delta = -0.1 0.6
  86. 0.8 1.0 1 0.6 -0.2 delta = (prediction - target)

    error = (delta * delta) Error Attribution delta = -0.1 nudge = (delta * input) new_weight = (weight - nudge)
  87. 0.8 1.0 1 0.6 -0.2 delta = (prediction - target)

    error = (delta * delta) Error Attribution delta = -0.1 0.2 3 nudge = (delta * input) new_weight = (weight - nudge)
  88. 1 delta = (prediction - target) error = (delta *

    delta) Error Attribution delta = -0.1 0.2 3 -0.1 nudge = (delta * input) new_weight = (weight - nudge)
  89. 1 delta = (prediction - target) error = (delta *

    delta) Error Attribution delta = -0.1 0.2 3 -0.1 nudge = (delta * input) new_weight = (weight - nudge)
  90. 1 delta = (prediction - target) error = (delta *

    delta) Error Attribution delta = -0.1 prev_delta = (delta * weight) 0.2 3 -0.1 nudge = (delta * input) new_weight = (weight - nudge)
  91. 1 delta = (prediction - target) error = (delta *

    delta) Error Attribution delta = -0.1 prev_delta = (-0.1 * 0.2) 0.2 3 -0.1 nudge = (delta * input) new_weight = (weight - nudge)
  92. 1 delta = (prediction - target) error = (delta *

    delta) Error Attribution delta = -0.1 prev_delta = -0.02 0.2 3 -0.1 nudge = (delta * input) new_weight = (weight - nudge) -0.02
  93. 1 delta = (prediction - target) error = (delta *

    delta) Error Attribution delta = -0.1 prev_delta = -0.02 0.2 3 -0.1 nudge = (delta * input) new_weight = (weight - nudge) -0.02
  94. 1 3

  95. 0 0 0 0 0 0 0 0 0 0

    0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 41 66 75 81 34 49 45 92 76 65 96 65 73 45 61 62 52 59 61 84 36 48 66 19 66 64 29 19 33 93 75 24 87 76 73 64 87 69 94 63 55 90 50 24 35 51 77 94 81 39 17 51 68 89 73 23 44 54 94 81 66 88 77 72 35 48 53 46 74 51 80 31 57 55 26 77 55 25 33 45 97 78 35 74 88 58 58 76 73 80 56 55 93 46 32 45 57 88 90 84 29 29 Six Days Seven Nights Species Vertical Limit I.Q. The Princess Diaries Unbreakable Everything is Illuminated Miracle on 34th Street A Christmas Story Broken Arrow National Lampoon's Loaded Weapon 1 Some Like It Hot Half Nelson Maid in Manhattan Red Planet Weekend at Bernie's II Rain Man A Charlie Brown Christmas Mr. Magoo Looper Jack Reacher Hollow Man Terminator 2: Judgment Day An American Tail: Fievel Goes West Don't Tell Mom the Babysitter's Dead Beetlejuice Mr. Boogedy Gravity 21 Pride & Prejudice The Machinist All About My Mother The Avengers Friday Memoirs of an Invisible Man Problem Child The NeverEnding Story Willy Wonka & the Chocolate Factory Mission: Impossible - Ghost Protocol Inception Eagle Eye Vantage Point Band of Brothers The One The Perfect Storm Stigmata Teaching Mrs. Tingle Quigley Down Under Despicable Me The Island Spy Game 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 52 46 89 67 83 22 87 82 101 85 87 45 78 95 42 43 36 82 48 78 40 78 55 18 11 17 54 89 62 61 92 54 43 82 52 64 77 80 93 92 29 53 40 92 61 79 33 21 85 34 8 34 64 32 89 66 73 20 90 92 86 82 82 47 71 92 57 43 38 94 48 88 48 65 40 21 25 22 44 96 61 71 97 69 42 84 54 69 82 77 79 82 35 68 53 80 56 89 42 29 71 39 23 Bridget Jones's Diary Godzilla Robin Hood: Men in Tights The Breakfast Club True Grit The Blob Rope The Road A Serious Man Be Kind Rewind Lucky Number Slevin Resident Evil: Apocalypse Panic Room Bubba Ho-tep Lara Croft: Tomb Raider Super Troopers Office Space Chasing Amy The Flintstones Street Fighter Much Ado About Nothing Toys Bill & Ted's Excellent Adventure Predator The Shining Close Encounters of the Third Kind Star Trek Beyond Without a Paddle Old School Joe Dirt Bio-Dome Home Alone Knight and Day Synecdoche, New York Planet Terror Mystic River The Nightmare Before Christmas So I Married an Axe Murderer Beethoven Captain America: Civil War Where the Wild Things Are I Am Legend The Terminal Mission: Impossible II Cruel Intentions Pleasantville The Edge Fargo Major Payne Cabin Boy Singin' in the Rain The Cloverfield Paradox 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59 13 49 14 46 49 38 93 17 88 44 42 57 90 37 91 41 71 72 54 98 29 87 42 91 64 93 24 48 40 58 77 20 92 54 90 35 51 74 82 47 45 66 45 86 67 37 38 64 46 33 68 20 51 28 55 50 36 97 28 84 42 39 59 86 46 98 34 75 85 67 85 43 96 29 88 78 98 20 61 38 61 63 21 82 69 90 47 37 85 79 59 50 64 52 77 81 30 28 67 44 42 Changing Lanes Coyote Ugly Police Story 3: Supercop Tron All About Eve (500) Days of Summer The Wrestler Defiance What Happens in Vegas War of the Worlds Spider-Man 2 Cellular Sphere Good Will Hunting George of the Jungle Army of Darkness The Addams Family Say Anything... Thor: The Dark World The Manchurian Candidate The Matrix Revolutions Hulk About a Boy The Mummy Returns Swordfish Galaxy Quest Notting Hill Big Daddy SLC Punk Down Periscope Tank Girl Benny & Joon Teenage Mutant Ninja Turtles III Captain Ron The Cutting Edge The Aristocats Wanted I, Robot The Transporter A Walk to Remember The Master of Disguise Bandits How the Grinch Stole Christmas Run Lola Run Heat The Lion King Stargate Major League II Hard Boiled Love Potion No. 9 Dog Day Afternoon 0 1 1 0 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 1 0 0 1 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 1 1 1 0 1 1 1 0 0 0 0 1 Training Data
  96. 1.138 1.138 1.138 3.2 0.6 -4.2 0.018 3.58 0.5 -9.2

    0.431 0.2 -0.212 -3.22 0.021 0.234 -5.2 0.098 ...
  97. 1.138 1.138 1.138 3.2 0.6 -4.2 0.018 3.58 0.5 -9.2

    0.431 0.2 -0.212 -3.22 0.021 0.234 -5.2 0.098
  98. 1.138 1.138 1.138 3.2 0.6 -4.2 0.018 3.58 0.5 -9.2

    0.431 0.2 -0.212 -3.22 0.021 0.234 -5.2 0.098
  99. 1.138 1.138 1.138 3.2 0.6 -4.2 0.018 3.58 0.5 -9.2

    0.431 0.2 -0.212 -3.22 0.021 0.234 -5.2 0.098
  100. 0.993723589 0.992233171 0.991408145 0.990603478 0.984346526 0.984270099 0.982508441 0.975472634 0.970683652 0.970432433

    0.968719318 Annihilation Ready Player One Split Black Panther Baby Driver The Big Sick The Post Get Out Darkest Hour Lady Bird Game Night Testing the Network
  101. 0.517596672 0.017379878 0.015183403 0.006707093 0.006251533 0.005204257 0.001276453 0.000970709 0.000651533 0.000200425

    0.000127453 0.000067070 0.00000000001 Mute The Disaster Artist Justice League Bright Happy Death Day The Fate of the Furious IT Geostorm Emoji Movie The Snowman Boss Baby Zoolander No. 2 Batman v Superman Testing the Network
  102. Additional Resources "Grokking Deep Learning" book by Andrew W. Trask

    "Deep Learning" video series by 3Blue1Brown "Erlang and Deep Learning" talk by Garrett Smith "Building a Neural Network From Scratch" talk by Karmen Blake "A visual introduction to machine learning" site by R2D3 "Machine Learning" Coursera course by Andrew Ng "Intro to Machine Learning" Udacity course by kaggle