Veri Bilimi Mülakat Soruları

Veri Bilimi Mülakat Soruları

Bu yazımızda veri bilimci, makine öğrenmesi mühendisi ve derin öğrenme mühendisi pozisyonları mülakat süreçlerinde sıkça karşılaşılan soruları ve yanıtları inceliyoruz.
Elif Koç28 Eki 2022

 

Hiperparametre kavramını kendi kelimelerinizle tanımlayınız. Hiperparametreleri listeleyin ve parametreler arasındaki farkı açıklayınız.

Hiperparametre

 Öğrenme sürecini kontrol eden ve manuel olarak değiştirilebilen bir parametrelerdir. Bazı hiperparametreler:

● Öğrenme oranı (learning rate)

● Yineleme sayısı (number of iterations)

● Gizli katman sayısı (number of hidden layer)

● Gizli birim sayısı (number of hidden unit)

● Aktivasyon fonksiyonu (activation function)

● Momentum, mini parti boyutu (momentum, minibatch size)

Hiperparametreler model parametrelerinin aksine eğitim sırasında öğrenilmez ancak önceden belirlenebilirler.

 

Denetimli öğrenme ve denetimsiz öğrenme nedir?

Denetimli öğrenme, modeli eğitmek için etiketlenmiş veri setlerinin kullanıldığı (bağımlı ve bağımsız değişkenlerin bilindiği) makine öğrenimi türüdür. Denetimsiz öğrenmede ise herhangi bir etiketlenmiş veri mevcut değildir. Daha çok, kümeleme gibi, veri kümesinin örüntülerinin bulunmaya çalışıldığı bir algoritma türüdür.
 

 

Yapılandırılmış ve yapılandırılmamış verileri tanımlayınız ve örnekler veriniz.

Yapılandırılmış veri: Özellikler açıkça tanımlanır ve bu özelliklerle ilişkili sayısal değerler liste veya tablo halinde sunulur.

Yapılandırılmamış veri: Özellikleri ve sayısal temsillerini net olarak tanıyamadığımız bir veri türüdür. Ham ses veya görüntü gibi tablo halinde olmayan veri türleri örnekleridir.

 

Gradyan azalımı (gradient descent) ile bir optimizasyon sürecinde öğrenme oranının (learning rate) rolü nedir? Öğrenme oranının olası değerlerine karar vermek neden önemlidir?

Öğrenme oranı, gradyanın katsayısıdır ve temel olarak her yinelemede gradyan iniş adımlarının derinliğini söyler. Öğrenme oranının çok büyük olması algoritmanın global minimum noktasını kaçırmasına, çok küçük olması ise global minimum noktasına erişimin uzun sürmesine neden olabilmektedir. Öğrenme oranının küçük olması, karmaşıklığı önemli ölçüde artacak şekilde, parametrelerin çok kademeli olarak güncellenmesine neden olmaktadır. 


 

Aktivasyon fonksiyonunun amacını açıklayınız.

Aktivasyon fonksiyonları yapay sinir ağlarında bir girdi sinyalini sırayla yığındaki (stack) bir sonraki katmana girdi olarak beslenen bir output sinyaline dönüştürmek için kullanılan bir hiperparametredir.

Bir yapay sinir ağında, girdilerin çarpımlarının toplamı ve bunlara karşılık gelen ağırlıklar hesaplanır. Elde edilen çıktının bir sonraki katmana girdi olarak sağlanması için ona bir aktivasyon fonksiyonu uygulanır.

Bir sinir ağında aktivasyon fonksiyonu kullanılmaması durumunda, output sinyali sadece birinci dereceden bir polinom olan basit bir lineer fonksiyon olacaktır. Doğrusal bir denklemin basit ve çözülmesi kolay olması nedeni ile karmaşıklığı sınırlıdır, bu nedenle de verilerden karmaşık eşlemeleri öğrenme ve tanıma yetenekleri yoktur. Aktivasyon fonksiyonu olmayan sinir ağı, çoğu zaman sınırlı performans ve güce sahip bir lineer regresyon modeli gibi davranır. Bir sinir ağının yalnızca doğrusal bir işlevi öğrenmesi ve hesaplaması değil; aynı zamanda görüntü, video, ses, konuşma, metin gibi karmaşık veri türlerini modellemekten daha karmaşık görevleri yerine getirmesi arzu edilir.


 

