jacknudelman / facial-similarity- Goto Github PK
View Code? Open in Web Editor NEWDetect whether two images are of the same person or not
Detect whether two images are of the same person or not
Jack Nudelman https://drive.google.com/open?id=19WUt1OnSRTTXDCUQD72zvEHj4OWT_HEI 1a) Without Augmentation: - I chose to have 25 epochs. I realized that no matter how much the train loss decreased, the test loss maintained around .5 accuracy so it didn't matter how many epochs I did as long as I did more than about 10. This is because the network starts to memorize the training data after about 10 epochs since it has already seen the same images multiple times. However, I do 25 epochs for the augmentation part so I did 25 here just to be consistent. final training accuracy = 1.0 final testing accuracy = 0.528 with augmentation: - I chose to pick 25 epochs here because I first did about 30 epochs and saw that the test accuracy would incrementally increase up until about 25 epochs and then begin to slowly drop. I wanted to have the highest test accuracy possible so I cut it off after 25 epochs. It is important to note that the test accuracy fluctuated a lot because my learning rate was a bit too big so it would keep overfitting. However, 25 epochs seemed to consistently give me the best results so I stuck to it. final training accuracy = 0.8131818181818182 final testing accuracy = 0.548 - comparing with no augmentation: We could see that the training accuracy is way higher without augmentation than with and that the loss function reaches a very low value way quicker without augmentation. This is because the augmentation doesn't allow for the net to memorize the data since it is essentially 'creating new data' by manipulating the images into images the net most likely hasn't seen before. On the other hand, you could see that, on average, the test accuracy does increase by a little with augmentation as opposed to no average increase without augmentation. This is because the net is getting better at classifying new data since it was trained with 'new' data. It is important to note that the increase however is tiny and this is because of the nature of BCELoss. This loss function just looks for specific features but doesn't look at the relationship between the images. b) - I chose a margin of 2 because I tried with 1 and progressively increased up until 7 but two gave me the best results. Without Augmentation: - I chose to pick 20 epochs here because I first did about 30 epochs and saw that the test accuracy would incrementally increase up until about 20 epochs and then begin to slowly drop. I wanted to have the highest test accuracy possible so I cut it off after 20 epochs. This still gave me a high training accuracy and the highest possible testing accuracy final training accuracy = 0.9121823 final testing accuracy = 0.624 With Augmentation 0 train accuracy on epoch 0 is 0.551818181818 current average testing accuracy is 0.5352 1 train accuracy on epoch 1 is 0.786818181818 current average testing accuracy is 0.542 2 train accuracy on epoch 2 is 0.896818181818 current average testing accuracy is 0.546066666667 3 train accuracy on epoch 3 is 0.945909090909 current average testing accuracy is 0.54445 4 train accuracy on epoch 4 is 0.969090909091 current average testing accuracy is 0.54516 5 train accuracy on epoch 5 is 0.978181818182 current average testing accuracy is 0.5445 6 train accuracy on epoch 6 is 0.983636363636 current average testing accuracy is 0.5446 7 train accuracy on epoch 7 is 0.993181818182 current average testing accuracy is 0.5443 8 train accuracy on epoch 8 is 0.995454545455 current average testing accuracy is 0.544066666667 9 train accuracy on epoch 9 is 0.995909090909 current average testing accuracy is 0.54322 augmenting 0 train accuracy on epoch 0 is 0.528 current average testing accuracy is 0.581 1 train accuracy on epoch 1 is 0.617 current average testing accuracy is 0.593 2 train accuracy on epoch 2 is 0.635 current average testing accuracy is 0.600666666667 3 train accuracy on epoch 3 is 0.67 current average testing accuracy is 0.6115 4 train accuracy on epoch 4 is 0.688 current average testing accuracy is 0.625 5 train accuracy on epoch 5 is 0.708 current average testing accuracy is 0.629285714286 6 train accuracy on epoch 6 is 0.721 current average testing accuracy is 0.632875 7 train accuracy on epoch 7 is 0.729 current average testing accuracy is 0.635666666667 8 train accuracy on epoch 8 is 0.763 current average testing accuracy is 0.6403 9 train accuracy on epoch 9 is 0.776 current average testing accuracy is 0.649083333333 10 train accuracy on epoch 10 is 0.774 current average testing accuracy is 0.651307692308 11 train accuracy on epoch 11 is 0.789 current average testing accuracy is 0.654071428571 12 train accuracy on epoch 12 is 0.796 current average testing accuracy is 0.657466666667 13 train accuracy on epoch 13 is 0.801 current average testing accuracy is 0.663882352941 14 train accuracy on epoch 14 is 0.814 current average testing accuracy is 0.666833333333 15 train accuracy on epoch 15 is 0.811 current average testing accuracy is 0.669578947368 16 train accuracy on epoch 16 is 0.815 current average testing accuracy is 0.6718 17 train accuracy on epoch 17 is 0.834 current average testing accuracy is 0.673666666667 18 train accuracy on epoch 18 is 0.809 current average testing accuracy is 0.678130434783 19 train accuracy on epoch 19 is 0.82 current average testing accuracy is 0.679541666667 20 train accuracy on epoch 20 is 0.83 current average testing accuracy is 0.6814 21 train accuracy on epoch 21 is 0.827 current average testing accuracy is 0.682769230769 22 train accuracy on epoch 22 is 0.843 current average testing accuracy is 0.68525 23 train accuracy on epoch 23 is 0.84 current average testing accuracy is 0.686137931034 24 train accuracy on epoch 24 is 0.831 current average testing accuracy is 0.6877 25 train accuracy on epoch 25 is 0.849 current average testing accuracy is 0.689419354839 26 train accuracy on epoch 26 is 0.858 current average testing accuracy is 0.69090625 27 train accuracy on epoch 27 is 0.868 current average testing accuracy is 0.693029411765 28 train accuracy on epoch 28 is 0.852 current average testing accuracy is 0.694285714286 29 train accuracy on epoch 29 is 0.847 current average testing accuracy is 0.695444444444 final average train accuracy is 0.7781 average test accuracy is 0.695444444444 PART B 0 train accuracy on epoch 0 is 0.503181818182 current average testing accuracy is 0.503 1 train accuracy on epoch 1 is 0.518181818182 current average testing accuracy is 0.5048 2 train accuracy on epoch 2 is 0.546363636364 current average testing accuracy is 0.507875 3 train accuracy on epoch 3 is 0.603636363636 current average testing accuracy is 0.512818181818 4 train accuracy on epoch 4 is 0.646818181818 current average testing accuracy is 0.5185 5 train accuracy on epoch 5 is 0.696818181818 current average testing accuracy is 0.521625 6 train accuracy on epoch 6 is 0.75 current average testing accuracy is 0.527 7 train accuracy on epoch 7 is 0.793636363636 current average testing accuracy is 0.531363636364 8 train accuracy on epoch 8 is 0.838636363636 current average testing accuracy is 0.53628 9 train accuracy on epoch 9 is 0.870454545455 current average testing accuracy is 0.541714285714 10 train accuracy on epoch 10 is 0.884090909091 current average testing accuracy is 0.546516129032 11 train accuracy on epoch 11 is 0.902272727273 current average testing accuracy is 0.55 12 train accuracy on epoch 12 is 0.917727272727 current average testing accuracy is 0.554166666667 13 train accuracy on epoch 13 is 0.918636363636 current average testing accuracy is 0.558743589744 14 train accuracy on epoch 14 is 0.919090909091 current average testing accuracy is 0.56230952381 15 train accuracy on epoch 15 is 0.925454545455 current average testing accuracy is 0.566866666667 16 train accuracy on epoch 16 is 0.917727272727 current average testing accuracy is 0.569468085106 17 train accuracy on epoch 17 is 0.914090909091 current average testing accuracy is 0.57322 18 train accuracy on epoch 18 is 0.918181818182 current average testing accuracy is 0.576396226415 19 train accuracy on epoch 19 is 0.913636363636 current average testing accuracy is 0.579142857143 20 train accuracy on epoch 20 is 0.908636363636 current average testing accuracy is 0.582169491525 21 train accuracy on epoch 21 is 0.904545454545 current average testing accuracy is 0.584532258065 22 train accuracy on epoch 22 is 0.893181818182 current average testing accuracy is 0.585671875 23 train accuracy on epoch 23 is 0.891363636364 current average testing accuracy is 0.587641791045 24 train accuracy on epoch 24 is 0.891818181818 current average testing accuracy is 0.589557142857 25 train accuracy on epoch 25 is 0.893636363636 current average testing accuracy is 0.591342465753 26 train accuracy on epoch 26 is 0.879090909091 current average testing accuracy is 0.593 27 train accuracy on epoch 27 is 0.886818181818 current average testing accuracy is 0.594064102564 28 train accuracy on epoch 28 is 0.881363636364 current average testing accuracy is 0.595765432099 29 train accuracy on epoch 29 is 0.890909090909 current average testing accuracy is 0.597226190476 total train correct = 54604 total train = 66000 total test correct = 50167 total test = 84000 average train accuracy is 0.827333333333 average test accuracy is 0.597226190476 3384 84 0 augmenting 0 train accuracy on epoch 0 is 0.502 current average testing accuracy is 0.505 1 train accuracy on epoch 1 is 0.509 current average testing accuracy is 0.504 2 train accuracy on epoch 2 is 0.518 current average testing accuracy is 0.504666666667 3 train accuracy on epoch 3 is 0.527 current average testing accuracy is 0.505 4 train accuracy on epoch 4 is 0.527 current average testing accuracy is 0.506 5 train accuracy on epoch 5 is 0.522 current average testing accuracy is 0.507428571429 6 train accuracy on epoch 6 is 0.539 current average testing accuracy is 0.509875 7 train accuracy on epoch 7 is 0.568 current average testing accuracy is 0.5142 8 train accuracy on epoch 8 is 0.58 current average testing accuracy is 0.516545454545 9 train accuracy on epoch 9 is 0.582 current average testing accuracy is 0.518416666667 10 train accuracy on epoch 10 is 0.59 current average testing accuracy is 0.521 11 train accuracy on epoch 11 is 0.604 current average testing accuracy is 0.522666666667 12 train accuracy on epoch 12 is 0.61 current average testing accuracy is 0.5235625 13 train accuracy on epoch 13 is 0.62 current average testing accuracy is 0.525352941176 14 train accuracy on epoch 14 is 0.634 current average testing accuracy is 0.528263157895 15 train accuracy on epoch 15 is 0.618 current average testing accuracy is 0.52995 16 train accuracy on epoch 16 is 0.632 current average testing accuracy is 0.53119047619 17 train accuracy on epoch 17 is 0.653 current average testing accuracy is 0.534260869565 18 train accuracy on epoch 18 is 0.623 current average testing accuracy is 0.535375 19 train accuracy on epoch 19 is 0.653 current average testing accuracy is 0.53668 20 train accuracy on epoch 20 is 0.67 current average testing accuracy is 0.538192307692 21 train accuracy on epoch 21 is 0.654 current average testing accuracy is 0.540714285714 22 train accuracy on epoch 22 is 0.63 current average testing accuracy is 0.541793103448 23 train accuracy on epoch 23 is 0.667 current average testing accuracy is 0.5433 24 train accuracy on epoch 24 is 0.685 current average testing accuracy is 0.54659375 25 train accuracy on epoch 25 is 0.663 current average testing accuracy is 0.54796969697 26 train accuracy on epoch 26 is 0.655 current average testing accuracy is 0.549382352941 27 train accuracy on epoch 27 is 0.634 current average testing accuracy is 0.550714285714 28 train accuracy on epoch 28 is 0.656 current average testing accuracy is 0.55327027027 29 train accuracy on epoch 29 is 0.657 current average testing accuracy is 0.554394736842 total train correct = 18182 total train = 30000 total test correct = 21067 total test = 38000 average train accuracy is 0.606066666667 average test accuracy is 0.554394736842 1538 38 0
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.