Skip to article
Görkem Yıldız, home
Available for October

64.000 İnsan Gözlemi: Helmlab Nasıl Eğitildi?

6 veri seti, STRESS metriği, Hessian-tabanlı optimizasyon ve Bootstrap CI — Helmlab'ın 64K insan gözlemiyle nasıl eğitildiği.

· 7 min readTürkçeRead in English

Bir renk uzayinin "insan algisina yakin" oldugunu iddia etmek kolaydir. Zor olan, bunu olculebilir bicimde kanitlamaktir. Helmlab'in 72 parametresi rastgele secilmemistir -- renk biliminin yarim yuzyilda biriktirdigi en kapsamli deneysel veriler uzerinde, sistematik bir optimizasyon sureciyle belirlenmistir.

Bu yazida, Helmlab'in egitim surecinin tamamini acikliyoruz: hangi veriler kullanildi, STRESS metrigi nasil hesaplanir, optimizasyon nasil yapildi, overfitting nasil onlendi ve sonuclarin istatistiksel guvenilirligi nasil dogrulandi. Bu, Helmlab blog serisinin son yazisi -- 16 yazinin finali.

6 Veri Seti: Renk Biliminin Deneysel Temeli

Helmlab'in egitiminde kullanilan veriler, onlarca yil boyunca farkli arastirma gruplari tarafindan toplanmis insan renk algilama deneylerinden gelmektedir. Ana kaynaklar:

1. COMBVD (3.813 renk cifti)

COMBVD (Combined Visual Data), 6 buyuk renk farki deneyinin birlestirilmis halidir. Her deney, insan deneklere iki renk gosterip "bu iki renk ne kadar farkli?" sorusunu soran kontrolllu laboratuvar calismalaridir. Toplam 3.813 renk cifti, STRESS hesaplamasinin birincil veri kaynagidir.

2. He Elipsleri (82 elips)

He ve arkadaslari tarafindan olculmus 82 renk fark elipsi. Bu elipsler, bir referans renginin cevresinde "fark edilebilir en kucuk degisikligin" (JND -- just noticeable difference) yonlere gore nasil degistigini gosterir. Elipsin uzun ekseni fark hassasiyetinin dusuk oldugu yonu, kisa ekseni yuksek oldugu yonu isaret eder.

3. MacAdam Elipsleri (128 elips)

David MacAdam'in 1942'de yayinladigi klasik deneyler. 128 referans renginin cevresinde olculmus fark esikleri. Bu veriler, CIE Lab'in tasariminda bile referans olarak kullanilmisti. Renk biliminin en eski ve en guvenilir deneysel verileri arasindadir.

4. Munsell (3.590 renk ornegi)

Munsell Renk Sistemi, 1905'ten bu yana algisal olarak esit aralikli renk ornekleri sunmaktadir. 3.590 ornekten olusan veri seti, renk uzayinin "duzgunluk kontrolu" icin kullanilir: Helmlab koordinatlarinda esit adimlarla ilerlemek, Munsell orneklerinde de esit adimlar uretmeli.

Toplam Kapsam

Egitim Verileri: 6 Veri Seti, 64.000+ Gozlem Veri Seti Boyut Olcum Turu COMBVD 3.813 renk cifti Cift-bazli renk farki He elipsleri 82 elips JND esik elipsleri MacAdam elipsleri 128 elips Klasik fark esikleri Munsell 3.590 ornek Algisal duzgunluk Toplam 64.000+ bireysel gozlem 6 alt veri seti Tum veriler: seed=42, %80 egitim / %20 dogrulama (validation) olarak bolunmustur

Bu veriler, farkli ulkelerde, farkli laboratuvar kosullarinda, farkli deney protokolleriyle toplanmistir. Bu cesitlilik, Helmlab'in belirli bir deneye degil, insan gorusunun genel yapisina uyum saglamasini garanti eder.

STRESS Metrigi: Nasil Hesaplanir?

STRESS (Standardized Residual Sum of Squares), renk farki tahminlerinin insan algilamasiyla ne kadar uyustugunu olcen standart metriktir. Formul:

Code
STRESS = sqrt( sum((f(dV_i) - dE_i)^2) / sum(dE_i^2) ) * 100

Burada:

  • dV_i: i. renk cifti icin insan deneklerden gelen algisal fark degeri
  • dE_i: ayni cift icin renk uzayindaki hesaplanan mesafe
  • f(): en iyi dogrusal olcekleme (regresyon)

STRESS'in yorumu: 0 = mukemmel tahmin (her mesafe insan algisiyla birebir uyusur), 100 = tamamen iliskisiz. Pratikte:

  • CIE Lab: ~30.3 (basit kup kok + Oklid mesafesi)
  • CIEDE2000: 29.2 (5 duzeltme terimi)
  • Oklab: ~27.5 (optimize edilmis 18 parametre)
  • Helmlab: 23.2 (72 parametre, 13 asamali pipeline)

~20 civarindaki bir STRESS degeri, olcum gurultusu ve bireysel farkliliklar (inter-observer variability) nedeniyle teorik alt sinir olarak kabul edilir. Helmlab'in 23.2'si bu sinira oldukca yakindir.

