Sinir ağları neden özellik seçimine / mühendisliğine ihtiyaç duyar?


14

Özellikle kaggle yarışmaları bağlamında, modelin performansının özellik seçimi / mühendisliği ile ilgili olduğunu fark ettim. Daha geleneksel / eski okul ML algoritmalarıyla uğraşırken bunun neden olduğunu tam olarak anlayabilsem de, derin sinir ağlarını kullanırken neden böyle olacağını anlamıyorum.

Derin Öğrenme kitabından alıntı:

Derin öğrenme, temsili öğrenmedeki bu merkezi problemi, daha basit temsiller olarak ifade edilen temsiller sunarak çözer. Derin öğrenme, bilgisayarın daha basit kavramlardan karmaşık kavramlar oluşturmasını sağlar.

Bu yüzden her zaman "bilgi verilerdeyse", yeterince derin, iyi parametrelenmiş bir sinir ağının yeterli eğitim süresi verildiğinde doğru özellikleri alacağını düşündüm.


4
beyniniz hala bir makineden daha güçlüdür, bu yüzden bir insandan biraz yardım uzun bir yol kat eder
Aksakal

kim özellik seçimine / mühendisliğine ihtiyaçları olduğunu söylüyor? referans verebilir misiniz? görüntülerle çalışırken, onlar neredeyse uçtan uca çalışır ...

@ user2137591 önemli olan bu. Literatürde, sinir ağlarının genellikle mühendislik ve seçimi otomatik olarak (Derin Öğrenme kitabında Goodfellow, Bengio, Courville tarafından ima edildiği gibi) kullandıkları için geleneksel makine öğreniminden bir adım olarak tasvir edildiğine dair bir izlenim edinirim. Bu, CV veya NLP'deki bilgilerin hala az olduğuna inandığım birçok görev için geçerlidir. Öte yandan, çok fazla gürültülü verinin mevcut olduğu rekabetçi veri biliminde (kaggle), yaygın bir inanç, rekabetçi bir çözüm oluşturmanın en önemli faktörünün "sihirli özelliği" bulmasıdır.
CephasW

Daha sonra ağlara beslemek için özellik mühendisliği yapan herhangi bir projeyi hatırlayamadığım CompVis için konuşabilirim ... Bu, görüntü kalitesinin genellikle daha düşük olduğu tıbbi görüntü verileri için de geçerlidir. belki bu diğer alanlarda farklıdır ... bu konuda başvurabileceğiniz herhangi bir makaleniz veya yayınlanmış kaynağınız var mı? Bunu takdir ediyorum, teşekkürler.

Yanıtlar:


18
  • "Yeterince derin" ağ, model eğitimini çok pahalı hale getiren (AWS ücretleri artıyor!) Veya ağı kaynak kısıtlamalı bir ortama dağıtmanız gerektiğinden, çok büyükse ne olur?

  • Ağın iyi parametrelenmiş olduğu bir önseziyi nasıl bilebilirsiniz ? İyi çalışan bir ağ bulmak çok fazla deneme gerektirebilir.

  • Çalıştığınız veriler, her dizinin farklı bir uzunluğa sahip olduğu binlerce veya milyonlarca bit içeren bir ikili dize gibi standart analiz yöntemlerine "kolay" değilse ne olur?

  • Kullanıcı düzeyindeki verilerle ilgileniyorsanız, ancak yalnızca işlem düzeyinde veri toplayan bir veritabanıyla çalışmak zorunda kalırsanız ne olur?

  • Verilerinizin gibi tamsayılar olduğunu ve görevinizin rakamların toplamını tahmin etmek olduğunu varsayalım , bu nedenle bu örnekteki hedef . Her basamağı bir diziye ayrıştırmak ve sonra diziyi ("özellik mühendisliği") toplamak ancak başka bir şekilde zor olmak basittir.3 , 5 , 18 , 712,32,486,73,5,18,7

Veri analizinin "anahtar teslim" olduğu bir dünyada yaşamak istiyoruz, ancak bu tür çözümler genellikle sadece özel durumlarda mevcuttur. Çok sayıda çalışma, görüntü sınıflandırması için derin CNN'ler geliştirmeye başladı - önceki çalışmalarda, her görüntüyü sabit uzunluklu bir vektöre dönüştüren bir adım vardı.

