Neural Network from Scratch
🧠 Neural Network from Scratch
Edukacyjny projekt implementujący sieć neuronową od podstaw w czystej Javie. Całość została zbudowana bez użycia żadnych bibliotek do uczenia maszynowego - tylko czysta matematyka i implementacja algorytmów od zera. Projekt wykorzystuje dataset MNIST do rozpoznawania odręcznie pisanych cyfr.
✨ Funkcjonalność
Implementacja od podstaw
Wszystkie komponenty sieci neuronowej zostały zaimplementowane manualnie:
- Własne klasy matematyczne (Vector, Matrix) z operacjami macierzowymi
- Warstwy fully connected z forward i backward propagation
- Neurony z konfigurowalnymi wagami i biasami
Funkcje aktywacji
Projekt zawiera implementacje popularnych funkcji aktywacji:
- ReLU (Rectified Linear Unit)
- Sigmoid
- SoftMax
Mechanizm uczenia
Pełna implementacja backpropagation z:
- Obliczaniem gradientów dla warstw ukrytych i wyjściowych
- Aktualizacją wag na podstawie learning rate
- Funkcjami kosztu (Square Cost)
Rozpoznawanie cyfr MNIST
Praktyczne zastosowanie sieci do klasyfikacji obrazów:
- Wczytywanie i przetwarzanie datasetu MNIST (28x28 pikseli)
- Trening na zbiorze treningowym
- Walidacja dokładności na zbiorze testowym
- Mierzenie sukcesu klasyfikacji po każdej epoce