Optimizasyon: Hessian-Tabanli Yeniden Baslatmalar

72 parametreyi optimize etmek, cok boyutlu bir yuzey uzerinde en dusuk noktayi bulmak demektir. Bu yuzey karmasiktir -- bircok yerel minimum vardir. Helmlab'in optimizasyon stratejisi su adimlari icerir:

1. Hessian-Tabanli Optimizasyon

Gradyan inisi (gradient descent) yalnizca egimleri kullanir. Hessian-tabanli yontemler (L-BFGS-B gibi) ise egrilik bilgisini de kullanarak cok daha hizli yakinsar. Helmlab, her optimizasyon calismasinda tam Hessian yaklasimi kullanan ikinci derece bir optimizer kullanir.

2. 8x5000 Yeniden Baslatma

Yerel minimumlara takilmamak icin, optimizasyon 8 farkli rastgele baslangic noktasindan baslatilir ve her biri 5.000 iterasyon calistirilir. Toplam 40.000 iterasyon arasindaki en iyi sonuc secilir. Bu yaklasim, tek bir calismanin yerel minimuma takildigi durumlari buyuk olcude ortadan kaldirir.

3. Faz Yapisi

Optimizasyon iki fazda calisti:

  • Faz A: 8x5000 iterasyon, yalnizca COMBVD STRESS + achromatic penalty (graylarin a=b=0 olmasi)
  • Faz B: Hue lambda taramasi (lambda_hue = 0, 5, 10, 20). Faz A'nin en iyi sonucundan baslanarak hue hizalamasi denendi. Sonuc: hue lambda'nin ek katki saglamadigi goruldu -- Faz A havzasi zaten tam yakinsamisti.
Optimizasyon Sureci Iterasyon STRESS 35 30 25 22 23.2 CIE Lab (~30.3) CIEDE2000 (29.2) 7 restart (yerel minimum) En iyi restart (global minimum)

Analitik Form: Dogal Regularization

Makine ogrenimi alaninda overfitting (asiri uyum) en buyuk tehlikelerden biridir: model egitim verisini "ezberler" ama yeni verilerde basarisiz olur. Helmlab'in buna karsi iki savunma hatti vardir:

1. Analitik Formun Yapisi

Helmlab'in 13 asamali pipeline'i, keyfi bir fonksiyon degil, fiziksel olarak motive edilmis analitik bir formdur. Her asama (kup kok sikistirmasi, opponent kanallar, Helmholtz-Kohlrausch etkisi) bilinen gorsel sistem mekanizmalarini modeller. Bu yapisal kisitlama, modelin "anlamsiz" kaliplari ogrenme kapasitesini sinirlar -- ayni bir sinir agi milyonlarca parametreyle her seyi ezberleyebilirken, 72 parametreli analitik bir form yalnizca fiziksel olarak anlamli kaliplari yakalayabilir.

2. Validation Gap: +1.11

Veri seti, seed=42 ile %80 egitim / %20 dogrulama olarak bolunmustur. Sonuclar:

  • Egitim STRESS: 23.22
  • Dogrulama STRESS: 24.33
  • Validation gap: +1.11

+1.11 puanlik bir gap, renk bilimi standartlarinda cok kucuktur. Karsilastirma olarak: bir sinir agi (3D INN) ayni veriler uzerinde egitim STRESS 20.98, dogrulama STRESS 25.70 -- yani 4.72 puanlik bir gap. Analitik form, sinir aginin 1/4'u kadar gap uretiyor. Bu, overfitting'in neredeyse sifir oldugunu gosterir.

Bootstrap Guven Araliklari

Tek bir STRESS degeri, "verinin farkli bir alt kumesinde de benzer mi?" sorusunu cevaplamaz. Bootstrap CI (confidence interval) bu soruyu cevaplar: veri setinden yeniden orneklem alirak (replacement ile) STRESS dagilimini hesaplariz.

Bootstrap %95 Guven Araliklari 10.000 bootstrap orneklemi, COMBVD veri seti 20 22 24 26 28 STRESS Helmlab 22.50 23.2 23.93 CIEDE2000 27.64 29.2 30.84 3.71 puan bosluk

10.000 bootstrap orneklemi sonucu:

  • Helmlab %95 CI: [22.50, 23.93]
  • CIEDE2000 %95 CI: [27.64, 30.84]
  • Iki aralik arasinda 3.71 puanlik bosluk -- dagilimlar hicbir sekilde kesismiyor

Bu, p < 0.001 duzeninde istatistiksel anlamliliktir. Helmlab'in ustunlugu tesadufi degiskenlikle aciklanamaz; yapiya dayalidir.

Iki Havza Kesfindeki Gizemli Durus: SL/SC

Optimizasyon surecinin en ilginc kesfindeki biri, parametre uzayinda iki ayri havzanin (basin) varligidir.

Havza 1: Klasik (v12 benzeri)

COMBVD STRESS = 23.18, SL/SC agirliklari sifir. Mesafe formulu basit Minkowski mesafesidir. Munsell CV = %19 (iyi duzgunluk).

