İlkbahar acemilerini kavrayın ve bu GitHub Wanxing ML algoritması röportaj kitabını kabul edin!

Kaynak: Heart of the Machine

Bu makale hakkında 2380 kelime 7 dakika okumanız tavsiye edilir.

Bu projede yazar, herkes için eksiksiz bir röportaj bilgi noktaları, programlama soruları ve çözümleri ve çeşitli teknoloji şirketlerinden mülakat soruları sağlayan bir ML algoritma mühendisi mülakat kılavuzu hazırladı.

Bahar gelir ve yakında işe alımlar başlayacak. Bu projede yazar, herkes için eksiksiz bir röportaj bilgi noktaları, programlama soruları ve çözümleri ve çeşitli teknoloji şirketlerinden mülakat soruları sağlayan bir ML algoritma mühendisi mülakat kılavuzu hazırladı. Şu anda GitHub projesinin 10.000'den fazla koleksiyonu var. Denemek isteyenler gelip deneyin.

Proje adresi: https://github.com/imhuay/Algorithm_Interview_Notes-Chinese

Aşağıdakiler tüm projenin yapısını göstermektedir: Makine öğreniminden matematiğe, esas olarak notlar ve görüşme bilgi noktaları sağlar. Okuyucular genel bilgi yapısını gözden geçirebilirler. Algoritmadan yazılı sınava kadar temel sorular ve çözümler daha sonra verilir Onlara göre genel problem çözme seviyesi ve programlama becerileri geliştirilebilir.

Bilgi noktaları ile görüşme

Pek çok türde mülakat sorusu var, ancak çok fazla makine öğrenimi bilgisi var. Öyleyse ilkbaharda işe alım veya ilkbaharda iş değişikliği için, neden makine öğreniminin temel bilgilerini tekrar etmiyorsunuz? Bu GitHub projesinde, yazarın ilk bölümü esas olarak her bir alt alanda makine öğrenimini ve bilgi noktalarını tanıttı. Bilgi noktalarının her biri yalnızca en temel kavramları sağlar. Okuyucular alışılmadık algoritmalarla karşılaşırsa veya bilgi boşluklarıyla karşılaşırsa, ilgili literatürü daha fazla okuyabilirler.

Proje esas olarak makine öğrenimi, derin öğrenme, doğal dil işleme ve matematikten ayrıntılı bilgi noktaları sağlar.Yazar, NLP'ye daha fazla önem verdiği için ayrıntılı bilgisayar görüşü notları sağlamadı.

Makine öğrenme

Her şeyden önce, makine öğrenimi için proje esas olarak makine öğreniminin genel durumunu dört yönden özetliyor: temel kavramlar, temel uygulamalar, temel algoritmalar ve entegre öğrenme konuları. "Sapma ve varyans nasıl tartılır?", "Üretken model ile ayrımcı model arasındaki fark nedir?", "Önceki ve sonraki olasılıklar nelerdir ve dönüştürülebilirler mi?" Gibi en temel mülakat soruları temel kavramlar olabilir. .

Bu bilgi noktalarının genellikle yeni başlayanlar tarafından anlaşılması gerekir ve temel MO uygulaması için, sorular temel olarak geleneksel MO geliştirme sürecinde iyi bir işin nasıl yapılacağı perspektifinden sorulur. Örneğin, "Hiperparametreleri nasıl seçersiniz, hiperparametreler için bazı temel arama yöntemlerini tanıtabilir misiniz?", "Karışıklık matrisi, doğruluk, kesinlik, geri çağırma veya F1 değeri nedir ve bunları modelin kalitesini ölçmek için nasıl kullanılır?" , "Örneğin, veri temizleme ve ön işlemenin ana sürecini tanıtabilir misiniz?".

Bu sorular ilk iki bölümdeki bilgi noktalarında yanıtlanabilir. İkinci bölümde, en basit Lojistik regresyondan karmaşık gradyan artırma ağacına kadar birçok temel algoritma vardır. Bu kısım, ana makine öğrenme algoritmalarını özetler:

  • Bilgi Teorisi
  • Lojistik regresyon
  • Vektör makineleri desteklemek
  • Karar ağacı
  • Entegre öğrenme
  • Gradyan Artıran Karar Ağacı GBDT
  • Rastgele orman

