Posts

Day 19

My birthday is today, so I am now seventeen. I started today by adding the data from the Random Forest tests of yesterday to my results table. I decided to use the data from the test with StandardScaler as the preprocessor. After that, I began testing the SNN (Self-Normalizing Neural Network) classifier. I already knew that I had to use StandardScaler for it, but I needed to figure out what values to use for the layer size, which is how many machine learning "neurons" are in each layer of the SNN. I also needed to figure out some other parameters, so I did a lot of parameter tests on SNN today and recorded a lot of data, most of which I will not need after today. I was finding the best parameters with which to test SNN. While those tests were running, I began working on a PowerPoint for my presentation. I tried to make sure that I explained everything in my presentation so that anyone in the audience, even if they have absolutely no experience with the topic, will be able to ...

Day 18

When I began today, I had all of my writing so far done, which meant I did not have anything on which to work while my classifier experiment code ran, so Ron introduced me to my next experiment, which is evaluating postprocessing methods. I started by documenting the already-written code for the postprocessors, which were a Markov Random Field (MRF) and a Conditional Random Field (CRF). It remains a challenge for me to document code written by others. I usually document code that I write when I am writing it so that I do not have to go back to it and try to figure out what it does. After I finished documenting the two postprocessors, I began writing the code for my postprocessor experiment, but I will likely have to alter it later because I do not yet know which classifier is the most accurate, because my classifier experiment is not over yet. For now I have the postprocessing code use the SVM-RBF classifier, which is the best one so far. Finally my trials on the MLP classifier with th...

Day 17

Image
Today, using the parameters I had previously found through the search, I continued my classifier experiment by running trials on the MLP classifier and recording the results. These results, however, turned out not to be very good, and presented an average overall accuracy of about fifty percent. I tried to improve the MLP's performance in various ways, such as using different numbers of epochs in each trial. I also increased the patience value, which is the number of epochs through which the program will go before it terminates the trial early. It seems that early stopping is a serious inhibitor of accuracy. So far, these changes have not significantly improved the accuracy, though. While the trials were running, I finished writing and citing descriptions of the classifiers I am testing in the Overleaf document. I also wrote an overview of the machine learning pipeline, and edited and added a diagram of the progression of the pipeline that I had previously made. I also prepared to ...

Day 16

Today at the morning meeting we reviewed more of the outlines, including mine. My outline was put on the projector and I gave a brief description of what my project was and what I am going to present. At the lab, I worked with Ron to figure out the problem I had been having the previous day with the parameter search I was doing for the MLP classifier. The problem turned out to be more complicated than anticipated. The issue was not only with my code, but also with the code for the MLP. The MLP had worked correctly when used by the pipeline, but not when used by a grid search, which I was performing and which is outside of the pipeline. Also, at one point today Ashley, Emily, and Peter dropped by the lab to see what I was working on. I did not have that much to show them, as all of my work is on my computer and I was just trying to fix an error at the time, but I did my best to describe and show them my experiment. After Ron and I fixed the problem with MLP, we and two other students in...

Day 15

Today I got to the lab earlier than usual and worked on my experiment before the morning meeting. Then, at the meeting, we reviewed some of our outlines. It seemed from the outlines that everyone's projects were coming along pretty well. I noticed that not many of the other interns have results yet, as their projects require longer-term preparation, while I already have results from my first experiment. When I got back to the lab, I continued working on my classifier experiment. The whole time I was in the lab today, I was writing code for a parameter search on the MLP classifier. I was able to reuse some of the code I had previously written, but the parameter search is outside of the pipeline, so I had to write some parts on my own that the pipeline had done itself previously. I almost finished the parameter search code today, but I ran into a confusing error regarding cross validation (CV). Ron helped me look over the problem, but I am still having a tough time understanding...

Day 14

Today I continued testing different parameters for the MLP classifier. While I ran tests, I finished documenting the classifiers that I am testing. I also wrote an introduction to my descriptions of the preprocessing methods, finished citations for the descriptions, and wrote a summary of my preprocessing experiment in an article being written in Overleaf about the machine learning pipeline. Although I am not yet ready to test the next classifier, RandomForest, I began writing code to test for the optimal preprocessing methods and parameters to use with it. Throughout the day, I collected data on the metrics of different combinations of parameters for MLP. I looked through this data and ran a larger number of trials on the most promising parameters, but it still appears that the default parameters are the most accurate, even though the overall accuracy resulting from the default parameters averages at about seventy percent, which is not very good compared to the other two classifiers I...

Day 13

Today I continued tests for my classifier experiment. I worked on finding the optimal parameters for the Multi-Layer Perceptron (MLP) classifier. I was trying to determine the best hidden layer shape and weight decay. Hidden layer shape is how many dimensions (layers) of neurons (nodes used for machine learning) there are, and how many neurons are in each dimension. I only began with the knowledge that there would be a maximum of three layers in the hidden layer shape. Weight decay is a value that decreases the weight values after each training iteration to prevent overfitting to the training data. I knew that the best value for weight decay would be 1e-4, 5e-4, or 0. I wrote a program to test different combinations of hidden layer shapes and weight decay values. While these tests were running, I documented some of the classifiers with which I was working, including the MLP classifier. This process helped me to better understand MLP and the other classifiers because it made me work...