FikirleriÜrünlereDönüştürüyorum
AI, Web Design, Mobile Design ve Frontend alanlarında kullanıcı odaklı, estetik ve işlevsel dijital deneyimler tasarlıyorum.
Çalıştığım teknolojiler
Sürükle, savur, çarpıştır. Aralarındaki ilişkiyi senin de kurmana izin veriyorum.
Tasarım &
Kod arasındaki
köprü
Kurumsal sitelerden kongre otomasyonuna, çoklu-ajan AI platformlarından native iOS uygulamalarına kadar uçtan uca üretiyorum. Diğer yarısı veriyle geçiyor: sinir ağları, RAG hatları, sayısal optimizasyon ve bir sonucu anlaşılır kılan görselleştirmeler. Tasarım kaygısını sistem mühendisliğiyle birleştirir; ölçülebilir SEO/GEO sonuçları ve kararlı otomasyonlar peşinde koşarım.
Canlıdaki projeler
Kurumsal sitelerden kongre otomasyonuna, RAG tabanlı bir hafıza ağından graf-indeksli iOS uygulamasına. Her satır kodun arkasında ölçülebilir bir hedef var.
Data Lab
Bir modelin çıktısı kadar, o çıktının nasıl okunduğu da önemli. Bu bölümde üç şey var: gerçek proje verilerinden çizilmiş görselleştirmeler, matematiksel formüllerin satır satır koda dönüşümü ve bunları kullanan uygulamalar.
Jargon kullanmadan anlatmaya çalıştım; yine de altı noktalı her terime dokunursan ne demek olduğunu açıklıyor.
Veriyi okunur hâle getirmek
Aşağıdaki her grafik, repolarımdaki gerçek çıktıdan üretildi — notebook log'larından çıkarılan epoch serileri, commit'li sensör CSV'si ve optimizasyon scriptlerinin kendi çalıştırma sonuçları. Rozetler orijinalini hangi kütüphanenin çizdiğini gösteriyor.
Erken durdurma tam olarak neyi yakalıyor?
Eğitim doğruluğu %90'a tırmanırken doğrulama %80'de düzleşiyor — aradaki makas ta kendisi. Kesikli çizgi, dibe vurduğu 14; ağırlıkları buradan geri yüklüyor.
Doğruluğun arkasındaki dört sayı
%91.25 doğruluk tek başına bir şey anlatmaz; asıl soru hataların nereye düştüğü. bunu açıyor: model 3 gerçek alıcıyı kaçırıyor ve 4 kişiyi boşuna hedefliyor — bu iki hatanın maliyeti eşit değil.
Regresyon ağı nerede doyuma ulaşıyor?
Doğrulama 'si ilk on 'ta hızla düşüp sonra eğitim eğrisinden ayrılıyor. ve bu ayrımı yönetiyor; nihai model 0,92 ve ortalama 15.617 $ sapmayla kapanıyor.
Gürültülü sinyalden güvenilir okuma
Seri porttan gelen 10.138 ham ölçüm, ~85 dakikalık bir ısınma deneyi. Ham iki sensör titrek; 30 saniyelik ve bandı asıl eğilimi ve ölçüm belirsizliğini birlikte gösteriyor.
İkinci türev neden bu kadar önemli?
Hedefe olan mutlak hata, log ölçeğinde. Sabit gradient descent her iterasyonda hatayı yalnızca 0,8 katına indiriyor — 4 adımda yolun ancak yarısı. Newton ise bölerek yakınsıyor: hata her adımda yaklaşık kareleniyor ve 5 adımda makine hassasiyetine iniyor. İki eğri de aşağıdaki repoların gerçek çıktısı.
Formülü satıra çevirmek
Beş optimizasyon reposu, tek bir ortak fikirle: türevleri elle yazmak yok. Hepsinde fonksiyon bir SymPy ifadesi olarak tanımlanıyor, gradyan sp.diff ile türetiliyor, sonra .subs() ile sayısallaşıyor. Aşağıdaki kartlar sabit adımdan sembolik çizgi aramasına doğru ilerliyor — kod blokları repolardaki gerçek satırlar.
Gradient descent — tek değişken
sp.diff fonksiyon ifadesinden kendisi çıkarıyor.import sympy as sp # Define symbolic variablex = sp.symbols('x') # define the functionf = (x)**2 + 6*(x) + 1 # derivativef_derivative = sp.diff(f, x) # define inital valuesx_value = 0alfa = 0.1 for i in range(1, 5): result = f_derivative.subs(x, x_value) # new x value x_value -= alfa * result print(f"Yeni x_{i} değeri: {x_value}\n")x0 = 0 → x1 = -0.6 → x2 = -1.08 → x3 = -1.464 → x4 = -1.7712Formülün tamamı tek satıra iniyor: x_value -= alfa * result. Geri kalan her şey türevin sembolik olarak elde edilmesi.
Gradient descent — vektör hâli
for i in range(iterations): # new values new_x_1_value = x_1_value - alpha_value * df_dx1.subs({x_1: x_1_value, x_2: x_2_value}) new_x_2_value = x_2_value - alpha_value * df_dx2.subs({x_1: x_1_value, x_2: x_2_value}) print(f"Iterasyon {i + 1}:") # update the new values x_1_value = new_x_1_value x_2_value = new_x_2_valueSıranın önemi burada: her iki bileşen de eski iterat'tan hesaplanıp sonra birlikte yazılıyor — doğru eşzamanlı güncelleme. x_1_value'yu erken güncellemek sessizce Gauss–Seidel'e dönüştürürdü. Ayrıca x2'nin eğriliği 12 olduğu için adım çarpanı (1 − 12α) = −0,2 çıkıyor: aynı α ile bir koordinat salınırken diğeri düzgün yakınsıyor — kötü koşullanma tam olarak bu.
Newton yöntemi — optimizasyon formu
import sympy as spx = sp.symbols('x')f = (x) ** 3 - 3 * (x) ** 2 #first and second derivativef_derivative = sp.diff(f, x)f_second_derivative = sp.diff(f_derivative, x) x_value = 3iteration = 5for i in range(1, iteration+1): first_derivative = f_derivative.subs(x, x_value) second_derivative = f_second_derivative.subs(x, x_value) if second_derivative != 0: x_value = x_value - (first_derivative / second_derivative) print(f"new x_{i} value: {sp.N(x_value)}") else: print("Division by zero. Choose a different initial value.") breakx0 = 3.000000 → x1 = 2.250000 → x2 = 2.025000 → x3 = 2.000305 → x4 = 2.000000 → x5 = 2.000000Repo adı "Raphson" diyor ama kod f′/f″ kullanıyor, klasik kök bulma formu f/f′ değil. Yani bu bir kök arayışı değil, durağan nokta arayışı: x3 − 3x2'nin kökleri 0 ve 3 iken kod x0= 3'ten başlayıp kökten uzaklaşarak yerel minimum olan x = 2'ye gidiyor.
Quasi-Newton — yaklaşık Hessian ile yön
sp.solve ile çözülüyor.h_0 = np.array([[1/2, 0], [0, 1/6]]) #Find p_0p_0 = np.dot(h_0, q_0.transpose())*-1X_1 = X_0_transpose + S*p_0 # ... q_1 = gradient at X_1 ...result_sum = np.dot(p_0_transpose, q_1_transpose).sum() ## Find Sif result_sum != 0: S_solve = sp.solve(result_sum, S) ϴ = reel_q_1_transpose - q_0_transpose # y = Δgradientα = reel_X_1 - X_0_transpose # s = Δxβ = np.divide(α, ϴ)print(f"β = {β}")Burada dürüst olmak gerek: bu BFGS değil. Kod sekant güncellemesinin iki bileşenini de doğru kuruyor (ϴ = Δgradyan, α = Δx) ama son satırdaki np.divide eleman-bazlı bölme — rank-2 dış çarpım güncellemesi değil ve h_0 hiç h_1'e güncellenmiyor. Yani quasi-Newton adımının çizgi arama yarısı tamam, matris güncellemesi eksik.
Eşlenik gradyan — Fletcher–Reeves
# ilk yön: en dik inişp_0 = -q_0X_1 = X_0 + S*p_0 # ... q_1 = gradient at X_1 ... # tam çizgi araması: p_0 · q_1 = 0 koşulundan Sresult_sum = np.dot(p_0, q_1_transpose).sum()if result_sum != 0: S_solve = sp.solve(result_sum, S) #find betabeta = np.dot(reel_q_1, reel_q_1_transpose).sum()/np.dot(q_0, q_0_transpose).sum() p_1 = -(reel_q_1_transpose)+(beta)*(p_0_transpose)print(p_1)Ders kitabı uygulamalarının çoğu adım boyunu sabit seçer; burada S, sp.solve ile diklik koşulundan sembolik olarak çözülüyor ve tam olarak 13/34 çıkıyor. Tek adımda gradyan normu o kadar düşüyor ki β = 1/1156 gibi minik bir değere iniyor.
Not: eşlenik gradyan ve quasi-Newton dosyaları birer elle açılmış iterasyon; yakınsayan döngü değil. Hiçbirinde durdurma toleransı yok, iterasyon sayıları sabit kodlanmış.
Modelden sonuca
Görüntü sınıflandırmadan tabular regresyona, donanım telemetrisinden düzenlileştirme analizine. Kartlardaki sayılar repolardaki ölçülmüş sonuçlar.
FurVision
Kedi/köpek sınıflandırması için sıfırdan kurulan evrişimli ağ. Ara katman aktivasyonları ayrı bir Model ile çıkarılıp özellik haritaları görselleştirildi — ağın gerçekte neye baktığını görmek için.
ANN Real Estate Regression
Ames Housing veri kümesi üzerinde konut fiyatı tahmini. Eksik değer doldurma, standartlaştırma ve dropout ile düzenlileştirme dahil uçtan uca bir tabular ML hattı.
Arduino IoT Telemetri
Seri porttan gelen sensör akışını zaman damgalayıp CSV'ye yazan, ardından doğrulayıp Plotly ile interaktif olarak analiz eden bir veri hattı. Çift sensör karşılaştırması, hareketli ortalama, aykırı değer tespiti ve R² uyum analizi.
K-NN Classification
Minkowski metriğiyle (p=2, yani Öklid) k-en yakın komşu sınıflandırması. Mesafe tabanlı yöntemlerde ölçeklendirmenin neden zorunlu olduğunu ve k seçiminin yanlılık–varyans dengesini gösteren bir çalışma.
ANN Energy Prediction
Kombine çevrim santralinde saatlik net elektrik çıkışının tahmini. Ortam sıcaklığı, egzoz vakumu, basınç ve nem olmak üzere dört değişkenden; kasıtlı olarak küçük tutulmuş bir ağ ile.
Ridge vs Lasso
L2 ve L1 cezalarının katsayılar üzerindeki etkisinin karşılaştırması: Ridge katsayıları küçültürken Lasso onları tam olarak sıfıra indirip örtük bir özellik seçimi yapıyor.
Kariyer yolculuğu
Stajdan tam zamanlı mühendisliğe — yazılım, otomasyon ve AI odaklı profesyonel deneyimler.
Kurumsal siteler, kongre/SaaS otomasyonu ve AI ürünleri üretiyorum. congress.writetecbt.com için Google Drive v3 API tabanlı, otomatik kongre kitabı üreten uçtan uca platform geliştirdim; 5+ canlı müşteri sitesi devreye alındı.
Holding bünyesinde bilgisayar mühendisliği görevleri; sistem altyapısı, yazılım geliştirme ve operasyonel süreçlerde teknik destek sağladım.
PyQt6 ile masaüstü GUI uygulamalarının geliştirilmesine destek verdim; kullanıcı deneyimini iyileştirdim. React Native (Expo) ile çapraz platform mobil uygulama geliştirme süreçlerine katkı sağladım.
Büyük dil modellerinin eğitim verisi kalitesini artırmak için prompt tasarımı ve prompt mühendisliği alanında freelance AI eğitmeni olarak çalıştım.
Bilgisayar ağları, Windows Server ve kurumsal ağ altyapısı üzerine stajyer ağ mühendisi olarak saha ve sistem yönetimi süreçlerinde deneyim kazandım.
Birlikte bir şeyler
yaratalım
Yeni projeler, danışmanlık, kongre/SaaS otomasyonu veya sadece bir merhaba için formu doldurman yeterli. Genelde 24 saat içinde dönüş yapıyorum.