[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:ml-engineer\u002Fdl-normalization-regularization":4,"config":169},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":76,"samples":84},"ml-engineer","ML Engineer","","dl-normalization-regularization","Dl Normalization Regularization","tr",75,1500,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,46,49,52,55,58,61,64,67,70,73],{"key":19,"name":20,"count":11},"cml-distance-clustering-dimreduction","Cml Distance Clustering Dimreduction",{"key":22,"name":23,"count":11},"cml-gradient-boosting-mechanics","Cml Gradient Boosting Mechanics",{"key":25,"name":26,"count":11},"cml-linear-logistic-internals","Cml Linear Logistic Internals",{"key":28,"name":29,"count":11},"cml-probabilistic-models-calibration","Cml Probabilistic Models Calibration",{"key":31,"name":32,"count":11},"cml-svm-kernels-margins","Cml Svm Kernels Margins",{"key":34,"name":35,"count":11},"cml-trees-randomforest-internals","Cml Trees Randomforest Internals",{"key":37,"name":38,"count":11},"dl-architecture-layers","Dl Architecture Layers",{"key":40,"name":41,"count":11},"dl-initialization-optimizers","Dl Initialization Optimizers",{"key":43,"name":44,"count":11},"dl-losses-output-layers","Dl Losses Output Layers",{"key":8,"name":9,"count":11},{"key":47,"name":48,"count":11},"dl-sequence-attention","Dl Sequence Attention",{"key":50,"name":51,"count":11},"dl-training-dynamics-backprop","Dl Training Dynamics Backprop",{"key":53,"name":54,"count":11},"ml-data-preparation","Ml Data Preparation",{"key":56,"name":57,"count":11},"ml-deployment-serving","Ml Deployment Serving",{"key":59,"name":60,"count":11},"ml-experimentation-reproducibility","Ml Experimentation Reproducibility",{"key":62,"name":63,"count":11},"ml-model-selection-tuning","Ml Model Selection Tuning",{"key":65,"name":66,"count":11},"ml-model-training-evaluation","Ml Model Training Evaluation",{"key":68,"name":69,"count":11},"ml-monitoring-drift","Ml Monitoring Drift",{"key":71,"name":72,"count":11},"ml-problem-framing","Ml Problem Framing",{"key":74,"name":75,"count":11},"ml-scaling-performance","Ml Scaling Performance",[77,81],{"key":78,"name":79,"count":80},"classical-ml","Classical ML",450,{"key":82,"name":83,"count":80},"deep-learning","Deep Learning",[85,103,117,130,143,156],{"id":86,"topic":9,"difficulty":87,"body":88,"options":89,"correct_key":94,"explanation":102},"01a0499c-f158-7129-9389-4504d556fda7",1,"Eğitim sırasında (N, C) şeklindeki bir aktivasyon tensörüne BatchNorm uygulanıyor; N batch boyutu, C özellik boyutu. Katman bu tensörü standartlaştırmak için hangi istatistikleri hesaplar?",[90,93,96,99],{"key":91,"text":92},"a","Tüm N x C girdi üzerinden tek bir global ortalama ve tek bir global varyans; tensörün tamamı tek bir sayı çiftiyle standartlaştırılır",{"key":94,"text":95},"b","Her özellik için bir ortalama ve bir varyans; her biri batch'teki N örnek üzerinden kestirilir",{"key":97,"text":98},"c","Her örnek için bir ortalama ve bir varyans; her biri o satırın C özelliği üzerinden kestirilir",{"key":100,"text":101},"d","C x C boyutunda tam bir kovaryans matrisi; böylece ilişkili özellikler birlikte whitening'e tabi tutulur","BatchNorm her özellik kanalı için tek bir istatistik çifti tutar ve bunu batch boyutunu indirgeyerek kestirir. Satır içindeki özellikleri indirgeyen seçenek aslında LayerNorm'u tarif eder; tek global çift ise özellikler arası ölçek farklarını yok ederdi. Kovaryans matrisiyle whitening ise BatchNorm'un yapmadığı, çok daha pahalı ayrı bir işlemdir.",{"id":104,"topic":9,"difficulty":105,"body":106,"options":107,"correct_key":100,"explanation":116},"01a0499c-f158-789a-a3ab-95f7a6ea3c87",2,"PyTorch 2.8'de:\n\n```python\nbn = nn.BatchNorm2d(3)   # varsayılan affine=True\nbn.train()\nx = torch.randn(4, 3, 5, 5) * 2 + 1\ny = bn(x)\nprint(y.mean(dim=(0, 2, 3)), y.std(dim=(0, 2, 3), unbiased=False))\n```\n\nBu kod float toleransı içinde ne yazdırır?",[108,110,112,114],{"key":91,"text":109},"Ortalamalar 1 civarı, standart sapmalar 2 civarı; katman gelen konum ve ölçeği korur, yalnızca bir düzeltme öğrenir",{"key":94,"text":111},"Ortalamalar 0 civarı, standart sapmalar 2 civarı; ilk ileri geçişte yalnızca ortalama çıkarma uygulanır",{"key":97,"text":113},"Ortalamalar 1 civarı, standart sapmalar 1 civarı; öğrenilebilir kaydırma batch ortalamasına ilklenir",{"key":100,"text":115},"Ortalamalar 0 civarı, standart sapmalar 1 civarı; çünkü gamma ve beta 1 ve 0 olarak başlar","Train modunda katman her kanalın batch ortalamasını çıkarır, batch standart sapmasına böler ve ardından affine parametreleri uygular; bunlar gamma=1, beta=0 olarak ilklenir. Bu varsayılanlarla affine adım kimlik dönüşümü olur, dolayısıyla yazdırılan istatistikler standartlaştırılmış olanlardır. Girdideki 1 konumu ve 2 ölçeği korunmaz, silinir.",{"id":118,"topic":9,"difficulty":105,"body":119,"options":120,"correct_key":91,"explanation":129},"01a0499c-f159-70c5-a885-5eac50850d65","BatchNorm katmanları içeren bir evrişimli ağ, tek bir görüntüyü skorlamadan önce evaluation moduna alınıyor. Bu çağrıda her BatchNorm katmanı girdisini standartlaştırmak için hangi büyüklükleri kullanır?",[121,123,125,127],{"key":91,"text":122},"Eğitim batch'leri boyunca biriktirilmiş running mean ve running variance buffer'larını",{"key":94,"text":124},"Tam eğitimdeki gibi mevcut girdinin ortalama ve varyansını; çünkü katmanın moda bağlı bir dalı yoktur",{"key":97,"text":126},"Görülen son eğitim batch'inin ortalama ve varyansını; katman bunu birebir önbelleğe alır",{"key":100,"text":128},"Yalnızca öğrenilmiş gamma ve beta'yı; eğitim bitince standartlaştırma atlanır","Evaluation modunda katman istatistikleri gelen tensörden kestirmeyi bırakır ve eğitim sırasında biriktirdiği buffer'ları okur; tek görüntülük çıkarımı anlamlı kılan da budur. Standartlaştırma atlanmaz, affine parametreler onun üzerine uygulanır. Buffer'lar son batch'in birebir kopyası değil, çok sayıda batch üzerinden hareketli bir kestirim taşır.",{"id":131,"topic":9,"difficulty":105,"body":132,"options":133,"correct_key":97,"explanation":142},"01a0499c-f159-77a9-b2f5-c665476429de","Yeni oluşturulmuş bir BatchNorm katmanının running mean buffer'ı 0 tutuyor. momentum hiperparametresi 0.1. İlk eğitim ileri geçişinde bir kanalın batch ortalaması 5.0 çıkıyor. PyTorch 2.8'de bu kanalın running mean değeri sonrasında ne olur?",[134,136,138,140],{"key":91,"text":135},"5.0; ilk gözlemin harmanlanacağı bir geçmişi yoktur, ilk değerin yerini alır",{"key":94,"text":137},"4.5; buffer eski değerine 0.1, yeni değere 0.9 ağırlık verir",{"key":97,"text":139},"0.5; yeni batch istatistiği 0.1 ağırlıkla girer, eski buffer 0.9 ağırlığını korur",{"key":100,"text":141},"0.05; momentum iki kez uygulanır, biri batch istatistiğine biri güncellemeye","Buffer üstel hareketli bir ortalamadır ve bu ilk geçişte güncelleme 0.9 * 0 + 0.1 * 5.0 değerini hesaplar. Saklanan değerin batch ortalamasıyla üzerine yazılması 5.0, iki katsayının yer değiştirmesi ise 4.5 verirdi. Katsayı kurala iki kez değil bir kez girer, dolayısıyla sonucu ikinci kez küçülten bir adım yoktur.",{"id":144,"topic":9,"difficulty":105,"body":145,"options":146,"correct_key":94,"explanation":155},"01a0499c-f159-7efe-8691-551d15381eac","Bir servis, Dropout katmanları içeren eğitilmiş bir ağdan aynı isteği iki kez geçiriyor ve iki farklı tahmin vektörü alıyor. İki çağrı arasında ağırlıklar güncellenmedi. En olası sebep nedir?",[147,149,151,153],{"key":91,"text":148},"Dropout olasılığı istek sayısı arttıkça otomatik olarak düşürülür, sonraki çağrılarda daha çok birim korunur",{"key":94,"text":150},"Modül hâlâ training modundadır, bu yüzden her ileri geçiş yeni bir dropout maskesi örnekler",{"key":97,"text":152},"Dropout çıktısını rastgele bir hassasiyete yuvarlar, tekrarlı çağrılar düşük bitlerde farklılaşır",{"key":100,"text":154},"Dropout önceki isteğin maskesini saklar ve bir sonrakinde tersine çevirir","Dropout yalnızca modül training modundayken stokastiktir; o durumda her ileri geçiş bağımsız bir Bernoulli maskesi çeker, bu yüzden aynı girdi farklı çıktı verir. Evaluation moduna geçildiğinde katman kimlik dönüşümüne döner ve tekrarlı çağrılar birebir aynı olur. Olasılık kendiliğinden değişmez ve çağrılar arasında maske taşınmaz.",{"id":157,"topic":9,"difficulty":87,"body":158,"options":159,"correct_key":91,"explanation":168},"01a0499c-f15a-75a2-8fac-b175eee8ffa0","PyTorch 2.8'de:\n\n```python\nd = nn.Dropout(p=0.5)\nd.train()\ny = d(torch.ones(10000))\nprint(torch.unique(y))\n```\n\n`y` içinde hangi farklı değerler görülür?",[160,162,164,166],{"key":91,"text":161},"Yalnızca 0. ve 2.; hayatta kalan girdiler koruma olasılığına bölünür",{"key":94,"text":163},"Yalnızca 0. ve 0.5; hayatta kalan girdiler koruma olasılığıyla çarpılır",{"key":97,"text":165},"Yalnızca 0. ve 1.; maske girdileri sıfırlar, hayatta kalanlara dokunmaz",{"key":100,"text":167},"0. ile 1. arasında sürekli değerler; her girdi kendi Bernoulli örneğiyle çarpılır","Uygulama inverted dropout'tur: düşürülen girdiler sıfırlanır, hayatta kalanlar 1 - p'ye bölünür; burada bu 0.5 olduğu için sonuç 2 olur. Maske ikili olduğundan ara değer üretilmez. Hayatta kalanları koruma olasılığıyla çarpmak 2 yerine 0.5, onlara hiç dokunmamak ise 1 yazdırırdı.",{"fields":170,"seniorities":392,"interview_shapes":393,"locales":398,"oauth":400,"question_count":403,"coach_enabled":404,"jd_match_enabled":404},[171,196,216,233,257,270,289,308,330,349,364,386],{"key":172,"name_tr":173,"name_en":173,"sort":87,"specializations":174},"backend","Backend",[175,178,181,184,187,190,193],{"key":176,"name":177,"field":172},"general","Genel",{"key":179,"name":180,"field":172},"go","Go",{"key":182,"name":183,"field":172},"python","Python",{"key":185,"name":186,"field":172},"java","Java",{"key":188,"name":189,"field":172},"csharp","C#\u002F.NET",{"key":191,"name":192,"field":172},"nodejs","Node.js",{"key":194,"name":195,"field":172},"php","PHP",{"key":197,"name_tr":198,"name_en":198,"sort":105,"specializations":199},"frontend","Frontend",[200,201,204,207,210,213],{"key":176,"name":177,"field":197},{"key":202,"name":203,"field":197},"javascript","JavaScript",{"key":205,"name":206,"field":197},"typescript","TypeScript",{"key":208,"name":209,"field":197},"react","React",{"key":211,"name":212,"field":197},"vue","Vue",{"key":214,"name":215,"field":197},"angular","Angular",{"key":217,"name_tr":218,"name_en":218,"sort":219,"specializations":220},"fullstack","Fullstack",3,[221,222,223,224,225,226,227,228,229,230,231,232],{"key":176,"name":177,"field":217},{"key":179,"name":180,"field":172},{"key":182,"name":183,"field":172},{"key":185,"name":186,"field":172},{"key":188,"name":189,"field":172},{"key":191,"name":192,"field":172},{"key":194,"name":195,"field":172},{"key":202,"name":203,"field":197},{"key":205,"name":206,"field":197},{"key":208,"name":209,"field":197},{"key":211,"name":212,"field":197},{"key":214,"name":215,"field":197},{"key":234,"name_tr":235,"name_en":235,"sort":236,"specializations":237},"devops-cloud","DevOps \u002F Cloud",4,[238,239,242,245,248,251,254],{"key":176,"name":177,"field":234},{"key":240,"name":241,"field":234},"aws","AWS",{"key":243,"name":244,"field":234},"gcp","GCP",{"key":246,"name":247,"field":234},"azure","Azure",{"key":249,"name":250,"field":234},"kubernetes","Kubernetes",{"key":252,"name":253,"field":234},"terraform","Terraform",{"key":255,"name":256,"field":234},"linux","Linux",{"key":258,"name_tr":259,"name_en":259,"sort":260,"specializations":261},"ai-engineer","AI Engineer",5,[262,263,264,267],{"key":176,"name":177,"field":258},{"key":182,"name":183,"field":258},{"key":265,"name":266,"field":258},"llm-rag","LLM\u002FRAG",{"key":268,"name":269,"field":258},"mlops","MLOps",{"key":271,"name_tr":272,"name_en":273,"sort":274,"specializations":275},"database","Veritabanı","Database",6,[276,277,280,283,286],{"key":176,"name":177,"field":271},{"key":278,"name":279,"field":271},"postgresql","PostgreSQL",{"key":281,"name":282,"field":271},"mysql","MySQL",{"key":284,"name":285,"field":271},"mongodb","MongoDB",{"key":287,"name":288,"field":271},"redis","Redis",{"key":290,"name_tr":291,"name_en":292,"sort":293,"specializations":294},"mobile","Mobil","Mobile",7,[295,296,299,302,305],{"key":176,"name":177,"field":290},{"key":297,"name":298,"field":290},"ios-swift","iOS (Swift)",{"key":300,"name":301,"field":290},"android-kotlin","Android (Kotlin)",{"key":303,"name":304,"field":290},"flutter","Flutter",{"key":306,"name":307,"field":290},"react-native","React Native",{"key":309,"name_tr":310,"name_en":311,"sort":312,"specializations":313},"security","Güvenlik","Security",8,[314,315,318,321,324,327],{"key":176,"name":177,"field":309},{"key":316,"name":317,"field":309},"appsec","AppSec",{"key":319,"name":320,"field":309},"offensive-pentest","Offensive \u002F Pentest",{"key":322,"name":323,"field":309},"cloud-security","Cloud Security",{"key":325,"name":326,"field":309},"devsecops","DevSecOps",{"key":328,"name":329,"field":309},"blue-team-incident","Blue Team \u002F Incident",{"key":331,"name_tr":332,"name_en":333,"sort":334,"specializations":335},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[336,337,340,343,346],{"key":176,"name":177,"field":331},{"key":338,"name":339,"field":331},"test-automation","Test Automation",{"key":341,"name":342,"field":331},"sdet","SDET",{"key":344,"name":345,"field":331},"performance-testing","Performance Testing",{"key":347,"name":348,"field":331},"mobile-qa","Mobile QA",{"key":350,"name_tr":351,"name_en":351,"sort":352,"specializations":353},"data-engineer","Data Engineer",10,[354,355,358,361],{"key":176,"name":177,"field":350},{"key":356,"name":357,"field":350},"pipelines-etl","Pipelines \u002F ETL",{"key":359,"name":360,"field":350},"streaming","Streaming",{"key":362,"name":363,"field":350},"warehousing","Warehousing",{"key":365,"name_tr":366,"name_en":367,"sort":368,"specializations":369},"game-dev","Oyun Geliştirme","Game Development",11,[370,371,374,377,380,383],{"key":176,"name":177,"field":365},{"key":372,"name":373,"field":365},"unity-csharp","Unity (C#)",{"key":375,"name":376,"field":365},"unreal-cpp","Unreal (C++)",{"key":378,"name":379,"field":365},"gameplay","Gameplay",{"key":381,"name":382,"field":365},"graphics-rendering","Graphics \u002F Rendering",{"key":384,"name":385,"field":365},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":5,"name_tr":6,"name_en":6,"sort":387,"specializations":388},12,[389,390,391],{"key":176,"name":177,"field":5},{"key":78,"name":79,"field":5},{"key":82,"name":83,"field":5},[14,15,16],{"junior":394,"mid":396,"senior":397},{"questions":395,"median_sec":3},20,{"questions":395,"median_sec":3},{"questions":395,"median_sec":3},[10,399],"en",[401,402],"google","github",28050,true]