Sinir ağını matematik denklemlerini çözmek için eğitmek mümkün mü?


24

Sinir ağlarının muhtemelen bunu yapmak için tasarlanmadığını biliyorum, ancak varsayımsal olarak sorarak, matematiksel denklemleri çözmek için derin sinir ağını (veya benzeri) eğitmek mümkün mü?

Böylece 3 giriş: 1. sayı, sayı ile gösterilen operatör işareti (1 - +, 2 - -, 3 - /, 4 - *vb.) Ve 2. sayı, eğitimden sonra ağ bana geçerli sonuçlar vermelidir.

Örnek 1 ( 2+2):

  • Giriş 1 2:; Giriş 2: 1( +); Giriş 3 2:; Beklenen çıktı:4
  • Giriş 1 10:; Giriş 2: 2( -); Giriş 3 10:; Beklenen çıktı:0
  • Giriş 1 5:; Giriş 2: 4( *); Giriş 3 5:; Beklenen çıktı:25
  • ve bu yüzden

Yukarıdakiler daha sofistike örneklere genişletilebilir.

Mümkün mü? Eğer öyleyse, ne tür bir ağ bunu öğrenebilir / başarabilir?



Yanıtlar:


21

Evet, yapıldı!

Bununla birlikte, uygulamalar hesap makinelerinin yerine veya bunun gibi bir şey değildir. İlişkili olduğum laboratuvar, insanların bu problemleri nasıl çözebileceğini daha iyi anlamak için sinirsel akıl yürütme sinir ağları modelleri geliştiriyor. Bu, Matematiksel Biliş olarak bilinen alanın bir parçasıdır . Ne yazık ki, bizim web sitesi korkunç bilgilendirici değil, ama burada bir var bağlantısını böyle bir çalışmasının örneği için.

Bunun dışında, sinir ağlarının harici bellek depolarını (örneğin, Sinir Turing Makineleri) içerecek şekilde genişletilmesi üzerine yapılan son çalışmalar, matematik problemlerini çözmenin iyi bir konsept kanıtı olarak kullanılma eğilimindedir. Bunun nedeni, birçok aritmetik probleminin, depolanmış ara sonuçlarla uzun prosedürler içermesidir. Uzun ikili toplama ve çarpma üzerine bu makalenin bölümlerine bakın .


benim için sadece sinir ağları değil, dış belleğe sahip sinir mimarileri. NTM ve DNC gibi mimariler, en kısa yol gibi algoritmaları çözmek için kullanabilir, çünkü ne yapıldığını takip ederek yinelemeli işlemi gerçekleştirme kabiliyetine sahiptir (Felaket unutmak yok). Ama benim için sadece hakarete uğramış öğrenmeyi kullanmak, ikinci cevapta belirtildiği gibi yanlıştır.
Shamane Siriwardhana

İlk bağlantı ölü, yenisi var mı?
kenorb

Her iki bağlantı da sadece benim için çalıştı, ne mükemmel bir kağıt!
Zakk Diaz

8

Pek sayılmaz.

Yapay sinir ağları, gizli değişkenler olduğunda girdiler arasındaki doğrusal olmayan ilişkileri belirlemek için iyidir. Yukarıdaki örneklerde ilişkiler doğrusaldır ve gizli değişkenler yoktur. Ancak doğrusal olmasalar bile, geleneksel bir YSA tasarımı bunu başarmak için uygun olmazdı.

Katmanları dikkatlice oluşturarak ve eğitimi sıkı bir şekilde denetleyerek, girdilerin 2, 1 (+) ve 2 numaralı çıktılarını tutarlı bir şekilde üretmesini sağlayabilirsiniz, örneğin girdiler için: 2, 1 (+) ve 2, ancak bu yalnızca yanlış değil, bu gerçekten güvenilmez teknolojinin uygulanması.


5

1) Mümkün! Aslında, popüler derin öğrenme çerçevesi Keras'ın bir örneği. Kaynak kodunu görmek için bu bağlantıya göz atın .

2) Bu özel örnek, problemi bir karakter dizisi olarak işlemek için cevabı oluşturan bir karakter dizisi üreten tekrarlayan bir sinir ağı (RNN) kullanır. Bu yaklaşımın, insanların basit toplama problemlerini çözme konusunda düşünme eğilimlerinden açıkça farklı olduğunu ve muhtemelen bir bilgisayarın böyle bir problemi nasıl çözmesini istediğinizi açıklamayacağını unutmayın. Çoğunlukla bu, Keras kullanarak sıralama öğrenmeye yönelik bir dizi örneğidir. Ardışık veya zaman serisi girişlerini kullanırken, RNN'ler popüler bir seçimdir.


1

Evet - bu yazıda verdiğiniz örnekten daha fazlasını elde etmenin artık mümkün olduğu anlaşılıyor gibi görünüyor - doğal dilde tarif edilen bir program için kaynak kodunu oluşturan - oldukça zor bir problem için bir DL çözümü .

Bunların her ikisi de regresyon problemleri olarak tanımlanabilir (yani amaç doğrulama setinde bazı kayıp fonksiyonlarını en aza indirmektir), ancak doğal dil durumundaki arama alanı daha büyüktür.


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.