Rosenblatt · Karar Sınırı · Ayrılabilirlik · Yakınsama
Hafta 3'te basamaklı nöron Delta ile öğrenemedi (f′ = 0). Rosenblatt'ın perceptronu türev kullanmadan öğrenir; ama garantisi yalnız doğrusal ayrılabilir problemlerde. Kapsam: hâlâ tek nöron / tek katman.
1958: ağırlıklarını kendisi ayarlayan ilk makine. Mark I ve büyük beklentiler.
Karar sınırı, net'in anlamı, güncelleme neden işe yarar?
Δw = η(d − y)x: yalnız yanılınca. Adım adım AND, ne zaman durur?
Ayrılabilirlik, yakınsama teoremi, XOR, gerçek veri (Iris).
🗺️ H3–H5 tek katman → H6 çok katmanlı ağ → H7 geri yayılım. Bugün tek katmanın sınırını çiziyoruz: neyi garanti öğrenir, neyi asla öğrenemez?
Delta: Δw = η(d − y)·f′(net)·x. Basamakta f′ = 0 → Δw hep 0: nöron hiç öğrenmez.
Widrow–Hoff: r = d − net. 4/4 doğru olsa bile d − net ≠ 0 → w değişmeye devam eder.
✅ f′ yok: türev hiç gerekmez → basamakla çalışır.
✅ Doğruysa d − y = 0: w kendiliğinden durur.
Bedeli: garanti yalnız doğrusal ayrılabilir problemlerde. Bu haftanın hikâyesi bu →
McCulloch–Pitts nöronunun (1943) ağırlıklarını biz seçiyorduk (H2). Rosenblatt, ağırlıklarını örneklerden kendisi ayarlayan bir makine önerdi.
Frank Rosenblatt (1928–1971), psikolog. Cornell Havacılık Laboratuvarı. 1957'de rapor, 1958'de Psychological Review makalesi.
Temmuz 1958, IBM 704 üzerinde benzetim: kartın solunda mı sağında mı işaret var, yaklaşık 50 denemede ayırt etmeyi öğrendi.
ABD Donanması'nın basın toplantısından sonra gazeteler, bir gün yürüyüp konuşacak, hatta kendinin farkında olacak bir bilgisayarın “embriyosu”ndan söz etti.
Beklenti çok yüksekti; sınırları 11 yıl sonra kanıtlanacaktı (Slayt 22) →
Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, 65(6), 386–408.
Öğrenme, elektrik motorlarının potansiyometre düğmelerini çevirmesiydi: bugünkü Δw'nin donanımı.
S→A bağlantıları rastgele ve sabit; ayarlanan yalnız A→R ağırlıkları. Yani bu haftanın tek katmanlı perceptronu.
İlk halka açık gösterisi 1960'ta yapıldı. Makine bugün Smithsonian koleksiyonunda (Washington).
Çıktı yalnız iki değer alır: ±1 (bipolar) ya da 0/1 (unipolar). Arası yok. H5'te aynı yapı f = σ ile: sürekli perceptron.
Nokta tam sınırın üstünde. Bu derste sgn(0) = +1 kabul ediyoruz (H3 animasyonlarındaki gibi).
x = (x₁, …, xₙ, 1), w = (w₁, …, wₙ, b) → net = wᵀx. Sondaki 1 bias girişi (H3).
| çıktı kodlaması | f | y değerleri | d − y değerleri |
|---|---|---|---|
| bipolar (bu hafta) | sgn | −1, +1 | 0, ±2 |
| unipolar | basamak | 0, 1 | 0, ±1 |
Hafta 2: bir nöron = bir karar doğrusu (w doğruya dik, b kaydırır). Bugün bir adım öte: net sayısı neyi ölçüyor?
🔈 okunuş: ‖w‖ “w'nin normu”: uzunluğu, √(w₁² + w₂²); H3'te |w| yazdık·⟂ “diktir”
Sınırdan iki nokta p, q: wᵀp + b = 0 = wᵀq + b ⇒ wᵀ(p − q) = 0. Yani w, sınır boyunca her yöne dik.
net > 0: w'nin gösterdiği taraf (+1). |net| büyüdükçe nokta sınırdan uzaklaşır.
w ve b'yi 2 ile çarp: sınır aynı, net 2 katı. sgn ölçeğe bakmaz: karar değişmez.
Son gözlem, perceptron'da η'nın neden önemsiz olabildiğini açıklayacak (Slayt 14). Önce elle deneyelim →
sarı = sınır · mavi ok = w · mor nokta = x (sürükle!) · kesikli = uzaklık
Dene: ölçeği değiştir → sınır yerinde kalır, net büyür ya da küçülür, uzaklık aynı. Kaymayı değiştir → b değişir, sınır kendine paralel kayar.
| d (hedef) | y (çıktı) | d − y | Δw | ne olur? |
|---|---|---|---|---|
| +1 | +1 | 0 | 0 | doğru → dokunma |
| −1 | −1 | 0 | 0 | doğru → dokunma |
| +1 | −1 | +2 | +2η·x | net çok küçüktü → x'i w'ye ekle |
| −1 | +1 | −2 | −2η·x | net çok büyüktü → x'i w'den çıkar |
H3'teki kalıp: Δw = η·r·x. Perceptron'da r = d − y: Widrow–Hoff'un d − net'i yerine basamaklı çıktı. Türetilmedi, Rosenblatt'ın sezgisi; ama yakınsaması kanıtlı (Slayt 19).
● +1 · ○ −1 · kırmızı halka = yanlış · pembe ok = d·x · kesikli = önceki w
Sadelik için bias yok (sınır orijinden geçer), η = 0.5 → yanlışta w ← w + d·x. Her düzeltme o örneğin net'ini doğru yöne ‖x‖² kadar iter; ama başka bir örneği bozabilir → bu yüzden epoch'larca döneriz.
Bipolar AND, w₀ = [0, 0, 0], η = 0.5 → yanlışta Δw = η(d − y)x = ±x. sgn(0) = +1.
| ① ileri geçiş: hesapla | ② öğrenme: yalnız yanılınca | ||||||
|---|---|---|---|---|---|---|---|
| Adım | x → d | mevcut w | net | y | d − y | Δw | yeni w |
| 1 | (1, 1) → +1 | [0, 0, 0] | 0 | +1 | 0 | — doğru | [0, 0, 0] |
| 2 | (1, −1) → −1 | [0, 0, 0] | 0 | +1 | −2 | [−1, 1, −1] | [−1, 1, −1] |
| 3 | (−1, 1) → −1 | [−1, 1, −1] | 1 + 1 − 1 = 1 | +1 | −2 | [1, −1, −1] | [0, 0, −2] |
| 4 | (−1, −1) → −1 | [0, 0, −2] | −2 | −1 | 0 | — doğru | [0, 0, −2] |
| 5 | (1, 1) → +1 | [0, 0, −2] | −2 | −1 | +2 | [1, 1, 1] | [1, 1, −1] |
| 6–8 | diğer üçü | [1, 1, −1] | −1, −1, −3 | −1 | 0 | — doğru | [1, 1, −1] |
| 9–12 | epoch 3: dördü de doğru → hiç güncelleme yok → DUR | ||||||
Sonuç: w = [1, 1, −1] → x₁ + x₂ − 1 = 0: yalnız (1, 1) pozitif tarafta. 3 güncelleme; 5. adımdan sonra w'ye hiç dokunulmadı.
● hedef +1 · ○ hedef −1 · sarı halka = sıradaki · kırmızı halka = yanlış · kesikli = önceki doğru
Önceki slaytın canlı hâli: bipolar AND, η = 0.5, w₀ = 0. Doğru örnekte d − y = 0 → dokunmaz; bir epoch boyunca hiç yanılmazsa durur.
w = sıfır_vektör() # ya da küçük rastgele
for epoch in range(max_epoch): # güvenlik sınırı
hata = 0
for x, d in veri: # x'in sonunda 1 → bias dahil
y = sgn(w @ x)
if y != d: # yalnız yanılınca
w = w + eta * (d - y) * x
hata += 1
if hata == 0: break # bir tur hatasız → DUR
Hatasız bir epoch'ta Δw = 0: devam etmenin anlamı yok. Widrow–Hoff'ta durma kriterini biz seçiyorduk (E < ε ya da N epoch).
Veri ayrılamıyorsa “hatasız tur” hiç gelmez → sonsuz döngü. Sınır koymak şart (Slayt 18).
Yanlışta d − y = 2d olduğundan Δw = 2η·d·x. η = 1/2 ile ders kitaplarındaki biçim: w ← w + d·x.
Bipolar AND, w₀ = [0, 0, 0]
| η | güncelleme | ilk 4/4 | son w | sınır |
|---|---|---|---|---|
| 0.1 | 3 | 5. adım | [0.2, 0.2, −0.2] | x₁ + x₂ = 1 |
| 0.5 | 3 | 5. adım | [1, 1, −1] | x₁ + x₂ = 1 |
| 1 | 3 | 5. adım | [2, 2, −2] | x₁ + x₂ = 1 |
| 5 | 3 | 5. adım | [10, 10, −10] | x₁ + x₂ = 1 |
w₀ = 0 ise her w, η = 1 koşusunun tam η katı. sgn ölçeğe bakmaz (Slayt 7): aynı kararlar, aynı sınır.
w₀ = [0.5, −0.3, 0.2] ile η = 0.1 → 2, η = 0.5 → 4 güncelleme: η, başlangıcın ağırlığını belirler.
Widrow–Hoff η > 2'de ıraksıyordu (H3). Perceptron'da w₀ = 0 iken η ne hızlandırır ne ıraksatır.
Üçü de Δw = η·r·x kalıbında (H3); fark yalnız r'de. Bipolar AND, w₀ = 0, 400 adım:
| kural | r | η | ilk 4/4 | 4/4'ten sonra | 400. adımda w | güncelleme |
|---|---|---|---|---|---|---|
| Hebb (denetimli uyarlama) | d | 0.5 | 3. adım | büyümeye devam | [100, 100, −100] | 400 |
| Widrow–Hoff | d − net | 0.1 | 3. adım | yakınsar ama durmaz | [0.47, 0.44, −0.50] | 400 |
| Perceptron | d − y | 0.5 | 5. adım | DURUR | [1, 1, −1] | 3 |
r = d hiç 0 olmaz → doğruyken de büyür, w sınırsız uzar (yön doğru ama).
r = d − net yalnız net = d iken 0 → sonsuza kadar küçük düzeltmeler.
r = d − y doğruyken tam 0 → üç dokunuş ve bitti.
Perceptron'un bedeli: “en iyi” sınırı değil, ilk bulduğu ayırıcı sınırı verir; sınır bir örneğe çok yakın geçebilir (marj: Slayt 21).
🔈 okunuş: ∃ “vardır” (en az bir tane)·∀ “her … için”·dᵢ “d i”: i. örneğin hedefi
d = +1 ise net > 0, d = −1 ise net < 0 olmalı. İki koşul tek eşitsizlikte: doğru taraf.
2 girdide doğru, 3'te düzlem, n'de hiperdüzlem (H2). Tanım değişmez: uzayı ikiye bölen bir w, b var mı?
16 olası mantık fonksiyonunun 14'ü ayrılabilir; yalnız XOR ve XNOR değil.
Hafta 2'de XOR'u kaba kuvvetle denemiştik: 15.625 kombinasyonun en iyisi 3/4. Şimdi bunun şans değil, zorunluluk olduğunu kanıtlayalım →
0/1 girdiler, y = 1 ⇔ net ≥ 0. XOR'u veren w₁, w₂, b olsaydı dört koşul aynı anda sağlanmalıydı:
| girdi | XOR | koşul | |
|---|---|---|---|
| (0, 0) | 0 | b < 0 | (1) |
| (1, 1) | 0 | w₁ + w₂ + b < 0 | (2) |
| (1, 0) | 1 | w₁ + b ≥ 0 | (3) |
| (0, 1) | 1 | w₂ + b ≥ 0 | (4) |
Hiçbir w₁, w₂, b XOR'u veremez. ∎ Hafta 2'deki 3/4 tavanı şanssızlık değil, matematik.
🔈 okunuş: ∎ “ispat bitti”·⇔ “ancak ve ancak”: iki yönlü “ise”
● hedef +1 · ○ hedef −1 · sarı halka = sıradaki · kırmızı halka = yanlış · kesikli = önceki doğru
Bipolar XOR, aynı ayarlar (η = 0.5, w₀ = 0). 4 adım sonra w yine [0, 0, 0]: aynı dört adım sonsuza kadar tekrar eder. Ayrılamayan veride perceptron hiç durmaz → max_epoch şart.
🔈 okunuş: γ “gama”: marj·w* “w yıldız”: ideal ayırıcı·R: en uzun girdi
En uzun girdinin boyu; bias girişi 1 dahil: x = (x₁, x₂, 1).
İdeal sınırın en yakın örneğe uzaklığı: sınıflar arası boşluk.
Ayrılabilirse sonlu sayıda güncellemede durur; η'dan bağımsız (w₀ = 0).
| veri | R | γ | sınır (R/γ)² | gerçek güncelleme |
|---|---|---|---|---|
| AND (bipolar, Slayt 11) | √3 ≈ 1.73 | 1/√3 ≈ 0.58 | 9 | 3 |
| Iris setosa / versicolor (cm) | ≈ 8.52 | ≈ 0.43 | ≈ 390 | 10 |
Sınır kötümser ama sonlu: durma garantisi (Novikoff, 1962). γ küçüldükçe sınır büyür (Slayt 21).
η = 1 alalım (w₀ = 0 iken η yalnız ölçek). k. hatada w ← w + d·x; hata anında d·wᵀx ≤ 0 (yanlış taraf).
Her hata w'yi w*'ın yönüne en az γ yaklaştırır.
Hata anında orta terim ≤ 0: w'nin boyu yavaş uzar.
Orta adım: iki vektörün çarpımı boylarının çarpımını aşamaz (‖w*‖ = 1).
Sezgi: w, w*'a doğrusal hızla yaklaşırken boyu yalnız karekök hızla uzuyor. İkisinin oranı (aradaki açının kosinüsü) 1'i aşamayacağı için hata sayısı sınırlı.
yeşil kesikli = ideal sınır w* ve marj bandı · sarı = perceptron'un bulduğu
Her kaydırmada perceptron w₀ = 0'dan baştan eğitilir (30 nokta). Boşluk küçüldükçe sınır (R/γ)² hızla büyür; 0'ın altına inince sınıflar iç içe geçer: ayrılamaz → durmaz.
Marvin Minsky ve Seymour Papert (MIT), 1969. Tek katmanlı perceptronun neleri hesaplayamayacağını kanıtladılar: XOR, parite (eşlik), bağlantılılık.
Kitap “perceptron'un sonu” diye okundu; fonlar sembolik yapay zekâya kaydı. Sinir ağları ~15 yıl gölgede kaldı (1970'ler: ilk “YZ kışı”).
Çok katmanlı ağların bu problemleri çözebildiği biliniyordu (H2'de XOR'u 2 katmanla çözdük). Eksik olan, gizli katmanı eğitecek bir kuraldı → geri yayılım, 1986 H7
Bugün çizdiğimiz sınır tam bu: tek katman neyi garanti öğrenir, neyi asla öğrenemez? Sınırı aşmanın bir yolu: boyut eklemek →
Minsky, M. & Papert, S. (1969). Perceptrons: An Introduction to Computational Geometry. MIT Press.
● hedef +1 · ○ hedef −1 · fareyle sürükle: döndür
| x₁ | x₂ | x₃ = x₁·x₂ | XOR (d) | net = −x₃ |
|---|---|---|---|---|
| 1 | 1 | 1 | −1 | −1 ✓ |
| 1 | −1 | −1 | +1 | +1 ✓ |
| −1 | 1 | −1 | +1 | +1 ✓ |
| −1 | −1 | 1 | −1 | −1 ✓ |
Doğru öznitelik eklenince XOR ayrılabilir olur. RBF ağları bu fikri sistematik kullanır H10; gizli katman ise öznitelikleri kendisi öğrenir H6–H7
renkli bölge = argmax kararı · kırmızı halka = yanlış · sarı halka = sıradaki
🔈 okunuş: argmax “argmaks”: en büyük değeri veren k·+= “üstüne ekle”
3 sınıf × (w₁, w₂, b). Yanlışta doğru sınıfın w'si x'e yaklaşır, yanlış kazananınki uzaklaşır. Bölgelerin sınırları yine doğrusal; 2 sınıfta bu, bildiğimiz perceptron kuralına iner.
Fisher'ın (1936) ünlü verisi: 150 çiçek, 3 tür, 4 ölçüm (cm). Burada 2 tür × 50 çiçek, 2 ölçüm; η = 0.1, w₀ = 0. Varsayılan ayar, sonraki slayttaki kodla aynı.
import torch
from sklearn.datasets import load_iris
iris = load_iris()
X = torch.tensor(iris.data[:100, [0, 2]], dtype=torch.float32) # sepal ve petal uzunluğu (cm)
d = torch.tensor([-1.] * 50 + [1.] * 50) # setosa −1, versicolor +1
w, b, eta = torch.zeros(2), torch.tensor(0.), 0.1
for epoch in range(1, 21): # max_epoch = 20
hata = 0
for x, t in zip(X, d):
y = 1. if w @ x + b >= 0 else -1. # sgn(0) = +1
if y != t: # yalnız yanılınca
w = w + eta * (t - y) * x
b = b + eta * (t - y)
hata += 1
print(epoch, hata)
if hata == 0: break # bir tur hatasız → DUR
# 1 2 | 2 2 | 3 3 | 4 2 | 5 1 | 6 0
print(w, b) # tensor([-0.6800, 1.8200]) tensor(-0.4000)
Önceki slayttaki canlı demonun varsayılan
ayarıyla birebir aynı sayılar: 2, 2, 3, 2, 1, 0. Hazır sürümü de var:
sklearn.linear_model.Perceptron.
Versicolor/virginica ayrılamaz: en iyi doğru bile 3 hata yapar. Perceptron durmaz; epoch sonundaki w 4 ile 50 hata arasında zıplar: son w'ye güvenilmez.
Şimdiye kadarki en iyi w'yi cebinde sakla, sonunda onu döndür. 60 epoch'ta cep: 4 hata.
Sınıflar blok hâlinde gelirse son güncellemeler sınırı tek sınıfa yatırır: cep ancak 14 hataya iner → veriyi karıştır.
versicolor / virginica, petal ölçüleri, ham, η = 0.1. Canlısı: Slayt 25.
Gallant, S. I. (1990). Perceptron-based learning algorithms. IEEE Transactions on Neural Networks, 1(2), 179–191.
| Perceptron | Widrow–Hoff (LMS) | Delta | |
|---|---|---|---|
| Yıl | 1958 | 1960 | 1986 |
| Çıktı | sgn: ayrık ±1 | net: doğrusal | σ: sürekli (0, 1) |
| r | d − y | d − net | (d − y)·f′(net) |
| Türev | yok | ∂E/∂w (f′ = 1) | ∂E/∂w (zincir kuralı) |
| Doğruyken | durur (r = 0) | iter | çok az iter |
| Ayrılabilir veride | sonlu adımda ayırır (teorem) | ayırmayı garanti etmez | ayırmayı garanti etmez |
| Ayrılamaz veride | durmaz → pocket | en küçük kareler çözümüne yakınsar | hatanın bir minimumuna yakınsar |
Perceptron sınıflandırma odaklı, Widrow–Hoff ve Delta hata odaklı. H5'te ikisinin iyi yanlarını birleştiren sürekli perceptronu göreceğiz.
✅ Rosenblatt (1958): ağırlıklarını örneklerden ayarlayan ilk makine
✅ Model: y = sgn(wᵀx + b); net = ‖w‖ × sınıra
işaretli uzaklık
✅ Kural: Δw = η(d − y)x: yalnız yanılınca,
türevsiz
✅ Hatasız bir epoch → kendiliğinden durur; w₀ = 0 iken η önemsiz
✅ Ayrılabilirlik: ∃w, b: dᵢ(wᵀxᵢ + b) > 0; XOR ayrılamaz (ispat)
✅ Yakınsama: güncelleme ≤ (R/γ)²; marj küçüldükçe zorlaşır
✅ Ayrılamazsa durmaz → max_epoch, pocket, veriyi karıştır
✅ Çıkış yolu: öznitelik ekle (x₁x₂) ya da gizli katman → H6–H7
🗺️ Hâlâ tek katman. H5: basamağın yerine σ, yani türevli ve “ne kadar emin” diyen perceptron.
1 · OR'u elle çalıştır. Bipolar OR, w₀ = 0, η = 0.5. Hangi adımlarda güncelleme oldu? Sonunda w = [1, 1, 1] çıkmalı (3 güncelleme).
2 · XOR döngüsü. Slayt 26'deki kodu bipolar XOR'a uyarla; her adımda w'yi yazdır. Kaçıncı adımda w = [0, 0, 0]'a döndü?
3 · η deneyi. AND'de w₀ = 0 ve w₀ = [0.5, −0.3, 0.2] için η = 0.1, 1, 5 dene. Güncelleme sayıları neden yalnız birinde hep aynı?
4 · Iris + pocket. Versicolor/virginica (petal ölçüleri) için cepli perceptron yaz. Sıralı ve karıştırılmış veride cepteki hatayı karşılaştır.
İpucu: XOR için X = [[1, 1], [1, −1], [−1, 1], [−1, −1]], d = [−1, 1, 1, −1].
Basamağın yerine σ: çıktı artık 0–1 arası bir “güven”. Delta kuralı sınıflandırmaya döner; ayrılamayan veride de anlamlı bir en iyi tanımlanır. Hâlâ tek katman; çok katmana H6'da, geri yayılıma H7'de geçeceğiz.