Output (çıktı) değerleri skaler olan ve değeri 1 veya 0 olan bir model oluşturulmak istendiğinde output katmanında hangi aktivasyon fonksiyonunu tercih edilebilir?

Sigmoid aktivasyon fonksiyonu ikili sınıflandırma problemlerinde output (çıktı) katmanı için kullanılabilecek en uygun aktivasyon fonksiyonlarındandır.
 

 

Bir sinir ağındaki ardışık katmanlar için doğrusal olan aktivasyon fonksiyonlarının kullanılmasının matematiksel sonucu nedir?

Gizli katmanlarda lineer aktivasyon fonksiyonunun kullanılması katmanın girdisi ve çıktısı arasında herhangi bir farkın oluşmamasına neden olacaktır. Bu durum da doğrusal regresyona benzer sonuçlar elde edilmesine neden olacaktır. Bu nedenle gizli katman kullanılmasının herhangi bir önemi ve gereği kalmayacaktır. Aktivasyon fonksiyonlarının amacı sınırlar ve tahminlerde doğrusal olmama durumunun elde edilmesidir.


 

Veri kümelerinin üç parça (eğitim, doğrulama ve test) şeklinde kullanılmasının nedenini açıklayınız.

Bir problemin çözümünde veri seti eğitim, test ve doğrulama (ya da geliştirme) olmak üzere üç parça şeklinde kullanılmalıdır. Eğitim veri seti problemin çözümünde kullanılan algoritmanın veriler arasındaki karmaşık ilişkiyi öğrenmesi amacıyla kullanılırken, test veri setleri model eğitiminin ne ölçüde başarılı olduğunu sınamak için kullanılmaktadır. Doğrulama veri setleri ise eğitilmiş modelin performansını bazı hiperparametrelerle doğrulamak için kullanılmaktadır. Böylelikle eğitim modelinin performansına göre hiperparametreler değiştirilebilir. Doğrulama veri setinin test veri seti ile aynı dağılımda olması gerekmektedir.


 

Eğitim seti ve test setinin oranları nasıldır?

Veri setinde az miktarda veri bulunması durumunda veriler %80 eğitim, %10 doğrulama ve %10 test olarak bölünebilir. Ancak veri setinin büyük olması durumunda (1 milyon veri gibi) bölüm işlemi %98 eğitim, %1 doğrulama ve %1 test şeklinde yapılabilir.

 

Geliştirme (dev) setinin amacı nedir?

Daha iyi hiperparametreler bulmak için kullanılır. Hiperparametreler mümkün olduğunca optimize edilmelidir.


 

Regülarizasyon (regularization, düzenlileştirme) nedir? Regülarizasyon neden aşırı öğrenmeyi azaltır?

Regülasyon kelimesinin anlamı, “bir durumu veya sistemi kanunlara veya kurallara uyacak şekilde değiştirme eylemidir”. Regülasyonun, makine öğreniminde de bu tanıma uygun bir işlevi vardır.

Düzenlileştirme, modelin problemi daha iyi genellemesi için öğrenme algoritmasında küçük değişiklikler yapan bir tekniktir. Bu da modelin eğitim aşamasında karşılaşmadığı örnekler üzerindeki performansını artırır. Düzenleme katsayılarını cezalandırır. Derin öğrenmede düğümlerin ağırlık matrislerini cezalandırır.

Özellikle sinir ağları gibi karmaşık modeller, eğitim verilerine aşırı öğrenme (overfitting) eğilimlidir. 


 

Regülarizasyon (düzenlileştirme) yöntemleri nelerdir?

