Umarım bu konuda bazı sorularım olduğu için bana yardımcı olabilirsiniz. Derin öğrenme alanında yeniyim ve bazı dersler verirken kavramları birbirinden ayıramaz veya birbirinden ayıramıyorum.
Umarım bu konuda bazı sorularım olduğu için bana yardımcı olabilirsiniz. Derin öğrenme alanında yeniyim ve bazı dersler verirken kavramları birbirinden ayıramaz veya birbirinden ayıramıyorum.
Yanıtlar:
İlk önce çok basit bir sınıflandırma görevini çözmeye çalışalım. Diyelim ki, bazen spam iletilerle dolu bir web forumu denetlediniz. Bu mesajlar kolayca tanımlanabilir - çoğu zaman "satın al", "porno" vb. Gibi özel kelimeler ve dış kaynaklara yönelik bir URL içerirler. Bu tür şüpheli mesajlar konusunda sizi uyaracak bir filtre oluşturmak istiyorsunuz. Oldukça kolay hale geldi - özellikler listesi (örneğin, şüpheli kelimelerin listesi ve bir URL'nin varlığı) ve basit bir lojistik regresyon (aka perceptron), yani model gibi:
g(w0 + w1*x1 + w2*x2 + ... + wnxn)
nerede x1..xn
senin özellikler (belirli bir kelime veya bir URL her iki varlığı) vardır w0..wn
- öğrenilen katsayıları ve g()
bir olan lojistik fonksiyon yapmak sonucuna Çok basit sınıflandırıcı, ama bu basit görev için çok iyi sonuçlar verebilir 0 ve 1 arasında olması yaratarak doğrusal karar sınırı. Yalnızca 2 özellik kullandığınızı varsayarsak, bu sınır şunun gibi görünebilir:
Burada 2 eksen özellikleri temsil eder (örn. Bir mesajdaki belirli bir kelimenin oluşum sayısı, sıfıra yakın normalize edilmiş), kırmızı noktalar spam ve mavi noktalar için kalır - normal mesajlar için siyah çizgi ayırma çizgisini gösterir.
Ancak çok geçmeden bazı iyi mesajların aslında "satın alma" kelimesinde çok fazla sayıda kelime bulunduğunu, ancak URL’lerin olmadığını ya da porno saptama ile ilgili uzun bir tartışma içermediğini fark ettiniz. Doğrusal karar sınırı bu gibi durumlarla başa çıkamaz. Bunun yerine böyle bir şeye ihtiyacınız var:
Bu yeni doğrusal olmayan karar sınırı çok daha esnektir , yani verilere çok daha yakın olabilir. Bu doğrusal olmayanlığı elde etmenin birçok yolu vardır - polinom özellikleri (örneğin x1^2
) veya bunların kombinasyonunu (örneğin x1*x2
) kullanabilir veya bunları çekirdek metotlarında olduğu gibi daha yüksek bir boyuta yansıtabilirsiniz . Ancak sinir ağlarında , algılayıcıları birleştirerek ya da başka bir deyişle çok katmanlı algılayıcı kurarak çözmek çok yaygındır.. Buradaki doğrusal olmayanlık, katmanlar arasındaki lojistik fonksiyondan gelir. Katmanlar ne kadar fazlaysa, o kadar karmaşık desenler MLP tarafından kaplanabilir. Tek katman (perceptron) basit spam algılamasını gerçekleştirebilir, 2-3 katmanlı ağ, özelliklerin karmaşık kombinasyonlarını yakalayabilir ve büyük araştırma laboratuvarları ve Google gibi şirketler tarafından kullanılan 5-9 katmanlı ağlar tüm dili modelleyebilir veya kedileri tespit edebilir Resimler
Bu, derin mimarilere sahip olmak için temel nedendir - daha karmaşık kalıpları modelleyebilir .
Sadece bir özellik ve doğrusal karar sınırı ile, aslında sadece 2 eğitim örneğine sahip olmak yeterli - biri pozitif diğeri negatif. Birkaç özellikleri ve / veya doğrusal olmayan bir karar sınırı ile olası tüm servis taleplerini karşılamak üzere çeşitli siparişleri daha fazla örnek gerekmektedir (örn sadece olan örnekler bulabilirsiniz gerekmez word1
, word2
ve word3
aynı zamanda bunların kombinasyonları mümkün olan tüm ile). Ve gerçek hayatta, yeterince lineer olmamaya yetecek kadar yüzlerce ve binlerce özellikle (örneğin, bir dildeki kelimeler veya pikseldeki kelimeler) ve en az birkaç katmanla uğraşmanız gerekir. Bu tür ağları tam olarak eğitmek için gereken veri kümesinin boyutu, 10 ^ 30 örneği kolayca aşar, bu da yeterince veri almayı imkansız hale getirir. Başka bir deyişle, birçok özellik ve birçok katmanla karar fonksiyonumuz çok esnek hale geliyortam olarak öğrenebilme .
Bununla birlikte, yaklaşık olarak öğrenmenin yolları vardır . Örneğin, yerine biz onlar bağımsız olduğunu kabul ve tam ve kısıtsız azaltarak sadece bireysel frekansları öğrenebilirler özellikleri hepsinden tüm kombinasyonların frekanslarını öğrenme ardından, olasılıksal ortamlarda çalışan biz olsaydı Bayes sınıflandırıcı a Naif Bayes ve böylece çok gerektiren öğrenmek için çok daha az veri.
Yapay sinir ağlarında, karar fonksiyonunun karmaşıklığını (esnekliğini) azaltmak için (anlamlı bir şekilde) birkaç deneme yapılmıştır. Örneğin, görüntü sınıflandırmada yaygın olarak kullanılan evrişimli ağlar, yalnızca yakındaki pikseller arasındaki yerel bağlantıları kabul eder ve bu nedenle, tam görüntülerin aksine (örneğin, 16x16 piksel = 256 giriş nöronu) küçük "pencereler" içindeki piksel kombinasyonlarını öğrenmeye çalışır. 100x100 piksel = 10000 giriş nöronları). Diğer yaklaşımlar, özellik mühendisliğini, yani girdi verilerinin spesifik, insan tarafından keşfedilen tanımlayıcılarını aramaktır.
Elle keşfedilen özellikler aslında çok umut verici. Örneğin, doğal dil işlemede, özel sözlükleri (spam'e özel kelimeler içerenler gibi) kullanmak veya olumsuzlama (örneğin " iyi değil ") kullanmak bazen yararlı olabilir . Ve bilgisayarlı görüşte, SURF tanımlayıcıları veya Haar benzeri özellikler gibi şeyler neredeyse değiştirilemez.
Ancak manuel özellik mühendisliği ile ilgili sorun kelimenin tam anlamıyla iyi tanımlayıcıların ortaya çıkması yıllar alıyor. Dahası, bu özellikler genellikle belirgindir
Ancak , otomatik kodlayıcılar ve sınırlı Boltzmann makineleri gibi algoritmaları kullanarak verilerden otomatik olarak iyi özellikler alabileceğimiz ortaya çıktı . Bunları diğer cevabımda ayrıntılı olarak açıkladım , fakat kısaca girdi verilerinde tekrarlanan kalıpları bulmaya ve daha üst düzey özelliklere dönüştürmeye izin veriyorlar . Örneğin, bir girdi olarak yalnızca satır piksel değerleri verildiğinde, bu algoritmalar daha yüksek bütün kenarları tanımlayabilir ve geçebilir, daha sonra bu kenarlardan şekil ve benzerleri oluşturabilir, yüzlerdeki değişimler gibi gerçekten yüksek seviye tanımlayıcılar elde edene kadar.
Böyle bir (denetimsiz) ön hazırlık ağı genellikle MLP'ye dönüştürülür ve normal denetimli eğitim için kullanılır. Unutmayın ki, ön işlem katman şeklinde yapılır. Bu, öğrenme algoritması için çözüm alanını önemli ölçüde azaltır (ve böylece gerekli eğitim örneklerinin sayısı), sadece diğer katmanları dikkate almadan her katmanın içindeki parametreleri öğrenmeye ihtiyaç duyar .
Denetlenmemiş ön eğitim bir süredir burada, ancak son zamanlarda başka algoritmalar hem ön öğrenme ile hem de onsuz öğrenmeyi geliştirdi. Böyle algoritmaların kayda değer bir örneği olan terk basit bir tekniktir, rastgele bazı bozulma creatig ve çok yakından verileri aşağıdaki ağlarını önlenmesi, eğitim sırasında bazı nöronları "düşer." - Bu hala çok sıcak bir araştırma konusu, bu yüzden bunu bir okuyucuya bırakıyorum.
İlk önce neden Derin öğrenmeye ihtiyaç duyduğumuzu anlamamız gerekir. ML modelleri oluşturmak için, Etiketli Test Verilerine (denetlenen veya denetlenmeyen) ihtiyaç vardır. Veriler büyüdükçe birçok alanda verilerin etiketlerle korunması zordur. Derin öğrenme ağlarının etiketli verilere ihtiyacı yoktur. Derin öğrenme algoritmaları etiketleri anlayabilir. Bu, etki alanı uzmanlarının konuşma tanıma, bilgisayarla görme ve dil anlayışı alanlarında çok önemli olan veriler için etiketler ortaya koyma gereksinimini ortadan kaldırmaktadır. Google Cat resim tanıma çok ilginç bir denemedir. Ayrıca Google tarafından işe alınan profesörü "Geoffrey hinton" ı bilmek ilginç.
http://www.wired.com/2014/01/geoffrey-hinton-deep-learning/
Bu çerçevede keşfederken daha fazla bilgi edinebilirsiniz.
Derin Öğrenme uzun süredir var. CNN, RNN, Boltzmann Makineler kesinlikle yeni tekniklere benziyorlar, ancak uzun zaman önce geliştirilmişlerdi. Derin öğrenme geçmişini kontrol edin
https://en.wikipedia.org/wiki/Deep_learning#History
Derin Öğrenimin yeniden doğması, hesaplama güçlerinin o zamandan katlanarak arttığı gerçeğinden kaynaklanmaktadır. GPU'larla donatılmış bir dizüstü bilgisayar ile karmaşık bir Deep Learning modelini eğitebilirsiniz, önceki günlere kıyasla çok küçük bir zamandır. Derin öğrenme modelleri de ampirik olarak çok verimlidir. Görüntüler, Konuşma ve birçok alanda sanatın şu anki hali Derin Öğrenme modelleridir.
Bu faktörler nedeniyle çok fazla NLP / ML topluluğunun Derin Öğrenme odağını değiştirdiğini görebildiğimize inanıyorum.