lime-ile-makine-ogrenmesi-modellerini-aciklamak-demo
LIME ile Makine Öğrenmesi Modellerini Açıklamak - Demo ResNet50 derin öğrenme modelinin görsel sınıflandırma kararlarını LIME (Local Interpretable Model-agnostic Explanations) algoritması kullanarak açıklayan ve görselleştiren Python projesi. GPU desteği ile hızlı işlem sağlar.
LIME Demo - Görsel Sınıflandırma Açıklaması
Bu proje, LIME (Local Interpretable Model-agnostic Explanations) kullanarak ResNet50 derin öğrenme modelinin görsel sınıflandırma kararlarını açıklamak için oluşturulmuştur.
📋 Proje Açıklaması
LIME, karmaşık makine öğrenmesi modellerinin tahminlerini anlamak ve yorumlamak için kullanılan bir açıklama tekniğidir. Bu projede:
- ResNet50 önceden eğitilmiş model kullanarak görselleri sınıflandırır
- LIME algoritması ile her sınıflandırmanın nedenini görselleştirir
- Hangi görsel bölgelerinin tahmine katkı sağladığını (pozitif/negatif) renk haritasıyla gösterir
- GPU desteği ile hızlı işlem sağlar
📁 Proje Yapısı
LIME_DEMO/
├── lime_demo.py # Ana uygulama (LIME açıklama motoru)
├── resize_images.py # Görselleri 224x224 boyutuna dönüştüren script
├── gpu_info.py # Sistem GPU/CPU bilgilerini gösteren script
├── requirements.txt # Python bağımlılıkları
├── kaynak_gorseller/ # Orijinal görsellerin bulunduğu klasör
├── kaynak_gorseller_224x224/ # Yeniden boyutlandırılmış görseller (224x224)
└── lime_ciktilar/ # LIME sonuçlarının kaydedildiği klasör
├── [image_name]_lime_explanation.png
├── [image_name]_heatmap.png
└── [image_name]_full_comparison.png
🛠️ Kurulum
1. Gerekli Paketleri Yükleyin
pip install -r requirements.txt
Bağımlılıklar:
numpy- Sayısal hesaplamalarmatplotlib- Görselleştirmescikit-image- Görsel işlemePillow- Görsel yükleme/kaydetmetensorflow- Derin öğrenme (ResNet50 modeli)lime- Açıklama algoritması
2. GPU Desteği (Opsiyonel ancak Önerilen)
Hızlı işlem için NVIDIA GPU kullanabilirsiniz:
# TensorFlow GPU sürümünü kurun
pip install tensorflow-gpu
# CUDA 12.x ve cuDNN kurulumundan sonra
GPU durumunu kontrol etmek için:
python gpu_info.py
📸 Kullanım
Adım 1: Görselleri Hazırlamak
Orijinal görselleri kaynak_gorseller klasörüne yerleştirin, ardından yeniden boyutlandırın:
python resize_images.py
Bu script:
- Tüm görselleri 224x224 piksel boyutuna dönüştürür
- PNG dosyalarını RGB JPG formatına çevirir
- Görselleri rastgele sırada yeniden adlandırır
- Yeniden boyutlandırılmış görselleri
kaynak_gorseller_224x224klasörüne kaydeder
Adım 2: LIME Açıklamasını Çalıştırmak
python lime_demo.py
Bu script:
- ResNet50 modelini yükler
- Her görsel için sınıflandırma tahmini yapar
- LIME algoritmasını çalıştırarak açıklamalar oluşturur
- Sonuçları
lime_ciktilarklasörüne kaydeder
⚙️ Konfigürasyon
lime_demo.py dosyasındaki ayarları değiştirebilirsiniz:
SOURCE_FOLDER = 'kaynak_gorseller_224x224' # Girdi görselleri
OUTPUT_FOLDER = 'lime_ciktilar' # Çıktı klasörü
NUM_SAMPLES = 1000 # LIME pertürbasyon örnek sayısı
TOP_CLASSES = 5 # En iyi N tahmini göster
EXPLANATION_CLASS_INDEX = None # Açıklanacak sınıf (None = en iyi tahmin)
📊 Çıktı Dosyaları
Her görsel için üç dosya oluşturulur:
[image_name]_lime_explanation.png- LIME tarafından oluşturulan semented bölgeler
- Her bölgenin tahmini etkileme katsayısı
[image_name]_heatmap.png- Yeşil: Sınıflandırmaya olumlu katkı
- Kırmızı: Sınıflandırmaya olumsuz katkı
- Koyu renk: Az etki, Açık renk: Çok etki
[image_name]_full_comparison.png- Orijinal görsel + LIME açıklaması + Heatmap yan yana
- Model tahminleri ve güven seviyeleri
🔍 LIME Nasıl Çalışır?
- Segmentasyon: Görsel bölgelere bölünür (superpixel)
- Pertürbasyon: Bölgeler rastgele kapatılır (000 örnekle)
- Tahmin: Her pertürbe edilmiş görsel için model tahmin yapar
- Doğrusal Model: Bölge-tahmin ilişkisini açıklayan doğrusal model eğitilir
- Görselleştirme: En etkili bölgeler renklendirilir
💻 Sistem Gereksinimleri
- Python: 3.7+
- Bellek: Minimum 4GB (GPU kullanıyorsanız 8GB+ önerilen)
- GPU: NVIDIA GPU (CUDA 12.x destekli, optional)
- İşletim Sistemi: Windows, Linux, macOS
🚀 Örnek Çalıştırma
# 1. Görselleri hazırla
python resize_images.py
# 2. GPU durumunu kontrol et
python gpu_info.py
# 3. LIME analizi çalıştır
python lime_demo.py
# 4. Sonuçları görüntüle
# lime_ciktilar/ klasöründeki PNG dosyalarını aç
⚡ Performans İpuçları
- GPU kullanın: CPU'dan 10-50x daha hızlı
- NUM_SAMPLES'ı azaltın: Daha hızlı işlem (daha az doğruluk)
- Batch işlem: Birden fazla görsel için döngüyü optimize edin
📝 Analiz Sonuçları Örnekleri
Örnek 1: Kedi (Tiger Cat)
Orijinal Görsel:

