---
title: 'Yapay Zekâ ve Makine Öğrenmesi Mühendisliği Farkı'
source: 'https://academia.sh/tr/kurslar/yz-muhendisligine-giris/yapay-zeka-ve-makine-ogrenmesi-muhendisligi-farki'
course: 'Yapay Zekâ Mühendisliğine Giriş'
language: tr
updated: '2026-08-17T18:06:36+00:00'
license: 'CC BY-SA 4.0'
---

# Yapay Zekâ ve Makine Öğrenmesi Mühendisliği Farkı

Sorumluluk sınırının ayar sayısıyla ölçülmesi: aynı destek talebi probleminde eğiten yaklaşımın dört ayarından üçü, kullanan yaklaşımın beş ayarından dördü sayıyı 0,0200'den fazla oynatıyor. Eğiten yaklaşım 48 etiketli örnek istiyor ve 0,9861'e çıkıyor, kullanan yaklaşım sıfır etiketli örnekle 0,8056 veriyor. İki ayar listesinin hiçbir maddesi ortak değil. Yeniden deneme sayıyı 0,0000 oynatıp bir çağrı ve 51 belirteç ekliyor, elde olmayan tohum ise sayıyı 0,1250 düşürüyor.

Önceki ders modeli hiç değiştirmeden sayıyı 0,6000'den 0,7750'ye çıkardı. Bütün kazanç modelin
dışından geldi. Önceki müfredatta bunun tersi olurdu: kazanç modelin içinden gelir, dışarısı sabit
tutulurdu. İki yaklaşım aynı destek talebi problemini çözebilir, ama ellerinde tuttukları şey aynı
değildir.

Bu ders o farkı bir sayıya bağlar. İki yaklaşım aynı 72 kayıtlık sınama kümesinde koşturulur ve
her birinin **elinde olan ayar** tek tek çevrilir. Ölçülen şey hangisinin daha iyi olduğu değil,
**hangi kararın kimde olduğudur**: kaç ayar var, kaçı sayıyı gerçekten oynatıyor, ve elde olmayan
neyin ne kadar oynattığı.

- **YA9.** Kurgu ve benzetici önceki dersten aynen sürer: 120 kurgu destek talebi, beş konu, tohum
  **20260218**. Eğitim kümesi ilk 48 kayıt, sınama kümesi kalan **72 kayıttır**. İki yaklaşım da
  aynı sınama kümesinde okunur.
- **YA10.** Eğiten yaklaşımın modeli bir **sayım tablosudur**: eğitim kümesindeki her belirtecin
  hangi konuda kaç kez geçtiğini tutar ve toplam kanıtı en yüksek konuyu söyler. Öğrenen bir
  yordamdır ve ağırlıkları eğitimle belirlenir.
- **YA11.** M27'nin denetimli öğrenme kursu ayar değişkenlerini (derinlik, en az yaprak, sınıf
  ağırlığı, ayar bütçesi) ölçtü. O yordam burada **tekrarlanmaz**; burada yalnız **ayarın kimde
  olduğu** sayılır.
- **YA12.** Kullanan yaklaşım benzeticiyi çağırır ve modelin içine hiç dokunmaz. Sayım tablosu
  kurmaz, etiketli örnek görmez.
- **YA13.** Bir ayarın "sayıyı oynattığı", iki ucu arasındaki isabet farkının mutlak değerinin
  **0,0200'den büyük** olması demektir. Eşik bir karardır ve sabit tutulur.
- **YA14.** Tohum bir ayar değildir; benzeticinin **belirsizliğinin ölçüsüdür**. Tabloya elde
  olmayanın ne kadar oynattığını göstermek için konur.
- **YA15.** Bedel sütunları yalnız kullanan yaklaşımda vardır, çünkü eğiten yaklaşımın bedeli
  çağrı ve belirteç değil **etiketli örnektir**. İki bedel birimi birbirine çevrilmez.

## Eğiten Yaklaşımın Elindeki Ayarlar

Eğiten yaklaşımda model senin ürettiğin nesnedir. Elindeki ayarlar onun içine bakar: hangi veriyle
kurulacağı, hangi birimle sayacağı, hangi kanıtı görmezden geleceği, seyrek gözlemi nasıl
yumuşatacağı. Aşağıdaki blok benzeticiyi ve kurguyu kurar, sonra öğrenen yordamı yazıp dört ayarı
iki uçta çevirir.

