Zaman serisi analizi için tekrarlayan sinir ağlarını kullanmanın doğru yolu


67

Tekrarlayan sinir ağları "normal" olanlardan bir "hafıza" katmanına sahip olmalarından farklıdır. Bu katman nedeniyle, tekrarlayan NN'lerin zaman serisi modellemesinde yararlı olacağı varsayılmaktadır. Ancak, onları nasıl kullanacağımı doğru anladığımdan emin değilim.

Diyelim ki (soldan sağa) şu zaman serisine [0, 1, 2, 3, 4, 5, 6, 7]sahibim: hedefim, inoktaları kullanarak i-1ve i-2her biri için bir girdi olarak nokta işaretini tahmin etmektir i>2. "Düzenli" olarak, tekrar eden olmayan bir YSA'da verileri şu şekilde işlerdim:

 target| input
      2| 1 0
      3| 2 1
      4| 3 2
      5| 4 3
      6| 5 4
      7| 6 5 

Daha sonra iki girişli ve bir çıkış düğümlü bir net yaratacağım ve yukarıdaki verilerle çalıştıracağım.

Tekrarlayan ağlar söz konusu olduğunda, bu süreci (eğer varsa) nasıl değiştirmek gerekir?


RNN (örneğin LSTM) için verilerin nasıl yapılandırılacağını öğrendiniz mi? teşekkür ederim
mik1904

Yanıtlar:


49

Tanımladığınız aslında bir "kayan zaman penceresi" yaklaşımı ve tekrarlayan ağlardan farklı. Bu tekniği herhangi bir regresyon algoritması ile kullanabilirsiniz. Bu yaklaşım için çok büyük bir sınırlama vardır: girişlerdeki olaylar sadece, t penceresinin büyüklüğü olduğu zaman, en çok zaman aşımına uğrayan diğer giriş / çıkışlarla bağıntılı olabilir.

Örneğin, bir t Markov zinciri zinciri düşünebilirsiniz. RNN'ler teoride bundan muzdarip değildir, ancak pratikte öğrenme zordur.

y=WxyWx

xiyi=Wxi+Wryi1

Wr

hi

h0=0
hi=σ(W1xi+Wrhi1)
yi=W2hi

σW1W2Wr

İşte yapının bir şeması:

şematik


2
Tekrarlayan ağların Kalman filtreleriyle benzerliğini görmek yanlış mıyım? Bunu anlıyorum çünkü önceki çıktı mevcut çıktıyı etkiliyor. Tekrarlayan ağların pratik yararı nedir?
Vass

10
Her ikisinin de durum uzay modeli olduğu anlamında yazıyorsunuz. Bununla birlikte, çok fazla fark vardır: KF'ler, gizli durumların uygun bir olasılıksal anlamı olduğu anlamında tamamen olasılıklıdır. Öte yandan, RNN'ler deterministiktir ve sadece çıkışları ayırt edici bir şekilde modellemek için çıktılar kullanılabilir. Ayrıca, KF'ler tipik olarak EM ile tahmin edilirken, RNN'ler degrade bazlı yöntemlerle tahmin edilir. Daha fazla ayrıntı istiyorsanız, bir soru göndermekten ve bana bağlantı göndermekten çekinmeyin, ancak yorumlar bunun için çok kısıtlıdır.
bayerj

1
Hayır, kayan zaman penceresi ağın çıktısını almaz, sadece girişte.
bayerj

2
@bayerj harika bilgi, ancak soruyu cevapladığını sanmıyorum. Giriş çıkış vektörlerini, RNN'ler için kayan bir zaman penceresinde olmayan şekilde nasıl yapılandırırsınız? OP veri setiyle birkaç örnek verebilir misiniz?
Levitikon

1
Bu, RNN'lerin çok bilgilendirici bir açıklamasıdır, ancak OP'nin sorusuna bir cevap bulamıyorum: Tekrarlayan ağlar söz konusu olduğunda birinin [eğitimi] nasıl değiştirmesi gerekiyor?
wehnsdaefflae

9

Ayrıca, girdi verileri için birkaç zaman serisi dönüşümü kullanmayı da düşünebilirsiniz. Sadece bir örnek için, girişler şöyle olabilir:

  1. en son aralık değeri (7)
  2. sonraki en son aralık değeri (6)
  3. en son ve sonraki en son arasındaki delta (7-6 = 1)
  4. üçüncü en son aralık değeri (5)
  5. en son ikinci ve üçüncü arasındaki delta (6-5 = 1)
  6. son üç aralığın ortalaması ((7 + 6 + 5) / 3 = 6)

Bu yüzden, eğer geleneksel bir sinir ağına girdiğiniz girdiler, bu altı dönüştürülmüş veri parçası olsaydı, sıradan bir geri yayılım algoritmasının deseni öğrenmesi zor bir iş olmazdı. Bununla birlikte, ham verileri alan dönüşümleri kodlamanız ve sinir ağınıza yukarıdaki 6 girişe dönüştürmeniz gerekir.


1
Bununla birlikte, çok fazla alan bilgisi girdiniz. Ya zaman serisinin düzenini kendiniz tanımıyorsanız? Öyleyse, özellikle geçmişte sınırsız olarak geri kalmış girdilere bağlıysa, nasıl bir model oluşturabilirsin?
bayerj,

