İçeriğe geç
academia.sh

Ders 12 / 12

Kenar ve Aygıt Üzerinde Çıkarım

Modeli isteğin kaynağına taşımanın isabetten ne götürdüğünün ve hangi görevde önce götürdüğünün sayılması: aygıta yazılan sayı beştir, bırakılan şey bölge özniteliğini üreten 341 ile 539 satırlık geçmiştir ve o geçmiş bırakıldığında iki sınıflı görev 0,8067'de kalırken üç kademeli görev 0,4833'ten 0,4733'e iner. Nicemleme süpürmesi aynı sırayı verir: iki sınıflı görev seviye 4'e kadar tek bir tahmin oynatmaz, üç kademeli görev seviye 16'da iki ve seviye 8'de beş tahmin oynatır, seviye 2'de ikisi 0,3833 ile 0,2250'ye çöker. Kenarda çalıştırmanın kazandırdığı bağımsızlık doğru yanıt sayısıyla ölçülür: ağ kesintisi payı 0,20'ye çıktığında merkezî kurulumun doğru yanıtı 484'ten 391'e ve 290'dan 234'e iner, kenardaki 484 ile 284'te sabit kalır; iki kurulumun eşitlendiği kesinti payı iki sınıflı görevde 0,0000, üç kademeli görevde 0,0207'dir. Ders kursun kapanışıdır ve on iki dersin sayılarını tek tabloda toplar.

İçindekiler

Bir önceki ders isteği sunucu tarafında ucuzlattı: toplu boyut iki yüze çıktığında tahmin başına okunan satır 22,00’ye indi. Beş derste model paketlendi, yerleştirildi ve ölçeklendi; beşinin altında aynı sessiz varsayım duruyordu — model, isteğin doğduğu yerden ağ üzerinden erişilebilir bir uçtadır. O ağ koptuğunda tahmin başına maliyet tanımsızdır, çünkü tahmin yoktur.

Bu ders modeli isteğin kaynağına taşır. Taşınacak şey küçüktür: üç ağırlık. Taşınamayan şey o ağırlıkların çarptığı özniteliği üreten geçmiştir. Ders önce onu sayar, sonra geçmişin bırakılmasının ve nicemlemenin (quantisation) iki görevden ne götürdüğünü ölçer, en sonunda kenarın bağımsızlığını yanıtlanan istek olarak yazar.

  • ED55. Kaynak, hat, model ve küçültme adımları kurgudur; hiçbir kenar aygıtı, çalışma zamanı, hızlandırıcı donanım ya da bulut servisi adı yazılmaz. Tohum 20260218.
  • ED56. Etiket dengesizdir: {0: 1752, 1: 448}, taban sınıf oranı 0,7964; sınama kümesi 600 satır, adım 0,0017.
  • ED57. Nicemleme ve damıtma (distillation) yordamı Model API’leri ile Uygulama Geliştirme kursunda ölçüldü; tekrarlanmaz, sayıları girdidir.
  • ED58. Küçültme iki adımdır: bölge geçmişi aygıtta olmadığı için bolge_ort düşer ve model dokuz adaylık ızgarada yeniden eğitilir; ardından öznitelikler seviye ayrı değere indirgenir.
  • ED59. İki görev ölçülür: görev A iki sınıflı (eşik 40), görev B üç kademeli (eşik 20 ve 40).
  • ED60. Ağ kesintisi payı p, isteklerin p payının merkezden hiç yanıt alamaması demektir; kenar tamamını yanıtlar. İkisini ortak birimle karşılaştıran tek sayı doğru yanıt sayısıdır (yanıtlanan istek çarpı isabet).

Aygıta Taşınamayan Geçmiş

İlk blok kaynağı, hattı ve iki görevi kurar; iki modeli ayrı eğitir ve seviyeyi süpürür.

# KURGUDUR. Olcum aginin sayac okumalari , hattin ilk uc asamasi , oznitelik
# yolu , uc agirlikli esik modeli ve kucultme adimlari ders icinde uretilir;
# hicbir kenar aygiti , calisma zamani ya da donanim cagrilmaz. Tohum 20260218.
TOHUM, M32 = 20260218, 0xFFFFFFFF


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


