OOP-Brain, C++'ın düşük seviyeli performans avantajları ile yüksek seviyeli Nesne Yönelimli Programlama (OOP) prensiplerini birleştiren, sıfırdan (hiçbir harici ML kütüphanesi kullanılmadan) geliştirilmiş bir yapay sinir ağı ileri iletim (forward pass) motorudur.
Öğrenciler tarafından 14 haftalık akademik müfredat kapsamında; sıfır bellek sızıntısı (0 memory leak), katı hata yönetimi ve maksimum genişletilebilirlik hedeflenerek tasarlanmıştır.
Kütüphanesiz (No Dependencies): Yalnızca Standart C++ kütüphaneleri kullanılarak inşa edilmiştir.
Sıfır Bellek Sızıntısı (0 Leak): Deep copy, taşıma (move) semantikleri ve sanal yıkıcılar (virtual destructors) kullanılarak dinamik bellek yönetimi kusursuzlaştırılmıştır.
Arayüz Tabanlı Tasarım (Interface-Based Design): Polimorfizm (çok biçimlilik) sayesinde, sistemin ana omurgasına dokunmadan yeni aktivasyon fonksiyonları veya katman türleri sisteme kolayca enjekte edilebilir (Open/Closed Principle).
Model Persistence (Kalıcılık): Eğitilmiş ağ ağırlıkları (weights) ve sapma (bias) değerleri .csv formatında diske kaydedilebilir ve sonradan diskten okunabilir.
Özel Hata Yönetimi: Matris boyut uyuşmazlıkları (örn. geçersiz matris çarpımları) veya hatalı dosya formatları, özel Exception sınıfları ile çalışma zamanında sistem çökmeden güvenle yakalanır.
Sistem 3 ana katmandan oluşmaktadır:
-
Matematik Motoru (
Matrix): Matris çarpımı ve toplaması için operatör aşırı yüklemeleri (*,+) barındıran, bellek kontrolünü encapsulate etmiş (sarmalamış) çekirdek birim. -
Katman ve Aktivasyon (
DenseLayer&IActivation):$Z = W \cdot X + b$ ve$A = \sigma(Z)$ matematiksel operasyonlarını yürüten,Sigmoid,ReLUveTanhdestekli çok katmanlı ağ yapısı. -
Veri ve Entegrasyon (
DataHandler&NeuralNetwork): Dosya okuma/yazma (CSV) operasyonlarını ve ağın uçtan uca ileri iletim (forward pass) boru hattını (pipeline) yöneten birleştirici sistem.
OOP-Brain/
│
├── .gitignore
├── README.md
├── iris_dataset/
├── iris.csv
└── cleared_iris.csv
├── src/
├── main.cpp
├── Matrix.h
├── Matrix.cpp
├── IActivation.h
├── Activations.h
├── BaseLayer.h
├── DenseLayer.h
├── DenseLayer.cpp
├── NeuralNetwork.h
├── NeuralNetwork.cpp
├── Exceptions.h
├── DataHandler.cpp
├── DataHandler.h
├── ModelStorage.cpp
└── ModelStorage.h
Projeyi derlemek ve test sonuçlarını görmek için terminalinizde projenin src klasörü dizinine gidin ve derleyicinize uygun komutu çalıştırın:
Windows (MSVC - Developer Command Prompt):
cd /d %USERPROFILE%\Desktop
git clone https://github.com/Grup7-Proje/OOP-Brain.git
Masaüstüne klonlanan repository'ye girin ve iris_dataset klasörü içindeki cleared_iris.csv dosyasını src dosyasının içine kopyalayın.
Ardından cleared_iris.csv dosyasının ismini iris.csv olarak değiştirin.
cd .\OOP-Brain\
cd src
cl /EHsc *.cpp /Fe:oop_brain.exe
del *.obj
oop_brain.exe