Havza 2: SL/SC (v14c benzeri)

COMBVD STRESS = 22.75 (en dusuk STRESS), SL ve SC agirliklari aktif (sl=0.18, sc=0.80). Ancak Munsell CV = %77 (kotu duzgunluk).

Kritik bulgu: bu iki havza arasinda duz bir Pareto siniri yoktur. Optimizer ya birinde ya digerinde kalir -- arada gecis yapamaz. Bu, SL/SC parametrelerinin yalnizca metrikleri iyilestirmedigini, temelden farkli bir cozum ailesini temsil ettigini gosterir.

  • v12 havzasindan baslayarak SL/SC'yi acmak: optimizer SL/SC > 0 bulamaz, havza cok derin
  • v14c havzasindan baslayarak CV cezasi eklemek: lambda=2.0 bile havzadan cikartamaz
  • v17'de hue lambda taramasi: farkli bir havza daha kesfedildi (strict vs relaxed)

Bu coklu havza yapisi, renk uzayi optimizasyonunun neden zor bir problem oldugunu ve neden yeniden baslatmalarin kritik oldugunu gosterir.

Son Model: v19 NC (Uretim Versiyonu)

Tum bu deneyler ve kesifler sonucunda, uretim versiyonu olarak v19 secilmistir. v19'un temel ozellikleri:

  • COMBVD STRESS: 23.22 (Havza 1 temelinde)
  • Akromatik chroma: 0.000001 (NC ile yapisal garanti)
  • Hue RMS: 16.1 derece (rijit rotasyon ile)
  • Validation gap: +1.11 (minimum overfitting)
  • Munsell CV: %17.6 (iyi duzgunluk)
  • 72 parametre: 13 asamali pipeline + SL/SC mesafe formulu

v14c'nin 22.75 STRESS'i daha dusuk olsa da, %77 Munsell CV'si uretim icin kabul edilemezdi. v19, STRESS-duzgunluk-akromatik kalite ucgeninde en dengeli noktadir.

Kod Ornegi: Egitilmis Modeli Kullanmak

Terminal
npm install helmlab
Code
import { Helmlab } from 'helmlab';

const hl = new Helmlab();

// 72 parametre, 64.000+ gozlem, 8x5000 yeniden baslatma --
// tum bu egitim surecinin sonucu bu tek satirda:
const d = hl.deltaE('#e74c3c', '#3498db');
console.log(`Delta E: ${d.toFixed(4)}`);
// Bu deger, 6 veri setindeki 64.000+ insan gozlemiyle
// %20.5 daha iyi korelasyon gosterir (vs CIEDE2000)

// Renk bilgisi: 13 asamali pipeline
const info = hl.info('#e74c3c');
console.log(`L: ${info.L.toFixed(3)}`);  // Algisal lightness
console.log(`C: ${info.C.toFixed(3)}`);  // Algisal chroma
console.log(`H: ${info.H.toFixed(1)}`);  // Hue acisi

// Palet uretimi: algisal olarak esit adimlar
const scale = hl.semanticScale('#3B82F6');
// Her adim, 64.000+ gozlemle egitilmis
// pipeline uzerinden hesaplanir

// Anlamsal olcek
const description = hl.semanticScale('#e74c3c');
console.log(description);
// Tailwind CSS benzeri 50-950 olcegi

Sonuc: Veriden Ogrenilen Algi

Helmlab, 50 yillik renk bilimi deneylerinin birikimini tek bir tutarli modelde birlestiren bir renk uzayidir. 6 veri setinden gelen 64.000+ insan gozlemi, 72 parametreyi sekillendirmistir. Hessian-tabanli optimizasyon 8x5000 yeniden baslatmayla yerel minimumlardan kacmis, analitik form overfitting'i onlemis ve bootstrap CI sonuclarin istatistiksel guvenilirligini kanitlamistir.

Sonuc: STRESS 23.2 -- CIE Lab'a gore %23.4, CIEDE2000'e gore %20.5 daha iyi. Bootstrap guven araliklari kesismiyor. Validation gap yalnizca +1.11. Ve tum bu dogruluk, 10.3 KB'lik bir npm paketinde erisilebilir.

Terminal
npm install helmlab

Kaynak kod: GitHub | Paket: npm

Bu yazi, Helmlab serisi 16 blog yazisinin sonuncusudur. Serinin tamaminda renk biliminin temellerinden pratik uygulamaya kadar her konuyu ele aldik. Okudugunuz icin tesekkurler.

Görkem Yıldız

Helmlab, a family of perceptual color spaces for UI design systems (arXiv:2602.23010)

I'm Görkem, a UI/UX designer and engineer based in Ankara, leading the design team at [PushBrands](https://pushbrands.app/en), a Saudi UGC marketplace. I've spent over eight years designing and building digital products, and lately the systems underneath them: Helmlab, a color space trained on 64,000 human color judgments that now ships in Color.js; open-source tools for icons, sound and the terminal; and, as Orbit Design, Figma plugins with more than 100,000 users.

Book a call

Talk about color, design systems or Helmlab.

Saturdays 19:00–21:00 Istanbul time, on Google Meet.

Book a call