BOLGE = ["dogu", "bati", "kuzey", "guney", "merkez"]
TIP = ["mesken", "isyeri"]
DONEM = [f"2026-{a:02d}" for a in range(1, 13)]
ABONE = {}
for i in range(200):
    r = uretec(TOHUM + 37 * i)
    ABONE[f"A{i + 1:03d}"] = {"bolge": BOLGE[int(r() * 5)], "tip": TIP[int(r() * 2)],
                              "baslangic": 10000 + int(r() * 60000)}


def kaynak_uret():
    kayit = []
    for i, (ab, a) in enumerate(ABONE.items()):
        e = a["baslangic"]
        for d in DONEM:
            r = uretec(TOHUM + 101 * i + 7 * DONEM.index(d))
            e += 4 + int(r() * 46)
            kayit.append({"abone": ab, "donem": d, "bolge": a["bolge"], "tip": a["tip"],
                          "endeks": e, "birim": "m3"})
    return kayit


def a3_tuketim(kayit):
    tablo = {(k["abone"], k["donem"]): k for k in kayit}
    cikti = []
    for k in kayit:
        i = DONEM.index(k["donem"])
        onceki = tablo.get((k["abone"], DONEM[i - 1])) if i else None
        if onceki is not None:
            cikti.append(dict(k, m3=int(k["endeks"]) - int(onceki["endeks"])))
    return cikti


EGITIM, SINAMA, ESIK = DONEM[1:9], DONEM[9:], 40


def oznitelikler(kayitlar):
    """Egitim yolu tam gecmisi gorur. Agirliktan bagimsiz , bir kez hesaplanir."""
    sirali = sorted(kayitlar, key=lambda k: DONEM.index(k["donem"]))
    ab, bo = {}, {}
    for k in sirali:
        ab.setdefault(k["abone"], []).append((DONEM.index(k["donem"]), k["m3"]))
        bo.setdefault(k["bolge"], []).append((DONEM.index(k["donem"]), k["m3"]))

    def ortalama(dizi, i):
        secili = [v for d, v in dizi if d < i]
        return round(sum(secili) / len(secili), 4) if secili else 0.0

    return {(k["abone"], k["donem"]): {
        "abone_ort": ortalama(ab[k["abone"]], DONEM.index(k["donem"])),
        "bolge_ort": ortalama(bo[k["bolge"]], DONEM.index(k["donem"])),
        "isyeri": 1 if k["tip"] == "isyeri" else 0} for k in kayitlar}


def puan(o, w):
    return w[0] * o["abone_ort"] + w[1] * o["bolge_ort"] + w[2] * o["isyeri"]


IZGARA = [(a, b, c) for a in (0.6, 0.8, 1.0) for b in (0.0, 0.2, 0.4) for c in (0, 4, 8)]
KENAR_IZGARA = [w for w in IZGARA if w[1] == 0.0]      # bolge gecmisi aygitta yok

TUM = a3_tuketim(kaynak_uret())
OZ = oznitelikler(TUM)
M3 = {(k["abone"], k["donem"]): k["m3"] for k in TUM}
EGK = [c for c in M3 if c[1] in EGITIM]
SNK = [c for c in M3 if c[1] in SINAMA]
N = len(SNK)
ALT_A, UST_A = min(o["abone_ort"] for o in OZ.values()), max(o["abone_ort"] for o in OZ.values())
ALT_B, UST_B = min(o["bolge_ort"] for o in OZ.values()), max(o["bolge_ort"] for o in OZ.values())


def gorev_a(v):
    return 1 if v > ESIK else 0


def gorev_b(v):
    return 0 if v <= 20 else (1 if v <= ESIK else 2)


def egit(gorev, izgara, oz):
    return max(izgara, key=lambda w: sum(1 for c in EGK
                                         if gorev(puan(oz[c], w)) == gorev(M3[c])))


