Serbest Fonlarda Derin Öğrenme Ticaretine Giriş

Yayınlanan: 2022-03-11

Son birkaç yılda, derin sinir ağları son derece popüler hale geldi. Ortaya çıkan bu bilgisayar bilimi alanı, biyolojik sinir ağları kavramı etrafında oluşturuldu ve derin öğrenme, günümüzde moda haline geldi.

Derin öğrenme bilim adamları ve mühendisleri, biyolojik sinir sistemlerinden çeşitli kalıpları matematiksel olarak tanımlamaya çalışırlar. Derin öğrenme sistemleri çeşitli sorunlara uygulanmıştır: bilgisayarla görme, konuşma tanıma, doğal dil işleme, makine çevirisi ve daha fazlası. Bazı görevlerde derin öğrenmenin insan uzmanlardan daha iyi performans göstermesi ilginç ve heyecan vericidir. Bugün, finans sektöründe derin öğrenmeye bir göz atacağız.

Derin öğrenmenin daha çekici uygulamalarından biri hedge fonlarıdır. Hedge fonlar, yatırımcılardan fon toplayan ve onları yöneten yatırım fonları, finansal kuruluşlardır. Genellikle zaman serisi verileriyle çalışırlar ve bazı tahminler yapmaya çalışırlar. Zaman serisi analizi için uygun özel bir derin öğrenme mimarisi türü vardır: tekrarlayan sinir ağları (RNN'ler) veya daha spesifik olarak, özel bir tekrarlayan sinir ağı türü: uzun kısa süreli bellek (LSTM) ağları.

LSTM'ler, zaman serisi verilerinden en önemli özellikleri yakalama ve bağımlılıklarını modelleme yeteneğine sahiptir. Bir hisse senedi fiyat tahmin modeli, hedge fonlarının bu tür sistemleri nasıl kullanabileceğine dair örnek bir vaka çalışması olarak sunulmaktadır. Python ile yazılmış PyTorch çerçevesi, modeli eğitmek, deneyler tasarlamak ve sonuçları çizmek için kullanılır.

Gerçek dünyadan örneklere geçmeden önce bazı derin öğrenme temelleri ile başlayacağız:

  • Soyut bir kavram olarak derin öğrenmeyi tanıtın.
  • RNN'leri veya daha spesifik olarak LSTM'leri ve bunların zaman serisi verilerini modellemek için nasıl kullanılabileceğini tanıtın.
  • Derin öğrenmeye uygun finans verileriyle okuyucuları tanıştırın.
  • Gerçek bir hedge fonunun hisse senedi fiyatlarını tahmin etmek için derin öğrenmeyi nasıl kullandığını gösterin.
  • Son olarak, performanslarını artırmak için derin öğrenmeyi nasıl kullanacakları/faydalarından yararlanacakları konusunda yeni ve mevcut koruma fonları için eyleme geçirilebilir öneriler sunun.

Derin Öğrenme Ticareti Vakasını Sunmak

Finans endüstrisindeki en zorlu ve heyecan verici görevlerden biri, gelecekte hisse senedi fiyatlarının yükselip yükselmeyeceğini tahmin etmektir. Bugün, derin öğrenme algoritmalarının karmaşık görevleri çözmede çok iyi olduğunun farkındayız, bu nedenle gelecekteki fiyatları tahmin etme sorununu başarılı bir şekilde çözüp çözemeyeceklerini görmek için derin öğrenme sistemlerini denemeye değer.

Konsept olarak, yapay sinir ağı uzun süredir var, ancak donanım, derin öğrenmede hızlı deneylere izin verecek kadar iyi değildi. Nvidia, Tesla serisi ürünlerde genel amaçlı bilgi işlem için çok hızlı grafik işleme birimleri (GPU'lar) sunmaya başladığından on yıl önce derin öğrenme ağlarında devrim yaratmaya yardımcı oldu. Oyunlarda ve profesyonel tasarım uygulamalarında çokgenleri gölgelendirmek yerine, yüksek düzeyde paralelleştirilmiş GPU'lar diğer verileri de hesaplayabilir ve çoğu durumda CPU'lardan çok daha üstündürler.

Finansta derin öğrenmeyi kullanma hakkında çok az bilimsel makale var, ancak fintech şirketlerinden derin öğrenme uzmanlarına olan talep, potansiyelini açıkça fark ettikleri için güçlü. Bu makale, derin öğrenme sistemlerinin oluşturulmasında finansal verilerin nasıl kullanıldığını özetleyerek finansta derin öğrenmenin neden giderek daha popüler hale geldiğini açıklamaya yardımcı olacaktır. Özel bir tekrarlayan sinir ağı türü olan LSTM ağı da sunulacaktır. Tekrarlayan sinir ağları kullanılarak finansla ilgili bir görevin nasıl çözülebileceğini ana hatlarıyla anlatacağız.

Bu makale aynı zamanda, deneyler yoluyla sunulan, riskten korunma fonlarının bu tür sistemleri nasıl kullanabileceğine dair açıklayıcı bir vaka çalışmasına da sahiptir. Ayrıca derin öğrenme sistemlerinin nasıl geliştirilebileceğini ve hedge fonlarının bu sistemleri kurmak için yetenekleri işe alma konusunda nasıl gidebileceğini, yani derin öğrenme yeteneğinin ne tür bir geçmişe sahip olması gerektiğini ele alacağız.

Hedge Fonları Farklı Kılan Nedir?

Sorunun teknik yönüne geçmeden önce, hedge fonları benzersiz yapan şeyin ne olduğunu açıklamamız gerekiyor. Peki, hedge fon nedir?

Bir riskten korunma fonu, bir yatırım fonudur—yatırımcılardan fon toplayan ve onları kısa vadeli ve uzun vadeli yatırımlara veya farklı finansal ürünlere yerleştiren bir finansal kuruluş. Genellikle limited ortaklık veya limited şirket olarak kurulur. Bir hedge fonunun amacı, getirileri maksimize etmektir. Getiri, belirli bir zaman diliminde hedge fonlarının net değerindeki kazanç veya kayıptır. Daha fazla risk alındığında, daha yüksek getiri ve kayıp potansiyeli olduğu genel olarak kabul edilir.

İyi getiri elde etmek için, hedge fonları, piyasa verimsizliklerinden yararlanarak para kazanmaya çalışan çeşitli yatırım stratejilerine güvenir. Normal yatırım fonlarında izin verilmeyen çeşitli yatırım stratejileri nedeniyle, hedge fonlar fon olarak kaydedilmez, yani diğer fonlar gibi genellikle devlet tarafından denetlenmezler. Yatırım stratejilerini ve iş sonuçlarını yayınlamalarına gerek yoktur, bu da onları oldukça riskli hale getirebilir. Bazı riskten korunma fonları piyasa ortalamasından daha fazla para üretirken, bazıları para kaybeder. Bazıları kalıcı sonuçlar getirirken, bazı hedge fonların sonuçları değişkendir.

Yatırımcılar, hedge fonlarına yatırım yaparak fonun net değerini arttırır. Yine de, herkes hedge fonlarına yatırım yapamaz. Hedge fonlar, az sayıda varlıklı yatırımcıya yöneliktir. Genellikle hedge fonlarda yer almak isteyenlerin akredite olması gerekir. Bu, mali düzenleme yasalarına ilişkin özel bir statüye sahip olmaları gerektiği anlamına gelir. Kimin bu özel statüye sahip olabileceği konusunda ülkeden ülkeye bir ayrım vardır. Genellikle, bir yatırımcının net değerinin çok yüksek olması gerekir - yalnızca bireyler değil, bankalar ve büyük şirketler de hedge fonlarında çalışabilir. Bu akreditasyon, yalnızca önemli yatırım bilgisine sahip kişilerin katılmasına izin verecek ve böylece küçük ve deneyimsiz yatırımcıları riskten koruyacak şekilde tasarlanmıştır.

Bu makale, Amerika Birleşik Devletleri dünyadaki en gelişmiş finans piyasasına sahip olduğundan, ABD düzenleyici çerçevesini ele almaktadır. Bu nedenle, Amerika Birleşik Devletleri'nde “akredite yatırımcı” terimi, ABD Menkul Kıymetler ve Borsa Komisyonu'nun (SEC) D Yönetmeliğinin 501. Kuralında tanımlanmıştır.

Bu düzenlemeye göre, akredite yatırımcılar:

  • Bankalar
  • Özel iş geliştirme şirketleri
  • organizasyonlar
  • Teklif edilen veya satılan menkul kıymetleri ihraç edenlerin yöneticileri, icra memurları ve genel ortakları
  • Bireysel net değeri veya bu kişinin eşiyle ortak net değeri 1.000.000 ABD Dolarını aşan gerçek kişiler
  • Son iki yılın her birinde bireysel geliri 200.000 ABD Dolarını aşan veya o yılların her birinde o kişinin eşiyle ortak geliri 300.000 ABD Dolarını aşan ve cari yılda aynı gelir seviyesine ulaşma konusunda makul bir beklentisi olan gerçek kişiler
  • Toplam varlıkları 5.000.000 ABD Dolarını aşan tröstler
  • Tüm hisse sahiplerinin akredite yatırımcı olduğu kuruluşlar

Hedge fon yöneticileri, hedge fonunu yönetir. Bir riskten korunma fonu yöneticisi, başarılı olmak için rekabet avantajı yaratmanın bir yolunu bulmalıdır, yani rakipler üzerinde bir avantaj ve daha fazla değer yaratma yeteneği yaratmalıdır. Bir kişinin fonu yönetmede başarılı olması çok karlı olabileceğinden, çok çekici bir kariyer seçimi olabilir.

Öte yandan, bir çok hedge fon yöneticisinin kararları kötü çıkarsa, onlara ödeme yapılmayacak ve olumsuz bir itibar kazanacaktır. En iyi hedge fon yöneticileri, tüm sektörlerde en iyi ücretli mesleklerden birini oluşturur. Hedge fon yöneticileri, yönetim ücretinin yanı sıra yatırımcılar için kazandıkları getirilerin bir yüzdesini alırlar. Bu tazminat yolu, hedge fon yöneticilerinin daha fazla getiri elde etmek için daha agresif yatırım yapmalarını sağlar, ancak diğer yandan bu aynı zamanda yatırımcı riskinde bir artışa yol açar.

Serbest Fonların Kısa Tarihi

İlk hedge fonu 1949 yılında eski yazar ve sosyolog Alfred Winslow Jones tarafından kuruldu. 1948'de Fortune için mevcut yatırım trendleri hakkında bir makale yazarken oldu.

Parayı yönetmeye çalıştı ve çok başarılı oldu. Artık yaygın olarak uzun/kısa öz sermaye olarak bilinen yatırım inovasyonunu kullanarak para topladı. Strateji, riskten korunma fonları arasında hala çok popüler. Hisseler satın alınabilir (alın: uzun) veya satılabilir (sat: kısa).

Bir hissenin fiyatı düşük olduğunda ve bir hissenin fiyatının yükselmesinin beklendiği durumlarda, bir hisseyi (uzun) alıp yüksek fiyat zirvesine ulaşır ulaşmaz satmak (kısa) mantıklıdır ve Alfred Winslow Jones'un yaptığı yeniliğin tam olarak amacı budur - değer kazanması beklenen hisse senetlerinde uzun pozisyonlar ve düşmesi beklenen hisse senetlerinde kısa pozisyonlar almak.

Finansal Veriler ve Veri Kümeleri

Finans verileri zaman serisi verilerine aittir. Bir zaman serisi, zaman içinde indekslenen bir dizi veri noktasıdır. Genellikle, bir zaman serisi, zaman içinde ardışık, eşit aralıklı noktalarda alınan bir dizidir: ayrık zamanlı bir veri dizisi. Zaman serilerine örnek olarak okyanus gelgitlerinin yüksekliği, güneş lekelerinin sayısı ve Dow Jones Endüstriyel Ortalamasının günlük kapanış değeri verilebilir.

Bu bağlamdaki tarihsel veriler, geçmişten gelen zaman serisi verileridir. Gelecekteki fiyatlar hakkında spekülasyon yapmak için en önemli ve en değerli parçalardan biridir. Çevrimiçi olarak herkese açık bazı veri kümeleri vardır, ancak genellikle bu veriler çok fazla özellik içermez; bunlar genellikle 1 günlük aralıklı veriler, 1 saatlik aralıklı veriler veya 1 dakikalık aralıklı verilerdir.

Daha zengin özelliklere ve daha küçük zaman aralıklarına sahip veri kümeleri genellikle halka açık değildir ve elde edilmesi çok pahalı olabilir. Daha küçük aralıklar, sabit bir dönemde daha fazla zaman serisi verisi anlamına gelir; bir yılda 365 (veya 366) gün vardır, bu nedenle maksimum 365 (veya 366) veri noktası vardır. Her günün 24 saati vardır, yani bir yılda 8.760 (veya 8.784) saatlik veri noktası vardır ve her gün 86.400 dakikadır, yani bir yılda 525.600 (veya 527.040) dakikalık veri noktası vardır.

Daha fazla veriyle, daha fazla bilgi elde edilebilir ve daha fazla bilgiyle, bir sonraki zaman diliminde ne olacağı hakkında daha iyi sonuçlar çıkarmak mümkündür - elbette, verilerin iyi bir genelleme yapmak için yeterince iyi bir özellik içerdiğini varsayarsak. Küresel mali krizin zirvesinde olan 2007-2008 yıllarına ait hisse senedi fiyat verileri taraflıdır ve muhtemelen bugünlerde fiyat tahminleri yapmak için uygun değildir. Daha küçük bir zaman aralığıyla, sabit bir aralıktaki çok sayıda veri noktası nedeniyle bir sonraki adımda ne olacağını tahmin etmek daha kolaydır. Sabit bir n yıllık aralıkta her nanosaniye için tüm veri noktalarına sahipsek bir sonraki nanosaniyede ne olacağını tahmin etmek, her yıl için tüm n veri noktasına sahipsek gelecek yıl borsada olacaklardan daha kolaydır. sabit bir n yıllık aralık.

Ancak bu, hızlı bir dizi kısa vadeli tahminin doğru olduğunu varsayarsak, uzun vadeli tahminin de doğru olması gerektiği anlamına gelmez. Her tahmin hata getirir ve birden fazla tahminin zincirlenmesiyle uzun vadeli tahmin, sonunda önemli miktarda hata içerecek ve faydasız olacaktır. Aşağıda, Yahoo Finance'ten çevrimiçi olarak alınan Google hisseleri için 1 günlük aralık verilerinin bir örneği verilmiştir.

Algoritmik ticaret için google hisselerinde bir zaman serisi finansal veriler

Veri kümesinde yalnızca birkaç sütun vardır: Tarih, Açık, Yüksek, Düşük ve Kapanış—sırasıyla, bir menkul kıymetin bir borsa açılışında ilk işlem gördüğü fiyat, menkul kıymetin belirli bir işlem gününde ulaştığı en yüksek fiyat , belirli bir işlem gününde elde edilen en düşük fiyat ve o gün bir menkul kıymetin işlem gördüğü son fiyat.

Genellikle, bu tür veri kümelerinde iki sütun daha vardır: Ayarlanmış Kapanış ve Hacim, ancak bunlar burada alakalı değildir. Düzeltilmiş Kapanış, geçerli bölmeler ve temettü dağıtımları için düzeltmelerden sonraki kapanış fiyatı iken Hacim, belirli bir süre boyunca piyasada işlem gören hisse sayısıdır.

Bazı tarihlerin eksik olduğunu görebilirsiniz. Bunlar, genellikle hafta sonları ve tatil günlerinde borsanın çalışmadığı günlerdir. Derin öğrenme algoritması gösterimimizin amacı için, eksik günler önceden mevcut olan fiyatla tamamlanır. Örneğin, 2010-01-16, 2010-01-17, 2010-01-18 için kapanış fiyatlarının tümü 288.126007 olacaktır çünkü 2010-01-15'te böyleydi. Algoritmamız için verilerin boşluksuz olması önemlidir, böylece karıştırılmaz. Derin öğrenme algoritması buradan hafta sonları ve tatillerin ne zaman olduğunu öğrenebilir; örneğin, beş iş gününden sonra, son iş gününden itibaren sabit fiyatlarla iki gün olması gerektiğini öğrenecektir.

belirli bir süre boyunca google hisse fiyat hareketlerinin görsel temsili

Bu, 2010-01-04'ten bu yana Google hisse fiyat hareketlerinin bir tablosudur. Grafiği çizmek için yalnızca işlem günlerinin kullanıldığını unutmayın.

Derin Öğrenme Nedir?

Derin öğrenme, makine öğreniminin bir parçasıdır ve öğrenme veri temsillerine dayanır. Makine öğrenimi, işlevselliği programlanmayan ancak verilerden öğrenilen algoritmaları inceler. Esasen yapay zekaya bir yaklaşımdır.

Derin öğrenme çeşitli alanlara uygulandı: bilgisayarla görme, konuşma tanıma, doğal dil işleme, makine çevirisi ve bu görevlerin bazılarında insanlardan daha üstün bir performans elde etti.

Derin bir sinir ağı, derin öğrenmenin merkezindedir. Derin bir sinir ağının en basit ve temel örneği, ileri beslemeli bir sinir ağıdır. Aşağıda basit bir ileri beslemeli sinir ağının bir görüntüsü bulunmaktadır. Girdi ve çıktı katmanlarından ve gizli katmanlardan oluşur.

düğümler olarak temsil edilen girdi ve çıktı ve öğrenme katmanları ile basit bir ileri beslemeli sinir ağının diyagramı

Gizli katmanlar, giriş ve çıkış katmanları arasındaki tüm katmanlardır. Bir sinir ağının birden fazla gizli katmanı varsa derindir deriz. Her katman çeşitli sayıda nörondan oluşur. Bu temel ileri beslemeli sinir ağındaki katmanlara doğrusal katmanlar denir—doğrusal katmandaki nöronlar yalnızca 1 boyutlu (veya veriler ağ üzerinden toplu olarak gönderilirse 2 boyutlu) girdileri uygun ağırlıkla, toplam ürünleri birlikte ve nihai sonucu 1-D veya 2-D çıktı olarak verin.

Aktivasyon işlevi genellikle ileri beslemeli ağlarda doğrusal olmayan durumları ortaya çıkarmak için uygulanır, böylece ağın daha karmaşık, doğrusal olmayan problemleri modelleyebilir. İleri beslemeli ağlarda, veriler geri döngü olmaksızın girdi katmanından çıktı katmanına akar. Nöronlar arasındaki bağlantılar ağırlıklıdır. Ağırlıkların, sinir ağının verilen girdiler için doğru çıktıları döndürmesi için ayarlanması gerekir. İleri beslemeli ağ, verileri giriş alanından çıkış alanına eşler. Gizli katmanlar, önceki katmanın özelliklerinden önemli ve daha soyut özellikler çıkarır.

Genel derin öğrenme ardışık düzeni, makine öğrenimi ardışık düzeniyle aynıdır ve aşağıdaki adımlardan oluşur:

  1. Veri toplama. Veriler, eğitim verileri, doğrulama verileri ve test verileri olmak üzere üç bölüme ayrılır.
  2. Bir dizi "dönem" (her biri bir dizi yinelemeden oluşur) üzerinden eğitim verilerini kullanarak DNN'yi eğitme ve doğrulama verilerini kullanarak her dönemden sonra doğrulama.
  3. Eğitim oturumları ve doğrulama dizisinden sonra modeli test etme (sabit parametrelere sahip bir sinir ağı örneği).

Sinir ağını eğitmek aslında, stokastik gradyan inişiyle birlikte bir geri yayılım algoritması kullanarak kayıp fonksiyonunu en aza indirerek nöron çiftleri arasındaki ağırlıkları ayarlamak anlamına gelir. Öğrenme süreciyle belirlenen ağırlıklar dışında, derin öğrenme algoritmaları genellikle hiperparametrelerin (öğrenilmeyen ancak öğrenmeden önce sabitlenen parametreler) ayarlanmasını gerektirir. Hiperparametreler, katman sayısı, katmanlardaki nöron sayısı, katman türleri, nöron türleri ve ağırlık başlatmadır.

Hiperparametrelerin ayarlanmasında donanım kısıtlamaları vardır; şu anda tek bir GPU'ya trilyonlarca nöron yerleştirmek fiziksel olarak mümkün değil. Kapsamlı hiperparametre araması için ikinci sorun birleşimsel patlamadır; sonsuz zaman alacağından, tüm olası hiperparametre kombinasyonlarını aramak mümkün değildir. Bu nedenle, hiperparametreler rastgele veya bilimsel makalelerde açıklanan bazı buluşsal yöntemler ve iyi bilinen örnekler kullanılarak ayarlanır - bu blog gönderisinde daha sonra gösterilen finansal veri analizi için kullanılan hiperparametrelerden biri, bilim adamları ve mühendisler olarak tekrarlayan nöronların kullanımıdır. zaman serisi verileriyle iyi çalıştıklarını kanıtladılar. Genellikle, belirli bir problem için hiperparametrelerin iyi olup olmadığını görmenin en iyi yolu deneylerdir.

Eğitimin amacı, sinir ağlarını eğitim verilerine uygun hale getirmektir. Hem her eğitim adımından sonra yapılan model doğrulaması hem de tüm eğitim prosedüründen sonra yapılan model testi, modelin iyi genellenip genelleştirilemeyeceğini görmek için yapılır. Genelleme, sinir ağının yeni, görünmeyen veriler üzerinde iyi tahminlerde bulunabilmesi anlamına gelir.

Model seçimiyle ilgili iki önemli terim vardır: fazla takma ve eksik takma . Bir sinir ağı, eğitildiği verilerle ilgili olarak çok karmaşıksa - çok fazla parametreye sahipse (çok fazla katman ve/veya katmanlarda çok fazla nöron) - sinir ağı verilere fazla sığabilir. Tüm verilere uyması için fazlasıyla yeterli kapasiteye sahip olduğu için eğitim verilerine iyi uyum sağlayabilir, ancak bu durumda doğrulama ve test setlerindeki performans zayıftır.

Sinir ağı, eğitildiği veriler açısından çok basitse, sinir ağı verilere yetersiz gelebilir. Bu durumda, sinir ağının kapasitesi eğitim verilerine sığdırmak ve genelleme yapmak için yeterince iyi olmadığı için eğitim, doğrulama ve test setlerinde düşük performansa sahiptir. Aşağıdaki resimde bu terimler grafiksel olarak açıklanmıştır. Mavi çizgi, sinir ağı tarafından modellenenleri temsil eder. İlk görüntü, eğitim verilerine sığdırmak ve genellemek için yeterli olmayan birkaç sinir ağı parametresinin olduğu durumu göstermektedir. İkinci görüntü, optimum sayıda parametrenin olduğu ve sinir ağının görünmeyen veriler üzerinde iyi bir genelleme yapabildiği durumu gösterir ve üçüncü görüntü, bir sinir ağının parametre sayısının çok fazla olduğu ve sinir ağının mükemmel bir şekilde çalışabildiği durumu gösterir. eğitim setindeki tüm verilere uyuyor, ancak doğrulama ve test setlerinde performansı düşük.

eksik, optimal ve fazla uyum senaryolarının grafiksel gösterimi

Tekrarlayan Sinir Ağları

Bir sinir ağının daha karmaşık bir versiyonu, tekrarlayan bir sinir ağıdır. Tekrarlayan sinir ağlarında, ileri beslemeli sinir ağlarının aksine, veriler herhangi bir yönde akabilir. Zaman serisi bağımlılıklarını iyi öğrenebilirler. Genel bir tekrarlayan sinir ağının mimarisi aşağıdaki resimde gösterilmektedir.

genel rnn mimarisinin grafiksel gösterimi

Aşağıdaki resimde bir tekrarlayan nöron gösterilmektedir. t zamanındaki X_{t} noktasını girdi olarak alır ve çıktı olarak t zamanındaki gizli durum olan h_{t} döndürür. Gizli çıktı nörona geri gönderilir. Tekrarlayan nöron, aynı görüntüde sağ taraftan gösterildiği gibi açılabilir. X_{t_0} , t_{0} döneminde, X_{t_1} t_{1} döneminde ve X_{t} t dönemindedir. t_{0} , t_{1} , …, t_{n} zaman periyotlarında X_{t_0} , X_{t_1} , …, X_{t_n} girdileri kullanılarak elde edilen çıktılar gizli çıktılar olarak adlandırılır: h_{t_0} , h_{t_1} , …, h_{t_n} , sırasıyla.

tekrarlayan bir nöronun giriş/çıkış yapısının görsel gösterimi

En iyi tekrarlayan sinir ağı mimarilerinden biri LSTM mimarisidir. LSTM aşağıda gösterilmiştir:

lstm mimarisinin görselleştirilmesi

LSTM'ler, genel tekrarlayan sinir ağları ile aynı genel yapıya sahiptir, ancak tekrarlayan nöron, daha karmaşık bir yapı ile biraz farklıdır. Bir LSTM hücresi içinde çok sayıda hesaplamanın yapıldığı yukarıdaki resimden görülebilir. LSTM hücreleri, bu yazı bağlamında bir kara kutu olarak gözlemlenebilir, ancak daha meraklı okuyucular için bu harika blog yazısı, LSTM'lerdeki hesaplamaları ve çok daha fazlasını açıklıyor.

Sinir ağının girdisini “özellik vektörü” olarak adlandıralım. Bu, öğeleri özellik olan n boyutlu bir vektördür: f_{0} , f_{1} , f_{2} …, f_{n} .

 \vv{X} = [f_{0}, f_{1}, f_{2}, …, f_{n}]

Şimdi yinelenen sinir ağlarının finansla ilgili bir göreve nasıl uygulanabileceğini açıklayalım. Tekrarlayan sinir ağı için giriş [X_{t_0}, X_{t_1}, X_{t_2}, …, X_{t_n}] . Diyelim ki n = 5 . Diyelim ki, 2010-01-04 ve 2010-01-08 arasında, art arda beş günden (yukarıdaki Açık/Yüksek/Düşük/Kapanış verileri içeren tabloya bakın) beş Google Close hisse fiyatı alıyoruz, yani, [[311.35], [309.98], [302.16], [295.13], [299.06]] . Bu örnekteki özellik vektörü tek boyutludur. Zaman dizisi, bu tür beş özellik vektöründen oluşur. Tekrarlayan sinir ağının çıktıları gizli özelliklerdir [h_{t_0}, h_{t_1}, h_{t_2}, …, h_{t_n}] . Bu özellikler, [X_{t_0}, X_{t_1}, X_{t_2}, …, X_{t_n}] giriş özelliklerinden daha soyut bir düzeydedir —LSTM, giriş özelliklerinin önemli kısımlarını öğrenmeli ve bunları projeye yansıtmalıdır. gizli özellikler alanı. Bu gizli, soyut özellikler bir sonraki LSTM hücresinde yayılabilir, bu da bir sonraki gizli, daha soyut özellikler kümesini verecektir ve bu daha sonra tekrar bir sonraki LSTM'ye yayılabilir ve bu böyle devam eder. Zincirleme LSTM'lerin dizisinden sonra, sinir ağının son bileşeni, son LSTM'den gizli özellikleri tek boyutlu uzaydaki noktaya eşleyen doğrusal katmandır (önceki bölümde açıklanan basit ileri beslemeli ağın yapı kısmı) ve bu nokta ağın son çıktısıdır— X_{t+1} zaman aralığında öngörülen Kapanış fiyatı. X_{t+1} için bu örnekteki temel gerçek 298.61 .

Not: Bir LSTM kadar az da olabilir—LSTM sayısını ayarlamak, bazı buluşsal yöntemleri kullanabilmemize rağmen, genellikle deneysel olarak bulunan bir hiperparametredir. Veriler çok karmaşık değilse, modelin verilere fazla uymaması için daha az karmaşık mimari kullanırız. Veriler karmaşıksa, modelin verilere uymaması için karmaşık bir model kullanırız.

Eğitim aşamasında, tahmin edilen Kapanış fiyatları, gerçek fiyatlar ile karşılaştırılır ve tahmin edilen Kapanış fiyatları ile gerçek fiyatlar arasındaki fark, bir geri yayılım algoritması ve gradyan iniş optimizasyon algoritması (veya onun biçimlerinden biri - somut olarak, bu durumda somut olarak) kullanılarak en aza indirilir. blog, bir gradyan iniş optimizasyon algoritmasının sözde “Adam” versiyonu kullanılır) sinir ağının ağırlıklarını değiştirerek.

Eğitim ve testten sonra, gelecekte, kullanıcının sinir ağına girdi verisi vermesi yeterlidir ve bu, tahmin edilen fiyatı (ve umarız, gelecekten gerçek fiyatına çok yakın bir fiyatı) döndürür.

Burada belirtilmesi gereken bir şey daha var ki, genellikle, her ikisi de test aşamalarında eğitimde, ağın yalnızca bir geçişte birden fazla çıktı hesaplaması için ağ üzerinden veri yığınları gönderilir.

Aşağıda, bu blogda deneyler için kullanılan bir mimarinin görüntüsü bulunmaktadır. İki yığılmış LSTM ve bir doğrusal katmandan oluşur.

yukarıda açıklanan mimarinin görsel temsili

Serbest Fon Algoritmaları ile Deneyler

Aşağıdaki gibi basit algoritmik ticaret stratejilerini kullanmayı deneyin: Algoritma fiyatın ertesi gün artacağını tahmin ederse, o zaman bir şirketin n (bu örnekte n = 1 ) hissesini (uzun) satın alın, aksi takdirde bir şirketin tüm hisselerini satın. şirket (kısa). Portföyün başlangıç ​​değeri (nakit ve hisselerin toplamı) 100.000 ABD Doları olarak belirlenmiştir. Her uzun veya kısa işlem, sırasıyla bir şirketin n hissesini (bu örnekte Google) satın alacak veya bir şirketin tüm hisselerini satacaktır. Başlangıçta, sistem belirli bir şirketin 0 hissesine sahiptir.

Her zaman bunun çok basit ve basit bir örnek olduğunu unutmayın, gerçek dünyada kullanılması amaçlanmamıştır, çünkü modelin pratikte iyi çalışması için çok daha fazla Ar-Ge çalışmasına ihtiyaç duyulacaktır. Gerçek dünya senaryosunda dikkate alınması gereken bazı şeyler burada ihmal edilmiştir; örneğin, işlem ücretleri modele dahil edilmemiştir. Sistemin her gün tam olarak aynı saatte işlem yapabileceği varsayılarak, hafta sonu veya tatil günlerinde bile her günün işlem günü olduğu varsayılmaktadır.

Test için bir geriye dönük test yöntemi kullanılır. Geriye dönük test yöntemi, geliştirilen strateji ile tanımlanan kuralları kullanarak geçmişte gerçekleşmiş olabilecek işlemleri yeniden yapılandırmak için geçmiş verileri kullanır. Veri seti iki bölüme ayrılmıştır - ilk bölüm eğitim setidir (geçmiş) ve ikinci bölüm test setidir (gelecek). Model bir eğitim setinde eğitilir ve eğitimden sonra, eğitimli modelin üzerinde eğitilmeden gelecekte nasıl davranacağını görmek için veri setinin ikinci bölümünde geleceği simüle ederiz.

Alım satım stratejisini değerlendirme ölçütü Sharpe oranıdır (yıldaki tüm günlerin alım satım günleri olduğu ve yılın 365 günü olduğu varsayılarak, yıllık versiyonu: sqrt(365)*mean(returns)/std(returns)) , burada getiri, p_{t}/p_{t-1} - 1 olarak tanımlanır ve p_{t} , t zamanındaki fiyattır. Sharpe oranı, getiriler ile ortaya çıkan ek risk arasındaki oranı gösterir, bu nedenle daha büyük bir Sharpe oranına sahip olmak iyidir. Normalde 1'den büyük bir oran yatırımcılar tarafından kabul edilebilir, 2 çok iyi ve 3 mükemmel.

Bir özellik olarak yalnızca Yahoo Finance veri kümesindeki Google geçmiş fiyatlarının her günkü Kapanış fiyatı kullanılır. Daha fazla özellik yardımcı olacaktır, ancak veri kümesindeki (Açık, Yüksek, Düşük) diğer hangi özelliklerin önemli olduğunu test etmek bu blogun kapsamı dışındadır. Tabloda yer almayan diğer bazı özellikler de yardımcı olabilir; örneğin, belirli bir dakikadaki haberlerin duyarlılığı veya belirli bir gündeki önemli olaylar. Ancak, sinir ağı girdisi için faydalı olan veri temsillerini yapmak ve bunları mevcut özelliklerle birleştirmek bazen çok zordur. Örneğin, özellik vektörünü genişletmek ve verilen her zaman dilimi için haber duyarlılığını veya Trump'ın tweet duyarlılığını ( -1 çok olumsuz, 0 nötr, +1 çok olumlu vb.) temsil eden bir sayı koymak kolaydır, ancak öyle değildir. belirli olay odaklı anları (Süveyş kanalındaki korsanlar, Teksas'taki bir rafinerideki bomba) özellik vektörüne koymak çok kolay çünkü, her belirli an için, eğer 1 koymak için özellik vektöründe ek bir öğeye ihtiyacımız olacak. olay gerçekleşti veya aksi takdirde 0 , bu da tüm olası anlar için sonsuz sayıda öğeye yol açacaktır.