```python
# BENZETICI. Bu kod gercek bir model uc noktasi cagirmaz; standart kitaplikla yazilmis
# bir dil modeli benzeticisidir. Destek talepleri de KURGU'dur.
import math

TOHUM, M32 = 20260218, 0xFFFFFFFF
PENCERE, EN_UZUN = 240, 24


def uretec(t):
    x = ((t ^ (t >> 16)) * 2246822507) & M32
    x = ((x ^ (x >> 13)) * 3266489909) & M32
    s = [(x ^ (x >> 16)) & M32]

    def sonraki():
        s[0] = (s[0] * 1664525 + 1013904223) & M32
        return s[0] / 4294967296
    return sonraki


def ayrik(u, w):
    t = 0.0
    for i, x in enumerate(w):
        t += x
        if u < t:
            return i
    return len(w) - 1


def belirtecle(m):
    b = []
    for s in m.lower().replace(",", " , ").split():
        while len(s) > 5:
            b.append(s[:5])
            s = s[5:]
        b.append(s)
    return b


def izno(m):
    h = 2166136261
    for c in m:
        h = ((h ^ ord(c)) * 16777619) & M32
    return h


KONU = ["fatura", "ariza", "sayac", "tarife", "kesinti"]
KALIP = {
    "fatura": ["bu ayki fatura tutari gecen aya gore cok yuksek geldi",
               "faturami odedim ama sistemde borc gorunuyor",
               "fatura ayrintisini nereden gorebilirim"],
    "ariza": ["evde su akmiyor bir ariza var galiba",
              "baglanti bozuk oldu ve hic calismiyor",
              "ariza kaydi actim ama ekip gelmedi"],
    "sayac": ["sayac okumasi yanlis girilmis endeks tutmuyor",
              "sayac degisimi icin randevu istiyorum",
              "sayac uzerindeki endeks ile fatura ayni degil"],
    "tarife": ["hangi tarife basamagindayim ogrenmek istiyorum",
               "tarife degisikligi icin ne yapmam gerekiyor",
               "birim ucret abone tipine gore degisiyor mu"],
    "kesinti": ["mahallede kesinti var ne zaman gelecek",
                "planli kesinti duyurusu nereden takip edilir",
                "aksamdan beri kesinti yasiyoruz"],
}
EK = ["ayrica gecen ay da ayni sorun olmustu", "bu konuda memnun degilim",
      "acil bilgi almam gerekiyor", "kayit numaram elimde yok"]

TALEP = []
for i in range(120):
    r = uretec(TOHUM + i)
    k = KONU[ayrik(r(), [0.24, 0.22, 0.18, 0.20, 0.16])]
    m = KALIP[k][int(r() * 3)]
    if r() < 0.34:
        m += " " + EK[int(r() * 4)]
    TALEP.append({"no": 4001 + i, "metin": m, "konu": k})

KAVRAM = KONU + ["odeme", "sikayet", "bilgi", "genel"]
IZ = {"fatur": "fatura", "tutar": "fatura", "ayrin": "fatura",
      "ariza": "ariza", "bozuk": "ariza", "calis": "ariza", "akmiy": "ariza",
      "sayac": "sayac", "endek": "sayac", "okuma": "sayac",
      "tarif": "tarife", "birim": "tarife", "abone": "tarife", "basam": "tarife",
      "kesin": "kesinti", "duyur": "kesinti", "mahal": "kesinti",
      "borc": "odeme", "odedi": "odeme", "ucret": "odeme",
      "memnu": "sikayet", "sorun": "sikayet", "acil": "sikayet",
      "bilgi": "bilgi", "ogren": "bilgi", "nered": "bilgi"}
TUZAK = {"degis": "tarife", "kayit": "ariza", "yukse": "tarife", "gorun": "fatura",
         "ekip": "kesinti", "takip": "tarife", "giril": "fatura"}
SERBEST = ["talebiniz {k} konusuyla ilgili gorunuyor",
           "bu kayit {k} basligina girer , ilgili ekibe yonlendirildi",
           "kaydiniz alindi , konuyu inceleyip donus yapacagiz"]
SAYAC = [0]


def cagir(istem, tohum=TOHUM, sicaklik=0.6, en_uzun=EN_UZUN):
    SAYAC[0] += 1
    bel = belirtecle(istem)
    if len(bel) > PENCERE:
        return {"durum": "baglam_asimi", "giris": len(bel), "cikis": 0, "yanit": ""}
    if SAYAC[0] % 37 == 0:
        return {"durum": "hiz_siniri", "giris": len(bel), "cikis": 0, "yanit": ""}
    r = uretec(tohum ^ izno(istem))
    if len(bel) > 90 and r() < 0.04:
        return {"durum": "zaman_asimi", "giris": len(bel), "cikis": 0, "yanit": ""}
    aday = [k for k in KAVRAM if k[:5] in bel]
    if len(aday) < 3:
        aday = KAVRAM
    p = {k: 0.15 for k in aday}
    for t in bel:
        for tablo, w in ((IZ, 1.0), (TUZAK, 1.3)):
            if tablo.get(t) in p:
                p[tablo[t]] += w
    if sicaklik <= 0.0:
        k = max(sorted(p), key=lambda a: p[a])
    else:
        e = [math.exp(p[a] / sicaklik) for a in sorted(p)]
        k = sorted(p)[ayrik(r(), [v / sum(e) for v in e])]
    y = k if "tek" in bel else SERBEST[ayrik(r(), [0.42, 0.26, 0.32])].format(k=k)
    cb = belirtecle(y)
    if len(cb) > en_uzun:
        cb = cb[:en_uzun]
        y = " ".join(cb)
    return {"durum": "tamam", "giris": len(bel), "cikis": len(cb), "yanit": y}


def oku(y):
    for s in y.lower().split():
        if s in KONU:
            return s
    return None


SIN = TALEP[48:]                                 # sinama kumesi: 72 kayit


def bol(m, damga):
    return belirtecle(m) if damga else m.lower().split()


def egit(kume, damga=True, enaz=1, duz=0.5):     # OGRENEN yordam: sayim tablosu
    sayim, siklik = {}, {}
    for x in kume:
        siklik[x["konu"]] = siklik.get(x["konu"], 0) + 1
        for t in bol(x["metin"], damga):
            c = sayim.setdefault(t, {})
            c[x["konu"]] = c.get(x["konu"], 0) + 1
    en = max(sorted(siklik), key=lambda k: siklik[k])

    def kestir(m):
        p = {k: 0.0 for k in KONU}
        for t in bol(m, damga):
            c = sayim.get(t, {})
            if sum(c.values()) < enaz:
                continue
            for k in KONU:
                p[k] += math.log((c.get(k, 0) + duz) / (siklik.get(k, 1) + 5 * duz))
        return max(sorted(p), key=lambda k: p[k]) if any(p.values()) else en
    return kestir


def isabet_e(n=48, **kw):
    f = egit(TALEP[:n], **kw)
    return sum(f(x["metin"]) == x["konu"] for x in SIN) / len(SIN)


print(f"{'EGITEN yaklasimin elindeki ayar':<31} {'A':>7} {'B':>7} {'oynama':>8}")
oy_e = []
for ad, a, b in (("egitim ornegi 8 / 48", {"n": 8}, {"n": 48}),
                 ("belirtec birimi sozcuk / parca", {"damga": False}, {"damga": True}),
                 ("en az siklik 3 / 1", {"enaz": 3}, {"enaz": 1}),
                 ("duzlestirme 0,05 / 0,50", {"duz": 0.05}, {"duz": 0.5})):
    va, vb = isabet_e(**a), isabet_e(**b)
    oy_e.append(abs(vb - va))
    print(f"{ad:<31} {va:>7.4f} {vb:>7.4f} {vb - va:>+8.4f}")
print(f"0,0200'den fazla oynatan: {sum(v > 0.02 for v in oy_e)}/{len(oy_e)}, "
      f"gereken etiketli ornek 48, degisen sey: sayim tablosunun kendisi")
```