L1 (lasso regresyon) ve L2 (ridge regresyon) düzenlileştirme terimi olarak bilinen başka bir terim ekleyerek genel maliyet fonksiyonunu güncellerler. L1 ve L2 arasındaki temel fark ceza terimidir. 

 

L1 regülasyonu, modelin özellikleri için 0’dan 1’e ikili ağırlıklarda çıktı verir ve çok boyutlu bir veri kümesindeki özelliklerin sayısını azaltmak için kullanılır. Ceza parametresi olarak lambda katsayısının mutlak değeri kullanılır. L1, önemi az olan özelliğin (feature) katsayısını sıfıra indirerek bazı özellikleri tamamen ortadan kaldırır. Bu sebeple, özellik sayısı çok olduğunda iyi bir tercihtir.

L2 regülasyonu ağırlıkları küçük olmaya zorlar. Ağırlıkları tam olarak 0 yapmadan aşırı öğrenmeyi engellemeye çalışır. Cost fonksiyonuna ceza terimi eklenir. Modele eklenen bu sapma miktarına ridge regresyon cezası denir. Ceza parametresi olarak lambda katsayısının karesi kullanılır. 

Cost fonksiyonu: Modelin X ve y arasındaki ilişkiyi tahmin etme yeteneği açısından ne kadar yanlış olduğunun ölçüsüdür. Bir başka deyişle, tahmin edilen değer ile gerçek değer arasındaki fark veya mesafe olarak ifade edilir.

Dropout: Her yinelemede, bazı düğümleri rastgele seçer ve bunları tüm gelen ve giden bağlantılarıyla birlikte kaldırır.

Early stopping (erken durdurma): Eğitim setinin bir bölümünün doğrulama seti olarak tutulduğu bir tür çapraz doğrulama stratejisidir. Doğrulama setindeki performansın kötüleştiği görüldüğünde model üzerindeki eğitim hemen durdurulur. Bu erken durdurma olarak bilinir.

Data augmentation (veri büyütme): Aşırı öğrenmeyi (overfit) azaltmanın en basit yolu, eğitim verilerinin boyutunu artırmaktır. Var olan verilerin ufak modifikasyon ile kopyalarının oluşturulması veya var olan veriden sentetik verilerin üretilmesidir.


 

Normalizasyon (normalization) nedir? Neden bu tekniği kullanırız?

Normalizasyon, bir veri kümesindeki sayısal sütunların değerlerini, verilerdeki özelliklerin farklı aralıklara sahip olduğu durumlarda ortak bir ölçek kullanacak şekilde değiştirmek için verilerin hazırlanması sırasında uygulanan bir yaklaşımdır. Normalizasyon, verilerin dağılımı bilinmediğinde veya dağılımın Gauss (bir çan eğrisi) olmadığı bilindiğinde kullanmak için iyi bir tekniktir. Normalizasyon, verilerin değişen ölçeklere sahip olduğunda ve kullanılan algoritma (k-en yakın komşular ve yapay sinir ağları gibi) verilerin dağılımı hakkında varsayımlarda bulunmadığında kullanışlıdır.


 

Batch gradient descent ve mini gradient descent arasındaki fark nedir?

Batch gradient descent veri kümesinin tam boyutuyla çalışırken mini gradient descent süreci hızlandırmak için veri kümesini birkaç parçaya böler.


 

Stokastik gradyan azalımı (stochastic gradient descent) ile ilgili sorun nedir?

Stokastik gradyan azalımında mini batch boyutu 1'e eşittir. Bu nedenle, maliyet minimizasyonu açısından çok gürültülüdür ve belki de hiçbir zaman yakınsamayacak ve vektörleşmeden hız kaybetmeyecektir.


 

Batch normalization’ın kullanım amacı nedir?

Batch normalization öğrenmeyi hızlandırır. Maliyet fonksiyonunun şekli ve minimum noktaya daha hızlı ulaşmak için yardımcı olur. Batch normalization, giriş değerlerinin değişmesi sorununu azaltır. Ayrıca bir miktar düzenleme yapar.


 