def isabet(gorev, w, oz):
    return round(sum(1 for c in SNK if gorev(puan(oz[c], w)) == gorev(M3[c])) / N, 4)


def payi(gorev):
    return round(max(sum(1 for c in SNK if gorev(M3[c]) == s) for s in (0, 1, 2)) / N, 4)


def nicem_oz(seviye):
    def q(x, alt, ust):
        adim = (ust - alt) / (seviye - 1)
        return alt + round((x - alt) / adim) * adim

    return {c: {"abone_ort": q(o["abone_ort"], ALT_A, UST_A),
                "bolge_ort": q(o["bolge_ort"], ALT_B, UST_B),
                "isyeri": o["isyeri"]} for c, o in OZ.items()}


WA, WB = egit(gorev_a, IZGARA, OZ), egit(gorev_b, IZGARA, OZ)
WAK, WBK = egit(gorev_a, KENAR_IZGARA, OZ), egit(gorev_b, KENAR_IZGARA, OZ)
bs = [sum(1 for c in M3 if ABONE[c[0]]["bolge"] == b) for b in BOLGE]
print(f"sunum ufkunda en kalabalik sinif payi: gorev A {payi(gorev_a)} , gorev B {payi(gorev_b)}")
print(f"merkez modeli  A {WA} isabet {isabet(gorev_a, WA, OZ)}"
      f" | B {WB} isabet {isabet(gorev_b, WB, OZ)}")
print(f"kenar modeli   A {WAK} isabet {isabet(gorev_a, WAK, OZ)}"
      f" | B {WBK} isabet {isabet(gorev_b, WBK, OZ)}")
print(f"aygita yazilan sayi 5 (3 agirlik + abonenin 2 toplami) ;"
      f" birakilan bolge gecmisi {min(bs)}-{max(bs)} satir")

t0a = {c: gorev_a(puan(OZ[c], WA)) for c in SNK}
t0b = {c: gorev_b(puan(OZ[c], WB)) for c in SNK}
print("\nseviye  farkli deger  A degisen  A isabet  B degisen  B isabet")
for s in (256, 16, 12, 8, 4, 2):
    oz = nicem_oz(s)
    ta = {c: gorev_a(puan(oz[c], WA)) for c in SNK}
    tb = {c: gorev_b(puan(oz[c], WB)) for c in SNK}
    fd = (len(set(o["abone_ort"] for o in oz.values()))
          + len(set(o["bolge_ort"] for o in oz.values())))
    print(f"{s:>6}  {fd:>12}  {sum(1 for c in SNK if ta[c] != t0a[c]):>9}"
          f"  {isabet(gorev_a, WA, oz)}  {sum(1 for c in SNK if tb[c] != t0b[c]):>9}"
          f"  {isabet(gorev_b, WB, oz)}")
sunum ufkunda en kalabalik sinif payi: gorev A 0.8067 , gorev B 0.4833
merkez modeli  A (0.6, 0.4, 0) isabet 0.8067 | B (0.6, 0.4, 4) isabet 0.4833
kenar modeli   A (0.6, 0.0, 0) isabet 0.8067 | B (1.0, 0.0, 4) isabet 0.4733
aygita yazilan sayi 5 (3 agirlik + abonenin 2 toplami) ; birakilan bolge gecmisi 341-539 satir

seviye  farkli deger  A degisen  A isabet  B degisen  B isabet
   256           199          0  0.8067          0  0.4833
    16            21          0  0.8067          2  0.48
    12            16          0  0.8067          0  0.4833
     8            11          0  0.8067          5  0.4783
     4             7          0  0.8067          0  0.4833
     2             4        402  0.3833        600  0.225

Dördüncü satır dersin ilk cümlesidir: aygıta yazılan sayı beştir, bırakılan şey 341 ile 539 satırlık bölge geçmişidir. Kenara taşınamayan şey model değil, özniteliği üreten geçmiştir. Bedeli ayrışır: görev A’da isabet 0,8067’de kalır, görev B’de 0,4733’e iner.

