Galuh Sahid
May 17, 2020
210

A Whirlwind Tour of Machine Learning with TensorFlow

International Women's Day 2020, Jakarta

May 17, 2020

Transcript

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

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

6. TensorFlow is an end-to-end open source platform for machine learning.

TensorFlow.org

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
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
11. Machine Learning Answers Data Rules

Unsplash Panda Panda Cat Cat

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
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

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
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.”
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

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

process: - text data - CSV data - image data and more
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
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
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 =
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 =

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)
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

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
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
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

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’) ])
40. ? Panda Cat Accuracy: 80% Our model does not get

smart right away Photo: Manja Vitolic on Unsplash | Icon: Flaticon
41. ? Panda Panda Accuracy: 95% Our model does not get

smart right away Photo: Nicholas Doherty on Unsplash | Icon: Flaticon
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
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’)
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%
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)
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

48. Making predictions 1. Use models that you built by yourself

2. Use existing models 3. Retrain existing models

55. Deployment: TensorFlow.js How Modiface utilized TensorFlow.js in production for AR

makeup try on in the browser

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
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)