Programming framework nedir? Bir tanım yapınız, ardından örnekler veriniz.

Hazır işlevler ve optimize edilmiş sürümlere sahip kitaplıklar içeren hazır çerçeve alanıdır: Tensorflow, Caffe, Caffe2, PyTorch, DL4J vb.


 

Precision and recall terimleri ne anlama gelir? Örneklerle açıklayınız.

Precision, modelin olumlu tahminlerde ne kadar doğru olduğunu, kaçının gerçekten olumlu olduğunu ölçmek için kullanılır. Recall pozitif-doğru ve negatif-yanlıştan kaç tane pozitif-doğru olduğunu hesaplamak için kullanılır.


 

F1 puanı nedir?

F1 puanı değeri precision ve recall değerlerinin harmonik ortalamasını gösterir.


 

Bir modeli insan seviyesindeki performansla karşılaştırmak neden önemlidir?

Özellikle son birkaç yıldır, makine öğrenimi sistemlerinin insan seviyesindeki performans ile karşılaştırılmasından fazlasıyla söz ediliyor. İki ana sebep üzerinde durabiliriz. Birincisi, derin öğrenmedeki ilerlemeler sebebiyle makine öğrenimi algoritmaları daha iyi çalışmaya başladı ve bunun sonucunda, bu algoritmaların insan düzeyinde performansla rekabet edebileceği birçok uygulama alanı ortaya çıktı. İkincisi, insanın yapabileceği bir şeyin makine öğrenimi sistemleriyle yapılmaya çalışılmasıyla, makine öğrenimi sistemleriyle tamamlanan işin daha etkin olduğu gözlemlenmiştir.


 

Transfer öğrenme (transfer learning) nedir? Örnek veriniz.

Transfer öğrenme, bir problemi çözerken elde edilen bilgileri depolamaya ve onu farklı ancak ilgili bir probleme uygulamaya odaklanan bir araştırma yöntemidir. Makine öğrenimi için önceden eğitilmiş bir modelin öğelerinin yeni bir makine öğrenimi modelinde yeniden kullanılmasıdır. İki model benzer görevleri yerine getirmek için geliştirildiyse, aralarında genelleştirilmiş bilgi paylaşılabilir. Makine öğrenimi geliştirmeye yönelik bu yaklaşım, yeni modelleri eğitmek için gereken kaynakları ve etiketlenmiş veri miktarını azaltır. Örneğin arabaları tanımayı öğrenirken edinilen bilgiler, kamyonları tanımaya çalışırken uygulanabilir.


 

Transfer öğrenimini uygulamak ne zaman mantıklıdır?

Transfer learning, özellikle küçük bir eğitim veri setinin olması durumunda oldukça kullanışlıdır. Gerçek dünya problemlerinin çoğunda karmaşık modelleri eğitmek için milyonlarca etiketli veri yoktur.


 

Multi-task learning nedir? Örnek veriniz.

Output (çıktı) katmanında aynı anda birden fazla output olması durumudur. Örneğin, output setinde kedi, köpek, kuş çıktıları olan bir modelde input olarak verilen bir görselde hem kedi hem de köpek varsa, kedi ve köpek için True, bird için False ifadesi elde edilecektir.


 

Computer Vision nedir? Kısaca açıklayınız ve örnek veriniz.

Bilgisayarlı görü (computer vision), insanın görme sisteminden ilham alınmasıdır. Tıpkı insanların yaptığı gibi görüntü ve videolardaki nesnelerin tanımlanmasını ve işlenmesini sağlayan bilgisayar bilimi alanıdır. Bilgisayarlı görü, örüntü tanıma ile ilişkilidir. Bu nedenle, bir bilgisayarı görsel verileri nasıl anlayacağına dair eğitmenin bir yolu, etiketlenmiş binlerce, milyonlarca görüntüden oluşan veri ile beslemektir. Bilgisayarlı görüde amaç, çeşitli yazılım teknikleri ve algoritmalar ile bilgisayarın bu görüntülerdeki örüntüyü öğrenmesini sağlamaktır.
 

 

