{"id":16606307,"url":"https://github.com/farid-karimi/digit-recognizer","last_synced_at":"2025-06-12T17:07:11.562Z","repository":{"id":241596830,"uuid":"753804166","full_name":"Farid-Karimi/Digit-Recognizer","owner":"Farid-Karimi","description":"Digit Recognizer Neural Network","archived":false,"fork":false,"pushed_at":"2024-02-06T21:44:07.000Z","size":19817,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-12T20:04:52.766Z","etag":null,"topics":["digit-recognizer","matplotlib","mnist","neural-network","numpy","pandas"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Farid-Karimi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-06T20:27:40.000Z","updated_at":"2025-03-05T19:13:59.000Z","dependencies_parsed_at":"2024-05-29T07:51:47.747Z","dependency_job_id":null,"html_url":"https://github.com/Farid-Karimi/Digit-Recognizer","commit_stats":null,"previous_names":["farid-karimi/digit-recognizer"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farid-Karimi%2FDigit-Recognizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farid-Karimi%2FDigit-Recognizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farid-Karimi%2FDigit-Recognizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Farid-Karimi%2FDigit-Recognizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Farid-Karimi","download_url":"https://codeload.github.com/Farid-Karimi/Digit-Recognizer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248625493,"owners_count":21135513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["digit-recognizer","matplotlib","mnist","neural-network","numpy","pandas"],"created_at":"2024-10-12T01:07:34.074Z","updated_at":"2025-04-12T20:05:02.514Z","avatar_url":"https://github.com/Farid-Karimi.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Digit-Recognizer\nThis is a Digit Recognizer Neural Network using only Pandas and NumPy on the [MNIST](https://www.kaggle.com/competitions/digit-recognizer/data) Dataset\n\n## Project Goals\nThe goal of this project was to gain a deeper understanding of neural networks and their inner workings. Initially, the complexity of concepts like backpropagation, activation functions, and gradient descent seemed overwhelming. To overcome this, I decided to implement a neural network from scratch without using any libraries or wrappers. This hands-on approach allowed me to grasp the foundational concepts and gain a solid understanding of the underlying principles.\n\nFortunately, there were others who had undertaken similar projects, and I leveraged their experiences and resources available on the internet to build my own version.\n\n## Learnings\nThroughout this project, I gained knowledge in several key areas, including:\n\n- Backpropagation: I learned how to propagate errors backward through the network, updating weights and biases to improve the network's performance.\n- Activation Functions: I explored different activation functions and their significance in introducing non-linearity to the network, enabling it to learn complex relationships.\n- Gradient Descent Techniques: I studied various techniques in gradient descent, such as batch gradient descent, to optimize the network's learning process.\n- Setting a Good Learning Rate (Alpha): I discovered how to choose an appropriate alpha value for the gradient descent function, ensuring efficient convergence.\n\nThese were just a few of the many small but important details I encountered during this project, which greatly enhanced my understanding of neural networks.\n\n## Project Timeline\nThe entire project took approximately 2-3 days. During this time, I devoted myself to learning the necessary concepts and implementing the neural network from scratch. The process was enjoyable and rewarding, as it allowed me to gain hands-on experience and deepen my knowledge.\n\n## Resources\nI would like to share the resources that proved invaluable in my journey of understanding neural networks:\n\n- [But what is a neural network? | Chapter 1, Deep learning - YouTube](https://www.youtube.com/watch?v=aircAruvnKk\u0026list=PLZHQObOWTQDNU6R1_67000Dx_ZCJB-3pi)\n- [Building a neural network FROM SCRATCH (no Tensorflow/Pytorch, just numpy \u0026 math) - YouTube](https://www.youtube.com/watch?v=w8yWXqWQYmU\u0026t=26s)\n- [Neural Networks Explained from Scratch using Python - YouTube](https://www.youtube.com/watch?v=9RN2Wr8xvro\u0026t=55s)\n- [How to Create a Neural Network (and Train it to Identify Doodles) - YouTube](https://www.youtube.com/watch?v=hfMk-kjRv4c\u0026t=1036s)\n- [Learning rate alpha in gradient descent | by Thamarasee Jeewandara | Medium](https://thamarasee.medium.com/learning-rate-alpha-in-gradient-descent-6cc6d7b6df43)\n- [Simple MNIST NN from scratch (numpy, no TF/Keras) | Kaggle](https://www.kaggle.com/code/wwsalmon/simple-mnist-nn-from-scratch-numpy-no-tf-keras/notebook#Simple-MNIST-NN-from-scratch)\n\n\nThese resources provided valuable insights and guidance throughout my learning process, and I hope they prove helpful to you as well.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffarid-karimi%2Fdigit-recognizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffarid-karimi%2Fdigit-recognizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffarid-karimi%2Fdigit-recognizer/lists"}