İki isabeti tabanın yanına koymak bedelin adını değiştirir. Etiket dengesizdir, taban sınıf oranı 0,7964‘tür; sunum ufkunda görev A’nın en kalabalık sınıfı 0,8067, görev B’nin en kalabalık kademesi 0,4833 pay tutar ve merkez ikisinde de tam o payı verir. Görev A’daki sıfır düşüş bundan gelir: küçültmenin oradan götüreceği bir şey yoktur. Kenar modeli ise görev B’de tabanın 0,0100 altına düşer — her satıra en kalabalık kademeyi diyen bir yordamdan altı adım kötü. Küçültmenin bedeli isabetteki düşüş değil, tabanın hangi yanında kalındığıdır.

Nicemleme aynı sırayı bağımsız doğrular. Görev A seviye 4’e kadar tek bir tahmin oynatmaz; görev B seviye 16’da iki, seviye 8’de beş tahmin oynatır. Bu oynamalar 0,0017’lik çözünürlüğün hemen üstündedir ve süpürme monoton değildir, bu yüzden bozulmanın başladığı yer “16 ile 2 arasında” diye yazılır. Seviye 2’de ikisi de tabanın altına iner: görev A 0,3833 (0,4234 altı), görev B 0,2250 (0,2583 altı). Küçültme ayrımı siler, en ince görevi önce siler ve yeterince ilerlediğinde modeli taban çizgisinin altına taşır.

Kesinti Altında Yanıtlanan İstek

Küçültmenin götürdüğü yazıldı; kazandırdığı yazılmadı.

# Bu blok ilk bloktaki N , OZ , WA , WB , WAK , WBK , gorev_a , gorev_b ,
# isabet , nicem_oz , uretec ve TOHUM tanimlarini surdurur.
mA, mB = isabet(gorev_a, WA, OZ), isabet(gorev_b, WB, OZ)
kA, kB = isabet(gorev_a, WAK, OZ), isabet(gorev_b, WBK, OZ)
r = uretec(TOHUM + 733)
kesinti = [r() for _ in range(N)]
print("kesinti payi  yanitlanan  merkez A  kenar A  merkez B  kenar B")
for p in (0.00, 0.02, 0.05, 0.10, 0.20):
    y = sum(1 for x in kesinti if x >= p)
    print(f"{p:>12.2f}  {y:>10}  {round(y * mA):>8}  {round(N * kA):>7}"
          f"  {round(y * mB):>8}  {round(N * kB):>6}")
print(f"donus noktasi: gorev A {1 - kA / mA:.4f} , gorev B {1 - kB / mB:.4f}")
print("kenar modeli nicemlenince  seviye 8: gorev B", isabet(gorev_b, WBK, nicem_oz(8)),
      ", seviye 4:", isabet(gorev_b, WBK, nicem_oz(4)))
kesinti payi  yanitlanan  merkez A  kenar A  merkez B  kenar B
        0.00         600       484      484       290     284
        0.02         589       475      484       285     284
        0.05         566       457      484       274     284
        0.10         536       432      484       259     284
        0.20         485       391      484       234     284
donus noktasi: gorev A 0.0000 , gorev B 0.0207
kenar modeli nicemlenince  seviye 8: gorev B 0.4767 , seviye 4: 0.4533

Kenar sütunları sabittir ve bu kenarın tek gerçek kazancıdır: kesinti payı ne olursa olsun 600 isteğin hepsi yanıtlanır, merkezde yanıtlanan istek 485’e iner. Doğru yanıt görev A’da 484’ten 391‘e, görev B’de 290’dan 234‘e düşer. İki kurulum görev A’da 0,0000, görev B’de 0,0207 kesinti payında eşitlenir: bu payın üstünde, tabanın altına düşmüş kenar modeli yine de daha çok doğru yanıt üretir. Bağımsızlık bir isabet sayısı değildir; isabetle ancak doğru yanıt sayısı üzerinden aynı tabloya girer. Son satır iki küçültmeyi birlikte gösterir: seviye 8’de 0,4767, seviye 4’te 0,4533.

