Welcome to Crash Course Artificial Intelligence! In this series host Jabril Ashe will teach you the logic behind AI by tracing its history and examining how it’s being used today. We’ll even show you how to create some of your own AI systems with the help of co-host John Green Bot! We’ll also spend several episodes on an area of AI known as machine learning which has skyrocketed in popularity in recent years. AI is everywhere right now and has the potential to do amazing things in our lives. But there’s also great potential for peril, which is why we believe it is more important than ever that developers, and non-developers alike, understand AI.
Artificial intelligence is everywhere and it's already making a huge impact on our lives. It's autocompleting texts on our cellphones, telling us which videos to watch on YouTube, beating us at video games, recognizing us in photos, ordering products in stores, driving cars, scheduling appointments, you get the idea. Today we're going to explain what AI can (and can't) do right now and explain how we got to where we are today.
Today we’re going to teach John Green Bot how to tell the difference between donuts and bagels using supervised learning! Supervised learning is the process of learning WITH training labels, and is the most widely used kind of learning with it comes to AI - helping with stuff like tagging photos on Facebook and filtering spam from your email. We’re going to start small today and show how just a single neuron (or perceptron) is constructed, and explain the differences between precision and recall. Next week, we'll build our first neural network.
Today, we're going to combine the artificial neuron we created last week into an artificial neural network. Artificial neural networks are better than other methods for more complicated tasks like image recognition, and the key to their success is their hidden layers. We'll talk about how the math of these networks work and how using many hidden layers allows us to do deep learning. Neural networks are really powerful at finding patterns in data which is why they've become one of the most dominant machine learning technologies used today.
Today we’re going to talk about how neurons in a neural network learn by getting their math adjusted, called backpropagation, and how we can optimize networks by finding the best combinations of weights to minimize error. Then we’ll send John Green Bot into the metaphorical jungle to find where this error is the smallest, known as the global optimal solution, compared to just where it is relatively small, called local optimal solutions, and we'll discuss some strategies we can use to help neural networks find these optimized solutions more quickly.
John Green Bot wrote his first novel! Today, in our first ever Lab we’re going to program a neural network to recognize handwritten letters to convert the first part of John Green Bot’s novel into typed text. To do this we’re going to import a labeled dataset, called EMNIST, we’ll to use a pre-written library called SKLearn to build the network, we’ll train and tweak our code until it’s accurate (enough), and then we’ll use our newly trained network to convert John Green Bot’s handwritten pages.
Today, we’re moving on from artificial intelligence that needs training labels, called Supervised Learning, to Unsupervised Learning which is learning by finding patterns in the world. We’ll focus on the performing unsupervised clustering, specifically K-means clustering, and show you how we can extract meaningful patterns from data even when you don't know where those patterns are.
So far in this series, we've mostly focused on how AI can interpret images, but one of the most common ways we interact with computers is through language - we type questions into search engines, use our smart assistants like Siri and Alexa to set alarms and check the weather, and communicate across language barriers with the help of Google Translate. Today, we're going to talk about Natural Language Processing, or NLP, show you some strategies computers can use to better understand language like distributional semantics, and then we'll introduce you to a type of neural network called a Recurrent Neural Network or RNN to build sentences.
Let’s try to help John Green Bot sound a bit more like the real John Green using Natural Language Processing. Today, we're going to code a program that takes a one word prompt and then completes the sentence that sounds like something John Green would say. To do this we’re going to collect transcription files from Vlogbrothers episodes, do some preprocessing since John Green has a pretty large vocabulary, then we’ll set up a recurrent neural network (or RNN), train our model, and test it!
Reinforcement learning is particularly useful in situations where we want to train AIs to have certain skills we don’t fully understand ourselves. Unlike some of the techniques we’ve discussed so far, reinforcement learning generally only looks at how an AI performs a task AFTER it has completed it. And when an AI completes that task figuring out when and how to reward an AI, called credit assignment, is one of the hardest parts of reinforcement learning. So today, we’re going to explore these ideas, introduce a ton of new terms like value, policy, agent, environment, actions, and states and we’ll show you how we can use strategies like exploration and exploitation to train John Green Bot to find things more efficiently next time.
Today we're going to talk about Symbolic AI - also known as "good old-fashioned AI". Symbolic AI is really different from the modern neural networks we've discussed so far, instead, it represents problems using symbols and then uses logic to search for solutions. And this type of AI is used broadly in video games and in expert systems like those that manage inventory at grocery stores and set rates at insurance companies. Today we'll show you how we represent symbols and their relations, teach you how to build a knowledge base, and then introduce some simple propositional logic that is at the heart of these AI systems.
Robots aren’t like humans who can do a lot of different things. They’re designed for very specific tasks like vacuuming our homes, assembling cars in a factory, or exploring the surface of other planets. So even though it may be a while before we have a general household robot that can do it all, robots are still really important because they can do some things incredibly well even better than humans. So today, we're going to take a look at the role of AI in overcoming three key challenges in the field of robotics: localization, planning, and manipulation.
As we mentioned last episode, one of the best test spaces for building new AI systems are games. This is because games provide a great framework for an AI to learn an objective and slowly improve. In recent years, AI has made huge strides in games from beating Jeopardy! champions to crushing a five-person team in DOTA 2. Today, we’re going to walk you through creating a Tic Tac Toe bot that uses the minimax algorithm to become undefeatable and we’ll talk about evolutionary neural networks like in SethBling’s MarI/O project. Next week we’ll create our very own game and create an AI to master it!
Today we create a game and then build an AI to destroy it. Our game is called TrashBlaster, and it’s like Asteroids but with trash in the ocean, and instead of a spaceship John Green Bot is wielding a laser. We'll use machine learning techniques such as an evolutionary neural network alongside a carefully crafted fitness function to create an unstoppable AI.
There’s been a lot of discussion about how automation is going to take people’s jobs and we don’t want to downplay that real impact, but today we’re going to focus on the benefits of humans and AI working together. Human-AI teams allow us to fill in each others weaknesses leveraging human creativity and insight with the ability to perform rote manual tasks and synthesize lots of information. This kind of collaboration can help us make better decisions, brainstorm new inventions, give us superhuman abilities, rescue victims of natural disasters, and of course become the ultimate chess master.
Today we’re going to talk about recommender systems which form the backbone of so much of the content we see online from video recommendations on YouTube and Netflix to ads we see on Facebook, Twitter, and well, everywhere else. We’ll talk about there types of systems - content-based, social, and personalized recommendations - and take a closer look at what they're good at, but also why they often fail.
We need to save Jabril and John Green Bot’s movie nights. Jabril generally likes action movies and John Green Bot likes romantic movies, but they need to find something that they can both watch and enjoy together. Today, we’re going to build a movie recommender systems to find that perfect movie. With the help of the LensKit library, our AI will use existing movie ratings from the MovieLens dataset and personalized ratings from Jabril and John Green Bot to perform user-user collaborative filtering. We’ll then create a Jabril Green Bot hybrid that will average these ratings to try and find something that they both want to watch.
Today we’re going to talk about search engines, which are just AI systems that try to help us find what we’re looking for. Search engines can be the sort that serve up a list of results, like during a Google or Bing search, using web crawlers, an inverted index, and measuring stuff like click through and bounce back to figure out what you want to see. They can also be the kind that give you answers, like when you ask Siri or Alexa a question, relying on knowledge bases. Admittedly, these systems aren’t perfect so next week we’ll talk about bias in AI systems like this.
Today, we're going to talk about five common types of algorithmic bias we should pay attention to: data that reflects existing biases, unbalanced classes in training data, data that doesn't capture the right value, data that is amplified by feedback loops, and malicious data. Now bias itself isn't necessarily a terrible thing, our brains often use it to take shortcuts by finding patterns, but bias can become a problem if we don't acknowledge exceptions to patterns or if we allow it to discriminate.
Today, in our final lab, Jabril tries to make an AI to settle the question once and for all, "Will a cat or a dog make us happier?" But in building this AI, Jabril will accidentally incorporate the very bias he was trying to avoid. So today we'll talk about how bias creeps into our algorithms and what we can do to try to account for these problems.
Today, in our final episode of Crash Course AI, we're going to look towards the future. We've spent much of this series explaining how and why we don't have the Artificial General Intelligence (or AGI) that we see in the movies like Bladerunner, Her, or Ex Machina. Siri frequently doesn't understand us, we probably shouldn't sleep in our self-driving cars, and those recommended videos on YouTube and Netflix often aren't what we really want to watch next. So let's talk about what we do know, how we got here, and where we think it's all headed. Thanks so much everyone for watching!