DEV Community

Cover image for Everything You Need To Become A Machine Learner
Bryan C Guner
Bryan C Guner

Posted on

Everything You Need To Become A Machine Learner

This list of resources is specifically targeted at Web Developers and Data Scientists.… so do with it what you will…

This list borrows heavily from multiple lists created by : sindresorhus

Machine learning is a subfield of artificial intelligence, which is broadly defined as the capability of a machine to imitate intelligent human behavior. Artificial intelligence systems are used to perform complex tasks in a way that is similar to how humans solve problems.

The goal of AI is to create computer models that exhibit "intelligent behaviors" like humans, according to Boris Katz, a principal research scientist and head of the InfoLab Group at CSAIL. This means machines that can recognize a visual scene, understand a text written in natural language, or perform an action in the physical world.

Machine learning is one way to use AI. It was defined in the 1950s by AI pioneer Arthur Samuel as "the field of study that gives computers the ability to learn without explicitly being programmed."

image


Natural language processing

Natural language processing is a field of machine learning in which machines learn to understand natural language as spoken and written by humans, instead of the data and numbers normally used to program computers. This allows machines to recognize language, understand it, and respond to it, as well as create new text and translate between languages. Natural language processing enables familiar technology like chatbots and digital assistants like Siri or Alexa.

Neural networks

Neural networks are a commonly used, specific class of machine learning algorithms. Artificial neural networks are modeled on the human brain, in which thousands or millions of processing nodes are interconnected and organized into layers.

In an artificial neural network, cells, or nodes, are connected, with each cell processing inputs and producing an output that is sent to other neurons. Labeled data moves through the nodes, or cells, with each cell performing a different function. In a neural network trained to identify whether a picture contains a cat or not, the different nodes would assess the information and arrive at an output that indicates whether a picture features a cat.


Be familiar with howMachine Learning is applied at other companies


Be able to frame anMachine Learning problem


Be familiar with data ethics


Be able to import data from multiple sources


Be able to setup data annotation efficiently


Be able to manipulate data with Numpy


Be able to manipulate data with Pandas


Be able to manipulate data in spreadsheets


Be able to manipulate data in databases


Be able to use Linux


Be able to perform feature selection and engineering


Be able to experiment in a notebook


Be able to visualize data


Be able to do literature review using research papers


Be able to model problems mathematically


Be able to setup project structure


Be able to version control code


Be able to version control data


Be able to use experiment management tools


Be able to setup model validation


Be familiar with inner working of models

Bays theorem is super interesting and applicable ==> - [📰] Naive Bayes classification


Be able to improve models


Be familiar with fundamental Machine Learning concepts

CNN


Implement models in scikit-learn


Be able to implement models in Tensorflow and Keras


Be able to implement models in PyTorch


Be able to implement models using cloud services


Be able to apply unsupervised learning algorithms


Be able to implement NLP models


Be familiar with multi-modal machine learning


Be familiar with Recommendation Systems


Be able to implement computer vision models


Be able to model graphs and network data


Be able to implement models for timeseries and forecasting


Be familiar with basics of Reinforcement Learning


Be able to perform hyperparameter tuning


Be familiar with literature on model interpretability


Be able to optimize models for inference


Be able to write unit tests


Be familiar withMachine Learning System Design


Be able to serveMachine Learning models


Be able to setup batch inference


Be able to build interactive UI for models


Be able to use Docker for containerization


Be able to use Cloud


Be familiar with serverless architecture


Be able to monitorMachine Learning models


Be able to perform load testing


Be able to perform A/B testing


Be proficient in Python


Have a general understanding of other parts of the stack


Be familiar with fundamental Computer Science concepts


Be able to apply proper software engineering process


Be able to efficiently use a text editor


Be able to communicate and collaborate well


Be familiar with the hiring pipeline


Broaden Perspective

Top comments (9)

Collapse
 
nghiadoan20 profile image
NghiaDoan20

Wonderful, but a lot of resource.
Can you publish a learning flow?
This is a good way to use these resources

Collapse
 
costosmaya profile image
Costosmaya

I agree with @nghiadoan20, a lot of resources but at the same time is so overwhelming to chosoe where to start and what path to choose, so it could be helpful to have that and use all of these awesome resources.

Collapse
 
yoshida profile image
Masao Yoshida

Wonderful but not helpful at all!!!
Too many resources, so confusing.

Collapse
 
s_belote_dev profile image
saurabh belote

I don't agree with your opinion

Collapse
 
chris_nelis profile image
Chris Nelis

There are several Web3 clouds I know about. Data security is an obvious concern with such platforms -- you have to give away your information to third parties you cannot trust. The problem can be solved with confidential computing (protecting data-in-use), but it's a relatively new tech and not the easiest to implement.
I don't know many teams going in this direction. If you're interested in Web3 or cloud computing, you should probably check Super Protocol out. The project is still in an early stage of development though, but they recently launched a public testnet with several premade Python solutions (face recognition, speech recognition, and image classification). As far as I know, they are going to allow (and incentivize) uploading your own.
Anyway, here's a Typeform (you can google their website yourself Wink): superprotocol.typeform.com/testnet
They send out invitations a few times a week.

Collapse
 
dharanr profile image
Dharan

A proper roadmap can help
Rather than dumping resources

Collapse
 
calihunlax profile image
Cali Hunlax

But what if I don't want to become a machine that learns things?

Collapse
 
farrukh007 profile image
Farrukh

Excellent and appreciated work...

Collapse
 
s_belote_dev profile image
saurabh belote

Great work :)