Bu daha zor veriler için bazı kategoriler tanımlayabilir ve her an için hangi kategoriye ait olduğunu belirleyebiliriz. Farklı şirketlerin hisse fiyatları arasındaki korelasyonu öğrenmek için bir sistem için diğer şirketlerin hisselerinden özellikler de ekleyebiliriz. Ayrıca, yinelenen katmanlarla birleştirmek ve görsel özelliklerin bazı şirketlerin fiyatlarıyla nasıl bir ilişki içinde olduğunu görmek ilginç olacak, bilgisayarla görü için uzmanlaşmış bir tür sinir ağı (evrişimsel sinir ağları) vardır. Belki kalabalık bir tren istasyonundan gelen kamera beslemesini bir özellik olarak kullanabilir ve bu beslemeyi bir sinir ağına ekleyebilir ve sinir ağının gördüğünün bazı şirketlerin hisse senedi fiyatlarıyla ilişkili olup olmadığını görebiliriz - bunda bile bazı gizli bilgiler olabilir. banal ve absürt bir örnek.

Aşağıda, ortalama eğitim kaybının zaman içinde nasıl azaldığını gösteren bir grafik bulunmaktadır; bu, sinir ağının eğitim verilerine sığdırmak için yeterli kapasiteye sahip olduğu anlamına gelir. Derin öğrenme algoritmasının yakınsayabilmesi için verilerin normalleştirilmesi gerektiğini söylemek önemlidir.