```
EGITEN yaklasimin elindeki ayar       A       B   oynama
egitim ornegi 8 / 48             0.8194  0.9861  +0.1667
belirtec birimi sozcuk / parca   0.9583  0.9861  +0.0278
en az siklik 3 / 1               0.9028  0.9861  +0.0833
duzlestirme 0,05 / 0,50          0.9722  0.9861  +0.0139
0,0200'den fazla oynatan: 3/4, gereken etiketli ornek 48, degisen sey: sayim tablosunun kendisi
```

Dört ayardan üçü sayıyı eşiğin üstünde oynatıyor ve en büyük oynama **etiketli örnek sayısından**
geliyor: sekiz örnekle 0,8194, kırk sekiz örnekle **0,9861**. Bu, eğiten yaklaşımın hem gücü hem
faturasıdır. Sayıyı yükseltmenin en etkili yolu daha çok etiketli örnektir, ve etiketli örnek
üretilmesi gereken bir şeydir. Kalan üç ayar da modelin **içine** bakar: hangi birimle sayıldığı,
hangi kanıtın atıldığı, seyrek gözlemin nasıl yumuşatıldığı. Hepsi elin altındadır ve hepsi
modelin kendisini değiştirir.

## Kullanan Yaklaşımın Elindeki Ayarlar

