 OK, it's that. Thank you for taking your time for my session, real-world machine learning with TensorFlow and Cloud ML. I'm Kaz. I have been working at Google over seven years, and for the last four years, I have been working as a developer advocate at Tokyo office. So it's like an advantageous for developers attending meetups like this, and speaking mostly about machine learning or the big data processing products. Let's start talking about the meanings of these buzzwords like AI or ML or neural network. There's no clear definition of what is AI or artificial intelligence, but you can think it's an, what's the definition, the science of making things smart. So we'd like to make them smarter IT systems rather than the ordinary existing IT systems, which is programmed by the human programmers. And one of the approaches, many different approaches to real-world vision of the AI is machine learning. And I personally think machine learning is kind of the paradigm shift of programming. Because instead of using the human programmers to instruct computers how to solve the problems, now you can use data to program the computer. But I think machine learning is a new way to program computer. So it's a paradigm shift of the computer program. So instead of specifying the logic like if statements or database SQLs, we can let the computers looking at the data and trying to extract certain patterns of logic hidden inside the data. And one of those machine learning algorithms is the neural networks originally invented in the 40s. And we had two past boomings of the neural network in 60s and 80s. And this is the third time where we are seeing the booming of the neural networks. But now we are seeing the real breakthrough in the technology. Because now we have the big data, terabytes of data, the training data, and the computing power, like GPUs. So that at around 2012 or 2014, we are seeing there's something happening in the neural networks when you put the big data and computing power. Neural network is just like a function in the math or programming, so you can put any kind of data so you would get the output data. So not only the image data, you can also put any kind of data like game user activity log or credit card usage log, e-commerce logs, any kind of business data. And you have to try whether the neural networks can solve your problem or not. For example, if you have an application or a game server, you can try using neural network to crash by whether a user could be a premium user for you who would be buying more and more items on your service or a user can be a cheating player who would be using an automated script to try cheating on the game. So anyway, let's take a look at how the neural networks can solve a problem by using this very simple double spiral pattern. This data set has two dimensional data, one and two dimensions in the 2G space. And if you plot the data point, then you can see there's two groups, orange spiral and blue spiral. And for humans, it's pretty easy to crash by these data points. If you have a new data point here, this must be blue. If you have a new data point here, this must be orange. But what kind of Java code or what kind of C code or Python code you would write to crash by these data points in the blue or orange? And you can replace this spiral pattern with any arbitrary complex patterns like the whether your game player is a cheating or not, or whether your credit card user is doing a fraud or not. What kind of a program code to crash by these complex patterns? So that's where you may want to use machine learning or neural network. And somehow the video is not working. What is that? Maybe I lost internet connection. I think I have to connect with the internet. Do I have wired connection? Why connection with the internet? Sorry, I lost my connection. Yeah, I can connect. If just lost, I can reconnect. My demonstration doesn't work at all without internet connection. Sorry. I think it should work. So this is a demonstration where we have the input training data to train the neural networks whether the data point should be in orange or blue spiral. And in the middle, we have the three layers of neural network. And at the right side, you can see the output how the neural network thinks whether a point is in orange or blue. So when you start the training of the neural network, the neural network doesn't work at all because it thinks the points in this area must be all orange. And points in this area must be all in blue. So it doesn't work. It doesn't work. But if you keep trying training the model of patient with putting more and more training data and computing power, you can see gradually computer tries to find any way to crash by the data points in blue or orange, just like humans do. So eventually, you would get pretty much high accuracy on crash-firing those data points. And the worst result would be something like 99.8% accuracy on crash-firing these double spiral. So as I mentioned, you don't do any programming on the machine learning. Yeah, you have to write some code on building those setups for the machine learning. But the logic itself or pattern itself is not programmed by humans. Instead, you can let the computer try to find the best way to program the computer by itself. And you can extend the same techniques to the higher dimensional data, such as images or audio or natural languages. For example, if you have the 28 times 28 pixel image, that means you have the 784 dimensional vector. It's just a bunch of numbers with the pixels like black or white pixels. And you can just put those pixel data directly into a neural network so that the neurons in the network, for example, this neuron tries to take the certain pixels, whether it's black or white, to calculate the probability if the image is eight digit eight or not. So it's a very simple mechanics running inside the neural networks. But if you have multiple layers of neural networks, that is so-called deep neural network, then you would see something amazing could be happening in the neural network. So if you have like a 40 or 80 layers between the input and output data, yeah, at Google, for the production, we are using the inception model, which uses the 40 or 80 layers between the input and output. Then you'd see very high accuracy on recognizing object in the image. So the neurons inside the lower layers would be trained to recognize things like edges or patterns. Neurons in the middle layers would be able to recognize eyes or nose of animals. Neurons in the higher layers can be smart enough to recognize dog's mouth or cat's leg. And eventually you'd have a very smart neuron that can recognize laboratory to recover or tiger cat, just like humans do. So this is how deep neural network works. And Google has been using this technology for implementing many different Google services. For example, if you are using Google search, then you mean, that means you are using deep learning from Google every day. Because in 2015, we have introduced deep learning algorithms for ranking the search result of Google search. And we have been using the deep learnings at over 100 production projects inside Google. So it's not a hype or buzzword anymore. Deep learning for Google is a proven production quality technology that is a very important part of the Google services already. And now we are trying to externalize the power of the deep learning with the external developers and customers. And we provide three different kinds of the services, ML APIs and AutoML, which is a pretty new product, and TensorFlow that could be running on machine learning engine on the cloud. So let's take a look at each product in details. ML API is the easiest way to get started with the machine learning. So you don't have to have any machine learning expertise or knowledge or experience. All you have to do is upload your own image, audio, or text data to the API, and you will be receiving the result within a few seconds. So if you go to the product page of cloud vision API, then you have tried the API box in the product page. Anyone can try the API without signing up or spending any money. Just drag and drop your own images from local computer. So for example, if you drop the shift of image, then it should be recognized as a dog or a momo, not a mop or things like that. This looks like a mop, but it's a dog. And if you go to the product page for speech recognition, speech API, you can just speak to the microphone of your laptop to try using the API. By choosing the one language from the 20 different languages like English, Mandarin, or Japanese, and it can recognize your voice in real time, just like you do with the Google home smart speakers or the Android devices. Then you can copy and paste the recognized text and put the text into the natural language API to understand deeper about the meanings of the text. You can just click the analyze button so you will be receiving the result of the entity analysis to find out product names or company names, the locations or sentiment to find out whether the sentence is talking about positive or negative or syntactic analysis for the analyzing part of speech of each word, verb or noun or objective. So that's so easy. You don't have to hire expensive data scientists to do things like that. But this API cannot solve all the problems. These are all pre-trained model. That means you cannot customize the model for your own use cases. To do so, then you have to hire expensive data scientists and to do the data pre-processing on the designed ML model, tuning the hyperparameter tuning, evaluation, deployment, and you have to continuously monitor and train the model all the time. So that would take like tens of thousands of dollars or millions of dollars. So we are trying to mitigate this kind of building for building the customized ML model. To do so, so we provide a new product called AutoML. The first product is AutoML Vision, customizable machine learning model for object recognition. So all you have to do is collect all the training data, image files, upload it to the Google Cloud, and push the train button on the AutoML. So let's take a look at the video. And want to train a model to identify different types of clouds, like cumulus, cumulonirus, and stratus, to predict upcoming weather patterns or flight plans. If you tried this with the Vision API, here are the labels you'd get back. It wasn't trained specifically to identify different types of clouds. What if you want to train a model to classify images specific to your dataset without writing model code? Cloud AutoML Vision lets businesses and developers with limited machine learning expertise train custom vision models for their own use cases. Developers can upload their own labeled or unlabeled dataset, train and manage their models, and use those models directly from the cloud to make predictions. Let's take a look at the AutoML UI. Begin by uploading your images to Cloud AutoML. Then, press the train button to train a custom model on your image dataset. When training completes, analysis and stats of the model quality are available directly in the AutoML UI. So that was so easy. So you don't have to write any code for trying this out. So the end result is the API, West API you can access. So you can ask some IT vendors to build and hold an email system without using the expertise of machine learning expert or data scientist. And here's a very interesting use case of the classification, classifying ramen balls. This is actually done by a serious data scientist in Japan and he collected 45,000 pictures of the ramen balls made by ramen zero branches. Ramen zero is one of the popular ramen franchises in Japan. They have 41 branches. And then those balls look the same, but actually they are made by a different branch, different shop of the 41 branches. And this AutoML model can classify the branches at 95% accuracy. So we cannot do these things, but computers can do that. So now the performance of the computer are exceeding the humans. Menukari is one of the popular selling app in Japan. And they have been trying to build a machine learning model to classify the brand names of the products like Gucci or Chanel. And the past result was 75% accuracy with their own machine learning model. But when they tried the AutoML, they were able to get 90% accuracy just by clicking the training button without any expertise of machine learning data scientist. And they are waiting for the public beta release of the product to replace existing model with the AutoML. So that's how AutoML and ML API works. And there are some cases where you may want to build the machine learning model from scratch with data scientist. So that's where you want to use TensorFlow, which is now open source too, for building your own model from scratch. This has been used inside Google for building any new machine learning or AI services here at Google. And we have open sourced in November 2015. And it's not so hard to build your own model with TensorFlow. You have to write maybe tens of Python code to define the neural network graph like this with the Python, like the math model with the data and weights, things like that. Or specifying the optimizer for the training model. And this is the demonstration I have created with my son last summer to show how easy to use the TensorFlow. This is a so-called rock paper seismic machine with glow, with three sensors on it. So each sensor senses the position of the fingers. So that the TensorFlow model can detect whether it's a rock or paper or seasons. But it's a toy demonstration. But still that's very interesting because you can understand why the machine learning could be valuable for your everyday programming. So what it is doing is collecting the glow sensor data like this. And what TensorFlow is doing is the conversion or transformation of the input data to the expected output results. In this case, we want to get the probability of the rock, paper, or seasons based on the position of the fingers. So what I have done is collected 800 position of the sensor data with the labels whether it was a rock or paper or seasons. So that the most important part, the transformation here is automatically done by the TensorFlow. So you don't have to do any programming to implement the transformation part. So this is the idea how why the machine learning could be useful for the everyday programming or any kind of the programming. And once you have defined your model with TensorFlow, you can run it on your Mac or Windows or GPU from any video or tens or hundreds of GPU in the cloud without thinking about the scalability. Because we take care of the scalability, scalable and available the deployment of the training and prediction infrastructure by ourselves. And also once you have trained your model with TensorFlow, you can bring the model into the smaller devices like smartphones, iOS, Android or Raspberry Pi so that you can have the smartphones to take photos to recognize the object in it or you can have the Raspberry Pi to detect certain patterns from the IoT sensor data. We even developed our own processor called the TPU or TensorFlow processing unit that runs the TensorFlow processing inside it. And that is almost equivalent to the super computer performance which is 11.5 petaclops. So you can say that Google has been developing their own super computer just for building the AI or a new network infrastructure. So TensorFlow is the most popular framework with those benefits. And many different companies like NVIDIA, Dropbox, eBay, Coca-Cola has been using TensorFlow for production or POC use cases. Even these cucumber farmers are using TensorFlow. There's a guy, this son, Makoto-san, who created his company as an engineer and started helping his parents cucumber farming two or three years ago. And he found out that most tedious task for the cucumber farmer is classifying cucumbers. His mother spent eight hours a day just for classifying each cucumber by looking at its shape, whether it's straight or bend it or whether how, what kind of color it has or what's the texture of the skin to classify these cucumbers into nine different classes. And he really didn't want it to have that. Instead, he downloaded TensorFlow and took 9,000 photographs of the cucumber and trained in model so that he was able to build his own cucumber solder by himself. He only spent 1,500 bucks to build whole system with Raspberry Pi. So now you don't have to hire any expensive data scientist or IT vendors to build a million dollar systems for this kind of classification with high quality. So now we are seeing the real democratization of the machine learning or deep learning with the open source tool. So many companies have started to bring this technology into the real world production systems like Airbus, AXA, SMXG, Cacora, Kippy. For example, this is a global fishing watch project which is a project for preventing overfishing in oceans. They are collecting the real time GPS location of the 200,000 vessels ships in each ocean and storing everything on the Google cloud storage and then using the TensorFlow running on Google cloud to extract certain patterns of movement of each ship so that you can easily find out whether each ship is doing a trash fishing or long line fishing or percent fishing by looking at the patterns at higher accuracy. So you can easily count how many fishes in each area. Kippy is the one with the major food manufacturer in Japan. They have been trying out TensorFlow image recognition on their food manufacturing plant for the baby food. They want to find out the bad production on the diced potato, the malformed potatoes or potato cube with the bad color and the existing image recognition system didn't work. So they tried the TensorFlow but then they were able to get a really high accuracy that can replace the human workers. So this is the real, the POC system. So you can hear the sound. So it sounds like Super Mario Brothers but it's not, actually each bell tells you the position on the bell to compare where you will have the bad potatoes. So summary, so we provide three different kinds of the products and open source tool like machine learning, APS, auto ML and TensorFlow which is open source tool. So everything is all about democratizing the power of the machine learning. We want to have everybody using the machine learning. So the most important, the variable point for the Google ML solution is the community and the ecosystem. The number of the developers for the TensorFlow machine learning API is growing and growing. So it's so easy to find the best partner or vendor or developers for you to provide a real-world solution from the community or ecosystem. So that's it. Thank you so much.