Santiago Profile picture
30 Mar, 8 tweets, 2 min read
We always focus on Python 🐍, math, and machine learning theory when starting out, but that's not all of it.

Fundamentals of Computer Science help tremendously.

Here are 6 topics that will benefit you as a machine learning practitioner: πŸ§΅πŸ‘‡
1. Algorithm analysis

You should be able to compare the efficiency of different algorithms without having to implement them.

↓ 2/8
2. Basic data structures

Understanding the different tradeoffs and performance implications of basic data structures is fundamental.

↓ 3/8
3. Sorting and searching

Sorting is the basic building block of many different algorithms, while searching is fundamental to any program.

↓ 4/8
4. Graphs and methods to traverse them.

Almost every interesting problem out there requires some sort of graph.

Ok, maybe I'm exaggerating a little. But just a little!

↓ 5/8
5. Combinatorial search and heuristic methods

As soon as the search space is large enough, you won't be able to cover it all. Understanding how to be smart about where you look is very important.

↓ 6/8
6. Approximation algorithms

Not every problem has an efficient solution, and understanding how to recognize them is invaluable.

↓ 7/8
If you are looking for a book covering these, look no further:

πŸ’° amzn.to/3rDngoi

This one has it all.

8/8

β€’ β€’ β€’

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

Keep Current with Santiago

Santiago 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 @svpino

1 Apr
One way to reduce overfitting is by automatically augmenting your data.

Think about this: if you had an infinite number of samples, you would never overfit because your model would see every possibility out there.

↓ 1/7 Image
Data augmentation is a way to generate more data using an existing dataset.

For example, by applying small transformations to existing images, you can generate many useful variations.

↓ 2/7
Here are some examples of possible variations that you could generate for an image:

▫️ Zoomed-in
▫️ Randomly cropped
▫️ Horizontally shifted
▫️ Horizontally flipped
▫️ Slightly rotated
▫️ More illuminated

↓ 3/7
Read 7 tweets
31 Mar
Coming soon, in Python 🐍 3.10: "Pattern Matching."

Looks sick! ImageImage
No, this is not a switch statement. Pattern matching is very different.

With patterns, you get a small language to describe the structure of the values you want to match. Look at one of the examples to see how you can match an element of a tuple.
You can use patterns to match even more complex structures. You can nest them. You can have redundancy checking.

Pattern matching is a feature you can find in functional languages.

It's excellent that Python decided to add it! I'm really excited about it.
Read 4 tweets
29 Mar
I've talked about Transfer Learning before.

In summary: you can reuse the knowledge from a different model to kick-start your new model.

Practically, this is how I make transfer learning happen: πŸ§΅πŸ‘‡
First, I pick the model architecture I'll be transferring from.

There are hundreds of pre-trained models for TensorFlow (Check TensorFlow Hub.)

I spend most of my time working with images, and my go-to is usually ResNet with ImageNet weights.

↓ 2/10
I instantiate the model without its top layer and load the pre-trained weights into it.

To make sure I don't destroy those weights during training, I freeze those weights. Frozen weights won't change.

↓ 3/10
Read 10 tweets
27 Mar
$5 for the next 2 hours. Back to $15 after that.
$0 if you don't like it.

If you don't want it but still want to support my work, like/retweet this message. Thanks!

gumroad.com/l/kBjbC/rfgnxf4
Thanks for the support, everyone!

This worked.

1 more hour to go.
10 more copies and price goes back.
Read 8 tweets
27 Mar
The perfect way to get into machine learning is to find an algorithm that improves your work right away without much drama.

For software developers, KNN (K-Nearest Neighbors) is a perfect introduction:

▫️ Surprisingly familiar
▫️ Powerful enough

πŸ§΅πŸ‘‡
I also like Decision Trees for software developers, but if you did that already, look into KNN.

Here is the summary you need to know: KNN is like a fancy search algorithm that will help you do cool things.

2/6
Here are some of the things that you could solve using KNN:

1. If you have a dataset with missing values, you can use KNN to find a good value for them.

2. You can build a simple recommendation system to promote related products in your store using KNN.

3/6
Read 7 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!