İleri Yayılımın Uygulanması (Implementation of Forward Propagation)
- Kahve Kavurma Örneği (Sınıflandırma Görevi)
- Sinir Ağı Mimarisi (Neural Network Architecture)
- TensorFlow ile Uygulama (TensorFlow Implementation)
- Adım Adım İleri Yayılım (NumPy ile Uygulama)
- Yapay Genel Zeka (Artificial General Intelligence - AGI)
Kahve Kavurma Örneği (Sınıflandırma Görevi)
Kahveyi iki faktöre göre “İyi” veya “Kötü” olarak sınıflandırmak istediğimizi düşünelim:
- Sıcaklık (Temperature) (°C)
- Kavurma Süresi (Roasting Time) (dakika)
Basitlik açısından şöyle tanımlayalım:
- İyi kahve: Sıcaklık 190°C ile 210°C arasındaysa ve kavurma süresi 10 ile 15 dakika arasındaysa.
- Kötü kahve: Diğer tüm durumlar.
Aşağıdaki verileri topluyoruz:
| Sıcaklık (°C) | Kavurma Süresi (dakika) | Kalite (1 = İyi, 0 = Kötü) |
|---|---|---|
| 200 | 12 | 1 |
| 180 | 10 | 0 |
| 210 | 15 | 1 |
| 220 | 20 | 0 |
| 195 | 13 | 1 |
Yeni kahve örneklerini sınıflandırmak için TensorFlow kullanarak basit bir sinir ağı (neural network) uygulayacağız.
Sinir Ağı Mimarisi (Neural Network Architecture)
Aşağıdaki yapıyı kullanarak bir sinir ağı oluşturuyoruz:
- Giriş Katmanı (Input Layer): İki nöron (sıcaklık, süre)
- Gizli Katman (Hidden Layer): Üç nöron, sigmoid (sigmoid) fonksiyonu ile aktive edilir
- Çıktı Katmanı (Output Layer): Bir nöron, sigmoid fonksiyonu ile aktive edilir (ikili sınıflandırma - binary classification)
TensorFlow ile Uygulama (TensorFlow Implementation)
Adım 1: Kütüphaneleri İçe Aktarma
import tensorflow as tf
import numpy as np
tensorflow, sinir ağlarını tanımlamamızı ve eğitmemizi sağlayan temel derin öğrenme (deep learning) kütüphanesidir.numpy, dizileri ve sayısal işlemleri verimli bir şekilde yönetmek için kullanılır.
Adım 2: Giriş ve Çıkışları Tanımlama
X = np.array([[200, 12], [180, 10], [210, 15], [220, 20], [195, 13]], dtype=np.float32)
y = np.array([[1], [0], [1], [0], [1]], dtype=np.float32)
X, giriş özelliklerini (sıcaklık ve kavurma süresi) bir NumPy dizisi olarak temsil eder.y, beklenen çıktıyı (iyi kahve için 1, kötü kahve için 0) temsil eder.dtype=np.float32, sayısal kararlılığı ve TensorFlow ile uyumluluğu sağlar.
Adım 3: Modeli Oluşturma
model = tf.keras.Sequential([
tf.keras.layers.Dense(3, activation='sigmoid', input_shape=(2,)),
tf.keras.layers.Dense(1, activation='sigmoid')
])
Sequential()doğrusal bir katman yığını oluşturur.Dense(3, activation='sigmoid', input_shape=(2,))gizli katmanı tanımlar:- 3 nöron
- Sigmoid aktivasyon fonksiyonu (activation function)
- İki giriş özelliğimiz olduğu için (2,) şeklinde giriş boyutu.
Dense(1, activation='sigmoid'), 1 nöron ve sigmoid aktivasyonu ile çıktı katmanını tanımlar.
Adım 4: Modeli Eğitme
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(X, y, epochs=500, verbose=0)
compile()modeli eğitim için yapılandırır:adamoptimizasyon algoritması (optimizer) öğrenme hızını otomatik olarak uyarlar.binary_crossentropyikili sınıflandırma problemleri için kullanılan kayıp (loss) fonksiyonudur.accuracymetriği, modelin kahve örneklerini ne kadar iyi sınıflandırdığını takip eder.
fit(X, y, epochs=500, verbose=0)modeli 500 epoch (dönem) boyunca eğitir.
Adım 5: Tahmin Yapma
new_coffee = np.array([[205, 14]], dtype=np.float32)
prediction = model.predict(new_coffee)
print("Prediction (Probability of Good Coffee):", prediction)
new_coffee, sınıflandırılacak yeni bir örnek (205°C, 14 dk) içerir.model.predict(new_coffee)kahvenin iyi olma olasılığını hesaplar.- Çıktı bir olasılık değeridir (1’e yakın = iyi, 0’a yakın = kötü).
Adım Adım İleri Yayılım (NumPy ile Uygulama)
Şimdi TensorFlow’un perde arkasında nasıl çalıştığını anlamak için NumPy kullanarak ileri yayılımı (forward propagation) manuel olarak uyguluyoruz.
Ağırlıklar ve Bias Değerlerini Başlatma
np.random.seed(42) # Tekrarlanabilirlik için
W1 = np.random.randn(2, 4) # Gizli katman ağırlıkları (2 giriş -> 4 nöron)
b1 = np.random.randn(4) # Gizli katman bias değeri
W2 = np.random.randn(4, 1) # Çıktı katmanı ağırlıkları (4 nöron -> 1 çıktı)
b2 = np.random.randn(1) # Çıktı katmanı bias değeri
np.random.randn()ağırlıkları (weights) ve bias değerlerini (biases) normal dağılımdan rastgele başlatır.W1veb1gizli katman parametrelerini tanımlar.W2veb2çıktı katmanı parametrelerini tanımlar.
İleri Yayılım Hesaplaması
def sigmoid(z):
return 1 / (1 + np.exp(-z))
- Bu fonksiyon, 0 ile 1 arasında değerler üreten sigmoid aktivasyon fonksiyonunu uygular.
def forward_propagation(X):
Z1 = np.dot(X, W1) + b1 # Doğrusal dönüşüm (Gizli Katman)
A1 = sigmoid(Z1) # Aktivasyon fonksiyonu (Gizli Katman)
Z2 = np.dot(A1, W2) + b2 # Doğrusal dönüşüm (Çıktı Katmanı)
A2 = sigmoid(Z2) # Aktivasyon fonksiyonu (Çıktı Katmanı)
return A2
np.dot(X, W1) + b1gizli katman için girişlerin ağırlıklı toplamını hesaplar.sigmoid(Z1)doğrusal olmama (non-linearity) katmak için aktivasyon fonksiyonunu uygular.np.dot(A1, W2) + b2gizli katman çıktılarının ağırlıklı toplamını hesaplar.sigmoid(Z2)nihai tahmini üretir.
# Örnek bir giriş ile test etme
output = forward_propagation(np.array([[185, 10]]))
print(output)
Bu, TensorFlow’un ileri yayılımını salt NumPy kullanarak manuel olarak tekrarlar.
Yapay Genel Zeka (Artificial General Intelligence - AGI)
AGI, bir insanın yapabileceği her türlü entelektüel görevi yerine getirebilen yapay zekayı ifade eder. Mevcut yapay zeka sistemlerinin aksine, AGI göreve özgü eğitime ihtiyaç duymadan uyum sağlar, öğrenir ve geneller (generalize).
Günlük Hayattan Örnek: AGI ve Dar Yapay Zeka (Narrow AI)
- Dar Yapay Zeka (Mevcut Yapay Zeka): Bir satranç oynayan yapay zeka dünya şampiyonlarını yenebilir ancak araba kullanamaz.
- AGI: Eğer bir satranç oynayan yapay zeka gerçekten zeki olsaydı, açıkça programlanmaya gerek kalmadan tıpkı bir insan gibi araba kullanmayı öğrenebilirdi.
AGI’nin Temel Zorlukları
- Transfer Öğrenme (Transfer Learning): Mevcut yapay zeka büyük miktarda veriye ihtiyaç duyar. İnsanlar az sayıda örnekle öğrenir.
- Sağduyu ile Muhakeme (Common Sense Reasoning): Yapay zeka, “Bir bardağı düşürürsem kırılır” gibi basit mantıkta zorlanır.
- Kendi Kendine Öğrenme (Self-Learning): AGI, insan müdahalesine ihtiyaç duymadan kendini geliştirebilmelidir.
AGI Mümkün mü?
- Bazı bilim insanları AGI’nin onlarca yıl uzakta olduğuna inanırken, diğerleri bunun asla gerçekleşmeyebileceğini savunuyor.
- Beyinden ilham alan mimariler (Sinir Ağları gibi), AGI’ye giden yolda bir basamak olabilir.