GorselRotasi
Kayıtlı Üye
Yapay zekâ programlamak, bilgisayara yalnızca sabit kurallar yazmak yerine verilerden örüntü öğrenen bir model hazırlamaktır. Başlangıç için en anlaşılır yol; Python ile bir problem seçmek, veriyi hazırlamak, modeli eğitmek, daha önce görmediği verilerle denemek ve sonucu ölçmektir. Örneğin bir modelin bir sayının belirli bir sınıfa ait olup olmadığını tahmin etmesini sağlayabilirsiniz. Daha büyük projelerde aynı temel akış; görüntü, metin, ses veya öneri sistemleri için daha gelişmiş modellerle uygulanır.
“Yapay zekâ” tek bir program türü değildir. Sabit kurallarla çalışan bir uygulama yapıyorsanız bu klasik programlamadır. Veriden tahmin yapan bir sistem geliştiriyorsanız makine öğrenmesi; metin, görüntü veya ses gibi karmaşık verilerle çalışan çok katmanlı modeller kullanıyorsanız derin öğrenme söz konusu olabilir.
İlk proje için hedefi ölçülebilir seçin: “E-postanın istenmeyen olup olmadığını tahmin etsin” veya “Çiçek ölçülerine göre türü tahmin etsin” gibi. “İnsan gibi düşünsün” ölçülebilir bir hedef olmadığı için başlangıçta iyi bir programlama hedefi değildir.
Aşağıdaki örnek, Python ve scikit-learn kullanarak sayısal özelliklerden sınıf tahmini yapan basit bir model kurar. Veri kümesi örnek amaçlıdır; gerçek bir uygulamada verileri dosyadan veya güvenilir bir veri kaynağından almanız gerekir.
Ön koşul olarak Python kurulumu ve komut satırına erişim gerekir. Yeni bir klasör oluşturup terminalde şu paketi kurun:
Ardından aynı klasörde
Programı çalıştırın:
Beklenen sonuçta bir doğruluk değeri ve iki tahmin görünür.
Test doğruluğu, modelin ayırdığınız test örneklerinde kaç tahmini doğru yaptığını gösterir. Test verisi eğitim sırasında kullanılmışsa yüksek doğruluk yanıltıcı olabilir; model yeni örnekleri öğrenmek yerine eğitim verilerini ezberlemiş olabilir. Bu duruma aşırı öğrenme denir.
Gerçek bir projede yalnızca doğruluk değerine bakmayın. Sınıflar dengesizse kesinlik, duyarlılık veya F1 skoru daha anlamlı olabilir. Örneğin hastalık tespitinde “hasta” örneklerini kaçırmamak, yalnızca toplam doğru tahmin oranını yükseltmekten daha önemli olabilir.
Bir sohbet uygulamasına istek gönderip yanıt almak, hazır bir modeli kullanmaktır; bu yöntemde modelin iç yapısını siz eğitmezsiniz. Kendi sınıflandırma modelinizi verilerle
Başlangıç için küçük, ölçülebilir ve temiz bir veri kümesiyle çalışın. Model beklenenden kötü sonuç verirse hemen daha büyük veya daha karmaşık bir modele geçmek yerine önce veriyi, etiketleri, test ayırma yöntemini ve seçtiğiniz başarı ölçütünü inceleyin.
Önce hangi tür yapay zekâ istediğinizi belirleyin
“Yapay zekâ” tek bir program türü değildir. Sabit kurallarla çalışan bir uygulama yapıyorsanız bu klasik programlamadır. Veriden tahmin yapan bir sistem geliştiriyorsanız makine öğrenmesi; metin, görüntü veya ses gibi karmaşık verilerle çalışan çok katmanlı modeller kullanıyorsanız derin öğrenme söz konusu olabilir.
İlk proje için hedefi ölçülebilir seçin: “E-postanın istenmeyen olup olmadığını tahmin etsin” veya “Çiçek ölçülerine göre türü tahmin etsin” gibi. “İnsan gibi düşünsün” ölçülebilir bir hedef olmadığı için başlangıçta iyi bir programlama hedefi değildir.
En küçük çalışan örnek: sınıflandırma modeli
Aşağıdaki örnek, Python ve scikit-learn kullanarak sayısal özelliklerden sınıf tahmini yapan basit bir model kurar. Veri kümesi örnek amaçlıdır; gerçek bir uygulamada verileri dosyadan veya güvenilir bir veri kaynağından almanız gerekir.
Ön koşul olarak Python kurulumu ve komut satırına erişim gerekir. Yeni bir klasör oluşturup terminalde şu paketi kurun:
Kod:
python -m pip install scikit-learn
Ardından aynı klasörde
yapay_zeka.py adlı bir dosya oluşturun ve aşağıdaki kodu ekleyin:
Python:
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# Her satır iki özelliği, örneğin uzunluk ve genişliği temsil eder.
X = [
[1, 1], [1, 2], [2, 1], [2, 2],
[8, 8], [8, 9], [9, 8], [9, 9]
]
# 0 ve 1, modelin öğreneceği iki sınıftır.
y = [0, 0, 0, 0, 1, 1, 1, 1]
X_egitim, X_test, y_egitim, y_test = train_test_split(
X, y, test_size=0.25, random_state=42
)
model = DecisionTreeClassifier(random_state=42)
model.fit(X_egitim, y_egitim)
tahminler = model.predict(X_test)
dogruluk = accuracy_score(y_test, tahminler)
print(f"Test doğruluğu: {dogruluk:.2f}")
print("[3, 3] için tahmin:", model.predict([[3, 3]])[0])
print("[8, 7] için tahmin:", model.predict([[8, 7]])[0])
Programı çalıştırın:
Kod:
python yapay_zeka.py
Beklenen sonuçta bir doğruluk değeri ve iki tahmin görünür.
model.fit() eğitim verilerindeki örneklerden ilişki öğrenir; model.predict() ise yeni girdiler için sınıf üretir. Bu örnekte küçük ve yapay bir veri kümesi kullanıldığı için sonuç gerçek dünyadaki başarıyı kanıtlamaz.Model sonucunu doğru yorumlayın
Test doğruluğu, modelin ayırdığınız test örneklerinde kaç tahmini doğru yaptığını gösterir. Test verisi eğitim sırasında kullanılmışsa yüksek doğruluk yanıltıcı olabilir; model yeni örnekleri öğrenmek yerine eğitim verilerini ezberlemiş olabilir. Bu duruma aşırı öğrenme denir.
Gerçek bir projede yalnızca doğruluk değerine bakmayın. Sınıflar dengesizse kesinlik, duyarlılık veya F1 skoru daha anlamlı olabilir. Örneğin hastalık tespitinde “hasta” örneklerini kaçırmamak, yalnızca toplam doğru tahmin oranını yükseltmekten daha önemli olabilir.
Gerçek bir yapay zekâ projesinin çalışma sırası
- Problemi ve başarı ölçütünü tanımlayın. Modelin hangi girdiden hangi çıktıyı üretmesini istediğinizi ve kabul edilebilir hata oranını yazın.
- Veriyi toplayın ve temizleyin. Eksik, hatalı, tekrarlı veya kişisel bilgiler içeren verileri kontrol edin. Verinin temsil ettiği gerçek durumları yeterince kapsaması gerekir.
- Veriyi eğitim ve test bölümlerine ayırın. Test bölümünü eğitim sırasında kullanmayın; aksi hâlde ölçüm gerçeği olduğundan iyi gösterebilir.
- Uygun modeli seçip eğitin. Basit sınıflandırma için karar ağacı veya benzeri modeller yeterli olabilir. Görüntü ve dil gibi karmaşık verilerde farklı model türleri gerekebilir.
- Modeli daha önce görmediği verilerle değerlendirin. Ölçüm sonucunu problem açısından yorumlayın; yüksek skorun veri hatalarını veya önyargıyı gizleyip gizlemediğini kontrol edin.
- Yeni girdilerle kontrollü deneme yapın. Beklenmeyen sonuçlarda önce girdi biçimini, veri dağılımını ve etiketlerin doğruluğunu inceleyin.
- Kullanıma almadan önce güvenlik ve gizlilik kontrollerini tamamlayın. Kişisel veya hassas verileri gereksiz yere kaydetmeyin; model çıktısını insan denetimi gerektiren kararların tek dayanağı yapmayın.
Hazır yapay zekâ kullanmak ile model eğitmek arasındaki fark
Bir sohbet uygulamasına istek gönderip yanıt almak, hazır bir modeli kullanmaktır; bu yöntemde modelin iç yapısını siz eğitmezsiniz. Kendi sınıflandırma modelinizi verilerle
fit() çağrısı kullanarak oluşturmak ise model eğitmektir. Başlangıçta hazır bir modeli doğru girdilerle kullanmak daha hızlı olabilir; özel veri, özel tahmin veya tam denetim gerektiğinde kendi modelinizi eğitmeniz anlamlı hâle gelir.Başlangıç için küçük, ölçülebilir ve temiz bir veri kümesiyle çalışın. Model beklenenden kötü sonuç verirse hemen daha büyük veya daha karmaşık bir modele geçmek yerine önce veriyi, etiketleri, test ayırma yöntemini ve seçtiğiniz başarı ölçütünü inceleyin.