 So why do I love Google Colab so much? It allows us to have everything in one place. It's also pretty much indestructible. I remember all those struggles with installing Python on my machine and then I was running code and the dependencies ran quite right. Given that this costs us on Google Colab, we can do all those things so that avoids all of you having to deal with these minutia of installations. It's pretty much indestructible. It also allows us to know a lot about you. The questions, we will know the timing for the various parts, what you submit and so forth. I should just hear by promise you that we will only use what we learned that way to make the world better, to make this cost better and to help us plan future courses. So what's the plan for today? In previous versions of this course, we jumped right in and looked at the components, say linear transfers or transfer functions. But instead, what we want to do here, it's a bit of a risk, we'll see how well it works, but we will use alpha zero as an example with the idea to do something that's really big in the first week with the hope that then you can see the big, the forest instead of fast seeing the trees. And I think alpha zero is a great example there. We will see pretty much everything that we'll learn in any of the weeks that the course. And we will see how that slots in here. And that will in a way motivate us to learn about all those components. It will also allow us to think about the components already knowing the rest of the space and how it relates. And also, we will see how when put together in the right way, many rather obvious little ideas produce a deep learning system that ultimately feels like magic. Alpha zero plays great, but it's made out of very simple things. And I think you will come out of today's lecture with an appreciation of how everything fits together. So what is alpha zero? Alpha zero is this cool system coming out of Google DeepMind that basically teaches itself to play games. Can play chess better than any human can play. It can play go better than any human play. It can be used to learn game playing in lots of different situations. So why do we start with alpha zero? Deep learning always appears in the context with other computer science ideas, such as symbols. In the case of alpha zero, we have deep learning, but deep learning is part of the problem. We will see that the deep learning is embedded in a system that does planning. We will see that deep learning can be formulated in many different ways here. There are many ways of bringing deep learning to the problem. And alpha zero is a very clever way of bringing deep learning to the problem of game playing. Alpha zero combines what the whole causes of it. It combines recognizing little patterns that predict that your game situation isn't as good as you may believe. In that sense, it's similar to computer vision and natural language processing. It contains reinforcement learning. And of course it contains all the components like transfer functions and optimizers and regularization and so on and so forth. I think it also teaches us how we can think about an overall problem and about how we can use deep learning as a tool in multiple different ways. Now, it would be cool to do everything in the case of chess or go, but these games are very complicated and the code would be very long. So that's why we focus on a simpler game, namely the game of a teller. So in the game of a teller, we have black stones and we have white stones. And we can, and when we put a stone somewhere, everything that is between on a straight or diagonal axis, everything that is between one of our existing stones and the newly placed stone will take on the color that we have. So for example, if we put that white stone in this upper place, the black stone that was to the upper left will switch signs and now be white. This is what we see on the right-hand side here. So we don't want you to implement a teller because we want you to learn about deep learning instead of just coding. So we are giving you a very fast implementation of a teller. And we will see how fast implementation is the key to a lot of approaches in deep learning. So what do we give you here? We give you an environment called game and it gives us game.render, the ability to render the bot, game.getavailableactions. In a teller, it's only legal to do a move that actually flips a sign of the other player. The third one is we give you game.cownPlayer. Whose turn is it right now? And then we give you game.step, which takes us input the action that we take and produces the new game situation. It's also that the code that we give you allows you to play multiple games in parallel. That is not so important if you are me do it, but it's hugely important if we want to collect lots of data to use deep learning to say estimate how good a position is. So now we want you to understand the game environment. So please look at the relevant parts of the code and try and understand what that environment is that we're giving you. Do not spend more than a few minutes on it.