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 initializer: Biases 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:
- Initialize weights and biases using the initializerParameter function
- Implement forward propagation
- Implement the predict function (using the initialized weights and biases)
- 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
Post a Comment