Thursday, February 4, 2021

How To Teach Yourself AI and Machine Learning

 

Without a question it is possible to teach yourself AI. It is actually a fun process, and I have recently put myself through it. Let me briefly describe the path I took.

A good place to start is with a do-it-yourself book on AI that will coach you through installing all the software that you will need on your home computer. I used “Deep Learning” by Mueller and Massaron. They will help you download and properly install Python, Anaconda, Tensor Flow, Keras, Numpy, Pandas and all of the important libraries. Then they walk you through using them. They describe all of the basics of matrix multiplication, regression, and how to use the different kinds of neural networks (RNNs, CNNs, etc.). These two authors also wrote “Machine Learning for Dummies” which is also very accessible, and takes a wider perspective on AI introducing you to other statistical packages like R Studio and Octave. I gave myself a whole month to get through “Deep Learning,” but to be honest the reading and code running together took less than 20 hours in total. This may be too big of a step for some beginners so let me describe some more remedial learning tools.

First you should unleash your curiosity by searching Reddit, Quora, Youtube, and Google for more information about AI. Try searching for some of the following exciting terms: “neural networks,” “cognitive computing,” “neuromorphic chips,” “cognitive architectures,” “generative adversarial networks,” “artificial reasoning,” “probabilistic learning,” “natural language generation,” “semantic nets” “artistic style transfer” and “GPT-3.” You should also use AI-related keywords in Google Scholar for a bit of academic exposure to the subject.

You will definitely want to check out Google’s Tensor Flow Playground. To do this use Google’s excellent tutorial here: https://playground.tensorflow.org Watching a 10 minute youtube video about it first can give you a lot of context. Play around on the site for a half hour to develop first-hand knowledge about how machines can use neural networks to learn, and how fundamental AI algorithms work. It is all about little entities that talk to each other, collectively produce an output, and then learn from their mistakes.

If you are serious about using machine learning, neural networks, or other popular forms of AI or data science software, I strongly recommend learning Python. You can learn a lot about coding through mobile apps like Mimo and Grasshopper. But to start to really get a grasp on Python you can complete the Code Academy or Solo Learn certifications for Python. The next step is getting the full certification from the Python Institute which offers a free online course at pythoninstitute.org I also recommend reading “Learn Python Quickly” from Code Quickly, and “The Complete Python Manual” from Black Dog Publishers.

The newest version of Python can be downloaded for free from the official website. Just getting your hands on it is a great start. Python is one of the hottest programming languages, and one of the easiest to learn. It is fantastic for automating things, and is necessary for anyone who wants a future in AI, especially neural network engineers. The download link is here https://www.python.org/downloads.

You are probably going to want to download PyCharm, which is a great developer’s environment for Python. It makes writing and keeping track of your Python code much easier, and it looks spiffy. https://www.jetbrains.com/pycharm/download

Then you might try out Coursera. There you can find courses like “AI for Everyone” from deeplearning.ai, as well as “Python for Data Science and AI” from IBM. I completed several of these and none of them will take you longer than 15 hours. For a deeper dive you might even take Andrew Ng’s famous deep learning specialization on Coursera.

A favorite researcher of mine named Chris Eliasmith has created a spiking neural network simulation application called Nengo. This is an excellent “brain making package” that lets you build, test, and deploy your own neural networks using Python. The tutorials are excellent, and make you feel like you have a foot in the door with artificial intelligence. Find out more at: https://www.nengo.ai/

I also recommend a piece of software called Neuronify that you can find on the Windows Store. It creates a simple workspace where you can build neurons, connect them, and watch them fire at, and respond to each other. Playing with the options, and completing the tutorials helps to build important intuitions about how neural networks work. You can visit the website here: https://ovilab.net/neuronify/ Before you get bored of it, definitely download some of the highest rated workspaces built by other users and you will be treated to some complex and fascinating models.

Sign up for Brilliant at brilliant.org. They offer a large number of excellent problem-solving based courses in computer science, artificial intelligence, and mathematics. They even have courses specifically for Python and neural networks. I still use it weekly and it is very helpful.

You will want to create an account on GitHub so that you can host all of the code that you will be writing so other people can access it. I have posted a few annotated beginner’s tutorial Python scripts on GitHub, and you can see them here: https://gist.github.com/jaredreser

I strongly recommend ordering an Arduino starters kit. They will send you a number of electronics parts, sensors, and motors. You use them to build you own gadgets and robots. You upload the code from your computer to the Arduino microcontroller and get it to do all sorts of interesting things. The best part is that you can see all of the code, and can rewrite or alter the code if you wish. Check it out here: https://www.arduino.cc/ You might also try out the Google AIY products.

Here is a list of some of my favorite books on AI in order of preference:

Engineering General Intelligence by Ben Goertzel

How Machines Think by Sean Gerrish

Consciousness and Robot Sentience by Pentti Haikonen

The Master Algorithm by Pedro Domingos

Human Compatible by Stuart Russel

Understanding Neural Networks by John Iovine

Automate the Boring Stuff with Python by Al Sweigart

The AGI Revolution by Ben Goertzel

Artificial Intelligence by Melanie Mitchell

On Intelligence by Jeff Hawkins

Superintelligence by Nick Bostrom

How to Create a Mind by Ray Kurzweil

Deep Learning by Yoshua Bengio

Introduction to AI by Philip Jackson

The Age of Spiritual Machines by Ray Kurzweil

In Our Own Image by George Zarkadakis

Life 3.0 by Max Tegmark

The Sentient Machine by Amir Hussain

Beyond Artificial Intelligence by Alain Cardon

Bayes’ Rule with Python by James V Stone

Information Theory by James V Stone

Rebooting AI by Marcus and Davis

The Second Machine Age Brynjolfsson and McAfee

You might also want to check out my blog post on building your own computer for AI tinkering: How To Build Your Own AI-Ready Computer