Yapay Zeka Nedir?

Yapay Zeka (Artificial Intelligence - AI), makinelerin insan benzeri düşünme, öğrenme ve problem çözme yeteneklerini simüle etmesini sağlayan teknolojiler bütünüdür. Bu alan, bilgisayar bilimi, matematik, psikoloji ve felsefenin kesişiminde yer alır.

Yapay Zeka Tanımı

"Yapay zeka, makinelerin çevreyi algılama, öğrenme, akıl yürütme ve karar verme gibi insan zekasının özelliklerini sergilemesini sağlayan teknolojiler ve yöntemler bütünüdür."

Yapay Zekanın Tarihçesi

1950

Alan Turing

Turing Testi'ni önerdi. "Makineler düşünebilir mi?" sorusunu gündeme getirdi.

1956

Dartmouth Konferansı

John McCarthy "Artificial Intelligence" terimini ilk kez kullandı. AI'ın doğuş yılı kabul edilir.

1980-1990

Uzman Sistemler

İlk ticari AI uygulamaları geliştirildi. Tıp ve mühendislikte kullanıldı.

2010+

Derin Öğrenme Devrimi

GPU'lar ve büyük veri ile derin öğrenme patlaması yaşandı. Modern AI çağı başladı.

Günümüzde AI Uygulamaları

Arama Motorları

Google, Bing gibi arama motorları AI algoritmaları kullanarak en ilgili sonuçları sunar.

Çeviri Hizmetleri

Google Translate, DeepL gibi servisler sinir ağları ile doğal çeviriler yapar.

Sesli Asistanlar

Siri, Alexa, Google Assistant gibi asistanlar doğal dil işleme kullanır.

Otonom Araçlar

Tesla, Waymo gibi şirketler bilgisayar görüsü ve ML ile sürücüsüz araçlar geliştiriyor.

Tıbbi Teşhis

Radyoloji görüntülerini analiz ederek hastalık teşhisinde doktorlara yardım ediyor.

Siber Güvenlik

Anormal ağ trafiğini tespit ederek siber saldırıları önlemeye yardımcı oluyor.

AI, ML ve DL Arasındaki Farklar

Bu üç terim sıklıkla karıştırılır, ancak aralarında önemli farklar vardır:

Yapay Zeka (AI)

En geniş kavram. Makinelerin insan benzeri zeka göstermesi için tüm yöntemler ve teknolojiler.

Örnekler: Uzman sistemler, kural tabanlı sistemler, arama algoritmaları

Makine Öğrenmesi (ML)

AI'ın bir alt dalı. Makinelerin verilerden öğrenerek performanslarını artırması.

Örnekler: Doğrusal regresyon, karar ağaçları, destek vektör makineleri

Derin Öğrenme (DL)

ML'nin bir alt dalı. Çok katmanlı sinir ağları kullanarak karmaşık kalıpları öğrenme.

Örnekler: Konvolüsyonel sinir ağları (CNN), tekrarlayan sinir ağları (RNN)
ÖzellikYapay ZekaMakine ÖğrenmesiDerin Öğrenme
KapsamEn genişAI'ın alt kümesiML'nin alt kümesi
Veri GereksinimiDeğişkenOrta-YüksekÇok Yüksek
Hesaplama GücüDeğişkenOrtaÇok Yüksek
Özellik ÇıkarımıManuelKısmen ManuelOtomatik

Makine Öğrenmesi Türleri

Makine öğrenmesi, öğrenme yaklaşımına göre üç ana kategoriye ayrılır:

Denetimli Öğrenme (Supervised Learning)

Etiketli verilerle eğitim yapılır. Girdi-çıktı çiftleri kullanılarak model eğitilir.

Alt Türleri:

  • Sınıflandırma: Kategorik tahminler (spam/spam değil, köpek/kedi)
  • Regresyon: Sürekli değer tahminleri (ev fiyatı, sıcaklık)
Örnekler:
  • E-posta spam filtreleme
  • Görüntüde nesne tanıma
  • Hisse senedi fiyat tahmini
  • Tıbbi teşhis sistemleri

Denetimsiz Öğrenme (Unsupervised Learning)

Etiketli veri olmadan, verinin gizli yapılarını keşfetmeye çalışır.

Alt Türleri:

  • Kümeleme: Benzer verileri gruplama
  • Boyut Azaltma: Veri karmaşıklığını azaltma
  • Anomali Tespiti: Anormal durumları bulma
Örnekler:
  • Müşteri segmentasyonu
  • Öneri sistemleri
  • Dolandırıcılık tespiti
  • Pazar sepeti analizi

Pekiştirmeli Öğrenme (Reinforcement Learning)

Ajan, çevre ile etkileşim kurarak ödül ve ceza sistemi ile öğrenir.