Özet

  • Aygıta yazılan sayı beştir; taşınamayan şey 341 ile 539 satırlık bölge geçmişidir.
  • Geçmişin bırakılması görev A’da isabeti değiştirmez, görev B’de 0,4733‘e indirir. Taban sınıf oranı 0,7964, görev B’nin en kalabalık kademesi 0,4833’tür: kenar modeli tabanın 0,0100 altındadır, A’daki sıfır ise dayanıklılık değil ölçüsüzlüktür.
  • Nicemleme aynı sırayı doğrular: görev A seviye 4’e kadar tek bir tahmin oynatmaz, görev B seviye 16’da iki ve seviye 8’de beş oynatır; seviye 2’de ikisi 0,3833 ve 0,2250’ye çöker.
  • Kenar, kesinti payı ne olursa olsun 600 isteğin hepsini yanıtlar; merkezin doğru yanıtı payı 0,20’de 484’ten 391‘e ve 290’dan 234‘e iner. İki kurulum görev A’da 0,0000, görev B’de 0,0207 kesinti payında eşitlenir ve kenarın gerekçesi o orandır.

Kurs Kapanışı

Satırlar ortak birim taşımaz; hangi ölçütle okunduğu ders adının yanındadır ve parantezdeki fark sabitlenmiş kurulum eksi tabandır.

Ders Sabitlemesiz taban Sabitlenmiş kurulum Bedel
yeniden-uretilebilirlik/01 — üç koşumun sınama isabeti sabitleme yok: 0,8067 / 0,7955 / 0,8078 (yayılım 0,0123) üç koşumun ağırlığı aynı: (0.6, 0.4, 0) isabet sınama kümesinin taban oranının kendisi, duyarlılık 0,0000
yeniden-uretilebilirlik/02 — bir sayıyı üreten koşumu bulmak kayıtsız: 1, 2, 3, 5, 18 koşum tekrarı tam kayıtla beşinde de 0 (−18’e kadar) 162 alan; yalnız ölçüt tutan defter beş aramadan birini kısaltır
yeniden-uretilebilirlik/03 — belirsiz koşum sayısı sürümsüz: 1 ad, belirsiz koşum 4 içerik adlı: 3 ad, belirsiz koşum 0 (−4) 6540 satır (tarih adlı şema 8740); çıktı imzası yutulan yinelenmeyi görmez
yeniden-uretilebilirlik/04 — aynı ağırlıkla sınama isabeti sunum yolu, pencere 1: 0,7800 öznitelik deposu, pencere 2: 0,8067 (+0,0267) 6600 saklanan değer ve dördüncü aşama; sapma 600 özniteliği değiştirir, tahmini 16 satırda çevirir
yeniden-uretilebilirlik/05 — üç koşumun aynılığı sabitleme yok: [0,8067 , 0,7955 , 0,8078] üç kalemle: [0,8067 x 3] 15 kalem kaydı, 81 aday, 6600 satır; ızgara ile yuvarlamanın katkısı ölçülemez
yeniden-uretilebilirlik/06 — üretimdeki modelin koşumunu bulmak deftersiz: 16 kayıt, 12 aday defterle: 1 kayıt (−15), 1 aday (−11) 21 kayıt; aynı ağırlıklı koşumlar 0,7950 ve 0,8067 bildirir
egitim-ve-dagitim/01 — eğitim satırı geç gelen 40 satırla: 1520 uçtan uca koşum: 1600 (+80), bayat adım 0 13800 işlenen satır; yedi kurulumun yedisi de aynı 0,8067’yi bildirir
egitim-ve-dagitim/02 — durdurulan bozulma sınıfı kapısız: 0 / 6 veri kapısı 4, model kapısı 3, kod kapısı 0 durdurulan dört koşumun ikisi zaten aynı modeli verecekti; geç gelen hiçbir kapıda durmaz
egitim-ve-dagitim/03 — 1800 çağrının düşeni sözleşmesiz: 600, alan adı değişince 1200 sözleşmeli: 0 (−1200) 5 bildirim; eşik alanı düştüğünde hiçbir çağrı düşmez ve 1200 yanıt sessizce değişir
egitim-ve-dagitim/04 — tahmin başına okunan satır kalıbı yazılmamış çağrı: 463,87 toplu: 11,00 (−452,87), akış: 3,67 toplu kalıpta yanıt bir dönem yaşlanır ve tek tahmin kullanıldığında 200’ün 199’u boşa üretilir; akışta 1600 kullanılmayan tazeleme
egitim-ve-dagitim/05 — tahmin başına satır ve bekleme boyut 1: 463,87, bekleme 0 varış boyut 200: 22,00 (−441,87), bekleme 199 varış (+199) dönem başına 8 istek dolmayan grupta bekler ve sütunda görünmez; hızlandırıcının dönüşü 80 istek
egitim-ve-dagitim/06 — doğru yanıt, kesinti payı 0,20 merkez: 391 (A), 234 (B) kenar: 484 (+93), 284 (+50) bölge geçmişi bırakılır, görev B 0,4833’ten 0,4733’e iner; kesişme noktası 0,0207