Zaman içindeki ortalama kaybı gösteren derin öğrenme ticaret grafiği

Aşağıda, ortalama test kaybının zamanla nasıl azaldığını gösteren bir grafik bulunmaktadır; bu, sinir ağının görünmeyen veriler üzerinde genelleme yapma yeteneğine sahip olduğu anlamına gelir.

Zaman içindeki ortalama test kaybını gösteren derin öğrenme ticaret grafiği

Algoritma açgözlüdür; ertesi gün fiyatın yükseleceğini tahmin ederse, algoritma hemen bir şirketin n=1 hissesini (portföyde yeterli nakit varsa) satın alır, aksi takdirde şirketin tüm hisselerini (eğer varsa) satar. ). Yatırım süresi sabittir ve 300 gün sürer. 300 gün sonra tüm hisseler satılır. Bazı eğitimlerden sonra görünmeyen veriler üzerindeki simülasyon aşağıda görülebilir. Her gün uzun/kısa (veya hiçbir şey yapma) eylemlerle portföy değerinin zaman içinde nasıl arttığı gösterilir.

Görünmeyen veriler üzerinde simülasyonu gösteren Derin Öğrenme finans grafiği

Yukarıdaki simülasyon için Sharpe oranı 1.48'dir. 300 gün sonra nihai portföy değeri 100.263,79 ABD Dolarıdır. İlk gün hisse satın alıp 300 gün sonra satsaydık, portföy 99.988.41 dolar değerinde olurdu.