Bu algoritmaların her biri temel kavramları sağlar. Örneğin, karar ağacındaki CART algoritması için notlar esas olarak Li Hang'ın "İstatistiksel Öğrenme Metodu" ndaki açıklamayı aktarır:

Son olarak, makine öğreniminin entegrasyon yöntemleriyle ilgili bir konusu vardır. Vektör makinelerini desteklemenin yanı sıra, entegrasyon yöntemleriyle ilgili sorular da ML'de daha önemlidir, çünkü XGboost ve random forest gibi yöntemler geleneksel ML'de birinci sınıf olmalıdır ve sorulma olasılığı çok daha yüksektir.

Derin öğrenme

Derin öğrenmenin içeriği nispeten büyüktür ve şu anda pek çok not veya materyal vardır, ancak derin öğrenme sorununun makine öğrenimi kadar zor olmadığını hissedebiliriz. En fazla, evrişimli ağı elle itme destek vektör makinesi gibi ifadeden itmek yerine elle bir geri yayılım algoritmasını zorlayacağız. Derin öğrenmenin temelini atmak istiyorsanız, aslında, en iyi yol Ian Goodfellow'un "Derin Öğrenmesini" öğrenmektir, bu kitabın sadece ilk iki bölümünü okumamız gerekir: Uygulamalı Matematik ve Makine Öğrenimi Vakfı; Derin Ağ: Modern Uygulama. Üçüncü bölüm çok sayıda son teknoloji araştırma içerdiğinden, şimdilik öğrenmek için acele etmemize gerek yok.

Bu proje, temel olarak aşağıdaki yönlerden derin öğrenme mülakat bilgi noktalarını tanıtmaktadır:

  • Derin öğrenme temeli
  • Derin öğrenme uygulaması
  • CNN konusu
  • RNN konusu
  • Optimizasyon algoritması konusu
  • Dizi Modelleme Konuları
  • "Derin Öğrenme" bitişi

İlk 6 konunun tümü giriş notlarıdır ve her konunun birçok özel içeriği vardır.Bunların arasında, sıra modelleme konusu, sıra modellemenin gizemini keşfetmek için döngüden evrişime kadar makinenin kalbini de aktarır. Aşağıda, optimizasyon algoritması konusunun içeriği gösterilmektedir:

"Derin Öğrenme" nin son derlemesinde, proje yazarı elliden fazla derin öğrenme sorusu verdi ve bu sorulara dayalı olarak "Derin Öğrenme" deki bilgi noktalarını tanıttı. Aşağıda sorunun bir örneği verilmiştir ve farklı yıldız işaretleri sorunun zorluğunu gösterir:

Doğal dil işleme ve matematik

Aşağıdaki doğal dil işleme de yakın zamanda güncellendi. Şu anda tanıtılan ana yönler şunlardır:

  • Doğal Dil İşlemenin Temelleri
  • NLP geliştirme eğilimi
  • Kelime yerleştirme konusu
  • Cümle yerleştirme konusu
  • Multimodal konu
  • Görsel Soru-Cevap Özeti
  • Sorguların derinlemesine anlaşılması

Aslında, NLP'nin birçok bilgi noktası temel içerik olarak kabul edilmez, bu da inceleme içeriğinin kendi öğrenme alanımıza göre toplanmasını gerektirir. Bununla birlikte, NLP temelleri veya kelime yerleştirme gibi bilgi noktaları, proje yazarı tarafından ayrıntılı olarak sunulur ve bunlar aynı zamanda NLP mülakatları için temel bilgilerdir.

