The amount that the weights are updated during training is referred to as the step size or the “learning rate.”
Specifically, the learning rate is a configurable hyperparameter used in the training of neural networks that has a small positive value, often in the range between 0.0 and 1.0.
The learning rate controls how quickly the model is adapted to the problem. Smaller learning rates require more training epochs given the smaller changes made to the weights each update, whereas larger learning rates result in rapid changes and require fewer training epochs.
A learning rate that is too large can cause the model to converge too quickly to a suboptimal solution, whereas a learning rate that is too small can cause the process to get stuck.
The challenge of training deep learning neural networks involves carefully selecting the learning rate. It may be the most important hyperparameter for the model.
References
IMAGE DATA GENERATOR:
https://www.analyticsvidhya.com/blog/2020/08/image-augmentation-on-the-fly-using-keras-imagedatagenerator/
https://stackoverflow.com/questions/51748514/does-imagedatagenerator-add-more-images-to-my-dataset
https://github.com/bnsreenu/python_for_microscopists/blob/master/176-multiclass_using_VGG_weights_PCA_NN_RF.py
https://github.com/christianversloot/machine-learning-articles/blob/main/how-to-use-k-fold-cross-validation-with-keras.md
https://stackoverflow.com/questions/62341053/validation-accuracy-not-improving
https://medium.com/@draj0718/image-classification-and-prediction-using-transfer-learning-3cf2c736589d
https://towardsdatascience.com/how-to-predict-an-image-with-keras-ca97d9cd4817
https://medium.com/@nutanbhogendrasharma/image-classification-with-resnet50-model-12f4c79c216b#:~:text=keras%2Fmodels%2F.,other%20to%20form%20a%20network.
Check this for explanation of dimension and for explanation of each layer CNN:
https://towardsdatascience.com/image-classification-with-convolutional-neural-networks-12a7b4fb4c91
https://stackoverflow.com/questions/45561306/understanding-model-summary-keras
https://iq.opengenus.org/output-size-of-convolution/#:~:text=Machine%20Learning%20(ML)%20cnn&text=In%20short%2C%20the%20answer%20is,%2F%20(stride%20width)%20%2B%201
Visualization CNN:
For the report:
Types of creation of a model in keras
USE THIS:
CONVERT IMAGEDATAGENERATOR AS NUMPY ARRAY AND FEED THEM INSIDE GRIDSEARCHCV AS X AND Y:
FOLLOWING THEN:
CHECK:
CONVERT IMAGES TO ARRAYS
Cerca online anche altre architetture di CNN differenti e aumenta deepness dell'architettura per arrivare almeno a 10 layers!
Altro tipo di architettura:
Try:
Instead of Max pooling, you can also use fractional pooling:
https://stackoverflow.com/questions/44991470/using-tensorflow-layers-in-keras
Check the paper: Efficient Processing DNN a tutorial and survery, page 10 for reference.
GRIDSEARCHCROSS VALIDATION:
https://stackoverflow.com/questions/49160206/does-gridsearchcv-perform-cross-validation
MobileNetV2
USA QUESTO COME COMPARAZIONE:
https://medium.com/analytics-vidhya/indian-food-image-classification-using-transfer-learning-b8878187ddd1
https://towardsdatascience.com/a-comprehensive-hands-on-guide-to-transfer-learning-with-real-world-applications-in-deep-learning-212bf3b2f27a
https://www.analyticsvidhya.com/blog/2020/10/create-image-classification-model-python-keras/
https://machinelearningmastery.com/evaluate-performance-deep-learning-models-keras/
https://medium.com/analytics-vidhya/indian-food-image-classification-using-transfer-learning-b8878187ddd1
https://medium.com/analytics-vidhya/indian-food-image-classification-using-transfer-learning-b8878187ddd1
https://pyimagesearch.com/2016/08/10/imagenet-classification-with-python-and-keras/
QUALE ARCHITETTURA?
MOBILENET OR RESNET? APPLICALE ENTRAMBE E COMPARA RISULTATI SU ALMENO 50 EPOCHE!
https://towardsdatascience.com/transfer-learning-using-mobilenet-and-keras-c75daf7ff299
Comparazione MOBILENETV2 e RESNET50:
https://analyticsindiamag.com/mobilenet-vs-resnet50-two-cnn-transfer-learning-light-frameworks/
https://www.tertiaryinfotech.com/comparing-pre-trained-resnet-and-mobilenet/
Learning rate https://machinelearningmastery.com/understand-the-dynamics-of-learning-rate-on-deep-learning-neural-networks/
The amount that the weights are updated during training is referred to as the step size or the “learning rate.”
Specifically, the learning rate is a configurable hyperparameter used in the training of neural networks that has a small positive value, often in the range between 0.0 and 1.0.
The learning rate controls how quickly the model is adapted to the problem. Smaller learning rates require more training epochs given the smaller changes made to the weights each update, whereas larger learning rates result in rapid changes and require fewer training epochs.
A learning rate that is too large can cause the model to converge too quickly to a suboptimal solution, whereas a learning rate that is too small can cause the process to get stuck.
The challenge of training deep learning neural networks involves carefully selecting the learning rate. It may be the most important hyperparameter for the model.
USEFUL LINKS:
BEST:
https://medium.com/mlearning-ai/7-best-techniques-to-improve-the-accuracy-of-cnn-w-o-overfitting-6db06467182f
https://sgugger.github.io/the-1cycle-policy.html
https://www.paperspace.com/gradient/notebooks
https://stats.stackexchange.com/questions/453221/should-i-use-gridsearchcv-on-all-of-my-data-or-just-the-training-set
https://www.quora.com/What-kind-of-image-pre-processing-should-be-done-before-feeding-it-to-a-Convolutional-Neural-Network
https://opt-ml.org/papers/2021/paper53.pdf
https://towardsai.net/p/l/stop-using-grid-search-the-complete-practical-tutorial-on-keras-tuner
https://machinelearningmastery.com/learning-rate-for-deep-learning-neural-networks/
https://machinelearningmastery.com/grid-search-hyperparameters-deep-learning-models-python-keras/
https://towardsdatascience.com/step-by-step-vgg16-implementation-in-keras-for-beginners-a833c686ae6c
https://machinelearningmastery.com/use-pre-trained-vgg-model-classify-objects-photographs/
https://www.learndatasci.com/tutorials/hands-on-transfer-learning-keras/
TO CHECK: