A Whirlwind Tour of Machine Learning with TensorFlow

A Whirlwind Tour of Machine Learning with TensorFlow

International Women's Day 2020, Jakarta

2b6d7bdd43058e87f53866eb86538a59?s=128

Galuh Sahid

May 17, 2020
Tweet

Transcript

  1. 2.

    Image slides Hi! I’m Galuh. • Data Scientist at Gojek

    • Google Dev Expert in Machine Learning • Co-host podcast Kartini Teknologi (kartiniteknologi.id)
  2. 9.

    if pixel[5][7] is black and pixel [5][6] is black and

    pixel [5][8] is black and …: if pixel[6][7] is black and pixel[6][7] is black and …: return “panda” … … … else: return “cat” Photo credit: Photo by Damian Patkowski on Unsplash
  3. 10.

    if pixel[5][7] is black and pixel [5][6] is black and

    pixel [5][7] is black and …: if pixel[6][7] is black and pixel[6][7] is black and …: return “panda” … … … else: return “not cat” Photo credit: Photo by Dušan Smetana on Unsplash
  4. 15.

    Adapted from Introduction to ML Problem Framing Define a machine

    learning problem Construct & transform your dataset Train a model Use the model to make predictions
  5. 16.

    Define a machine learning problem Construct & transform your dataset

    Train a model Use the model to make predictions Adapted from Introduction to ML Problem Framing
  6. 18.

    Define your ML problem Type of problem Description Example Classification

    Pick one of N labels Cat, dog, horse, or bear Regression Predict numerical values House price Clustering Group similar examples News articles grouped into categories (unsupervised) Ranking Identify position on a scale Search result ranking Adapted from Introduction to ML Problem Framing
  7. 19.

    Define your ML problem Type of problem Description Example Classification

    Pick one of N labels Cat, dog, horse, or bear Regression Predict numerical values House price Clustering Group similar examples News articles grouped into categories (unsupervised) Ranking Identify position on a scale Search result ranking Adapted from Introduction to ML Problem Framing Example: “our problem is best framed as a classification problem, which predicts whether a picture will be in one of the four classes: cat, dog, horse, or bear.”
  8. 20.

    Define a machine learning problem Build your dataset Train a

    model Use the model to make predictions Adapted from Introduction to ML Problem Framing
  9. 25.

    Social media tf.data: Input Makes it easy for you to

    process: - text data - CSV data - image data and more
  10. 26.

    tf.data: Transformation example def preprocess(image, label): image = tf.image.random_flip_left_right(image) image

    = tf.image.random_brightness(image, max_delta=0.2) image = tf.clip_by_value(image, 0.0, 1.0) return image, label Image augmentation
  11. 27.

    tf.data: Transformation example def preprocess(image, label): image = tf.image.random_flip_left_right(image) image

    = tf.image.random_brightness(image, max_delta=0.2) image = tf.clip_by_value(image, 0.0, 1.0) return image, label Image augmentation
  12. 28.

    tf.data: Transformation example def preprocess(image, label): image = tf.image.random_flip_left_right(image) image

    = tf.image.random_brightness(image, max_delta=0.2) image = tf.clip_by_value(image, 0.0, 1.0) return image, label Image augmentation 1+1 = 2+2 = 3+3 =
  13. 29.

    tf.data: Transformation example def preprocess(image, label): image = tf.image.random_flip_left_right(image) image

    = tf.image.random_brightness(image, max_delta=0.2) image = tf.clip_by_value(image, 0.0, 1.0) return image, label Image augmentation 1+1 = 2+2 = 3+3 = 1+1*2 = 2+2*2 = 3+3*2 =
  14. 32.

    tf.data: TensorFlow Datasets import tensorflow.compat.v2 as tf import tensorflow_datasets as

    tfds # Construct a tf.data.Dataset ds = tfds.load('mnist', split='train', shuffle_files=True)
  15. 33.

    Define a machine learning problem Construct & transform your dataset

    Train a model Use the model to make predictions Adapted from Introduction to ML Problem Framing
  16. 35.

    What is a “model”? - A model maps examples to

    predicted labels - It is defined by weights that are learned during the training process - Once trained, you can use it to make predictions about data that it has never seen before Model Data Predictions
  17. 36.

    A very simplified example Iteration 1: 2*number of floors +

    3*area size = predicted house price Model Data Predictions House #1: predicted: 200 million actual: 500 million difference: 300 million
  18. 37.

    A very simplified example Iteration 1: 2*number of floors +

    3*area size = predicted house price Model Data Predictions Iteration 2: 4*number of floors + 6*area size = predicted house price House #1: predicted: 400 million actual: 500 million difference: 100 million
  19. 39.

    Example of neural network in TensorFlow model = tf.keras.models.Sequential( [

    tf.keras.layers.Flatten(), tf.keras.layers.Dense(512, activation=‘relu’), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation=‘softmax’) ])
  20. 40.

    ? Panda Cat Accuracy: 80% Our model does not get

    smart right away Photo: Manja Vitolic on Unsplash | Icon: Flaticon
  21. 41.

    ? Panda Panda Accuracy: 95% Our model does not get

    smart right away Photo: Nicholas Doherty on Unsplash | Icon: Flaticon
  22. 42.

    Adapted from Machine Learning Crash Course High Loss Low Loss

    - Arrows represent loss - Blue lines represent predictions How does a model get better? Loss
  23. 43.

    Neural network in TensorFlow model = tf.keras.models.Sequential( [ tf.keras.layers.Flatten(), tf.keras.layers.Dense(512,

    activation=‘relu’), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation=‘softmax’) ]) model.compile(loss = ‘sparse_categorical_crossentropy’, metrics = ‘accuracy’)
  24. 44.

    How do we know that our model is good enough?

    Metric - Evaluation metrics: • Accuracy • Mean Absolute Error • Root Mean Squared Error • … and more Actual Spam Actual Not Spam Predicted Spam 15 10 Predicted Not Spam 5 30 Accuracy: (Correctly classified spam emails + correctly classified not spam emails)/total emails = (15 + 30)/(15+10+5+30) = 75%
  25. 45.

    Let the training process begin! model = tf.keras.models.Sequential( [ tf.keras.layers.Flatten(),

    tf.keras.layers.Dense(512, activation=‘relu’), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10, activation=‘softmax’) ]) model.compile(loss = ‘sparse_categorical_crossentropy’, metrics = ‘accuracy’) model.fit(x_train, y_train, epochs=5) model.evaluate(x_test, y_test)
  26. 46.

    Define a machine learning problem Construct & transform your dataset

    Train a model Use the model to make predictions Adapted from Introduction to ML Problem Framing
  27. 48.

    Making predictions 1. Use models that you built by yourself

    2. Use existing models 3. Retrain existing models
  28. 58.

    Define a machine learning problem Construct & transform your dataset

    Train a model Use the model to make predictions Adapted from Introduction to ML Problem Framing
  29. 59.

    Learning Resources •Deep Learning with Python (book) by François Chollet

    •Machine Learning Glossary •Machine Learning Crash Course •TensorFlow Tutorials •Teachable Machine Tutorials (1, 2, 3) •But what is a neural network? (video)