Aşağıda gösterilen, sinir ağının iyi eğitilmediği ve 300 günlük sabit bir sürenin ardından para kaybettiği bir durumdur.

Sinir ağı ticaret sonuçları

Sharpe oranı -0.94'tür. 300 gün sonra nihai portföy değeri 99.868.36 dolardır.

İşte ilginç bir örnek—yukarıdaki algoritma açgözlüdür ve yalnızca ertesi gün için fiyatı tahmin eder, yalnızca bu tahmine dayalı olarak harekete geçer. Gelecekteki birkaç adımda birden fazla tahmin zincirlemek ve fiyatı tahmin etmek mümkündür. Örneğin, ilk giriş [X_ground_truth_{t0}, X_ground_truth_{t1}, X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}] ve ilk çıktı [X_predicted_{t5}] olduğunda, bir sonraki giriş [X_ground_truth_{t1}, X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}, X_predicted_{t5}] ve çıktı [X_predicted_{t6}] olacak şekilde bu tahmine sahip sinir ağı. Oradan gelen bir sonraki girdi [X_ground_truth_{t2}, X_ground_truth_{t3}, X_ground_truth_{t4}, X_predicted_{t5}, X_predicted_{t6}] ve bu da [X_predicted_{t7}] ile sonuçlanır vb. Buradaki sorun, aşağıdaki resimde gösterildiği gibi, her yeni adımda artan ve sonunda çok kötü uzun vadeli sonuçlarla sonuçlanan bir tahmin hatası tanıtıyor olmamızdır. Başlangıçtaki tahmin, gerçek düşüş trendini takip eder ve daha sonra durağanlaşır ve zamanla daha da kötüleşir.

