El yazısı rakamları tanıyan bir Neural Network — %98+ doğruluk ile.
- sınıf Bilgisayar Mühendisliği öğrencisi olarak yaptığım ilk ML projesi.
Bu proje, MNIST veri setini kullanarak 0-9 arası el yazısı rakamları tanıyan bir sinir ağı modeli eğitmektedir.
Veri seti: 70.000 görüntü (60.000 eğitim + 10.000 test), 28×28 piksel, gri tonlamalı.
Girdi (784) → Dense(128, ReLU) → Dropout(0.2)
→ Dense(64, ReLU) → Dropout(0.2)
→ Dense(10, Softmax)
| Katman | Nöron | Aktivasyon | Açıklama |
|---|---|---|---|
| Giriş | 784 | — | 28×28 piksel düzleştirildi |
| Gizli 1 | 128 | ReLU | Ana özellik öğrenimi |
| Gizli 2 | 64 | ReLU | Özellik sıkıştırma |
| Çıkış | 10 | Softmax | 0-9 arası olasılıklar |
| Metrik | Değer |
|---|---|
| Test Accuracy | ~%98.2 |
| Test Loss | ~0.06 |
| Eğitim Süresi | ~2 dakika (CPU) |
pip install -r requirements.txtpython train.py→ mnist_model.h5 ve training_history.png oluşturulur.
# Test setinden rastgele 10 örnek göster
python predict.py
# Belirli bir örneği tahmin et (index: 0-9999)
python predict.py --image 42
# Yanlış tahminleri analiz et
python predict.py --show-errorspython evaluate.py→ Confusion matrix ve rakam bazında doğruluk raporu.
mnist-digit-recognizer/
├── train.py # Model eğitimi
├── predict.py # Tahmin ve görselleştirme
├── evaluate.py # Detaylı değerlendirme
├── requirements.txt # Gerekli kütüphaneler
├── README.md # Bu dosya
│
# Eğitim sonrası oluşur:
├── mnist_model.h5 # Kaydedilmiş model
├── training_history.png
├── predictions.png
└── confusion_matrix.png
- Neural Network temelleri (Dense layers, aktivasyon fonksiyonları)
- Overfitting ve Dropout ile önlenmesi
- One-hot encoding — etiket dönüşümü
- Normalizasyon — veri ön işleme
- Confusion Matrix ile model analizi
- train/test split — model değerlendirme
- CNN (Convolutional Neural Network) ile %99+ doğruluk
- Flask/Gradio ile web arayüzü — tarayıcıda çizin, tahmin edin
- Kendi el yazınızla test etme
Metehan Ulusoy · Bilgisayar Mühendisliği 2. Sınıf