So, how do you get started on machine learning, in our experience, we have seen that the typical customer journey. The one that's most likely to be successful, is to select a use case for which you're doing manual data analysis today. This is what Global Fishing Watch and nonprofit that tries to identify poaching, this is what they did. They used to manually analyze fishing trips and then they scaled up their processing. Using machine learning to the point that they could analyze 22 million data points daily. So, there are several reasons why you want to go through manual data analysis to get the machine learning. Number one, if you're doing manual data analysis, you probably have the data already, and that is the hard part. Collecting data is often the longest and hardest part of a machine learning project, and the most likely to fail. So, if you have the data already, your chances of success just went up, so that's one reason to basically go through manual data analysis. Second reason, even if you don't have the data today, so your ML project involves first collecting and rating the data. Rating meaning finding labels for the data, you want to go through a manual analysis stage. The reason is that if you cannot analyze your data to get reasonable inputs towards making decisions, then there's no point in doing machine learning. Manual analysis helps you fail first, trying new ideas so, don't skip this analysis step. The analysis step will often tell you if there are insights to be had, from the data. Third reason why you want to go through manual data analysis or not skip it. Is that to build a good machine learning model you have to know your data. And since there's a first step, why don't you go through the process of doing manual data analysis? Don't jump straight into ML, so, we'll talk about this more in the next module. But the fourth reason is that ML is a journey towards automation and scale. You are automating manual analysis because you want it to scale, perhaps like Global Fishing Watch. You're manually analyzing a small fraction of fishing trips and you want to automate this. So that you can scale up to analyzing a great deal more fishing trips, so, are more pithily, if you can't do analytics you can't do ML. So, when we say machine learning to engineers, they keep thinking training. But the true utility of machine learning comes during predictions, that's when you're getting value from it. So, one key thing then, is that your models have to work on streaming data, you need to build up your streaming data sophistication. If you're thinking that you could get away with doing things weekly as batch processing, guess what, your business is only getting faster. So, one common reason that machine learning projects fail is because of something called training serving skew. This is where you had a certain system for processing historical data so that you could train on it. Perhaps it was a batch processing system written by a data science team. And then you have a different system that needs to use the machine learning model during prediction. The system that serves these predictions is probably written in something that your production engineering team writes and maintains. Perhaps it's written in Java using web frameworks, the problem is that, unless the model sees the exact same data in serving. As it was used to seeing during training, the model predictions are going to be off, so, that is a problem that is referred to as training serving skew. So, the problem is, that the result of stream processing and the result of branch processing have to be the same. So, one way to reduce the chances of this problem, one way to reduce the chances of training serving skew. Is to take the same code that was used to process historical data during training and reuse it during predictions. But for that to happen, your data pipelines have to process both Dutch and Stream. This is a key insight behind dataflow, a way to author data pipelines in Python, Java or even visually with cloud data prep. It's open source is Apache B, where B stands for batch and the EAM stands for stream, so, a single system to do batch and stream. Because in machine learning, it's helpful to use the same system in both training and prediction. The performance metrics that you care about change between training and predictions as well. During training, the key performance aspect you care about is scaling to a lot of data, distributed training if you will. During prediction though, the key performance aspect is speed of response, Hi QPS, so, this is a key insight behind Tensorflow. Lots of machine learning frameworks exist for training, not so many are equally capable of operationalization.