Son olarak, algoritma mühendisi görüşmelerinin temeli olan bazı matematiksel bilgi noktaları vardır. Örneğin, Toutiao algoritma mühendisinin stajyer görüşmesi şu soruyu soracaktır: "Daire üzerinde rastgele 3 nokta seçildiyse, bu 3 noktanın akut bir üçgen oluşturma olasılığı?" Veya bir integral gibi bir şey. Proje yazarı mülakat için temel olarak aşağıdaki bilgi noktalarını hazırladı:

  • Olasılık teorisi
  • Analizin özü
  • Derin öğrenme çekirdeği

Derin öğrenmenin özü, esas olarak doğrusal olmayan aktivasyon işlevi, gradyan inişi ve geri yayılımı içerir.

Algoritma soruları ve yazılı sorular

Görüşmeleri programlama için temel algoritmalar vazgeçilmezdir ve genellikle veri yapısı, dinamik programlama veya permütasyon ve kombinasyon gibi yazılı test sorularına yansıtılır. Birçok geliştirici yazılı test sorularını çözmekte zorlanabilir, çünkü soru size onu çözmek için hangi temel algoritmanın gerekli olduğunu söylemiyor.Soruyu adım adım analiz etmemiz için bize güveniyoruz. Bu, çeşitli temel algoritmalara aşina olmamızı gerektirir. Proje yazarı aşağıdaki temel algoritma konularını sağlar:

  • Dize
  • veri yapısı
  • Gelişmiş veri yapısı
  • Dinamik program
  • Çift işaretçi
  • Aralık sorunu
  • Permütasyonlar
  • Matematik problemi
  • Karışık, örnekleme, rastgele sayı
  • Çok sayıda işlem
  • Toplu veri işleme

Bu algoritmik problemler, belirli problemleri, problem çözme fikirlerini ve bunlara karşılık gelen problem çözme kodlarını ortaya çıkaracaktır. Örneğin, veri yapısında, B ağacının A ağacının bir alt ağacı olup olmadığını nasıl belirleyebiliriz?

Problemin çözümü için kod aşağıda gösterilmiştir: Temel olarak temel algoritmaların çözümlerinin C ++ ile yazıldığını ve yazarın Offer ve Leetcode çözümlerine başvuracağını unutmayın.

