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

Self Driving Cars

anandg
January 07, 2017

Self Driving Cars

A Basic Introduction to Machine Learning

anandg

January 07, 2017
Tweet

Other Decks in Technology

Transcript

  1. About me —  Anand Ganesh - infra engineer trying to

    learn ML. Several years at Microsoft, recently software engineer in the search team at Facebook. —  Fascinated by functional programming and key value stores. Trying to come up with the right abstractions for machine learning. —  email: first name dot last name at gmail
  2. Agenda —  Theory: Intro to ML and NN —  Engineering:

    TensorFlow —  Product: Self Driving Cars —  Example: ML model for self driving car —  Q&A
  3. State of the Art —  MNIST —  softmax: 92% ocr

    accuracy —  cnn: 99.67% —  imagenet —  softmax: 35% image detection accuracy —  cnn: 67% —  speech recognition —  hmm: 65% word error rate —  lstm: 92%
  4. Architecture —  Online regression/classification algorithm —  NN, SVM, HMM — 

    Configuration = Model —  Offline —  Learning Algorithms: Data->Model —  Gradient Descent, SGD, Adam
  5. Differentiable Program —  Computation Graphs —  Neural Net, SVM — 

    backpropagation = reverse mode differentiation —  Gradient Descent —  optimize programs using derivatives
  6. Neural Networks —  Recurrent Neural Networks are Turing Complete — 

    Learning is hard —  Optimization has too many parameters —  Simplify using tricks like convolution —  vanishing gradients – derivatives are hard to compute
  7. TensorFlow —  A TensorFlow graph contains a set of Operation

    objects, which represent units of computation; and Tensor objects, which represent the units of data that flow between operations. —  Lazy computation —  Offload series of computations to GPU without shuttling data back and forth
  8. TensorFlow Example —  a = tf.constant([2, 1], shape=[2, 1]) — 

    b = tf.constant([2, 1], shape=[1, 2]) —  op = tf.matmul(a, b) —  ss.run(op) —  constructs: constant, variable, placeholder, tensor
  9. TensorFlow Neural Network —  Neuron Layer = Matrix Multiplication — 

    Offline Hyper Parameters (playground.tensorflow) —  Type (classification/regression) —  Learning Rate —  Activation Function (sigmoid, tanh, relu) —  Regularization (L1 / L2) —  Overall Flow —  setup hyper-parameters —  train – iterate based on error and derivatives —  test – to compute accuracy
  10. Self Driving Cars —  Work started in 1929, first autonomous

    cars in 1984 —  As of 2016, Tesla had 200M km and Google 2.5M km of autonomous driving —  Advantages —  Eliminate 90% of accidents —  Increase throughput from 2200 cars per lane per hour to 8800 cars per lane per hour (highways)
  11. Basic Architecture —  Recognition —  Identify objects around the car

    —  Location —  Determine self-location of car, surrounding objects and roads —  Motion —  Predict motion of objects around the car —  Control —  Low level control of brakes, gas, steering, etc.
  12. Steering Wheel Control —  Udacity Challenge: predict steering wheel angle

    from past image data —  offline: unlimited training time —  online: prediction per frame < 1/20th second
  13. Steering Wheel Model —  map sequence of images to sequence

    of steering wheel angles —  Setup —  Type: regression —  3-D convolution for motion detection —  LSTM + RNN —  Regularization via dropout —  Gradient clipping Optimizer —  Homework: run and verify this model
  14. Points to Ponder —  Can a self driving car work

    with 67% image detection accuracy ? —  Can we use linear programming (e.g. simplex) for learning ?
  15. References —  Udacity – course and challenges —  steering wheel

    problem —  Google TensorFlow —  playground.tensorflow.org —  aimotive (self driving car architecture) —  Thanks a lot to Dhilip and everyone here for this opportunity, and to AppKnox for hosting this event.
  16. Q&A

  17. Problem Structure —  Classification —  Regression —  Domains —  Image

    Object Detection —  Speech Recognition —  Search Ranking —  Finance
  18. Solution Structure —  Code Structure —  Decision Trees —  Neural

    Networks —  Support Vector Machines —  Hidden Markov Models —  Running Binary = code + configuration —  Learning the configuration —  Gradient Descent