Getting started in AI
Tags: beginners, career, programming, machinelearning
Published: 2021-08-06 06:52:04

Hi guys,🖐

Today I wanted to give you some tips and answer some of your questions so you can get started in the world of AI !

By the end of this article, you will no longer have any fears about the difficulty of the field, one person will have become your god, you will have dozens of hours of videos to watch, and you will have plenty of project ideas for all levels !

I hope you like the article, let's get started !

### I/ Is it necessary to have significant knowledge in maths ?

It is true that at first sight, one can say to oneself that one needs advanced knowledge in maths to create a brain... In fact, not really ! It all depends on the job you want to do. Obviously, if you want to become a researcher, you will need to have a good background in mathematics. But if not, you will soon realize that high school or basic undergraduate knowledge is enough !

![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8bdda3nrd7gssste1lta.gif)

Among this knowledge, I think you need to be comfortable with linear algebra, including: vectors, matrices, eigenvalues and eigenvectors, functions, derivatives, and vector and matrix calculus. Moreover, some basic notions of probability can be interesting: conditional probabilities, dependant and non-dependent elements, variance, etc...

If you don't have all this knowledge, don't worry, there are plenty of mini-videos or courses to explain everything ! I would recommend three of them : 
- [Khan Academy](https://en.khanacademy.org/)
- [3Blue1Brown on linear algebra](https://www.youtube.com/playlist?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab)
- [MIT courses on linear algebra](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/video-lectures/) (there is also one I'm doing [on probability](https://ocw.mit.edu/resources/res-6-012-introduction-to-probability-spring-2018/)).

### II/ Where to learn AI ?

That's probably why you're here: where to learn AI. In this section, we'll talk about theoretical AI, but right after, I'll give you the best tools to code them ! 

To learn AI, we notice three different methods :

First of all, **MOOCs (Massive Open Online Course)**. These are online courses, which last several weeks, but where everyone can start them when he wants, but especially go at his own pace. There are videos, with teachers and speakers, additional documents, links to useful information, but also exercises and tests. Some of these MOOCs offer certificates that can be useful in a CV / on Linkedin. 
Here are some MOOCs that may be interesting to get started in AI :
- [Machine Learning, by Andrew Ng](https://www.coursera.org/learn/machine-learning)
- [Deep Learning, by Andrew Ng](https://www.coursera.org/specializations/deep-learning)
- [Deep Learning Series 2020, by DeepMind](https://deepmind.com/learning-resources/deep-learning-lecture-series-2020)
- [Reinforcement Learning, by Georgia Tech](https://www.udacity.com/course/reinforcement-learning--ud600)
- [Reinforcement Learning, by the great David Silver (DeepMind)](https://deepmind.com/learning-resources/-introduction-reinforcement-learning-david-silver)

![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ikufovvn1rvp2lfheli8.png)

As you will see, one person often comes up in MOOCs: Andrew Ng, he is in some way the god of MOOCs, we all already listened to him when we started AI ! There is no more reliable source. 
As you have noticed some MOOCs are expensive, you can claim financial aid, which is often granted.

Then there are the **books**, there are plenty of them that sometimes contain exercises with answers. Again, this allows you to go at your own pace, but you can also study a particular chapter or find information easily. Here are some books to read: (a little expensive, but the content is worth it)
- Deep Learning, Aaron Courville, Ian Goodfellow and Yoshua Bengio
- Hands on Machine Learning with Scikit-Learn and Tensorflow, Aurélien Géron
- Pattern Recognition and Machine Learning, Christopher Bishop
- Reinforcement Learning: An Introduction, Andrew Barto, Richard Sutton

![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/78ti6d7uk9d5vtd2fsz7.png)

Finally, the **research papers**. There are plenty of them, but this is not what I would recommend for a beginner. Indeed, it is easier to follow a course where all the notions are covered than to go and find the different points by yourself (at the risk of forgetting them) and study them in depth. 
However, when you feel capable, and you see that you have a good level, you should start to detach yourself from the MOOCs to go towards papers specific to your project: it remains relatively well explained and will give you tracks to carry out your idea ! 
You have different places to read them: arxiv (the most famous), researchgate, paperswithcode (code is provided with it), but also the blogs of the big ones in the field: deepmind, openai, facebook research, etc...
Here are some interesting ones :
- [Mastering the game of Go with deep neural networks and tree search, by David Silver & al](https://www.researchgate.net/publication/292074166_Mastering_the_game_of_Go_with_deep_neural_networks_and_tree_search)
- [Attention is all you need, by Ashish Vaswani & al](https://arxiv.org/abs/1706.03762)
- [Faster R-CNN: towards real-time object detection with region proposal networks, by Shaoqing Ren & al](https://arxiv.org/abs/1506.01497)
- [Adam: A Method for Stochastic Optimization, by Diederik Kingma & al](https://arxiv.org/abs/1412.6980)
- [Language Models are few-show learners, by Tom Brown & al](https://arxiv.org/abs/2005.14165)
- you will find dozens of others very interesting, but I must continue my article :)

### III/ How to code AIs ?

I won't teach you how to code AIs here, but I will give you some tips to get started:
- First of all, I advise you to code in Python, it is the language where the most libraries are developed. A new language is emerging : Julia, it's really nice if you want to implement IAs from scratch, but otherwise some libraries are missing !
![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/geqq29ofuiige8zwqhdm.png)

- Then you have to choose a framework : to start it is interesting to have one, but when your project will become more complex, you will have to choose several. Your choice must be made between Tensorflow and PyTorch. Eventually you can use Scikit Learn.

![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9ifzficufoqim3dj0lkc.png)

- Read the documentation of your framework carefully, especially the important functions.
- Look at implementations on github, it is even recommended by big names (Andrew Ng). Indeed, this will not only allow you to discover your language, but also to understand in another way the paper / course you are working on.
- Use datasets and RL environments already made. As far as datasets are concerned, you will find plenty of them on the internet in general, which correspond to your project (you may have to rearrange the data, but not much more). Think to look on [Kaggle](), there is a "contest" section but also a "dataset" section gathering thousands of datasets ! On the RL side, you will need environments, use OpenAI-gym, they are very good and easy to use. For autonomous cars, I advise to use Carla. It is quite complete, and many tools are available (Lidar, camera, etc...).

![](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zs369svsyeyi9txpd16b.png)

### IV/ Interesting projects to work on

At some point, you will have to get out of the "tutorial spiral", and start creating your own projects: you will become more and more confident in your skills, you will build a portfolio, etc...
Here are some ideas :

**Beginner :**
- prediction of the price of a house
- image classification (cat / dog)
- chatbot
- classification of tweets according to emotion
- spam checker

**Intermediate :**
- translation
- personal assistant
- driving a car (by reinforcement learning)
- Moon Lander (by reinforcement learning)
- detection of emotions on a face

**Advanced :**
- summarize a text
- chess player
- Robotics (on OpenAI gym)
- text generation
- math solver (addition, subtraction, modulo, etc...)

Finally, you can try the [Kaggle contests](https://www.kaggle.com/), many contests are available with lots of dataset. The goal is of course to make the best AI possible, using an AI model (no need to invent one) and to "tune" it !

### V/ Conclusion

The field of AI is therefore quite accessible to everyone. You just need to have a basic knowledge of mathematics, and to start studying courses and books. Coding is also the best way to know your skills, and to reassure yourself about the apparent complexity of a project ! 

I hope I've motivated you to get into AI !

Adrien