LIME Açıklaması:

Örnek 2: Ananas (Pineapple)
Orijinal Görsel:

LIME Açıklaması:

Örnek 3: Aslan (Lion)
Orijinal Görsel:

LIME Açıklaması:

📝 Terminal Çıkış Örneği
============================================================
GPU/CPU Durum Kontrolü
============================================================
✅ 1 adet GPU bulundu ve etkinleştirildi:
- /physical_device:GPU:0
============================================================
Görsel Sınıflandırma ve LIME Açıklaması Başladı
============================================================
[1/25] Görsel işleniyor: image_001.jpg
🔍 Model Tahminleri:
1. Sınıf: dog (0.92)
2. Sınıf: animal (0.05)
3. Sınıf: mammal (0.02)
📊 LIME açıklaması oluşturuluyor...
💾 Kaydedildi: lime_ciktilar/image_001_full_comparison.png
🐛 Sorun Giderme
Problem: GPU bulunamadı
# Çözüm: CUDA ve cuDNN doğru şekilde yüklenmiş mi kontrol edin
python gpu_info.py
Problem: "Out of Memory" hatası
# Çözüm: NUM_SAMPLES'ı azaltın veya görselleri küçültün
NUM_SAMPLES = 500 # 1000'den 500'e
Problem: Modeli yüklerken hata
# Çözüm: TensorFlow'u yeniden kurun
pip install --upgrade tensorflow
📚 Kaynaklar
- LIME Paper - Ribeiro et al., 2016
- TensorFlow Belgeleri
- LIME GitHub
📄 Lisans
Bu proje eğitim ve araştırma amaçlı oluşturulmuştur.
Hazırlayan: LIME Demo Tarih: Aralık 2025
elifsudeates