Tablo tek bir kuralın on iki kez yazılmasıdır. Bir modelin sayısı onu üreten yolla birlikte anlamlıdır; yeniden üretilemeyen sayı bir ölçüm değil bir anıdır. yeniden-uretilebilirlik/01’de aynı iş üç ayrı sayı verir ve ağırlık üçünde de aynıdır; /03’te aynı ad üç ayrı içerik taşır; /06’da aynı ağırlıklı koşumlar 0,7950 ve 0,8067 bildirir. Değişen model değil, sayının hangi yolla üretildiğidir.

İkinci iddia aynı tablodan okunur: sabitlemek de bedel getirir ve katkısı gösterilemeyen sabitleme ölçülmemiş bir güvence verir. yeniden-uretilebilirlik/05’te üç kalem yeter ve ızgara ile yuvarlamanın katkısı ölçülemez; /02’de yalnız ölçüt tutan defter beş aramadan yalnız birini kısaltır; egitim-ve-dagitim/02’de veri kapısının durdurduğu dört koşumun ikisi zaten aynı modeli verecekti; /04’te bayatlığın ölçülememesi kalıbın güvencesi değil, karar puanının eşiğe 7,6468 uzaklıkta durmasının sonucudur. Dört satırda ödenen sabitlemenin karşılığı alınmamış ya da gösterilememiştir.

Üçüncü iddia tek bir satırda en keskin hâline gelir. yeniden-uretilebilirlik/04‘te aynı ağırlık üçlüsüyle isabet eğitim yoluyla 0,8067, sunum yoluyla 0,7800‘dür; model hiç değişmemiştir ve 0,0267’nin tamamı özniteliğin hangi geçmişle hesaplandığından gelir. egitim-ve-dagitim/03 bunun sessiz eşidir: eşik alanı paketten düştüğünde hiçbir çağrı düşmez, 1200 çağrının 1200’ü yanıt değiştirir. Modeli sınamak yetmez; sunumdaki öznitelik yolu ve paketin bildirimi de sınanmalıdır.

Otuz dokuz derste veri alındı, taşındı, saklandı ve bölüştürüldü; sonra bir modele bağlandı, yeniden üretilebilir kılındı, paketlendi, sunuldu, ölçeklendi ve aygıta taşındı. Hiçbiri modelin çıktıktan sonrasını sormadı. Dünya değişir ve girdi kaymaya başlar; etiket haftalar sonra gelir, yani bugünün isabeti bugün ölçülemez; ve modelin ne zaman emekliye ayrılacağı hiçbir yerde yazılı değildir. Sonraki kurs üretimdeki modeli bir teslim değil bir gözlem konusu sayar ve bu üç soruyu ölçer.

İlerlemeni kaydetmek ve not almak için Giriş yap

Notlarım

Not almak için giriş yapmalısın.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat