Skip to content

Latest commit

 

History

History
322 lines (179 loc) · 15.6 KB

README.md

File metadata and controls

322 lines (179 loc) · 15.6 KB

100 Days Of ML Code

Day 1 : March 30, 2020 MNIST GAN

Generated Fake handwritten digits using AI

Today's Progress: Today I worked on DCGAN (Deep Convolutional Generative Adversarial Network). Implemented on the MNIST handwritten digits dataset to generate Handwritten digits.

Thoughts: I will try DCGAN on slightly more complex datasets such as Fashion MNIST and CIFAR-10.

Link of Work:

References

Day 2: March 31, 2020 CIFAR-10

Basic Image Classification using AI

Today's Progress: Built a network for CIFAR-10 dataset comprising Convolution, Max Pooling, Batch- Normalization and Dropout layers. Studied about dropout and batch normalization in detail and various ways to avoid overfitting in a network.

Thoughts: Looking forward to tweak the model and obtain a better accuracy and reduce the number of parameters.

Link of Work:

References

Day 3 : April 1, 2020 Transfer Learning with InceptionV3

Today's Progress: Today my goal was to get started with transfer learning and understand the architecture. I chose InceptionV3 begin with. Started building the model by picking weights from Imagenet on Inception as the base model. Added a couple of dense layer with dropouts to complete the model. The model was trained on 'Cats vs Dogs' dataset for 10 epochs with a training accuracy of 98.69%.

Thoughts: I am looking forward to implement the concept of Transfer Learning on a more project with a gain of accuracy. Also I am excited to try out more architectures such as ResNet, VGG and AlexNet.

Link of Work:

References

Day 4 : April 2 , 2020 Mask RCNN

Today's Progress: Today I tried to understand the idea behind Mask Region-based Convolution Neural Network better known as Mask RCNN. While going though the references I also learned the following things

  • Object Localization
  • Instance Segmentation
  • Semantic Segmentation
  • ROI Pooling

References

Day 5 : April 3 , 2020 Mask RCNN on Images

Today's Progress: Today I implemented Mask RCNN on Images. I used Open CV as the platform to work. The model which I took for this task was trained on InceptionV2 on the COCO Dataset.

Thoughts: I am planning to implement Mask-RCNN next on videos. I want to work on the challenges with the video and learn about video processing all together.

Link of Work:

References

Day 6 : April 4 , Mask RCNN on Videos

Today's Progress: Continuing with yesterday's work, I implemented Mask RCNN on video feed. The project was based on the same architecture and dataset as yesterday's. I tweaked the script to work on videos.

Thoughts: Today's implementation was quite computationally expensive. A 120-frame, 4-second video took around 10 minutes to process. The network may not be the fastest but it is quite good in terms of accuracy of detecting and masking objects. So I want to try out more computer vision techniques to do same or a similar job.

Link of Work:

References

Day 7 : April 5 , Object Detection using Deep Learning

Today's Progress: Today I dove deep into the most in-demand application of the deep learning ie. Object Detection. So I started reading about the various existing architectures.

  • Hog Features
  • R-CNN
  • Spatial Pyramid Pooling(SPP-net)
  • Fast R-CNN
  • Faster R-CNN
  • YOLO(You only Look Once)
  • Single Shot Detector(SSD)

I discovered the working of these sophisticated architectures and compared the output result.

Thoughts: After reading about such networks 'YOLO' and 'SSD' intrigued me the most. So I am looking forward to implement those network in a project form on images and videos.

References

Day 8 : April 6, Deep Generative Models

Today's Progress: Today I started with Deep Generative Modeling as part of MIT's Introduction to Deep Learning.

References

Day 9 : April 7, Linear Regression in Numpy

Today's Progress: Today I read about learning regression in detail with the implementation in numpy. I used normal equation to calculate the weights of a function. The weights were determined on a random generated data. The data contained x and y pair with a linear relation of ' y = 4 + 3x'.

Thoughts: Understanding the algorithms at the fundamental level is a requisite for anyone who practices Machine Learning. Looking forward to understand the basic methods at a fundamental level.

Link of Work:

References

Day 10 : April 8, Gradient Descent techniques

Today's Progress: I learned about the various types of gradient descent methods namely Batch Gradient Descent,Stochastic Gradient Descent and Mini Batch Gradient Descent. I implemented the same with sklearn library in python. I also learned about learning rate schedule and made a LR schedular. And finally compared the speed, architecture and use of various Gradient Descent techniques.

Thoughts: It is good to know, what goes on underneath every process in Machine Learning.

Link of Work:

References

Day 11 : April 9, Polynomial Regression

Today's Progress: Worked on polynomial regression to fit the curves with higher degree. Made a simple dataset(collection on random points which falls near the equation) and analysed it with polynomial regression.

Link of Work:

  • [code]
    • Blue: Train Accuracy
    • Red : Test Accuracy
  • 10 degree polynomial

References

Day 12 : April 10, YOLO object detection

Today's Progress: I worked on Yolo and implemented it in OpenCV. I tried two different versions of weights from Darknet yolov3-tiny.weights and yolov3.weights.

Thoughts: Yolo is fast compared to other algorithms and can be implemented on hardware constraints environments without a sweat.

Link of Work:

References

Day 13 : April 11, Regularized linear Models

Today's Progress: Learned about different ways to reduce overfitting in a model. Studied 3 different methods in depth. Read about the working of the following methods with mathematic understanding.

  • Ridge Regression
  • Lasso Regression
  • Elastic Net

Thoughts: Overfitting can be avoided using the Regularized Models, having a good understanding is a icing on the cake.

References

Day 14 : April 12, Logistic Regression

Today's Progress: Read about Logistic Regression. Logistic Regression (also called Logit Regression) is commonly used to estimate the probability that an instance belongs to a particular class.

  • Estimating Probabilities
  • Training and Cost Function
  • Decision Boundaries

References

Day 15 : April 13, Binary Classifier Anime face vs Human face

Today's Progress: Made a binary classifier on a custom dataset. Did a little web scraping to collect anime faces and human faces.

Thoughts: Looking forward to work on GANs with the same dataset.

Link of Work:

Day 16 : April 14, Support Vector Machines Introduction

Today's Progress: Started off with reading about SVMs (Support Vector Machines) and got an intuition on what SVM is and how it is used to solve a Classification problem.

References

Day 17 : April 15, Softmargin SVM Classification

Today's Progress: Implemented Softmargin classification on IRIS dataset in sklearn library.

Link of Work: [python code]

Day 18 : April 16, Backpropagation in Neural Networks

Today's Progress: I tried to dig deeper and understood the mathematics behind the backpropagation algorithm. Learned about the calculus, vectorization and cost function behind every neuron in a network.

Work

References