Kullanan yaklaşımda hiçbir ayar modelin içine bakmaz. Sayım tablosu yoktur, ağırlık yoktur, eğitim
kümesi yoktur. Elde kalan şey çağrının **çevresidir**.

```python
YONERGE = ("Talebi su etiketlerden birine ata: fatura , ariza , sayac , tarife , "
           "kesinti . Yanit olarak tek etiket yaz . Talep: ")


def olc_k(yonerge=YONERGE, sicaklik=0.6, tohum=TOHUM, deneme=0):
    SAYAC[0] = 0
    d = bel = 0
    for x in SIN:
        e = None
        for j in range(deneme + 1):
            s = cagir(yonerge + x["metin"], tohum=tohum + j, sicaklik=sicaklik)
            bel += s["giris"] + s["cikis"]
            e = oku(s["yanit"])
            if e is not None:
                break
        d += e == x["konu"]
    return d / len(SIN), SAYAC[0], bel


print(f"{'KULLANAN yaklasimin elindeki ayar':<31} {'A':>7} {'B':>7} {'oynama':>8} "
      f"{'cagri':>6} {'belirtec':>9}")
oy_k = []
for ad, a, b in (("etiket kumesi yok / var",
                  {"yonerge": "Su destek talebini yanitla: "}, {}),
                 ("bicim kisiti yok / var",
                  {"yonerge": YONERGE.replace("tek etiket", "bir cevap")}, {}),
                 ("dagilim sicakligi 0,6 / 0,0", {"sicaklik": 0.6}, {"sicaklik": 0.0}),
                 ("yeniden deneme 0 / 1", {"deneme": 0}, {"deneme": 1}),
                 ("tohum 20260218 / 20260219", {"tohum": TOHUM}, {"tohum": TOHUM + 1})):
    (va, ca, ba), (vb, cb, bb) = olc_k(**a), olc_k(**b)
    oy_k.append(abs(vb - va))
    print(f"{ad:<31} {va:>7.4f} {vb:>7.4f} {vb - va:>+8.4f} {cb - ca:>+6d} {bb - ba:>+9d}")
print(f"0,0200'den fazla oynatan: {sum(v > 0.02 for v in oy_k)}/{len(oy_k)}, "
      f"gereken etiketli ornek 0, degisen sey: modelin disindaki her sey")
```

```
KULLANAN yaklasimin elindeki ayar       A       B   oynama  cagri  belirtec
etiket kumesi yok / var          0.6667  0.8056  +0.1389     +0     +1090
bicim kisiti yok / var           0.5000  0.8056  +0.3056     +0      -634
dagilim sicakligi 0,6 / 0,0      0.8056  0.9028  +0.0972     +0        +7
yeniden deneme 0 / 1             0.8056  0.8056  +0.0000     +1       +51
tohum 20260218 / 20260219        0.8056  0.6806  -0.1250     +0        +6
0,0200'den fazla oynatan: 4/5, gereken etiketli ornek 0, degisen sey: modelin disindaki her sey
```

En büyük oynama **biçim kısıtından** geliyor: 0,5000'den 0,8056'ya, artış **0,3056**. Bu satır
aynı zamanda bedel sütununda **eksi** işaretli tek satırdır — 634 belirteç kazandırıyor. Modele
"tek etiket yaz" demek hem isabeti yükseltiyor hem maliyeti düşürüyor, çünkü kısa yanıt ucuzdur.
Etiket kümesini isteme yazmak da 0,1389 kazandırıyor ama bunun bedeli **1090 belirteçtir**.

Dördüncü satır bu müfredatın ikinci iddiasını ilk kez ödüyor. **Yeniden deneme sayıyı 0,0000
oynatıyor** ve karşılığında bir fazla çağrı ile 51 belirteç istiyor. Yalın düzenekte okunamayan
yanıt zaten kalmamıştı; yeniden deneme yalnız hız sınırına takılan tek isteği kurtarabilirdi ve o
istek iki denemede de yanlış etiket verdi. **Düzenek eklemek her zaman iyileştirmez, ama bedeli
her zaman kesindir.**