Hisse değerlerinin temel gerçeğiyle çelişen kümülatif tahmini gösteren grafik

Google hisse fiyatları üzerinde çok basit bir derin öğrenme analizi yapıldı, ancak veri miktarının yeterince büyük ve kaliteli olması koşuluyla hemen hemen her türlü finansal veriyi içerebilir. Veriler ayırt edici olmalı ve sorunu iyi tanımlamalı ve temsil etmelidir.

Toplama

Bu sistem, kapsamlı testlerde iyi çalışır ve genelleştirilirse, riskten korunma fonu yöneticilerinin derin öğrenmeyi kullanarak ve algoritmik ticaret stratejilerine dayanan bir şirketin hisselerinin gelecekteki fiyatları hakkında spekülasyon yapmalarına izin verebilir.

Hedge fon yöneticileri, sisteme her gün otomatik olarak işlem yapması için bir miktar para verebilir. Ancak, otomatik ticaret algoritmalarının herhangi bir denetim olmadan ticaret yapmasına izin vermek çok kötü olurdu. Hedge fon yöneticisi, bazı derin öğrenme becerilerine sahip olmalı veya sistemi denetlemek ve sistemin genelleme ve iyi ticaret yapma yeteneğini ne zaman kaybettiğini belirlemek için gerekli becerilere sahip birini istihdam etmelidir.

