HTC Education Series: Getting Started with Deep Learning - Lesson 1
Part of the goal here at HTC is to put together educational learning resources for Maui residents (or anyone else anywhere on our small planet who wants to follow along on the HTC blog).
To help people get up to speed on deep learning based AI systems, we want to put together educational resources for anyone to learn about Deep Learning Neural Networks. The goal is to do this so that anyone can dive in, follow the course, and come out of it with enough knowledge to actually do something useful with deep learning.
We want to make the course accessible to everyone, so don't worry if you don't have a college degree, or some kind of intensive math or engineering or computer science background, because you really don't need any of that to take this course.
Note that this is very different from the conventional university model, where you would be required to take years of advanced math in a highly technical curriculum before they got around to actually teaching you about these topics, and even then would bury you in advanced math symbology when they did.
If you have been reading the HTC blog, you know that we cover all kinds of different aspects of deep learning, and how it fits into the overall revolution going on right now with Artificial Intelligence and deep learning. Some of the topics we cover on the blog are pretty advanced, others are very much in the getting started category.
We cover advanced topics because we want people to get excited about the possibilities of working with this stuff. And to educate them about what is possible, or what soon will be possible.
We're also very focused on how artists can take advantage of and utilize advanced technologies like deep learning. We hope to have courses specifically focused on artists and their needs in the future.
We're going to be presenting a video lesson here once a week along with some additional supplemental information as we work through the course material. The actual course itself was developed by fast.ai.
Why did HTC choose fastai for this course? Because we feel by far that it is the best one currently available for people getting started. That includes total beginners, as well as more seasoned professionals.
Fast.ai is a non profit organization in San Francisco devoted to both educating people about AI, developing tools to make it easy to do this stuff, and to help people understand ethical issues associated with it. So the course talks about the ethics of AI systems as well as how to build them
I have a graduate level engineering background, did neural net research in the early 90s, including apparently publishing the first paper on using convolutional neural networks for image style transfer, over 40 years of programming experience, and i am still finding the course incredibly useful and interesting.
This points out something very important, which is that life long learning is very important. The world of technology, and AI in particular, is advancing at an incredible rate, exploding really at this point, and you are always going to have to learn new things, or new ways of doing things.
You don't have to pay anything to watch the course videos. No one is going to send you endless spam ads asking you to buy more stuff if you take it.
I have personally been exposed to many different kinds of deep learning and AI courses, including ones taught in university settings, as well as multiple other 'pay for it' courses offered on the internet. Fast.ai is the best by far. For all of the different reasons we have been discussing.
Let's get started. Lesson 1 covers the course philosophy, early history of neural nets, explains some terminology, gives an intro to Jupyter Notebooks, and then shows how you can use the fastai library in a Jupyter Notebook to very easily generate a working deep learning neural net that can distinguish between images of cats and dogs.
Check out the fastai Lesson 1 video associated with this HTC course.
You can also watch the video on the fastai course site here. The advantage of that is that you can access on that site a searchable transcript, interactive notebooks, setup guides, questionnaires, etc.
Each week, a new course lesson will be published here every monday, until we conclude the course. We would encourage you to watch the video, read the appropriate chapters in the book associated with the video, and then spend the rest of your week until the next lesson playing around with what has been discussed. All you will need to play around with the course material is a web browser.
You are of course free to access any of the video lessons in the course at any time here. So if your style of personal learning is a little bit different then what i just mention, by all means follow your heart. I do think it's important to spend time learning how to work with the various code examples if you are going to get the most out of the course. But even if you just watch the video lessons, you are going to come away from this course with a much better understanding of what deep learning is all about, ethical considerations associated with it, and how it can be used.
HTC will be providing additional 'extra' lesson material within our Getting Started with Deep Learning track. These will appear as separate posts within the specific HTC Education Series track for 'Getting Started with Deep Learning' here on the HTC site.
So if you were wondering why we didn't just send you on to the fastai site, end of story, that's the reason. One way to think of it is through the lens of object oriented inheritance and open source software. Rather then doing something from scratch that already has an excellent implementation, we are building on top of that existing excellent implementation.
There is a book associated with the course that we would encourage you to purchase called 'Deep Learning for Coders with fastai and PyTorch: AI Applications Without a PhD'. You can purchase the ebook on amazon here ($34.99 when this was written).
All of the course material in the book is also available as Jupyter Notebooks. So if you are too dirt poor to buy the book, you can still get access to all of the course material. We covered Jupyter Notebooks in a previous post. Fun fact, the actual book was auto-generated from Jupyter Notebooks.
We have been covering Colab notebooks a lot recently on the blog. Google Colaboratory is great, but does not support the custom widgets used in some of the fastai Jupyter Notebooks. So we are recommending that you use Gradient instead to run the course Jupyter notebooks on.
You can find instructions on how to get started with Gradient for the course here.
There is a whole 'getting started section' at the main fastai course site that explains this and more, so check it out.
You will be working with Python in the course. We covered getting started with Python in a previous post. If you have some kind of programming experience in another language, you should be able to get comfortable with Python pretty quickly.
If you have never learned anything about computer programming before, you will have a little bit of a hump to get over. But by working with the code examples in the course, you can start to get up to speed. You really don't need to have done any programming before to run the course example code in a Jupyter Notebook inside of a web browser to create working state of the art deep learning neural networks that can solve all kinds of different problems. And by looking at the code, you can start to understand how programming actually works. Fun fact, most professional programmers actually learned how to code by looking at existing code and then copying what they saw there in other programs.
Remember, the whole point of deep learning neural networks is to not manually program a coded solution to a particular problem you want to solve. You present data to a model that learns itself from the data presented to it.
This is a very different paradigm then conventional programming, where a programmers codes everything to solve a particular problem. There is some manual coding to setup the neural net you want to work with, but all of the really hard work is done by the neural net itself as it learns from the data you are presenting it.
The course is designed so that you can do everything inside of a browser. So you don't need a fancy computer with expensive gpu cards in it to do any of the work associated with the code. You don't need complex and overwhelming IDE environments to work with the code. If you can use a web browser, and have an inquisitive mind, you are ready to get started.