class Solution { halka açık: bool HasSubtree (TreeNode * p1, TreeNode * p2) { if (p1 == nullptr || p2 == nullptr) // Boş ağacın herhangi bir ağacın alt yapısı olmadığı kabul edildi yanlış dönüş; return isSubTree (p1, p2) // Altyapının aynı olup olmadığını belirle || HasSubtree (p1- > left, p2) // A ağacında B ağacının kök düğümüyle aynı çocuk düğümü yinelemeli olarak bulun || HasSubtree (p1- > sağ, p2); } bool isSubTree (TreeNode * p1, TreeNode * p2) { if (p2 == nullptr) true döndürür; // Bu iki yargının sırasına dikkat edin eğer (p1 == nullptr) yanlış döndürür; eğer (p1- > val == p2- > val) dönüş isSubTree (p1- > sol, s2- > left) // Sol ve sağ alt ağaçları yinelemeli olarak değerlendirin isSubTree (p1- > sağ, s2- > sağ); Başka yanlış dönüş; } };

Ek olarak, proje ayrıca IO şablonları ve gerekli algoritma şablonları sağlar. Yazar, LeetCode gibi birçok yazılı testin I / O'yu otomatik olarak tamamlayamayacağını belirtti. Veri giriş / çıkışlarını manuel olarak tamamlamamız gerekiyor ve ACM deneyimimiz yoksa, bunun için büyük olasılıkla çok zaman kaybedeceğiz. Bu nedenle, burada özetlenen birkaç yaygın IO şablonu, diğer algoritma şablonları gibi görüşmeleri programlamak için çok faydalıdır.

Örneğin, belirsiz sayıda Giriş girersek ve bitiş işareti olarak özel bir girdi kullanırsak, C dilinde uygulanan şablon şu şekildedir:

// Örnek 1 int a, b; while (scanf ("% d% d", a, b)! = EOF (a! = 0 b! = 0)) { // ... } // veya while (scanf ("% d% d", a, b)! = EOF (a || b)) { // ... } // örnek 2 int n; while (scanf ("% d", n)! = EOF n! = 0) { // ... }

C ++ 'da uygulanan şablon:

// Örnek 1 int a, b; while (cin > > a > > b) { eğer (a == 0 b == 0) kırmak; // ... } // örnek 2 int n; while (cin > > n n! = 0) { // ... }

Gerçek röportaj soruları

Son olarak, proje yazarı ayrıca teknoloji şirketleri için bir düzineden fazla gerçek mülakat sorusu topladı ve içeriği ve deneyimi bir taraftan üç tarafa tanıttı.

Örneğin, aşağıdaki başlık / bayt aşma-derin öğrenme / NLP yönüne üç taraflı bir genel bakış:

Aşağıda gösterildiği gibi, puan kart oyunu olan 18 Ağustos'ta ByteDance'ın yazılı test soruları da aşağıda gösterildiği gibi özel mülakat soruları da sağlanacaktır:

Elbette, sorun göz önüne alındığında, ilgili çözüm de sağlanacaktır:

# Giriş işleme n = int (giriş ()) x, y =, aralıktaki i için (n): _x, _y = list (harita (int, input (). split ())) x.append (_x) y.append (_y) xy = liste (zip (x, y)) xy = sıralı (xy, anahtar = lambda t: t) ret = 0 toplam (x)% 2 == 0 ise: # Tüm x'lerin toplamı çift ise print (sum (y)) # doğrudan tüm y'nin toplamını çıkar Başka: aralıktaki i için (len (xy)): eğer xy % 2 == 1: # x'teki tek öğeyi kaldır ret = toplam () baskı (ret) kırmak Editör: Wen Jing redaksiyon: Gong Li - Bitiş -

Tsinghua-Qingdao Veri Bilimi Enstitüsü'nün resmi WeChat kamu platformunu takip edin " THU Veri Pastası "Ve kız kardeş numarası" Veri Pastası THU "Daha fazla ders avantajı ve kaliteli içerik elde edin.

Barselona gerçek imparatoru buldu! 21 yaşındaki yıldız, yetişmek için 8 saniyede 80 metre koştu ve net değeri 15 milyon arttı
önceki
Veri Bilimcisi Büyüme Kılavuzu: Başlangıçtan Çılgınlığa Yönelik Olmaya (toplam 12 soru)
Sonraki
Ulusal Kısa Kurmaca Yarışması'nın ödül aşamasında, Sichuan'ın yeni oyunu "Genç Chen Yi" sahnelendi.
Bir okuma dizisi modellemesinde doğal dil işleme ve kelime gömme (deeplearning.ai)
[Özel] "Tunni Happy" 10 milyon RMB Pre-A tur yatırımı aldı, express + market modelini oynamanın yeni yolları nelerdir?
Doğal dil işlemenin (CNN / RNN / TF) üç ana özellik çıkarıcısının kapsamlı bir anlayışını size sunar.
Popüler GitHub eğitimi: 100 günde makine öğrenimi (Çince sürüm güncellemesi)
Aynı "Big Mac" asma köprü, Humen Second Bridge ve Yangsigang Yangtze River Bridge çok farklı.
34 yaşındaki Ronaldo bir gecede 6 rekor kırdı! İlk toptan 125. topa kadar 12 yılını kullandı
Boktan kürek memurunun büyük katili! Bu evcil hayvan sürüş robotu ile kediler artık kanunsuz olamaz
20 yıldır evrende dolaşan Cassini bize veda etmek istiyor!
Arsa tersine döndü! Barcelona süperstarı bir Şampiyonlar Ligi zaferi elde etti, ancak sonunda UEFA tarafından kendi başına sayıldı
Sisten sonra kuvvetli rüzgar geliyor! Shandong, fırtına için mavi uyarı verdi, rüzgar 7 hala soğuyor
Çapayı çekin, yelken açın ve dünyaya bir Çin "Sağlık Vadisi" adamak için yelken açın
To Top