Özellik mühendisliği, uygulayıcının sorun hakkındaki bilgileri doğrudan ileri besleme ağlarına uygun sabit uzunlukta bir vektöre dönüştürmesini sağlar. Özellik seçimi, herhangi bir sinyalin kaybolduğu ve model için parametrelerin sayısını önemli ölçüde azaltan birçok alakasız özellik ekleme sorununu çözebilir.


6

Buradaki anahtar kelimeler öncelikler ve ölçektir . Basit bir örnek olarak, bir kişinin yaşını bir fotoğraftan tahmin etmeye çalıştığınızı düşünün. Bir görüntü ve yaş veri kümesiyle, tahminleri yapmak için derin öğrenme modelini eğitebilirsiniz. Bu nesnel olarak gerçekten verimsizdir, çünkü görüntünün% 90'ı işe yaramaz ve sadece kişiyle birlikte bölge gerçekten yararlıdır. Özellikle kişinin yüzü, vücudu ve belki de giysileri.

Öte yandan, kişi için önce sınırlayıcı kutuları çıkarmak, görüntüyü kırpmak ve sonra ağdan geçirmek için önceden eğitilmiş bir nesne algılama ağı kullanabilirsiniz. Bu işlem, birkaç nedenden dolayı modelinizin doğruluğunu önemli ölçüde artıracaktır:

1) Tüm ağ kaynakları (yani ağırlıklar), önce kişiyi bulmak zorunda kalmanın aksine, yaş tahmininin gerçek görevine odaklanabilir. Bu özellikle önemlidir çünkü kişinin yüzünde faydalı özellikler vardır. Aksi takdirde, ihtiyacınız olan daha ince özellikler ilk birkaç katmanda kaybolabilir. Teorik olarak, yeterince büyük bir ağ bunu çözebilir, ancak acısız bir şekilde verimsiz olacaktır. Kırpılan görüntü de orijinal görüntüden önemli ölçüde daha düzenlidir. Orijinal görüntü bir ton gürültüye sahipken, kırpılan görüntüdeki tutarsızlıklar, hedefle çok daha fazla ilişkilidir.

2) Kırpılan görüntü aynı ölçeğe sahip olacak şekilde normalleştirilebilir . Bu, ikinci ağın ölçekleme sorunları ile başa çıkmasına yardımcı olur, çünkü orijinal görüntüde insanlar yakınlarda veya uzakta meydana gelebilir. Ölçeği önceden normalleştirmek, kırpılan görüntünün, kırpılan görüntünün tamamını dolduran bir kişiye sahip olmasını garanti eder (uzaktaysa piksellenmesine rağmen). Bunun ölçeklendirmeye nasıl yardımcı olabileceğini görmek için, orijinal görüntünün genişliğinin ve yüksekliğinin yarısı olan kırpılmış bir gövdede işlenecek 4x daha az piksel bulunur ve bu nedenle bu görüntüye uygulanan aynı ağ, her bir katmanda orijinal ağın alıcı alanının 4 katı olacaktır.

Örneğin, kaggle akciğer yarışmasında, en iyi çözümlerde ortak bir tema , akciğer görüntülerinde mümkün olduğunca kırpılan ve her bir akciğerin bileşenlerini izole eden bir tür ön işleme idi. Bu, 3D görüntülerde özellikle önemlidir, çünkü efekt kübiktir: her bir boyutun% 20'sini kaldırarak, piksellerin neredeyse yarısından kurtulursunuz!


4

Bu fenomen hakkındaki sezgim, öğrenilecek modelin karmaşıklığıyla bağlantılı. Derin bir sinir ağı gerçekten de teorideki herhangi bir işleve yaklaşabilir , ancak parametre uzayının boyutu milyonlar gibi gerçekten büyük olabilir. Yani, aslında iyi bir sinir ağı bulmak gerçekten zor. Özellik mühendisliğini, algoritmaya bir başlangıç ​​yapmak ve bir anlamda yeterince iyi olan veri gösterimi hakkında bazı ek bilgiler sağlamak olarak düşünmeyi seviyorum. Tabii ki, bu resmi bir açıklama değil, bu sorunun bilimsel titizlikle cevaplanması gerçekten zor olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.