Artificial intelligence is one of the most exciting and attractive fields to get into. The global machine learning (ML) market is estimated to grow from $1.4 billion in 2017 to $8.8 billion by 2022. AI is projected to create 2.3 million related jobs by 2020, according to Gartner. The average salary of a machine learning engineer is between $125,000 and $175,000. At the top ten highest paying companies for AI talent, the average salary easily surpasses $200,000. Clearly, there are a lot of reasons to join this booming industry.
In this article, I’m going to break down the current state of AI and how to go about getting the skills required and break down the hype a bit
The State of AI
AI and ML are really unique fields for software graduates and junior developers because the field has really only taken off over the last 5 years. This provides a real problem/opportunity for both new developers and employers.
Graduates: No solid information of what the field is like, few modules in college, hard to get relevant experience.
Employers: Find it very difficult to find people with relevant experience.
This is a tough dilemma to get past as a college student, but it also provides a great opportunity.
There is currently a huge deficit in the number of qualified machine learning (ML) developers.
Companies across the board are hiring for these roles and can’t fill them. If you can show that you have the relevant expertise, you will be a highly desirable candidate that will stand out not just from the pool of graduates, but experienced hires as well.
4 Ways to Get Experience before Getting the Job
You 100% need to have ML projects in your GitHub. This is a very quick way to eliminate people from the recruitment process and will be the first thing recruiters look at after your CV.
Now it might be a bit overwhelming trying to come up with a project when you are still learning about ML, that’s OK. It doesn’t have to be big or flashy or innovative, it just needs to display your understanding of the topic and give people an indication that you are able to work/research independently with good coding standards.
A few things to focus on when you are building a GitHub project:
- The project shouldn’t take longer than a month to complete
- Make sure your code is clean, modular and commented
- Provide a Read Me and other documentation for your code such as technology used, referenced tutorials, dependencies etc
- If possible, provide unit tests for key parts of the code base
The next thing is picking what project to work on. You want it to be simple enough that you can finish it within a month and relevant enough that you learn useful skills in the process.
Here are some examples:
- Image classifier using a CNN. Just have it distinguish between 2 types of images (i.e dog/cat).
- Standard feed forward neural network to classify data. There are loads of great data-sets on Kaggle.com. Take one such as the Iris data set and classify the types of iris a flower is based on the data given.
- Sentiment analysis for movie reviews. Another popular first project is using a neural network to classify the sentiment of movie review (Good or Bad) You can use the IMDB data-set, also found on kaggle.
Hackathons are great for several reasons. It forces you to go out and build something, you get to meet more experienced people and you can put it on your growing CV/Portfolio. Try to find AI specific hackathons, but also go to general software hackathons and try to put an AI spin on your project. Checkout meetup.com and see if there are any meetup groups in your area focusing on AI or software development in general. These groups will usually have some sort of hackathon at least once a year.
Similar to hackathons, coding challenges force you to build a practical application of what you have learned which is worth its weight in gold when you are applying for your ML job. As an added bonus, these competitions are generally pretty fun and the added sense of competition can be a really good motivator. Take a look at places such as Kaggle, CodinGame and Halite.io
Open Source Projects
This is the closest thing to real world experience that you can get, short of actually getting a job as an ML developer. Open source projects gives you a real insight into production level code and will teach you valuable skills such as debugging, versioning control, developing with other people and of course, lots of ML (Depending on the project).
Understanding the theory
OK, so the main thing is getting some projects and experience under your belt, but there is more to it than just following some tutorials and sticking it on GitHub (try not to do that 😀 ) You need to understand what you are building. As many college students know, there is a big difference between studying something and understanding it.
There are a lot of great resources that clearly go through the important theory of ML and deep learning. Another important thing point out, don’t just focus on deep learning. I know it is the “sexier” side of AI, but it is only one side. Get familiar with more traditional forms of ML such as Regression Models, Support Vector Machines and all the major concepts of Probability and Statistics. These will always be valuable no matter what type of AI you are building.
Here are some the better resources that I have found .
- Stanford Machine Learning is a free course on coursera and covers pretty much everything you need to know for ML ranging from regression models to deep learning
- DeepLearning.ai by Andrew Ng. Like the previous course, Ng gives a very comprehensive look into AI, however this course is specialised to deep learning as opposed to ML in general.
- Grokking Deep Learning by Andrew Trask is possibly the best book on deep learning that I have found. The book goes through building neural networks using no libraries except numpy. It’s more complex and costs money, but is highly valuable if you have the time to properly go through it.
- Siraj Raval’s youtube channel is a great place to get a high level overview of almost all relevant ML topics and is quite entertaining to watch as well.
This is a good way for employers to pick out the wheat from the chaff. ML is a MASSIVE field. It is impossible for one person to know everything. That is why people specialise and become experts. If you can not only show that you have a solid understanding of ML/Deep Learning in general AND you have specialised in one field you will become even more valuable to potential employers. But be careful not to put yourself into a box, you don’t have to decide your entire career path now, instead try and find an area that really excites you and learn more about it, maybe do a few projects on it if you can. Here are some examples of specialisations.
- Computer vision: CNN’s, segmentation, labeling, descriptions, object detection
- Recurrent Networks: Time series data such as the stock market and a video, LSTM cells
- Reinforcement Learning: teaching an agent to learn skills such as playing a video game or driving
- Natural Language Processing: Chat bots, sentiment analysis, content generation, content summarizing
- Generative Adversarial Networks: Learning to generate content such as images, 3D models, learning policies, audio
- Meta Learning: Learning to learn
- One Shot Learning: learning with very little data
- Neural Network Visualization and Debugging: Huge area of research, neural networks are still a black box and it is difficult for us to visualize them and understand why they don’t work when broken.
Time to Take Action
Right now is the best time to be in the AI industry. Much like the advent of the internet, AI will effect all businesses no matter the domain, making it one of the most sought after tools for any company.
Currently we are in still in the infancy of what AI is capable of. Meaning that the industry is in a huge state of innovation, discovery and uncertainty. There are very few experts and no one has all the answers. So put the time in, learn as much as you can and you will soon see how quickly you can ramp up your skills. Start taking actions today.
Explore Jobs in AI here.