NP problemlerini çözmek için yapay sinir ağlarını geliştirmek


10

Kısa süre önce Google Research Blog'dan sinir ağı hakkında konuşurken gerçekten ilginç bir blog girişi okudum. Temel olarak bu sinir ağlarını görüntü tanıma gibi çeşitli problemleri çözmek için kullanırlar. Aksonların ağırlıklarını "geliştirmek" için genetik algoritmalar kullanırlar.

Temel olarak benim fikrim şudur. Numaraları tanıyan bir program yazmam gerekiyorsa, nasıl başlayacağımı bilemezdim (bazı belirsiz bir fikrim olabilirdi ama benim açımdan: Önemsiz, kolay değil.) Ama sinir ağını kullanarak yapmak zorunda değilim. Sinir ağının gelişmesi için doğru bağlamı oluşturarak, sinir ağım "doğru algoritmayı bulur". Aşağıda, makalenin gerçekten ilginç bir kısmını alıntıladım ve burada her katmanın görüntü tanıma sürecinde nasıl farklı rolleri olduğunu açıkladım.

Sinir ağlarının zorluklarından biri, her katmanda neler olup bittiğini anlamaktır. Eğitimden sonra, her katmanın, görüntünün neyi göstereceğine karar verene kadar görüntünün daha yüksek ve daha yüksek düzey özelliklerini aşamalı olarak çıkardığını biliyoruz. Örneğin, ilk katman kenarları veya köşeleri arayabilir. Ara katmanlar, bir kapı veya kanat gibi genel şekilleri veya bileşenleri aramak için temel özellikleri yorumlar. Son birkaç katman, bunları eksiksiz yorumlara dönüştürür - bu nöronlar, tüm binalar veya ağaçlar gibi çok karmaşık şeylere yanıt olarak aktive olur.

Temelde sorum şu: Her NP problemini çözmek için genetik algoritmalar + sinir ağları kullanamaz mıyız? Biz sadece doğru evrimsel bağlamı yaratıyoruz ve "doğa" yı bir çözüm bulmaya bırakıyoruz.

Girişimcilik: Yapay Sinir Ağlarına Derinlik Katmak

EDIT: Brute-Force'u kullanabileceğimizi veya birçok durumda verimli olmayan bir çözüm bulabileceğimizi biliyorum. Bu yüzden Gelişen yapay sinir ağlarını vurgulamaya çalışıyorum . Bir yorumda söylediğim gibi: Yeterli zaman ve uygun bir mutasyon oranı göz önüne alındığında, en uygun çözümü bulabiliriz (ya da en azından bence budur).

kavram


1
Yapmak zorunda değiliz. Sadece kaba kuvvet kullanabiliriz. Hedefin tam olarak nedir?
Pål GD

2
Sinir ağlarında uzman değilim, bu yüzden NP problemlerini doğru bir şekilde çözmek için eğitilip eğitilemeyeceğini bilmiyorum. Ama doğru soruyu sorduğunu sanmıyorum. NP'de bulunan bir sorunu çözen bir algoritma ile gelmek genellikle zor değildir, sadece olası her çözümü kontrol edin. Bununla birlikte, polinom zamanında NP-zor bir problemi çözen bir algoritma bulmak farklı bir öyküdür ve varlığı pek olası değildir. Sinir ağları bir düzeltme makinesi tarafından simüle edilebildiğinden, P = NP olmadığı sürece hala süper polinom zamanına ihtiyaç duyarlar ve fazla yardımcı olmazlar.
Dennis Kraft

evet, nöral ağlar NP gibi komple problemlere karşı kullanılmıştır, örneğin Gezgin Satıcı ve diğerleri ve bu konuda araştırma / literatür vardır. bazı yararlı özelliklere sahip olabilirler, ancak DK'nin işaret ettiği gibi karmaşıklık teorisinin zaman kısıtlamalarından uzaklaşmazlar.
vzn

Demek istediğim: Uygun bir mutasyon oranı ve (en azından teorik olarak) en uygun çözümü bulabileceğimiz yeterli zamanı kullanmak. (Veya en azından yerel bir maksimum) Resim: Kavram
NMO

