TLDR: Sharing the entire 12 week mentorship program resources in Machine Learning + Computer Vision
Note ( more like a disclaimer) : This post is super raw, in the sense that I have directly copy pasted email content and our conversations. I will be posting the structured ones soon:)
Check out my post on the Learn It Girl mentorship program, as well as my experience for some background info. Here
Week 1:
- Getting to know each other
- Hangouts meeting
- Introduction to git ( Shared the basic text file of git commands that Ravi Swaroop Rayavarupu- my senior at RoboManipal had shared with me)
## git config --global user.name "usernamegoeshere" ##
## git config --global user.email "emailIDgoeshere" ##
## any files added to .gitignore file are ignored by git ##
1) git init // initializing a repo
2) git status // gives the status of the index
3) git add <file> // adds the file to index
4) git rm // remove files from the working tree and index
5) git rm --cached // remove files only from index
6) git commit -m "<message>" // commit a file
7) git log // show commit logs,use --all --decorate --oneline --graph
8) git diff // shows the diff b/w index and working treene
9) git diff --staged // shows the diff b/w index and most recent commit
10) git checkout -- <file> // replace the file in the working tree with index file
11) git reset HEAD <file> // restore file from recent commit to the index
12) git checkout <hash> -- <file> // restore file from a previous commit
13) git branch <branch_name> // create a new branch
14) git checkout <branch_name> // head points to the branch
15) git merge <branch_name> // to merge branch into master
16) git branch --merged // shows the branches that are already merged
17) git branch -d <branch_name> // deletes a merged branch, gives an error if not merged(use -D)
18) git stash
19) git clone
20) git remote
21) git fetch origin
22) git merge origin/master
22) git pull // combines both fetch and merge
23) git push origin master
- Suggested few projects : 1) Autonomous wheelchair/ walking stick for the blind ( Involves several modules and will involve object detection as well as IOT/ Data science for the integration of various such devices on the cloud and better management)
2) Drowsy driver Detection ( this one already exists, but it will take time to get to that point and we can improvise later )
3) Human Activity Recognition ( a great improvisation would be to customise it for gyms)
4) Sentiment Analysis
Week 2-4:
( I will be sharing content straight out of our PMs and emails. I've omitted all the code fix suggestions and resources, as well as the doubt-specific resources )
Github and Workflow:
- I have created an issue for Week2. Next week onward you can use the same template to create issue.
1) Create a branch - ML-Basics and upload every code.
2) If you get time this week or the next, create a github.io page from our repository. There are ample resources out there on how to create Github pages, and it wouldn't take you more than 10-15 minutes. This page will act as a platform where the both of us can log our experience each week as well as create a couple of tutorials / data visualisations.
3) From now on, create an issue for any code bug/ error, and assign it to me if you need help.
4) Push any code implementation/ Jupyter notebook to the repo. Do not leave any commit messages blank .
Your commits will always be of the format-( gitbash / ubuntu terminal command)
' commit -m "Added code for linear regression #1"
where #1 is the issue being refereed to.
5) Avoid using the GUI, and switch to Gitbash or Ubuntu
Kaggle and Intro to ML:
Since we are focusing on a practical learning of ML and DL here, it would be a great point for me to introduce you to Kaggle. I found an interesting article that'll do my part of pitching Kaggle as a great platform for learning and practice.
Moving on, this Kaggle tutorial below is one of the most practical and concise ones out there. Do each of the code snippets by yourself before looking/ copy-pasting theirs.
It is pretty lengthy, no worries if you can't complete the whole thing this week. Again, emphasis on understanding not rushing through. Trust me on this, completing this will give you a HUGE head start on ML.
Code Implementations of ML by Andrew NG:
You could follow either one ( or a mix) of the two approaches:
1) Code the equations and algorithms from scratch by yourself. eg: functions in python to evaluate the sigmoid function, to perform logistic regression etc
2) Import libraries and use the in built functions to obtain the desired results.
Both of them are fine as long as you understand and can use it for further larger projects.
References:
I have attached a few books in this email that you might need over the next 11 weeks, and even later ofc
- Hands on Machine learning with scikit learn, Keras and Tensorflow
- Deep Learning, Ian Goodfellow - Learning openCV
Week 2,3,4 was about working on Python and ML basics with books, assignments and the bible- Andrew NG ML course.
For week 2, 3 and other codes refer the ML-Basics branch of this repository( some codes are also on master).
Project outline design efforts :
Week 5: One of the cool projects to implement at this level is the Churn modelling project. In simple terms churn modelling is a tool that helps you predict if a customer will leave your service or product.
There are a couple of data sets you could use out there such as Telecom's dataset , employee churn : HR_comma_sep.csv, Bank : churn_modelling.csv, Talco-Customer-Churn etc. You'll find these data sets on Kaggle or IBM. Feel free to explore and choose any data set you prefer. I'll refer to the banking data set for convenience.
A predictive churn model is a straightforward classification tool. You could implement Logistic regression, decision tree and random forests to compare their efficiencies. Most data sets you obtain online will be clean, but otherwise you'll haven't cleanse the data and prepare it for feature selection. ( Note that you'll have to convert non numerical values such as strings to numbers ). Then the next step would be to select what features you want in your model in order to feed it into your algorithm. You'll now have to find the right models and then evaluate the prediction accuracy rates. [ Also try 1-2 different training -test split ratios such as 80 training/ 20 test and see if it affects the results).
Use graphs and tables at each stage to visualise the process. Also plot the K neighbour classification graphs for various values of K etc. Week 6:
I know you did say you didn't like Siraj Raval , but brave through this one. The github code for his image classifier is very well commented and with notes.
Do not start with creating your image classifier just yet. Work on OpenCV this week along with reading some papers so you know which methods give the best accuracy as well as do not eat up processor time. Also work on improvising your bank data set model. Look for the Kaggle winners for this problem statements. They would have insane accuracy.
Also read up on image pre processing. The image classification data set obtained will be a cleaned one. But it's always good to know the basics of preparing a data set.
This would be a great time for you to start working on Google Colab. It gives you free GPU access ( Please remember to shut it down before you close your browser though). Also Colab is a useful tool in this field.
This one is if you don't plan to use openCV https://medium.com/@rinu.gour123/image-processing-with-scipy-and-numpy-in-python-892051561a9e
https://github.com/akshatha-k/open_cv-codes/tree/master/OpenCV_day2 Have a look at workshop 'day1 and day2' notebooks. Not sure how much it'll help but you at least have a structure to follow
I understand you'll be away this week. That's absolutely fine. I'll send in some videos you could watch as well as reading material if you can manage to find time.
https://youtu.be/uNOKWoDtbSk : This is another MUST watch to help you better understand the RGB colour channels and why they are RGB,not RYB as you might expect. Here starts your journey with the conjunction of the biological sciences and computing.
Week 6-7:
- Read up on Support Vector Machines. It comes in real handy when working on image classification (https://medium.com/machine-learning-101/chapter-2-svm-support-vector-machine-theory-f0812effc72)
You can either watch the Stanford CS231n lectures
https://www.youtube.com/playlist?list=PL3FW7Lu3i5JvHM8ljYj-zLfQRF3EO8sYv or Siraj Raval https://youtu.be/g8D5YL6cOSE
Here's a tutorial for the Andrew NG assignement in Support vector machines
- Read up on existing projects in image classification. Please make a note of all that you haven't learnt.
This is the basic approach that the project ( or any DL project for that matter ) will follow. https://towardsdatascience.com/image-classifier-complete-workflow-a9e0003c80ba
We can experiment with images and data sets the next two weeks, so we have a basic accuracy Image classifier ready to further work on.
This is one of the basic detailed method:
Please make a list as a Github issue of topics we still need to work on.
This week or the next do read Research papers on DL and image classification. There's way too much detail in few of them. Just skip all that. As long the summary is captured.
These are papers I had read and found really helpful:
1) AlexNet : This was like the breakthrough in Deep Learning. The journey of Convolutional Neural Networks begins here. It was a major leap in the Image Net challenge.
2) GoogleNet
3) ZFNet
The Third paper is not really necessary.
I haven't read the other two or three recent 2016-2018 advances that led the image classification to be more accurate than humans too !!! They're pretty advanced and require deep knowledge on adversial nets.
The whole idea of reading these Image classification guides is to gauge what else is required to be learnt.
Week 8-11: These weeks involved a ton of whatsapp threads and debugging. Most of the resources shared were also based on doubts, github issues and other errors Nevertheless, here are few resources shared during these weeks.
She faced trouble with live video processing, so we went ahead with using pre-existing datasets
How to build your custom object detector: https://medium.com/@manivannan_data/how-to-train-yolov3-to-detect-custom-objects-ccbcafeb13d2
Week 12: FINAL PROJECT GUIDELINES: You can start to prepare the following 3 things:
Pitch your idea! Present your final product in a few sentences - we want to know what is it used for and who will be the users. What languages, techniques, tools did you use to implement your product?
Demo Time We understand that everybody is in a different stage of development. We do not focus primarily if your product is finished or not. It is live? Please be prepared to include a link to the AppStore or website. Not quite there yet? Do not worry if you did not get to the very end - give us an idea of the state of development - be prepared to add a link or upload a file of a powerpoint, keynote, presi, pdf, blogpost, screencast etc. to showcase your product. Be creative!
Recap and Future We want to know about your journey. Be prepared to give a short recap of the 3 greatest challenges you had during the 12 weeks and what helped you overcome them. Also we would like to know how you are planning to continue your journey into IT. So please prepare a mission statement for the time after Learn IT Girl!
PPT guidelines:
Firstly add a link to your github account that'll contain the code. Then make a PPT with the following format: 1: Title and your name 2: Problem Statement 3: Problem scope and Applications ( what's currently being done wrongly and what we are solving, future applications it poses 4: a Flowchart using draw.io of the methodology and the techstack of implementation 5: 3 challenges faced ( please write installation there lol ) 6: Future scope and modifications Her final Presentation:
Commenti