Getting started with machine learning can be hard.

We are fortunate to have many & freely available learning resources, but most of them won't help because they skip the fundamentals or start with moonshots.

This is a thread on learning machine learning & structured resources.
1. Get excited first

The first step to learning a hard topic is to get excited.

Machine learning is a demanding field and it will take time to start understanding concepts & connecting things.
If you find it hard to understand what ML really is,

@lmoroney I/O 19 talk will get you excited. He introduces what machine learning really is from a programming perspective.



This talk never gets old to me.
2. Start small

You might be tempted to quickly jumpy into machine learning, but it's good to start small.

This is especially true if you do not have a former programming background.

So if you're new to programming, take time to learn Python, a suitable language for ML.
One of the great and freely available Python courses is Intro to Python Programming on Udacity.

This course will introduce you to nearly most things you will need to know about Python.

udacity.com/course/introdu…

Take a look at the curriculum.
If you are already a programmer, you can take a Python crash course on Kaggle.

It's small and it will help you get started in a little time.

kaggle.com/learn/python
3. Get started with popular data & ML tools

The most common tools that are very useful when working with data are:

◆NumPy for data computation
◆Pandas for data analysis & manipulation
◆Seaborn for data visualization
◆Scikit-Learn for classical machine learning
Here are quick links for resources to learn these tools:

◆A visual intro to NumPy: betterprogramming.pub/numpy-illustra…

◆Intro to Pandas: kaggle.com/learn/pandas

◆Intro to data visualization: kaggle.com/learn/data-vis…

◆Intro to machine learning: kaggle.com/learn/intro-to…
Most of the above courses are Kaggle.

There are advantages to that.

Kaggle is a pool of all kinds of datasets. You will get to apply what you learn to real-world datasets that are in such a pool.

By learning these above tools & skills, you will have a great foundation.
4. Graduating from Crash Courses to Learning the Fundamentals of Machine Learning & Deep Learning

The tools we talked about above are pretty useful and you will likely use them day today. But that was only the basics.
If there is a course that is very rich in the foundations of machine learning, it is Machine Learning by @AndrewYNg, available on @coursera.

The course will teach you the foundations of most ML algorithms/techniques/applications.

Here are examples of what you learn:
Machine Learning Stanford is free on Coursera and it is also available on Youtube.

It has been taken by more than 4 million people, including me.

Thanks to Andrew for teaching the world!

coursera.org/learn/machine-…
A Stanford Machine Learning course is more about classical learning algorithms/techniques.

To learn more about the foundations of neural networks, you can take Deep Learning specialization.

Same platform, same instructor, same best-in-class curriculum.
Here are what you learn:

◆Neural Networks and Deep Learning
◆Hyperparameter Tuning, Regularization, and Optimization
◆Structuring Machine Learning Projects
◆Convolutional Neural Networks
◆Sequence Models

coursera.org/specialization…

The full course is also available on Youtube
5. Going from Fundamentals to Building Actual ML Models

At this point following this path, you will have got knowledge about pretty much all ML fundamentals.

But you also want to learn how to build ML models with real-world datasets.
On learning how to build real-world machine learning and deep learning models, you will need to learn either TensorFlow or Pytorch.

Both TensorFlow & Pytorch are great tools, but I recommend TensorFlow.

The learning curve is very small and there are enough learning resources.
Speaking of learning resources, one great course I recommend is TensorFlow Developer Professional Certificate taught by @lmoroney.

The course will introduce you to TensorFlow.

TensorFlow is a leading deep learning framework in the AI industry.

Below are what you will learn:
The above @DeepLearningAI_ TensorFlow course is available on Coursera.

coursera.org/professional-c…
A bonus point after taking the TensorFlow Developer Professional course,

you can take the TensorFlow certificate exam.

I wrote about the exam here:

jeande.medium.com/how-i-got-tens…
With the above course, you can already do a lot of things with TensorFlow.

But there are more advanced scenarios that need far more techniques(like object detection and style transfer).
This is where TensorFlow: Advanced Techniques Specialization comes into the picture.

Below are what you will learn:

◆Custom Models, Layers, and Loss Functions
◆Custom and Distributed Training
◆Advanced Computer Vision
◆Generative Deep Learning

coursera.org/specialization…
Those two TensorFlow courses are all taught by Laurence, someone that you will never get bored learning from.

Up to this point, you have already learned about building both simple and sophisticated learning algorithms.

But how do you make them useful?
6. Shipping Machine Learning Models

You will need to learn how to build effective learning algorithms and making them useful to the end-users.
Two of the courses that I recommend in learning how to ship machine learning models are