2
Genetik algoritmalar (ve diğer "AI" tekniklerinin geri kalanı), aslında tamamen rasgele olmamak için atılan bazı akıllılar (sezgisel tarama) ile "çözüm boşluğunun bir örneğini deneyin" şeklinde rasgele dağıtılır. Hayır, "olası tüm çözümleri dene" den daha iyi değildir, çoğu zaman çok daha kötüdür (aynı atılan durumu tekrar kontrol etmemenin garantisi yoktur). Elbette, "iyi" çözümler buluyorlar. Ama en iyisini bulmak istiyoruz .
vonbrand

Yanıtlar:


21

Hayır. Bu yönün iki nedenden dolayı yararlı olması muhtemel değildir:

  1. Sinir ağları "sihir" değildir. Onlar kalıpları bulmaya çalışmanın bir yoludur. Bulunacak kadar güçlü paternin olduğu ve paternlerin makul sayıda örnekten öğrenilebildiği bazı problemler için etkili olabilirler. Ama sihirli peri tozu değiller. Sinir ağı kurabilmeniz, geri çoğaltmanın mutlaka probleminizi çözmek için iyi bir yol bulacağı anlamına gelmez. Bulunacak örüntü bulunmaması, örüntülerin ancak mümkün olmayan sayıda örnekle keşfedilebileceği veya örüntülerin var olabileceği, ancak sinir ağı eğitim prosedürünün bunları bulamadığı görülebilir.

Sinir ağları, makine öğreniminin başka bir biçimidir. SVM'ler veya rasgele ormanlar veya doğrusal regresyon hakkında başka herhangi bir makine öğrenimi biçiminde de aynı sözleri verebiliriz. Sinir ağları, tüm makine öğrenimi sorunlarını çözen bir tür büyülü gümüş kurşun değildir. Diğer makine öğrenme yöntemleri kadar etkilidirler veya bazı problemler için belki biraz daha etkilidirler, ancak sihir değildirler.

Bazen sinir ağları hakkında sadece biraz duymuş insanlarla karşılaşıyorum ve sinir ağlarının her şeyin cevabı olduğunu düşünerek uzaklaşıyorlar - belki de "beyniniz de sinir ağlarını kullanıyor" diye duyuyorlardı ya da serin uygulama (ses tanıma falan). Ama kanmayın. Yutturmacaya inanma. Sinir ağları faydalı bir tekniktir, ancak bilgisayarların NP-tam sorunlarını çözmesini veya Turing testini geçmesini, tüm işlerimizi ortadan kaldırmasını ve insanları bilgisayarlarla değiştirmesini sağlamayacaktır. Neyse, yakında değil. Bu sadece bilim kurgu.


1
Gerçekten iyi bir cevap. Genetik Algoritmalar + Sinir Ağları çok güçlü görünüyor, ancak belki de her np problemini çözmek yeterli değildir. Bu sinir ağlarını + genetik algoritmaları bu p çözümlerini arayan vahşi bırakmayı hayal ediyorum. Küçük izciler gibi haha.
NMO

1
Sinir ağlarının tipik olarak bir garanti değil, doğru cevabı bulma olasılığını sağladığını da belirtmek gerekir. Optimal olmayan çözümlere izin vermek için sorun gereksinimlerinizi gevşettiğinizde, en kötü durumda uygulanamamalarına rağmen NP-tamamlanmış sorunlara sıklıkla pratik çözümler vardır.
Dan Bryant

9

Bilgilendirici / yardımcı olurken diğer cevaplar aslında sorunuzu tam olarak anlamıyor ve biraz fazla okuyor gibi görünüyor. Sinir ağlarının diğer yöntemlerden daha iyi performans gösterip göstermediğini sormadınız , sadece NP tam sorunlarına uygulanıp uygulanamayacağını sordunuz . Cevap evet, biraz başarı ile ve bu onlarca yıldır biliniyor ve bu konuda çok çeşitli araştırmalar var ve devam ediyor. Bu, makine öğrenmesinin esnekliği ile ilgilidir. Kesin veya optimal çözümler bulamasalar bile, sahip oldukları çözümlerin başka arzu edilen özelliklere sahip olabileceğini unutmayın. bazı örnek makaleler:


4

Sinir ağları aslında NP-tam problemlerini çözmez. Ne yapmak do oldukça yakın NP-tam problemlere olan problemleri çözmektir.