Temel Kavramlar:

  • Ajan: Öğrenen ve karar veren sistem
  • Çevre: Ajanın etkileşim kurduğu ortam
  • Eylem: Ajanın yapabileceği hareketler
  • Ödül: Eylemlerin sonucunda alınan geri bildirim
Örnekler:
  • Oyun oynayan AI (AlphaGo, OpenAI Five)
  • Otonom araç kontrolü
  • Robot kontrolü
  • Finansal ticaret botları

Python AI Kütüphaneleri

Python, AI geliştirme için en popüler dillerden biridir. İşte temel AI kütüphaneleri:

NumPy

Sayısal hesaplamalar için temel kütüphane. Çok boyutlu diziler ve matematiksel fonksiyonlar sağlar.

pip install numpy

Pandas

Veri manipülasyonu ve analizi için güçlü araçlar. CSV, Excel dosyalarını okuma/yazma.

pip install pandas

Matplotlib

Veri görselleştirme kütüphanesi. Grafikler, çizimler ve plotlar oluşturma.

pip install matplotlib

Scikit-learn

Makine öğrenmesi algoritmaları için kapsamlı kütüphane. Başlangıç için ideal.

pip install scikit-learn

TensorFlow

Google'ın derin öğrenme kütüphanesi. Büyük ölçekli sinir ağları için.

pip install tensorflow

PyTorch

Facebook'un derin öğrenme kütüphanesi. Araştırma ve geliştirme için popüler.

pip install torch

Basit AI Örneği: Doğrusal Regresyon

Şimdi basit bir makine öğrenmesi örneği ile AI'ın nasıl çalıştığını görelim:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error, r2_score

# Örnek veri oluşturma (ev büyüklüğü vs fiyat)
np.random.seed(42)
house_sizes = np.random.normal(100, 30, 100)  # m² cinsinden ev büyüklükleri
house_prices = house_sizes * 2000 + np.random.normal(0, 20000, 100)  # Fiyatlar

# Veriyi şekillendirme
X = house_sizes.reshape(-1, 1)  # Özellik matrisi
y = house_prices  # Hedef değişken

# Veriyi eğitim ve test setlerine ayırma
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Model oluşturma ve eğitme
model = LinearRegression()
model.fit(X_train, y_train)

# Tahmin yapma
y_pred = model.predict(X_test)

# Model performansını değerlendirme
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print(f"Ortalama Kare Hatası: {mse:.2f}")
print(f"R² Skoru: {r2:.2f}")
print(f"Model Denklemi: Fiyat = {model.coef_[0]:.2f} * Büyüklük + {model.intercept_:.2f}")

# Sonuçları görselleştirme
plt.figure(figsize=(12, 5))

# Eğitim verisi
plt.subplot(1, 2, 1)
plt.scatter(X_train, y_train, alpha=0.6, color='blue', label='Eğitim Verisi')
plt.plot(X_train, model.predict(X_train), color='red', linewidth=2, label='Model')
plt.xlabel('Ev Büyüklüğü (m²)')
plt.ylabel('Fiyat (TL)')
plt.title('Eğitim Verisi ve Model')
plt.legend()

# Test verisi ve tahminler
plt.subplot(1, 2, 2)
plt.scatter(X_test, y_test, alpha=0.6, color='green', label='Gerçek Değerler')
plt.scatter(X_test, y_pred, alpha=0.6, color='red', label='Tahminler')
plt.xlabel('Ev Büyüklüğü (m²)')
plt.ylabel('Fiyat (TL)')
plt.title('Test Verisi: Gerçek vs Tahmin')
plt.legend()

plt.tight_layout()
plt.show()

# Yeni bir ev için fiyat tahmini
new_house_size = 120  # 120 m²
predicted_price = model.predict([[new_house_size]])
print(f"\n120 m² ev için tahmin edilen fiyat: {predicted_price[0]:.2f} TL")

Kod Açıklaması

1

Veri Hazırlama

Sentetik ev verisi oluşturuyoruz. Gerçek projede bu veri CSV dosyasından veya veritabanından gelir.

2

Veri Bölme

Veriyi %80 eğitim, %20 test olarak ayırıyoruz. Bu, modelin genelleme yeteneğini test etmek için önemli.

3

Model Eğitimi

Doğrusal regresyon modeli eğitim verisi ile öğrenir. En iyi doğruyu bulmaya çalışır.

4

Değerlendirme

Test verisi ile modelin performansını ölçüyoruz. MSE ve R² metrikleri kullanıyoruz.

Tkinter ile AI Demo Uygulaması

Şimdi bu AI modelini basit bir Tkinter uygulamasına entegre edelim:

import tkinter as tk
from tkinter import ttk, messagebox
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg

