Günümüzde bilgisayar destekli sistemlerin kullanımının artmasına bağlı olarak sektör bazlı verilerin miktarı da hızla artmıştır. Neredeyse bütün bilgisayar yazılımlarına ait veriler güvenlik ve takip edilebilirlik nedeniyle loglanmaktadır. Özellikle finans sektöründe verilerin kaydedilmesi çok büyük önem arz etmektedir. Oluşan hatalarda ya da güvenlik sebepli araştırmalarda bu kayıtlar kullanılmakta ve işleri kolaylaştırmaktadır. Log kayıtları yazılıma özel olarak tutulmakta olup ilgili sistemin kullanımına bağlı olarak milyonlarca hatta milyarlarca kayıttan oluşabilmektedir. Bu da kayıtlardan anlamlı sonuçların çıkarılmasını ya da kayıtlar üzerinde bir analiz yapılmasını zorlaştırmaktadır. Bu kayıtlar genellikle sistem çalışma anında kaydedilen ve tarih bilgisi içeren kayıtlardır. Dolayısıyla sistemlerin çalışmasına bağlı olarak sürekli büyüyen zaman serileri üretilmektedir. Zaman serilerinde yer alan her kayıt tek tek incelenip anlamlı bir analiz çıkarmak imkânsız olduğundan burada devreye zaman serisi analizi yapan algoritmalar girmektedir.
Zaman serisi analizleri sadece sistem çalışma kayıtları üzerinde değil farklı türde veri setleri üzerinde de yapılabilmektedir. Örnek olarak döviz kurları anlık olarak değişen verilerdir. Kur değişimleri anlık olduğu için anlık kur değerleri zaman etiketiyle beraber tutulmaktadır. Dolayısıyla döviz kurları da bir zaman serisi özelliği taşımaktadır. Yazının sonunda döviz kurları üzerinde yapılan bir zaman serisi analizinden bahsedilecek ve popüler bir derin öğrenme mimarisi kullanılarak gelecekteki kurların tahminlenmesi sağlanacaktır.
Zaman Serisi Nedir?
Zaman serisi, kronolojik zaman etiketi olan değerler dizisidir. Model, bir zaman serisi kullanarak tahminler yaparken, belirtilen değerler ve bu değerlerin sırası hakkında varsayımlarda bulunmaktadır. Bu nedenle sıra, zaman serileri analizinde çok önemli bir faktördür ve karıştırılmaması gerekir (Ghareeb, Mahyoub, & Mustafina, 2023).
Zaman serisi analizleri tarım, ekonomi, mühendislik, meteoroloji ve hatta tıp ve sosyal bilimlerde yapılabilir. Zaman serisi analizi, kalıpları ve yapıları tanımlamak için zaman serisi özelliklerini incelemeye yönelik araçları ve yöntemleri içerir. Zaman serisi analizi, iki farklı yaklaşım olarak kategorize edilebilir: zaman alanı analizi ve frekans alanı analizi. Zaman serisi analizinin gelecekteki değerleri tahmin etmek, anormallikleri tespit etmek ve sistemi en iyi şekilde kontrol etmek gibi çeşitli amaçları vardır (Sahnoune, Zeraoulia, & Berkani, 2022).
Zaman serilerinin analiz edilmesinde, modellerin eğitilmesinde derin öğrenme algoritmaları da kullanılmaktadır. Bir tür derin öğrenme mimarisi olan RNN yani Özyinelemeli Sinir Ağları, klasik yapay sinir ağlarının gelişmiş bir versiyonu olup zaman serisi problemlerinde çok popüler bir şekilde kullanılmaktadır.
Özyinelemeli Sinir Ağları (RNN)
Özyinelemeli sinir ağları, Evrişimsel Sinir Ağları (CNN) mimarilerindeki modellerin aksine geçici veya sürekli bilgileri yorumlamaları bakımından CNN’lerden farklıdır. RNN, önceki ve sonraki düğümlerin sürekli verilerini ve aktivasyon fonksiyonlarını izler ve çıktı sonucunu etkilemek için bunları yeniden kullanır (Ahmad, Muaz, & Adeel, 2021).
Temel olarak, bir tür derin öğrenme ağı olan özyinelemeli sinir ağları (RNN’ler), konuşma tanıma gibi sıralı veri analizi için tasarlanmıştır. RNN, tarih özniteliği çıkarma için kayıp fonksiyonunu optimize eden ve son olarak gelecekteki tahminleri gerçekleştiren dahili parametreleri ayarlayarak çalışmaktadır. Günümüzde RNN’ler, trafik akışları, döviz kurları, kaotik zaman serileri vb. alanlara uygulanmaktadır. RNN’ler iki adet zayıf noktaya sahiptir. Birincisi uzun-vadeli bağımlılıkları öğrenme eksikliği olup ikincisi gradyanların patlaması veya kaybolması sorunudur (Chaozhi, Yachun, & Ni, 2020). Gradyan terimini kısaca aktivasyon fonksiyonunun türevi olarak açıklayabiliriz. Derin mimarilerde ileri besleme işleminden sonra bir hata oranı hesaplanır. Daha sonra bu hatanın ağırlıklara yayılması ve azaltılması için geri yayılım işlemi gerçekleştirilir. Geri yayılım işleminde aktivasyon fonksiyonunun türevi alınarak ilgili ağırlıklar güncellenerek optimum ağırlıklar aranır. Bu işlem literatürde Gradient Descent yani Gradyan İniş olarak geçmektedir.
RNN’ler, özellikle sıralı veriler için güçlü modellerdir. RNN’lerin sadece katmanlar arasında ağırlık bağlantıları kuran temel sinir ağlarına göre en önemli farkı nöronlar arasında da ağırlık bağlantıları kurmasıdır. RNN’nin temel yapısı Şekil 1’de gösterilmiştir (Xu, Wang, Liu, & Hao, 2020). RNN ağları, sıralı girdi verilerine dayalı geçici ilişkileri tanımlar ve üç ağırlık matrisi ve iki sapma ile karakterize edilir. RNN’ler, kaybolan gradyanlar sorunu nedeniyle kapsamlı zamansal bağımlılıklara sahip dizi verileri üzerinde neredeyse hiç eğitilememektedir (Hassanian, Riedel, & Bouhlali, 2022).
RNN mimarisinde yer alan gradyan ve uzun vadeli ilişkilerin çıkarılması sorunlarını çözmek amacıyla gelişmiş bir RNN mimarisi olan LSTM (Uzun Kısa Süreli Bellek) geliştirilmiştir. LSTM, başka bir RNN modül türüdür. LSTM, (Hochreiter & Schmidhuber, 1997) tarafından tasarlanmış ve o zamandan beri birçok araştırmacı tarafından daha da geliştirilmiş ve popüler hale getirilmiştir. RNN’lere benzer şekilde, LSTM ağları yinelemeli olarak tutarlı olan modüllerden oluşur. (Qiao, Xu, & Zhou, 2023).
Örnek Çalışma : Gelecekteki Dolar Kurlarının LSTM Kullanılarak Tahmin Edilmesi
Zaman serilerine verilebilecek en güzel örneklerden birisi de döviz kurlarıdır. Döviz kurları anlık olarak değişmektedir. Kur değerlerinin zaman bilgisiyle beraber tutulması durumunda zaman serisi oluşmaktadır. Bu yazıda zaman serisi analizine bir örnek olması açısından dolar kuru verileri ile bir LSTM modeli eğiteceğiz. Daha sonra eğitilen modelin gelecekteki dolar kurlarını tahmin etmesini sağlayacağız.
Kullandığımız veri setinde 2015 yılından günümüze kadarki dolar kurları yer almakta olup toplamda 3000 veri bulunmaktadır. Veri setinde aşağıdaki kolonlar yer almaktadır:
- Tarih à Dolar kuru tarihi
- Açılış à İlgili tarihteki dolar kuru açılış değeri
- Yüksek à İlgili tarihteki en yüksek kur
- Düşük à İlgili tarihteki en düşük kur
- Ortalama à İlgili tarihteki ortalama kur
Veri setinin ilk 10 verisi Tablo 1’de gösterilmiştir.
Tablo 1. Kullanılan veri setindeki ilk 10 kayıt
Çalışmamızın amacı açılış, en yüksek ve en düşük değerleri kullanarak ileriki bir tarihteki ortalama dolar kurunu tahmin etmektir. Çalışma sırasında phyton programlama dili kullanılmış olup tensorflow kütüphanesinin Keras isimli API’si kullanılmıştır.
LSTM mimarisi klasik RNN’lerden farklı olarak uzun vadeli ilişkileri de çıkarabilmektedir. Kısaca açıklamak gerekirse LSTM’de geçmiş ve gelecek isimli iki filtre kullanılır. Bu iki filtre veri setinin en başından en sonuna kadar sırayla ilerletilir ve eğitim gerçekleştirilir. Bu yazı kapsamında yapılan çalışmada geçmiş filtremiz 1024 elemanlı olup gelecek filtremiz 3 elemanlıdır. Yani her seferinde 1024 veri kullanılarak sonraki 3 veri tahmin edilir ve bu şekilde mimarideki ağırlıklar ayarlanarak optimum ağırlıklar aranır. Eğitim sonrasında veri setindeki tüm veriler bittiğinden veri setinde olmayan yani gelecekteki 3 günün verisi tahmin edilecektir. Filtre boyutları ve diğer parametrelerin değer atamaları aşağıda gösterilmiştir.
Sonraki aşama, gerekli kütüphanelerin import edilmesidir. LSTM modeli kuracağımız için Keras altından gerekli katmanlar import edilir.
Kütüphanelerin import edilmesinden sonra dolar kurlarını içeren csv formatındaki dosya Pandas kütüphanesi aracılığıyla okunur.
Yukarıda bahsedilen geçmiş ve gelecek verilerini tutan filtreler oluşturulur.
Keras içerisinde yer alan LSTM katmanı kullanılarak LSTM mimarisi kurulur.
Öğrenme oranı 0.01 olarak verilmiştir. Kayıp fonksiyonu olarak da bu örnek için Ortalama Kareler yöntemi seçilerek eğitim yapılmıştır. Epoch olarak 100 belirlenmiştir. Epoch terimi kısaca derin mimarideki ileri besleme ve geri yayılım işleminin bir kez tamamlanmasını ifade etmektedir.
Yukarıda bahsedilen parametreler dışarıdan verilen parametreler olup hiper parametre olarak bilinmektedir. Bu parametreler değiştirilerek ilgili problem için daha iyi sonuçlar elde edilebilir. Hiper parametrelerin optimizasyonu için yaygın olarak kullanılan yöntemlerden birisi Grid Search yöntemidir. Bu yöntemde hiper parametrelerin bütün kombinasyonları denenerek farklı sayıda çalışmalar yapılarak en yüksek başarının elde edilmesi amaçlanır.
Eğitim çalışması 100 epoch halinde gerçekleştirilmiş olup son 10 epoch çalışmasına ait kayıp değerlerinin değişimi aşağıdaki gibidir. Son epoch adımında kayıp fonksiyonu olarak seçilen MSE, 0.18 validasyon kayıp değeri üretmiştir.
Son olarak eğitilen modelin 11-12 ve 13 Temmuzdaki dolar kurlarını tahmin etmesi sağlanmıştır. Gelecek filtremiz 3 elemanlı olduğundan n_future değeri 3 olup veri setindeki son üç eleman silinerek bunları modelin tahminlemesi sağlanmıştır.
Tahmin işlemi sonrasında model tarafından tahmin edilen dolar kurları Tablo 2’de verilmiştir.
Tablo 2. Model tarafından tahmin edilen dolar kurları
Yukarıda belirtilen tarihlerdeki gerçek kur değerleri ise Tablo 3’ te verilmiştir.
Tablo 3. Belirlenen tarihlerdeki gerçek kur değerleri
Tablo 2 ve Tablo 3 incelendiğinde tahmin edilen değerler ve gerçek değerler arasında bir miktar fark bulunmaktadır. Bu fark, kullanılan veri setine ve algoritmaya göre değişebilmektedir. Daha büyük bir veri seti seçilirse, hiper parametre seçiminde de yukarıda belirtilen Grid Search yöntemi kullanılırsa daha yakın değerler elde edilebilir. Gerçek değerler ve tahmin edilen değerler arasındaki farkı değiştiren bir diğer olay ise gündemi etkileyen özellikle ekonomik gelişmelerdir. Bu gelişmeler sebebiyle dövizde anormal dalgalanmalar yaşandığından, eğitimde kullanılan veri seti ve model ile bu dalgalanmaların tahmini zor olmaktadır.
Bu yazıda RNN mimarilerinden birisi olan LSTM mimarisinin kurulumu ve eğitimi konusundan bahsettik. Zaman serisi problemlerinde örnek olarak popüler bir şekilde kullanılan Dolar Kuru veri seti üzerinde eğitim ve tahmin işlemlerini gerçekleştirdik. Sonraki yazılarda RNN ve LSTM konusunda daha detaylı bilgi verilecektir.
Kaynakça
- Ahmad, M., Muaz, M., & Adeel, M. (2021). A survey of deep neural network in acoustic direction finding. Paper presented at the 2021 International Conference on Digital Futures and Transformative Technologies (ICoDT2).
- Ghareeb, S., Mahyoub, M., & Mustafina, J. (2023). A comparative Time Series analysis of the different categories of items based on holidays and other events. Paper presented at the 2023 15th International Conference on Developments in eSystems Engineering (DeSE).
- Hassanian, R., Riedel, M., & Bouhlali, L. (2022). The capability of recurrent neural networks to predict turbulence flow via spatiotemporal features. Paper presented at the 2022 IEEE 10th Jubilee International Conference on Computational Cybernetics and Cyber-Medical Systems (ICCC).
- Hochreiter, S., & Schmidhuber, J. (1997). Long short-term memory. Neural computation, 9(8), 1735-1780.
- Qiao, Y., Xu, K., & Zhou, K. (2023). Research on time series based on improved LSTM. Paper presented at the 2023 IEEE 3rd International Conference on Power, Electronics and Computer Applications (ICPECA).
- Sahnoune, A., Zeraoulia, E., & Berkani, D. (2022). Analysis and prediction of chaotic time series. Paper presented at the 2022 4th International Conference on Pattern Analysis and Intelligent Systems (PAIS).
- Xu, T., Wang, H., Liu, Z., & Hao, Y. (2020). Machinery Fault Diagnosis Using Recurrent Neural Network: A Review. 2020 Global Reliability and Prognostics and Health Management (PHM-Shanghai), 1-6.