Sinir ağlarının büyük bir özelliği, her seferinde "doğru" cevabı bulmak zorunda olmamalarıdır. Onların "yanlış" olmalarına izin verilir. Örneğin, bir çöp kutusu paketleme sorununu çözüyor olabilirsiniz ve ideal çözümden% 1 uzakta olan bir çözüme gelip bu cevaptan tamamen memnun olabilirsiniz.

Her seferinde% 100 doğru olma gereksinimini ortadan kaldırırsanız, diğer sorun çözme yaklaşımları çok iyi çalışır. Örneğin, birçok rota planlama algoritmasının (la Google Maps) NP-tam olması gerekir, ancak zamanın% 99,9'unun% 1'inde bir yol bulan bir algoritma bulmak oldukça önemlidir. NP-tam çabalarını bu kadar akıl almaz derecede pahalı kılan vakaların son% 0.1'inde sonuçları tespit etmeye çalışıyor.

Gerçekleştiği gibi, NP-tam denklemleri gerçek hayatta kullanmaya çalıştığımızda, gerçek cevaba sıklıkla ihtiyacımız yoktur . Sıkça kullandığımız "yakın" metriği açıklamak için bir kelimemiz olmasa da, genellikle "yakın" bir cevap konusunda çok rahatız. Bunlar, bir sinir ağının, sormak istediğiniz NP-tam problemini gerçekten çözmek yerine, sormak istediğiniz asıl soruya cevap verebileceği durumlardır.


1

Sinir ağlarının evrensel işlev yaklaşımı yapabildiği bilinmektedir , ancak bu , kendi başına NP-tam bir problem olan problem (optimizasyon) konusunda eğitim gerektirir , bu yüzden evrimsel eğitim ve SGP ile geri yayılım vb.

Bu nedenle, NP-tam problemlerini çözme olasılıkları olmasa da, problemi modelleyen bir işleve keyfi bir doğruluk derecesine yaklaşmak üzere eğitilebilirler. Ayrıca, bir NP-tam problemini bir nöral ağ kullanarak en iyi şekilde çözseniz bile, bulduğu çözümün çözümü kaba zorlamadan aslında küresel optimum olduğunu kanıtlamanın bir yolu yoktur (bu, elbette neredeyse her pratik için mümkün değildir) sinir ağları kullanımı).

Görselleştirmeniz, evrimsel algoritmaların ( düzgün algoritmanın, tek bir türün başlangıçta yüksek performans gösteren bir yapıya sahip olan popülasyonu devralmasını nasıl önlediğini görünce) doğrudur, SGD ve diğer makine öğrenme tekniklerinden daha az uygundur yerel optimumlar ancak buldukları çözümün aslında küresel optimum çözüm olduğuna dair bir kanıt sunmuyorlar.


Cevabınıza bazı referanslar ekleyebilir misiniz? Ayrıca, biçimlendirmeyi geliştirmeye çalışın (örneğin, NP, SGD, geri çoğaltma vb. Kullanın ve belki de satır sonları ekleyin).
Yuval Filmus

Tamam bazı düzenlemeler herhangi bir yerde daha fazla derinliğe gitmek gerekir bana bildirin
nickw

Bence "evrimsel algoritmalar ... SGD ve diğer makine öğrenimi tekniklerinden daha az yerel optimumlara hapsolmaya uygun" iddianız için bir gerekçe sunmalısınız. Bunun, özellikle sinir ağlarını eğitme görevi için doğru olduğunu düşünmüyorum.
DW

Bu cevabın NP tamlığının tanımı konusunda biraz karışıklığı var. İddia ettiğinizin aksine, bir NP tam sorununu çözersek , doğru çözüme sahip olup olmadığımızı kontrol edebiliriz . NP tam arama sorunu ile NP zor optimizasyon sorunu arasında bir fark vardır; birincisi için, çözümün doğru olup olmadığını verimli bir şekilde kontrol edebiliriz, ancak ikincisi için bunu yapamayabiliriz.
DW

İlk önce gerçekten en uygun çözümü zorlamadan kaba bir şekilde en uygun çözüm olduğunu doğrulayamadığımızı belirttim, bu doğru değil mi? Nöroevrimin düzgün algoritmaya ve paylaşılan uygunluğa atıfta bulunulan bağlantı ile yerel optimumlarda takılıp kalmaya daha az yatkın olduğunun gerekçesini sağladım. çerçeve bu hafifletmeye yardımcı olabilir bir isteksizlik sgd takılıp sahip olduğu kredi olmazdı.
nickw
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.