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
1950Alan Turing
Turing Testi'ni önerdi. "Makineler düşünebilir mi?" sorusunu gündeme getirdi.
1956Dartmouth Konferansı
John McCarthy "Artificial Intelligence" terimini ilk kez kullandı. AI'ın doğuş yılı kabul edilir.
1980-1990Uzman 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 makineleriDerin Öğ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)
Özellik Yapay Zeka Makine Öğrenmesi Derin Öğrenme Kapsam En geniş AI'ın alt kümesi ML'nin alt kümesi Veri Gereksinimi Değişken Orta-Yüksek Çok Yüksek Hesaplama Gücü Değişken Orta Çok Yüksek Özellik Çıkarımı Manuel Kısmen Manuel Otomatik 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 numpyPandas
Veri manipülasyonu ve analizi için güçlü araçlar. CSV, Excel dosyalarını okuma/yazma.
pip install pandasMatplotlib
Veri görselleştirme kütüphanesi. Grafikler, çizimler ve plotlar oluşturma.
pip install matplotlibScikit-learn
Makine öğrenmesi algoritmaları için kapsamlı kütüphane. Başlangıç için ideal.
pip install scikit-learnTensorFlow
Google'ın derin öğrenme kütüphanesi. Büyük ölçekli sinir ağları için.
pip install tensorflowPyTorch
Facebook'un derin öğrenme kütüphanesi. Araştırma ve geliştirme için popüler.
pip install torchBasit 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ı
1Veri Hazırlama
Sentetik ev verisi oluşturuyoruz. Gerçek projede bu veri CSV dosyasından veya veritabanından gelir.
2Veri Bölme
Veriyi %80 eğitim, %20 test olarak ayırıyoruz. Bu, modelin genelleme yeteneğini test etmek için önemli.
3Model Eğitimi
Doğrusal regresyon modeli eğitim verisi ile öğrenir. En iyi doğruyu bulmaya çalışır.
4Değ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