Week 6 (July 1 –July 7) Progress

 Added tests to classdef  "ClassificationSVM " and "fitcsvm", Started studying algorithms and mathematics for implementing ClassificationNeuralNetwork classdef

This week, I added some tests to the ClassificationSVM.m and fitcsvm.m files. I also started studying the mathematics behind neural network classifiers. After studying the MATLAB documentation, I identified the following components for the ClassificationNeuralNetwork class:

  • Weights initializer: Layer Weights are initialized by 'glorot' or 'he'
  • Biases initializerBiases are initialized by 'zeros' or 'ones'
  • Loss function: Cross entropy
  • Solver used: L-BFGS (Limited-memory quasi-Newton code for bound-constrained optimization)

After some research, I have outlined the workflow that I will be following:

  1. Initialize weights and biases using the initializerParameter function
  2. Implement forward propagation
  3. Implement the predict function (using the initialized weights and biases)
  4. Implement the training portion of the neural network (the most challenging part). Depending on the complexity, I may choose between normal gradient descent or L-BFGS.

Resources I found helpful include:

  • "Neural Network from scratch in Python" by Sentdex
  • Andrew Ng's lecture, where he mentions that understanding the detailed mathematics behind the L-BFGS optimization technique is not necessary; we just need to know how to use it.

After searching for some built-in Octave functions that might help in implementing the training part, I found the bfgsmin function from the Optim package.

Our next meeting is scheduled for July 9th at 16:30 UTC. Before the meeting, I will try to wind up any remaining work of ClasssificationSVM. Following the meeting, I will make a pull request and start working on the ClassificationNeuralNetwork class.

I will also have a Midterm Evaluation as part of GSoC, which will take about 10 minutes to complete. The deadline for it is July 12th.

Comments

Popular posts from this blog

My Plans for Google Summer of Code 2024: A Brief Overview of My Project and Timeline.

Week 1 (May 27 - June 2) Progress

Week 7 (July 8 –July 14) Progress