Beşinci satır ayar değil. Tohum senin ayarın değildir; benzeticinin belirsizliğidir ve bu tabloda
sayıyı **0,1250 düşürüyor**. Yani elinde olmayan bir şey, elinde olan üç ayardan ikisinden daha
çok oynatıyor. Bir ürünün sayısını yükseltmek için harcanan emeğin bir kısmı, ölçümün kendisinin
bu genişlikte oynadığını bilmeden harcanır.

## Hangi Karar Kimde

İki listenin **hiçbir maddesi ortak değildir**. Aşağıdaki tablo bu ayrımı kararlar düzeyinde
yazar.

| Karar | Eğiten yaklaşım | Kullanan yaklaşım |
|---|---|---|
| Etiketli örnek toplamak | zorunlu, sayıyı en çok oynatan ayar | gerekmez, sıfır örnekle çalışır |
| Model ağırlığı | üretilir ve saklanır | görülmez, değiştirilemez |
| Görevin tanımı | etiket kümesi eğitim verisinde durur | etiket kümesi istem metnine yazılır |
| Çıktının biçimi | yordamın dönüş tipi, kesindir | istemle rica edilir, doğrulanması gerekir |
| Aynı girdiye aynı yanıt | yordam gereği verilir | verilmez, ölçülmesi gerekir |
| Sayı düştüğünde | model yeniden eğitilir | düzenek değiştirilir |

Son satır sorumluluk sınırının kendisidir. Eğiten yaklaşımda bir bozulmanın adresi bellidir: veri
ya da model. Kullanan yaklaşımda model bozulmaz, çünkü model senin değildir; bozulan şey ya
istemdir, ya çıktının okunma yordamıdır, ya da bileşenin altındaki bir değişikliktir. Üçüncüsünde
elinde tek bir şey kalır: **yüzeyi ölçmüş olmak**. Ölçülmüş bir yüzey, değişimin ne zaman
olduğunu söyler; ölçülmemiş bir yüzey yalnız şikâyeti söyler.

Sayılar arasındaki 0,9861 ile 0,8056 farkı da bu çerçevede okunur. Eğiten yaklaşım daha yüksek
sayı verdi, ama karşılığında 48 etiketli örnek istedi. Kullanan yaklaşım **hiç etiketli örnek
görmeden** 0,8056 verdi. Kapalı bir etiket kümesi ve bol örneği olan bir görevde birincisi
kazanır; etiket kümesi değişken, örnek pahalı ya da görev metin üretmeyi gerektiriyorsa soru
tersine döner. Karşılaştırılan şey iki sayı değil, **iki bedel birimidir**.

## Özet

- Eğiten yaklaşımın dört ayarından **üçü**, kullanan yaklaşımın beş ayarından **dördü** sayıyı
  0,0200'den fazla oynatıyor. İki listenin hiçbir maddesi ortak değildir.
- Eğiten yaklaşımın en güçlü ayarı etiketli örnek sayısıdır: 8 örnekle 0,8194, 48 örnekle
  **0,9861**. Kullanan yaklaşım sıfır etiketli örnekle **0,8056** veriyor.
- Kullanan yaklaşımın en güçlü ayarı biçim kısıtıdır: **+0,3056** ve **634 belirteç kazanç**. Bedel
  sütununda eksi işaretli tek satır budur.
- Yeniden deneme sayıyı **0,0000** oynatıp bir çağrı ve 51 belirteç ekliyor: düzenek eklemek her
  zaman iyileştirmez, ama bedeli her zaman kesindir.
- Elde olmayan tohum sayıyı **0,1250 düşürüyor** — elde olan üç ayardan ikisinden daha çok.
- Sorumluluk sınırı son satırda okunur: sayı düştüğünde eğiten yaklaşım modeli, kullanan yaklaşım
  düzeneği değiştirir.

## Sonraki Adım

Bu derste tohum satırı bir kez, tek bir sayıyla göründü ve orada bırakıldı. Oysa o satır bir
ürünün en zor tasarım sorusudur: aynı kullanıcı, aynı ekranda, aynı metni iki kez gönderdiğinde
iki ayrı yanıt alabilir. Toplam isabetin 0,8056'dan 0,6806'ya inmesi bunun yalnız **toplam**
görünümüdür; kaç kayıtta yanıtın gerçekten değiştiği ve bu değişimin kullanıcıya **görünen**
kısmının ne olduğu hiç sorulmadı. Sonraki ders aynı girdinin iki koşumunu kayıt kayıt sayar ve
belirsizliği daraltan üç tasarım kararını — seçenek sunmak, biçim dayatmak, kaynağa bağlamak —
isabet ve bedel olarak yan yana koyar.