Sonsuz kesinlikle zor olurdu. Bununla birlikte, bu alanla ilgili olmayan verilerin dönüşümlerini koyarsanız, öğrenme algoritması ağırlıkları buna göre kolayca çözebilecek ve ayarlayabilecektir, bu nedenle dönüşümleri yaptığınız sürece bu büyük bir sorun değildir. ilgili veriler. Bu nedenle, birçok farklı dönüşüme sahip olmak başarı şansınızı artırır.
rossdavidh

01[0.1,0.1]101

2
Tekrarlayan sinir ağlarını hiç kullanmaman gerektiğini söylemek istemem; tam tersi. Bununla birlikte, eğer görev (soruda belirtildiği gibi), (i-1) ve (i-2) noktalarından onu tahmin etmek ise, o zaman bu bilgiyi kullanarak daha iyi bir sonuç alabilirsiniz. RNN'lerin hiçbir zaman iyi bir fikir olmadığını söylemek istemem, ancak eğitim sürecini hızlandırmak için ne tür bir etki alanı kullanmak zorunda olursanız olun (ve eğitimin yerel asgari düzeyde yakalanma olasılığını düşürün, vb.) .
rossdavidh

4

Diğer bir olasılık, Tarihsel Tutarlı Sinir Ağlarıdır (HCNN) . Bu mimari yukarıda belirtilen kurulum için daha uygun olabilir, çünkü girdi ve çıktı değişkenleri arasındaki çoğu zaman rastgele ayrımı ortadan kaldırırlar ve bunun yerine tüm sistemin tüm dinamiklerini tüm gözlemlenebilirlerle eğiterek kopyalamaya çalışırlar.

Siemens için çalışırken, Springer Verlag: Zimmermann, Grothmann, Tietz, von Jouanne-Diedrich: Tarihsel Tutarlı Yapay Sinir Ağları ile Piyasa Modellemesi, Tahmini ve Risk Analizi adlı kitabında bu mimarlık üzerine bir makale yayınladım.

Sadece burada paradigma hakkında bir fikir vermek için kısa bir alıntı:

Bu yazıda, tarihsel olarak tutarlı sinir ağı (HCNN) olarak adlandırılan yeni bir tür NN sunuyoruz. HCNN'ler, çok etkileşimli doğrusal olmayan dinamik sistemlerin çoklu zaman ölçeklerinde modellenmesine izin verir. HCNN'ler girişler ve çıkışlar arasında herhangi bir ayrım yapmazlar, ancak büyük durumlu bir alanın dinamiğine gömülü gözlemlenebilir modellerdir.

[...]

RNN, doğrusal olmayan bir regresyon yaklaşımı kullanarak açık bir dinamik sistemi modellemek ve tahmin etmek için kullanılır. Ancak birçok gerçek dünyadaki teknik ve ekonomik uygulamalar, zaman zaman çeşitli (doğrusal olmayan) dinamiklerin birbirleriyle etkileşime girdiği büyük sistemler bağlamında görülmelidir. Bir modelde öngörülen, bunun anlamı girdiler ve çıktılar arasında ayrım yapmadığımız, ancak gözlemlenebilirler hakkında konuştuğumuz anlamına gelir. Büyük sistemlerin kısmi gözlenebilirliği nedeniyle, gözlenebilirlerin dinamiklerini açıklayabilmek için gizli durumlara ihtiyacımız var. Gözlemlenebilir ve gizli değişkenler, model tarafından aynı şekilde ele alınmalıdır. Gözlemlenebilir terimi, girdi ve çıktı değişkenlerini kapsar (yani,Yτ:=(yτ,uτ)). Tüm gözlemlenebilir niteliklerin dinamiğinin tanımlanabileceği bir model uygulayabilirsek, açık sistemi kapatabilecek bir konumda olacağız.

... ve sonuç olarak:

Gizli ve gözlenen değişkenlerin büyük tekrarlayan sinir ağlarındaki ortak modellemesi planlama ve risk yönetimi için yeni umutlar sağlar. HCNN'ye dayanan topluluk yaklaşımı, gelecekteki olasılık dağılımlarının tahmininde alternatif bir yaklaşım sunar. HCNN'ler geçmişte gözlenebilirlerin dinamiğinin mükemmel bir tanımını verir. Bununla birlikte, dünyanın kısmi gözlemlenebilirliği, gizli değişkenlerin benzersiz bir yeniden inşasına ve dolayısıyla farklı gelecek senaryolarına yol açmaktadır. Dinamiğin orijinal gelişimi bilinmediğinden ve tüm yollar aynı olasılığa sahip olduğundan, grubun ortalaması en iyi tahmin olarak kabul edilebilir, bununla birlikte dağılımın bant genişliği piyasa riskini tanımlar. Bugün, tedarik kararlarının zamanlamasını optimize etmek için enerji ve değerli metallerin fiyatlarını tahmin etmek için HCNN tahminlerini kullanıyoruz. Halen devam etmekte olan çalışmalar, topluluk özelliklerinin analizi ve bu kavramların pratik risk yönetimi ve finansal piyasa uygulamalarında uygulanması ile ilgilidir.

Kağıdın bölümleri genel olarak görülebilir: Burada


İndirmek ve test etmek için bir uygulamanız var mı?
Julien L

@JulienL: Maalesef bu Siemens için tescilli bir iş olduğu için değil.
von

Çok kötü, umut verici görünüyordu.
Julien L

@JulienL: Ortak yazarım Georg ile iletişim kurmanızı tavsiye ediyorum. E-postası makalenin ilk sayfasındadır (yukarıdaki bağlantıya bakın).
von
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.