Derin öğrenme, son yıllarda yapay zeka alanındaki en heyecan verici gelişmelerden biri haline geldi. Bu yazıda, derin öğrenmenin temellerini ve modern mimarilere nasıl evrildiğini inceleyeceğiz.
Sinir Ağları Nedir?
Sinir ağları, insan beyninin çalışma prensiplerinden esinlenerek geliştirilmiş matematiksel modellerdir. Temel yapı taşı olan nöron, şu formülle ifade edilir:
$$y = f(\sum_{i=1}^{n} w_i x_i + b)$$
Burada:
- $x_i$: Giriş değerleri
- $w_i$: Ağırlıklar
- $b$: Bias terimi
- $f$: Aktivasyon fonksiyonu
Aktivasyon Fonksiyonları
En yaygın kullanılan aktivasyon fonksiyonları:
1. ReLU (Rectified Linear Unit)
def relu(x):
return max(0, x)
2. Sigmoid
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
3. Tanh
def tanh(x):
return np.tanh(x)
Geri Yayılım (Backpropagation)
Geri yayılım algoritması, sinir ağlarının eğitilmesinde kullanılan temel yöntemdir. Zincir kuralını kullanarak gradyanları hesaplar:
$$\frac{\partial L}{\partial w} = \frac{\partial L}{\partial y} \cdot \frac{\partial y}{\partial w}$$
Convolutional Neural Networks (CNN)
CNN’ler özellikle görüntü işleme görevlerinde başarılıdır. Temel bileşenleri:
- Konvolüsyon Katmanı: Özellik haritaları oluşturur
- Pooling Katmanı: Boyut indirgeme yapar
- Fully Connected Katmanlar: Sınıflandırma için
import torch
import torch.nn as nn
import torch.nn.functional as F
class SimpleCNN(nn.Module):
def __init__(self):
super(SimpleCNN, self).__init__()
self.conv1 = nn.Conv2d(3, 32, kernel_size=3, padding=1)
self.pool = nn.MaxPool2d(2, 2)
self.conv2 = nn.Conv2d(32, 64, kernel_size=3, padding=1)
self.fc1 = nn.Linear(64 * 8 * 8, 128)
self.fc2 = nn.Linear(128, 10)
def forward(self, x):
x = self.pool(F.relu(self.conv1(x)))
x = self.pool(F.relu(self.conv2(x)))
x = x.view(-1, 64 * 8 * 8)
x = F.relu(self.fc1(x))
x = self.fc2(x)
return x
Transformer Mimarisi
2017’de “Attention is All You Need” makalesiyle tanıtılan Transformer mimarisi, NLP alanında devrim yarattı. Temel konsept olan Self-Attention mekanizması:
$$\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$$
Multi-Head Attention
class MultiHeadAttention(nn.Module):
def __init__(self, embed_size, heads):
super(MultiHeadAttention, self).__init__()
self.embed_size = embed_size
self.heads = heads
self.head_dim = embed_size // heads
self.values = nn.Linear(self.head_dim, self.head_dim, bias=False)
self.keys = nn.Linear(self.head_dim, self.head_dim, bias=False)
self.queries = nn.Linear(self.head_dim, self.head_dim, bias=False)
self.fc_out = nn.Linear(heads * self.head_dim, embed_size)
Modern Yaklaşımlar
1. GPT (Generative Pre-trained Transformer)
- Otoregresif dil modeli
- Sadece decoder kullanır
- Büyük ölçekli ön eğitim
2. BERT (Bidirectional Encoder Representations from Transformers)
- Çift yönlü anlama
- Masked Language Modeling
- Fine-tuning için güçlü
3. Vision Transformer (ViT)
- Transformer’ları görüntü işlemeye uygulama
- Görüntüyü patch’lere bölme
- CNN’lere alternatif
Pratik İpuçları
- Learning Rate Scheduling: Eğitim sürecinde öğrenme oranını dinamik olarak ayarlayın
- Regularization: Dropout, L2 regularization kullanın
- Data Augmentation: Veri çeşitliliğini artırın
- Transfer Learning: Önceden eğitilmiş modelleri kullanın
Sonuç
Derin öğrenme, yapay zeka alanında çığır açan gelişmelere imza atmaya devam ediyor. Sinir ağlarından başlayan yolculuk, bugün Transformer’lar ve ötesinde devam ediyor. Bu temel kavramları anlamak, modern AI sistemlerini geliştirmek için kritik öneme sahip.
Kaynaklar
- Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
- Vaswani, A., et al. (2017). Attention is All You Need. NeurIPS.
- Dosovitskiy, A., et al. (2020). An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale.