Emmanuel1118 / Learn Ml Basics
Projects that are alternatives of or similar to Learn Ml Basics
Learn ML Basics
Machine Learning is a rapidly evolving field which focuses on computer algorithms that improve over experience. The experience can take the forms of training data, trial and error in a simulated environment, and a lot more.
Using the material and the learning plan found here, you can get from no experience in python to a deep mathmatical and practical understanding of key ideas in ML, and more importantly you should be able to know what to do to continue learning independently.
My goal with this repository is to create an easy to follow and well paced program that relies entirely on online resources. I am not seeking to create a classification of all available resources on the topic, as there are many of those, and in order for them to be of any use one must already know the basics of the field (if this is what you seek here is a repo that does exactly that, and I added more in the more resources section).
As of now, this repository contains resources centered mostly around deep learning. I hope to add more as I learn and discover the field. I an in no way qualified for this as I am just a begginer, so this is more of a documentation of my learning proccess. If you have ideas on how to expand it, please let me know.
I hope that the material found here can bring anyone with basic programming knowlage to an intuitive understanding of the main concepts behind deep learning, and the ability to create basic DL classifiers, as well as enough understanding to learn more independently.
Contents
Step by Step Program
This section contains a recommended order in which the material in this repository should be learned. This should only act as a general outline, so I encourage anyone to try more resources about various other topics in the field of ML.
-
Install the listed software. You can start by installing only Python and VSCode, and add Anaconda and CUDA later.
-
Make sure you know the prereqisites. Watch the math videos in order, and learn python before or after that (or in parallel).
-
If you wish to have a bit more background in CS, enroll to CS50AI. This step is completely optional.
-
Watch the first Playlist listed in the theory section (you can also read the book if you want).
-
Install Anaconda and CUDA if you haven't yet, and go through the entire Basic DL in TensorFlow part. As you watch it, use the remaining resources in the theory section.
-
Learn more yourself. I created the more resources section to list resources that might help with that (but I highly recommend finding more resources and doing more projects independently).
Software and IDEs
-
Python is currently the best language for those who are new to machine learning, as it enables to do a lot very simply. I recommend installing python 3.7 as it has the best library support at the date of writing this.
-
VSCode is an open source IDE that can be used with python using the python extension that can be installed from within the software. I find this IDE really simple and useful as it supports both regular python script as well as ipynb notebooks.
-
Anaconda is an open source distribution of python that contains many of the basic ML libraries as well as many other useful ones. It is not necessary at all on a begginer level, but it has a few advantages such as great package management as well as built in jupiter support.
-
CUDA Toolkit is an API for using NVIDIA GPUs. Download version 10.1 if you want to use it with TensorFlow. Alternatively you can run "conda install -c anaconda cudatoolkit" in the Anaconda prompt (it worked for me with TF 1.5). Then run "conda install tensorflow-gpu" to get tensorflow. To check if TensorFlow sees your GPU open python and print(tf.test.is_gpu_available).
Prerequisites
To deeply understand the basic theory it is highly recommended (yet not necessary) to understand multivariable calculus and linear algebra matrix operations. You also need to know basic python and programming.
-
Multivariable Calculus (if you want you can stop at either 25 or 34)
-
Introduction to Python 3 Programming Tutorial (if you are not familiar with python)
Theory
As ML and DL are very differnt paradigms than regular programming approaches, thare are many key concepts that need to be well understood in order to progress effectivly.
-
Neural Networks is a youtube series by 3Blue1Brown covering the basics of deep neural networks in detail. I highly recommend watching it and writing main ideas and equations as you do so.
-
Neural Networks and Deep Learning is a free online book that covers many of the same topics as the 3Blue1Brown series and more, with slight differences in notation and presentation. There is no need to read everything in order to get started with the programming, but if you do, the learning will be easier.
I recommend watching these after you tried creating basic linear deep neural networks:
MOOCs
- CS50AI is a massively open online course held by Harvard. It covers general practical and theoretical ideas in AI, and has quizes to test yourself as well as graded assignments in python. I highly recommend it, it is self-paced and completely free (unless you want the edX certificate, which isn't neccessary at all in my opinion). So create an edX account and enroll if it sounds interesting.
Basic DL in TensorFlow
There are two great DL libraries in python - TensorFlow and PyTorch. From my expirience, TensorFlow is much easier to work with especially in terms of data preperation. It is very high-level, so I encourage you to make sure you understand the basics by creating deep neural nets from scratch.
-
TensorFlow Playground is an interactive tool for getting the intuition behind key ideas in DL, such as activation types, dataset features, and overfitting. Use it in parallel with the lectures and videos to better understand the topics discussed in them.
More Resources
-
Kaggle is a Data science community and a great place to find DataSets and explore projects.
-
Awesome TensorFlow is a classification of many resources on the TensorFlow library
Non Programming Lectures
-
Deep Learning State of the Art (2020) | MIT Deep Learning Series
-
AI Podcast by Lex Fridman (it isn't really related to learning, but it is a great inspiration)