Pooling layer tipleri nelerdir?

Pooling layer tipleri; max pooling ve average pooling’dir. Kernelin kapsadığı kısımdan maksimum değeri veren max pooling ve görüntünün kernel tarafından kapsanan kısmındaki tüm değerlerin ortalamasını veren ise average pooling olarak adlandırılır.


 

Evrişim işleminde (convolution) stride ne anlama gelmektedir?

Stride (kaydırma adımı), girdi matrisi üzerinde kernel matrisinin kaç adım ile taşınacağını belirtir. Stride sayısının 1 olması durumunda filtreler tek seferde 1 piksele taşınır. Benzer şekilde stride sayısı 2 olduğunda, filtreler tek seferde 2 piksele taşınmaktadır. Adım değeri ne kadar küçükse, çıktı o kadar büyüktür (tersi de geçerlidir).


 

Nesne algılamada kullanılan localization ve detection kavramlarını açıklayınız.

Object localization (nesnenin yerini belirleme) ile bir görüntüdeki ana nesneyi bulmak hedeflenir. Nesnenin nerede olduğu bulunur ve çevresine bir sınırlayıcı kutu çizilir. Object detection (nesne algılama) tüm nesneleri ve bunların sınırlarını bulmaya çalışır. 


 

Intersection over union nedir? Nesne algılama, bounding box’lar ile nasıl kullanılmaktadır?

IOU (intersection over union), iki kutunun örtüşme derecesini tanımlamak için kullanılan bir terimdir. Örtüşme bölgesi ne kadar büyük olursa, IOU o kadar büyük olur. 


 

Triplet loss nedir ve nerede ne için kullanılır?

Triplet loss ana input ile pozitif input (ana inputa benzeyen) arasındaki mesafeyi en az indirirken, negatif input (ana inputa benzemeyen) ile ana input arasındaki mesafeyi de maksimuma çıkarır. Triplet loss kullanımında, benzer şeyler arasındaki farkı azaltmak ve farklı şeyler arasındaki farkı artırmak için parametrelerin ağırlıkları değiştirilir. 


 

One shot learning problem nedir?

One shot learning, tek bir training örneğinden nesne kategorileri hakkında bilgi öğrenme görevidir. Derin öğrenme modeli tek seferde öğrenmeye ayarlandığında, iki görüntü (örneğin pasaport görüntüsü ve kameraya bakan kişinin görüntüsü) alınır ve iki görüntü arasındaki benzerliği gösteren bir değer döndürür. Görüntüler aynı nesneyi veya aynı yüzü içeriyorsa sinir ağı belirli bir eşikten (örneğin sıfırdan) daha küçük bir değer döndürürken, aynı nesne veya yüz değilse eşikten daha yüksek bir değer döndürülür.


 

Yüz tespiti (face detection), yüz tanıma (face recognition) ve yüz onaylama (face verification) nedir?

Yüz tespiti, yüz tanımlama ve yüz onaylamanın temelidir. Yüz tespiti, birçoğumuzun akıllı telefonunda da bulunan kameranın otomatik olarak insan yüzüne odaklanma özelliklerinde karşılaştığımız durumdur. Yüz tespiti, sisteme aynı anda gösterilen sayısız farklı öge arasında insan yüzünün mevcut olup olmadığını algılama yeteneğidir.

Yüz tanıma, bir sistemin insan yüzlerini taraması ve yüzün dijital bir görüntüsünü alması ardından bir eşleme bulmak için görüntüyü zaman içinde kaydedilen diğer yüzlerin bulunduğu bir veritabanı ile karşılaştırması işlemidir.

Yüz doğrulama, birinin kimlik bilgilerini dijital olarak sunarken söylediği kişi olduğundan emin olmak için yüz tanıma doğrulamasını kullanan bir teknolojidir.


 

Kaynakça

Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.