If the system lost the ability to generalize, then it would be necessary to retrain it from the beginning and test it again (maybe by introducing more discriminative features or new knowledge—using new data from the past that didn't exist when the model was first trained).

Sometimes, the data is simply not good enough for the deep learning system to be trained and generalize well and, in that case, an experienced deep learning engineer should be able to detect and rectify such a situation. To build a deep learning trading system, you need hedge funds data scientists, machine learning/deep learning experts (both scientists and engineers), R&D engineers familiar with machine learning/deep learning, etc. No matter which part of an application of machine learning they are familiar with, whether it's computer vision or speech recognition, seasoned professionals will be able to put their experience to good use in the financial sector. At its root, deep learning has the same basics regardless of application or industry, and it should be easy for someone experienced to switch from theme to theme.

The system we presented is very basic and, to be applied in the real world, more R&D should be done in order to increase the returns. Possible improvements of the system could be in developing better trading strategies. Collecting more data for training, which is usually very expensive, will help. A smaller time interval between the points is better. Improvements can also surface in using more features (eg, news sentiments or important happenings corresponding to each point in the dataset, despite being hard to code for a neural network) and extensive grid search for hyperparameters and RNN architecture discovery.

Also, more computing power (powerful GPUs are a must) is needed to make a lot of extensive experiments in parallel and to process a large amount of data, provided that a large amount of data is collected.

References:

  • https://www.datacamp.com/community/tutorials/finance-python-trading
  • http://colah.github.io/posts/2015-08-Understanding-LSTMs/
  • https://en.wikipedia.org
  • https://www.investopedia.com/
  • https://finance.yahoo.com/
  • http://pytorch.org/

Author's Note: I would like to thank Ivan Capalija and Matej Paradzik for the constructive conversations and advice about deep learning in finance, which helped me in writing this blog.