◆TensorFlow: Data and Deployment Specialization and

◆Machine Learning Engineering for Production (MLOps) Specialization.

Here are what you will learn in those 2 courses.
Like we said earlier, any course listed on this learning path is quite demanding and the time it will take will depend on your learning capability.

Regardless of the time it will take you, make sure you enjoy the journey.
Putting all Courses Together

To summarize a machine learning path:

◆Get excited first
◆Start small. Get the basics of Python.
◆Learn basics of machine learning tools: NumPy, Pandas, Seaborn, Scikit-Learn.
◆Get fundamentals: Stanford Machine Learning and Deep Learning.

◆Get the basics of TensorFlow: TensorFlow Developer Professional course.

◆Bonus: get TensorFlow certified.
◆Learn to implement advanced techniques in TensorFlow with Advanced Techniques Specialization.

◆Learn to ship models: Data and Deployment Specialization and MLOps Specialization.

........... End......
Thank you for reading.

If you have found this learning path helpful, share it with anyone who you think would like to learn ML.

I also appreciate retweets. It is certainly the best way to help the post reach many people.

Follow @Jeande_d for more machine learning ideas.

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Jean de Nyandwi

Jean de Nyandwi Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @Jeande_d

11 Sep
Popular deep learning architectures:

◆ Densely connected neural networks
◆ Convolutional neural networks
◆ Recurrent neural networks
◆ Transformers

Let's talk about these architectures and their suites of datasets in-depth 🧵
Machine learning is an experimentation science. An algorithm that was invented to process images can turn out to work well on texts too.

The next tweets are about the main neural network architectures and their suites of datasets.
1. Densely connected neural networks

Densely connected networks are made of stacks of layers that go from the input to the output.

Generally, networks are organized into layers. Each carry takes input data, processes it, and gives the output to the next layer.
Read 34 tweets
10 Sep
Neural networks are hard to train. The more they go deeper, the more they are likely to suffer from unstable gradients.

Gradients can either explode or vanish, and either of those can cause the network to give poor results.

A short thread on the neuralnets training issues
The vanishing gradients problem results in the network taking too long to train(learning will be very slow), and the exploding gradients cause the gradients to be very large.
Although those problems are nearly inevitable, the choice of activation function can reduce their effects.

Using ReLU activation in the first layers can help avoid vanishing gradients.

Careful weight initialization can also help, but ReLU is by far the good fix.
Read 4 tweets
6 Sep
Machine learning is the science of teaching the computer to do certain tasks, where instead of hardcoding it, we give it the data that contains what we want to achieve, and its job is to learn from such data to find the patterns that map what we want to achieve and provided data.
These patterns or (learned) rules can be used to make predictions on unseen data.
A machine learning model is nothing other than a mathematical function whose coefficient and intercept hold the best (or learned) values representing the provided data & what we want to achieve.

In ML terms, coefficients are weights, intercepts are biases.
Read 20 tweets
31 Aug
Everyone talks about big data but getting good data in a big amount is not always easy.

You can do much with small data as long as it is good.

A thread 🧵: Getting the most results with small data
The two notable techniques that can give huge results when working with small data are

◆ Data augmentation
◆ Transfer learning

Let's talk about them. We will use them in the context of images kind datasets but they can also be applied to other datasets such as texts.
1. Data augmentation

Data augmentation is the art of creating artificial (but realistic) data.

Not only does data augmentation expand the dataset,

but it also introduces some diversity in the training set (the reason why data augmentation is a cure for overfitting)
Read 12 tweets
5 Aug
For many problems, a batch size of 32 works so well.

A batch size mostly affects training time. The larger the batch size, the faster the training.

The smaller, the slower training.
The only issue with the large batch size is that it requires many steps per epoch to reach optimal performance.

And you need to have a large dataset in order to have enough steps per epoch.

With that said, 32 is a good default value to try at first.
Here are 2 great papers that you can use to learn more:

Practical Recommendations for Gradient-Based Training of Deep Architectures: arxiv.org/pdf/1206.5533.…
Read 4 tweets
4 Aug
One of the techniques that have accelerated machine learning on insufficient real-world datasets is data augmentation.

Data augmentation is the art of creating artificial data.

For example, you can take an image, flip it, change color, and now you have a new image. Image
Yes, data augmentation is the art of creating artificial data to expand a given small dataset.

It has shown that it works so well(most of the time), and it remarkably handles overfitting.
Nearly most types of data can be augmented, but I have noticed that it works well in unstructured data(images, video, sound).

So, this thread will focus more on images, sounds, and videos.

For more about structured vs unstructured data 👇

Read 18 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!

:(