class HousePricePredictorApp:
    def __init__(self, root):
        self.root = root
        self.root.title("AI Ev Fiyat Tahmin Uygulaması")
        self.root.geometry("800x600")
        
        # Model eğitimi
        self.train_model()
        
        # UI oluşturma
        self.create_ui()
    
    def train_model(self):
        """AI modelini eğit"""
        # Örnek veri oluşturma
        np.random.seed(42)
        house_sizes = np.random.normal(100, 30, 1000)
        house_prices = house_sizes * 2000 + np.random.normal(0, 20000, 1000)
        
        # Model eğitimi
        X = house_sizes.reshape(-1, 1)
        y = house_prices
        
        self.model = LinearRegression()
        self.model.fit(X, y)
        
        # Model bilgilerini sakla
        self.coefficient = self.model.coef_[0]
        self.intercept = self.model.intercept_
    
    def create_ui(self):
        """Kullanıcı arayüzünü oluştur"""
        # Ana çerçeve
        main_frame = ttk.Frame(self.root, padding="20")
        main_frame.grid(row=0, column=0, sticky=(tk.W, tk.E, tk.N, tk.S))
        
        # Başlık
        title_label = ttk.Label(main_frame, text="🏠 AI Ev Fiyat Tahmin Sistemi", 
                               font=("Arial", 16, "bold"))
        title_label.grid(row=0, column=0, columnspan=2, pady=(0, 20))
        
        # Giriş alanı
        ttk.Label(main_frame, text="Ev Büyüklüğü (m²):").grid(row=1, column=0, sticky=tk.W, pady=5)
        self.size_var = tk.StringVar()
        size_entry = ttk.Entry(main_frame, textvariable=self.size_var, width=20)
        size_entry.grid(row=1, column=1, sticky=tk.W, pady=5)
        
        # Tahmin butonu
        predict_btn = ttk.Button(main_frame, text="Fiyat Tahmin Et", 
                                command=self.predict_price)
        predict_btn.grid(row=2, column=0, columnspan=2, pady=20)
        
        # Sonuç alanı
        self.result_var = tk.StringVar()
        result_label = ttk.Label(main_frame, textvariable=self.result_var, 
                                font=("Arial", 12, "bold"), foreground="blue")
        result_label.grid(row=3, column=0, columnspan=2, pady=10)
        
        # Model bilgileri
        model_info = f"Model Denklemi: Fiyat = {self.coefficient:.2f} × Büyüklük + {self.intercept:.2f}"
        ttk.Label(main_frame, text=model_info, font=("Arial", 10)).grid(row=4, column=0, columnspan=2, pady=10)
        
        # Grafik alanı
        self.create_plot(main_frame)
    
    def predict_price(self):
        """Fiyat tahmini yap"""
        try:
            size = float(self.size_var.get())
            
            if size <= 0:
                messagebox.showerror("Hata", "Lütfen pozitif bir değer girin!")
                return
            
            # AI modeli ile tahmin
            predicted_price = self.model.predict([[size]])[0]
            
            # Sonucu göster
            self.result_var.set(f"Tahmin Edilen Fiyat: {predicted_price:,.0f} TL")
            
        except ValueError:
            messagebox.showerror("Hata", "Lütfen geçerli bir sayı girin!")
    
    def create_plot(self, parent):
        """Model grafiğini oluştur"""
        # Matplotlib figürü
        fig, ax = plt.subplots(figsize=(6, 4))
        
        # Örnek veri noktaları
        x_range = np.linspace(50, 200, 100)
        y_range = self.model.predict(x_range.reshape(-1, 1))
        
        ax.plot(x_range, y_range, 'r-', linewidth=2, label='AI Model')
        ax.set_xlabel('Ev Büyüklüğü (m²)')
        ax.set_ylabel('Fiyat (TL)')
        ax.set_title('AI Model Tahmini')
        ax.legend()
        ax.grid(True, alpha=0.3)
        
        # Tkinter'a entegre et
        canvas = FigureCanvasTkAgg(fig, parent)
        canvas.draw()
        canvas.get_tk_widget().grid(row=5, column=0, columnspan=2, pady=20)

# Uygulamayı çalıştır
if __name__ == "__main__":
    root = tk.Tk()
    app = HousePricePredictorApp(root)
    root.mainloop()

Bu Derste Öğrendikleriniz

  • Yapay zeka, makine öğrenmesi ve derin öğrenme arasındaki farklar
  • Makine öğrenmesinin üç ana türü (denetimli, denetimsiz, pekiştirmeli)
  • Python AI kütüphanelerinin temel özellikleri
  • Basit bir AI modelinin nasıl eğitileceği ve kullanılacağı
  • AI modelini Tkinter uygulamasına nasıl entegre edeceğiniz