Document Type : Research Paper
Authors
1 Ph. D. Student, Department of Financial Management, Faculty of Management and Economics, Science and Research Branch, Islamic Azad University, Tehran. Iran.
2 Assistant Professor, Department of Business Management, Faculty of Management and Economics, Science and Research Branch, Islamic Azad University, Tehran. Iran.
3 Associate Professor, Department of Industrial Management. Faculty of Management and Accounting, Allameh Tabataba'i University, Tehran. Iran.
4 Associate Professor, Department of Financial Management, Faculty of Management, Central Tehran Branch, Islamic Azad University, Tehran, Iran.
Abstract
Keywords
Main Subjects
مقدمه
فعالین بازار سرمایه بهمنظور کسب بالاترین بازده از سرمایهگذاری خود همواره بهدنبال پیشبینی قیمت سهاماند و این امر توجه بسیاری از پژوهشگران دانشگاهی و کارشناسان این حوزه را به خود جلب کرده است؛ بهطور کلی فرآیندهای سری زمانی را میتوان به دو طبقۀ خطی و غیرخطی دستهبندی کرد که بر این اساس الگوهای خطی با روشهای ساده و الگوهای غیرخطی (تصادفی و آشوبناک) با الگوریتمهای پیچیده و قوی قابل پیشبینی است؛ الگوریتمهای قیمتگذاری داراییهای سرمایهای (CAPM)[1]، سه عاملی فاما و فرنچ و قیمتگذاری آربیتراژ (APT)[2] از نظریههای بنیادی و اولیه حوزۀ مالی است که با فرض خطیبودن رابطۀ بین متغیرها سعی در پیشبینی بازده دارد (Gordon & Francis, 1986)؛ اما از آنجا که مهمترین ویژگی سریهای زمانی مالی مانند: قیمت سهام، نرخ تورم، نرخ ارز و قیمت نفت غیرخطیبودن آنهاست، استفاده از روشهای خطی برای پیشبینی سریهای زمانی مالی نتایج مطلوبی به همراه نخواهد داشت؛ از این رو، درخصوص مسائلی همچون پیشبینی قیمت در بازار سرمایه، اغلب الگوریتمهای مبتنی بر رویکرد بینظمی و پویایی غیرخطی نظیر یادگیری ماشین[3]، ازجمله روشهای مورد اقبال پژوهشگران در سالهای اخیر بوده است (Raei, 2003).
یادگیری ماشین که زیرمجموعۀ هوش مصنوعی است، به علت خاصیت اکتشافی خود، بدون هیچ فرض اولیهای شروع به الگوسازی رفتار دادهها میکند و بهمرور زمان و با جلو رفتن الگوریتم، الگو پررنگتر خواهد شد؛ ساختار غیرخطی و مقاوم این روش، توانایی شبیهسازی رفتار محیط واقعی را فراهم کرده است (Mitchell, 1997). در یادگیری ماشینی از طریق بهکارگیری یکسری از الگوریتمهای خاص سعی میشود الگوهای پنهان بین دادهها کشف شود؛ در صورتی که تعداد متغیرهای مستقل و وابسته زیاد باشد و بین آنها ارتباط خطی برقرار نباشد، این روش در زمرۀ بهترین گزینهها برای پیشبینی است.
یادگیری عمیق، زیرشاخهای از یادگیری ماشینی و از حوزههای نوین این بخش است. یادگیری عمیق معرف سلسلهای از الگوریتمهاست که در آن از چندین لایۀ پردازش اطلاعات بهویژه اطلاعات غیرخطی استفاده میشود تا بهترین ویژگیهای مناسب از ورودی خام استخراج شود (Deng & Yu, 2014). از میان تکنیکهای مختلف یادگیری عمیق که در علوم مختلف کاربردهای فراوانی دارد، پژوهشگران حوزۀ مالی برای پیشبینی قیمت با توجه به ویژگیهای سریهای زمانی مالی، اغلب از الگوریتمهای بهخصوصی نظیر شبکۀ عصبی بازگشتی (RNN)[4]، حافظۀ کوتاهمدت ماندگار (LSTM)[5] و شبکۀ عصبی پیچشی (CNN)[6] استفاده کردهاند (Sezer and et al., 2020).
در این پژوهش ضمن معرفی انواع روشهای یادگیری عمیق که در پیشبینی سریهای زمانی مالی استفاده میشود، مقایسۀ توانایی معماریهای مختلف الگوریتم CNN در پیشبینی قیمت سهام بررسی شده است. طبق بررسیهای انجامشده الگوریتم CNN معماریهای متفاوتی دارد و در هریک از پژوهشهای انجامشده در گذشته اغلب بر یکی از معماریها تمرکز شده است؛ در حالی که در این مطالعه در سطح اول معماریهای مختلف CNN استفادهشده در پژوهشهای مختلف استخراج شده و در سطح دوم هریک از معماریهای شناساییشده با پارامترهای مختلف بهینهسازی شده است. درنهایت بهترین عملکرد هر معماری با پارامترهای مختلف برای انتخاب معماری بهینه مقایسه شده است که در مطالعههای گذشته این موضوع با جامعیت حاضر بررسی نشده است.
مبانی نظری
به موازات کاربرد انواع روشهای مختلف برای پیشبینی سریهای زمانی مالی، پژوهشگران حوزۀ یادگیری ماشینی نیز با استفاده از الگوریتمهای متنوع موجود در این بخش سعی در پیشبینی قیمت داشتهاند. یادگیری ماشینی به مفهوم مطالعۀ الگوریتمهای کامپیوتری است که براساس تجربه میآموزد و پیشرفت میکند (Mitchell, 1997). این دانش زمینۀ پژوهشی بهنسبت جدیدی از هوش مصنوعی است که در گسترۀ وسیعی از علوم مختلف اعم از کنترل ربات، تشخیص چهره و گفتار، شناسایی متن، پردازش دادههای اینترنتی، دادهکاوی و پیشبینی سریهای زمانی کاربرد فراوان دارد. پژوهشگران مالی نیز از روشهای متعددی در حوزۀ یادگیری ماشینی نظیر محاسبات تکاملی (ECs)[7]، الگوسازی عامل بنیان[8] و شبکۀ عصبی مصنوعی برای بررسی دادههای سری زمانی استفاده کردهاند (Sezer and et al., 2020).
یادگیری عمیق، گونهای از شبکههای عصبی مصنوعی است که شامل چندین لایه پردازش اطلاعات است که به الگوریتم توانایی بیشترین همگامی را با دادهها میدهد. مهمترین مزیت الگوریتمهای یادگیری عمیق نسبتبه روش سنتی شبکۀ عصبی، استخراج خودکار ویژگیهای مناسب از ورودیهای خام است که از آن برای روند یادگیری الگو[9] استفاده میشود. مطالعات انجامشده در حوزۀ پیشبینی سریهای زمانی مالی که در آنها از الگوریتمهای یادگیری عمیق استفاده شده است، براساس نوع خروجی موردانتظار اغلب به دو دستۀ اصلی تقسیم میشود که یکی پژوهشهایی است که با هدف پیشبینی قیمت سهام (Chong and et al., 2017; Chen and et al., 2015; Dezsi & Nistor, 2016) و دیگری با هدف پیشبینی روند قیمت (صعودی، نزولی یا خنثی) انجام شده است (Das and et al., 2018;. Zhou and et al., 2019).
در پژوهشهای مرتبط با هدف پیشبینی قیمت سهام، از روشهای متنوعی در حوزۀ یادگیری عمیق استفاده شده است که از آن جمله میتوان به الگوریتم شبکۀ عصبی مکرر یا بازگشتی (RNN) (and et al., 2018; Lee & Yoo, 2020)، حافظۀ کوتاهمدت ماندگار (LSTM) و شبکۀ عصبی پیچشی (CNN) اشاره کرد که در این میان پژوهشگران به الگوریتمهای LSTM و CNN به دلیل دارا بودن برخی ویژگیها بیشتر از بقیۀ روشها توجه کردهاند؛ برای مثال، گائو[10] و همکاران (2020) مقایسۀ قدرت انواع الگوریتمهای LSTM، MLP و CNN را درخصوص پیشبینی شاخصهای S&P500 و Nikkei225 در افق زمانی یکروزه بررسی کردهاند؛ آنها از متغیرهای ورودی شاخصهای تکنیکال، دادههای قیمتی و شاخصهای کلان اقتصادی برای پیشبینی استفاده کردهاند. درنهایت با استفاده از خطای RMSE بهترین عملکرد بهترتیب الگوریتمهای CNN، LSTM و MLP بوده است. دیپرسیو و هانچر[11] (2016) نیز با استفاده از الگوریتمهای CNN، LSTM و MLP، دادههای تاریخی قیمت پایانی شاخص S&P500 را بررسی کردهاند که نتایج حکایت از عملکرد بهتر الگوریتم CNN داشته است. در جدول (1) برخی از پژوهشهای انجامشده با استفاده از الگوریتمهای یادگیری عمیق آورده شده است.
جدول (1) مطالعات مرتبط با بهکارگیری معماریهای مختلف یادگیری عمیق برای پیشبینی قیمت سهام
Table (1) Studies using different deep learning algorithms for stock price forecasting.
حوزههای مطالعاتی
پژوهشهای مرتبط |
جامعۀ آماری |
دورۀ زمانی مورد بررسی |
دادههای مورد استفاده |
قالب زمانی |
افق زمانی پیشبینی |
الگوریتم مورد استفاده |
ژو[12] و همکاران، (2018) |
42 شرکت در SSE |
2016 |
دادههای قیمتی، شاخصهای تکنیکال |
242 دقیقه |
یک دقیقه |
CNN LSTM, |
هیرانشا[13] و همکاران، (2018) |
۵ شرکت در NSE |
1997-2016 |
دادههای قیمتی، گردش مالی، تعداد دفعات معاملات |
200 روز |
یک الی ده روز |
LSTM, RNN, CNN, MLP |
لی و یو[14]، (2020) |
10 شرکت در S&P500 |
1997-2016 |
دادههای قیمتی |
36 دقیقه |
یک دقیقه |
RNN, LSTM, GRU |
۵ شاخص بازار سهام آمریکا |
2010-2017 |
دادههای قیمتی، شاخصهای تکنیکال، قیمت طلا و نفت |
- |
یک روز |
CNN |
|
لیو[16] و همکاران، (2017) |
بازار سهام چین |
2007-2017 |
دادههای قیمتی |
30 روز |
یک الی پنج روز |
CNN, LSTM |
خارو[17] و همکاران، (2017) |
10 شرکت در NYSE |
2017 |
دادههای قیمتی، شاخصهای تکنیکال |
بیست دقیقه |
یک دقیقه |
LSTM, MLP |
100 شرکت در بازار سهام استانبول |
2011-2015 |
دادههای قیمتی، شاخصهای تکنیکال |
10 روز |
یک روز |
CNN |
در بخش داخلی، مطالعات انگشتشماری در حوزۀ کاربرد معماریهای مختلف یادگیری عمیق در مباحث مالی انجام شده است. ازجمله پژوهش شوشتریان[19] و همکاران (۱۳۹۷) که سعی در پیشبینی قیمت فلزات گرانبها با استفاده از دو روش LSTM و RNN داشتند؛ نتایج پژوهش حاکی از برتری روش RNN است. علاوه بر این، دامی و خدابخش[20] (1397) با استفاده از بازنماییهای عددی و متنی با روش LSTM اثرات زمانی وقایع گذشته را بر قیمتهای موجود بررسی کردهاند.
روش شبکۀ عصبی پیچشی (CNN) یک شبکۀ عصبی مصنوعی (ANN) پیشخور محسوب میشود که ورودیهای آن بهصورت ماتریس دوبعدی است و برخلاف یک شبکۀ عصبی دارای اتصال کامل مانند MLP، موقعیت دادهها در بردار ورودی (یا ماتریس) حائز اهمیت است (Sezer & Ozbayoglu, 2018). به دلیل ویژگی تحلیل ماتریسی شبکۀ کانولوشنی یا پیچشی[21]، این روش کاربرد وسیعی در حوزههای گوناگون اعم از تشخیص تصویر، فیلم، پردازش زبان طبیعی و سیستمهای خبره دارد. یکی از زمینههایی که بهتازگی موردتوجه پژوهشگران قرار گرفته است، تحلیل سریهای زمانی مانند قیمت سهام با استفاده از این روش نوین است. در معماری CNN از لایههای مختلفی استفاده میشود که بهترتیب عبارت است از: پیچشی، ادغام[22]، حذف تصادفی[23] و تمام متصل[24]. در رابطه با عملکرد CNN بهطور خلاصه میتوان گفت در سطح اول، لایۀ پیچشی قرار دارد که ورودی آن یک آرایه از اعداد است؛ در این لایه با استفاده از فیلترهای[25] متنوع ویژگیهای جدیدی از ماتریس استخراج میشود[26]. شایان ذکر است فیلترها نیز خود آرایهای از وزنها هستند که در حین مراحل آموزش بهروز میشوند و بهدنبال آن عملیات ادغام انجام میشود که در آن وظیفۀ کاهش ابعاد و تعداد پارامترهای شبکه را انجام میشود (Sezer and et al., 2020). شبکههای عصبی عمیق اغلب در معرض بیشبرازش[27] هستند؛ چون تعداد لایههای اضافهشده این امکان را ایجاد میکند که وابستگیهای نایاب در دادههای آموزشی حساب شود. با استفاده از روش حذف تصادفی میتوان به از بین بردن بیشبرازش کمک کرد؛ در این شیوه درصد مشخصی از واحدها بهصورت تصادفی از لایههای مخفی حذف میشود. این کار به از بین بردن وابستگیهای نادر در دادههای آموزشی کمک میکند (Poorzaker Arabani & Ebrahimpour Komleh, 2019). خروجی این لایه بعد از تبدیل به بردار یکبعدی به لایۀ شبکه اتصال کامل ارسال و در آن از الگوریتمهای رایج شبکههای عصبی استفاده میشود. عملکرد لایۀ پیچشی در فرمول زیر نشان داده شده است.
(1) |
|
در رابطۀ (1) متغیرهای t، s، w، x و بهترتیب نشاندهندۀ زمان، نقشۀ ویژگی[28]، فیلتر، داده ورودی و شمارنده هستند. در این پژوهش با تمرکز بر معماریهای مختلف الگوریتم CNN به پرسشهای زیر پاسخ داده میشود. پیشبینی قیمت سهام در بورس اوراق بهادار تهران با استفاده از معماریهای مختلف الگوریتم CNNچگونه است؟ کدام معماری CNN عملکرد بهتری در پیشبینی قیمت سهام دارد؟ درنهایت اینکه عملکرد معماریهای منتخب الگوریتم CNN در مقایسه با الگوریتم RNN چگونه است؟
روش پژوهش
سهام شرکت ذوبآهن اصفهان به دلیل حجم معاملات روزانۀ بهنسبت بالا در مقایسه با سایر شرکتها و همچنین درصد مناسب سهام شناور آزاد برای تحلیل انتخاب شده است. از این رو، نمونۀ آماری، قیمتهای روزانۀ شرکت ذوبآهن اصفهان از سال 1396 تا سال 1399 است. در راستای لزوم همسانبودن دورۀ زمانی متغیرها و افق زمانی پیشبینی قیمت در پژوهش (که بهصورت روزانه است)، این مهم در انتخاب متغیرهای ورودی در نظر گرفته شده است و از دو دسته دادههای قیمتی (اولین قیمت، بالاترین قیمت، پایینترین قیمت، آخرین قیمت و حجم معاملات) و شاخصهای تکنیکال استفاده شده است که مجموع متغیرهای دادههای قیمتی از نرمافزار TseClient و شاخصهای تکنیکال براساس پژوهشهای کارا[29] و همکاران (2011) و پاتل[30] و همکاران (2015) به شرح جدول (2) محاسبه شده است. درنهایت برای طراحی الگو از نرمافزار Python نسخۀ 8.3 همراه با توابع کتابخانهای کراس استفاده شده است.
جدول (2) معادلات شاخصهای تکنیکال
Table (2) Technical indicators equation.
نحوۀ محاسبه |
نام شاخص |
|
Weighted 10-day moving average |
|
Momentum |
|
Stochastic K% |
|
Stochastic D% |
|
Relative strength index (RSI) |
|
Moving average convergence divergence (MACD) |
|
MACD Signal |
|
Larry William’s R% |
|
On Balance Volume (OBV) |
|
CCI (Commodity channel index) |
که در آن Ct آخرین قیمت در زمان t، Ht بالاترین قیمت در زمان t، UPt تغییرات قیمت صعودی در زمان t، Lt پایینترین قیمت در زمان t، LLt , HHt بیشترین و کمترین قیمت در t روز آخر و DWt تغییرات قیمت نزولی در زمان t است. علاوه بر این، نحوۀ محاسبۀ Mt ، SMt و Dt به شرح ذیل است.
|
|
|
بررسی پژوهشهای مرتبط با پیشبینی قیمت با استفاده از روش CNN نشاندهندۀ آن است که بهطور معمول از سه معماری (لایهچینی) به شرح شکل (1) استفاده شده است که در این پژوهش نیز هر سه معماری بررسی شده است.
شکل (1) فرآیند انتخاب معماری بهینه CNN
Figure (1) The process of choosing optimal CNN algorithm
شایان ذکر است انتخاب معماریهای مختلف و پارامترهای مورد استفاده با مدنظر قراردادن مطالعات مختلف انجامشده در این حوزه به شرح جدول ذیل است:
جدول (3) مطالعات مؤثر در طراحی الگوی پژوهش
Table (3) Effective studies in model development
پژوهش |
معماری مورد استفاده |
حوزۀ مطالعاتی |
دادههای مورد استفاده |
افق زمانی پیشبینی |
استفاده از دو لایۀ پیچشی با تعداد فیلترهای متفاوت |
پیشبینی دلاری قیمت طلا |
دادههای قیمتی |
یک روز |
|
CNN ساده |
پیشبینی شاخص S&P500 CSI300 Nikkei225 |
دادههای قیمتی، حجم معاملات، شاخصهای تکنیکال |
یک روز |
|
CNN همراه با لایۀ حذف تصادفی |
||||
CNN همراه با لایههای حذف تصادفی و ادغام بیشینه[34] |
پیشبینی قیمت صندوقهای سرمایهگذاری ETF |
دادههای قیمتی، شاخصهای تکنیکال |
یک روز |
|
CNN همراه با لایۀ ادغام بیشینه |
پیشبینی قیمت قردادهای آتی کربن |
دادههای قیمتی |
هفت روز |
|
CNN همراه با لایۀ ادغام بیشینه |
پیشبینی قیمت رمزارز بیتکوین |
دادههای قیمتی |
یک روز |
برای انتخاب معماری بهینۀ CNN نیاز است که هر سه روش استفادهشده با پارامترهای مختلف بررسی شود. شایان ذکر است پارامترهای اثرگذار در ساخت معماری بهینۀ CNN شامل مواردی نظیر تعداد فیلترها[37] در لایۀ CNN، اندازۀ دسته[38] و تابع فعالسازی[39] است. برای مثال، تعداد کم فیلترها باعث ایجاد خطای بیشتری میشود و شبکه همگرا نمیشود. از طرفی تعداد فیلترهای زیاد به دلیل ایجاد بیشبرازش منجر به خطای بالا میشود. از این رو، موارد مذکور با توجه به خروجی اخذشده بهینهسازی شده است. انتخاب پارامترهای مختلف در جدول (4) براساس نتایج مطالعات انجامشده در این حوزه است (Gudelek and et al., 2017; Livieris and et al Pintelas., 2021; Livieris and et al., 2020).
جدول (4) پارامترهای مختلف مورد استفاده در اجرای الگو
Table (4) The parameters used to run the model
پارامتر |
مقادیر |
تعداد فیلتر |
64، 128، 256 |
اندازه دسته |
32، 64، 128 |
optimizer |
Adam |
Loss |
Mean Square Error |
توابع فعالسازی |
رابطۀ ریاضی |
تابع یکسو ساز (ReLU) |
|
تانژانت هیپربولیک (Tanh) |
|
برای اجرای الگوریتم، دادهها به دو بخش آموزش (80 درصد) برای ساخت الگو و آزمایش (20 درصد) برای آزمون تقسیم شده است؛ برای بهترشدن فرآیند یادگیری، مرحلۀ آموزش به تعداد50 مرتبه تکرار[40] شده است. علاوه بر این، باید توجه داشت که تفاوت مقیاسها در متغیرهای مختلف، نتایج را تحتتأثیر قرار میدهد و بهطور معمول برای از بین بردن تأثیر نامطلوب مذکور، نرمالسازی داده نیاز است که در این پژوهش برای نرمالسازی از روش کمینه – بیشینه[41] جهت تبدیل دادهها به مجموعۀ جدیدی استفاده شده است که در آن همۀ مقادیر بین 0 و 1 است.
یافتهها
برای انتخاب معماری بهینه CNN، هر سه معماری معرفیشده با پارامترهای مختلف مندرج در جدول (4) اجرا شده است. درنهایت بهترین نتایج حاصل از هر معماری مقایسه شده است؛ بنابراین معماری منتخب، حاصل از اجرای الگوریتم به تعداد 54 دفعه با لایهها و پارامترهای متفاوت است. در مرحلۀ اول، روش CNN با معماری لایههای ذیل اجرا شده است (معماری اول CNN).
شکل (2) معماری اول CNN
Figure (2) First CNN architecture
در جداول (5) و (6) خطاهای میانگین قدر مطلق درصد خطا ([42]MAPE) و مجذور میانگین مربعات خطای نرمال ([43]NRMSE) در اجرای الگو به تعداد 18 دفعه با استفاده از جایگشتهای مختلف تعداد فیلتر، اندازۀ دسته و استفاده از دو تابع فعالسازی ReLU و Tanh آورده شده است.
جدول (5) خطای اجرای معماری اول CNN به تفکیک پارامترهای مختلف با تابع فعالسازی ReLU
Table (5) Error of first CNN architecture in terms of different parameters with ReLU function
تابع فعالسازی ReLU |
نوع خطا |
تعداد فیلتر |
|||
64 |
128 |
256 |
|||
اندازۀ دسته |
32 |
MAPE |
99/2 |
00/3 |
83/11 |
NRMSE |
10/4 |
94/3 |
28/12 |
||
64 |
MAPE |
70/4 |
52/2 |
85/3 |
|
NRMSE |
18/6 |
56/3 |
00/5 |
||
128 |
MAPE |
95/3 |
43/2 |
18/3 |
|
NRMSE |
93/4 |
47/3 |
09/4 |
جدول (6) خطای اجرای معماری اول CNN به تفکیک پارامترهای مختلف با تابع فعالسازی Tanh
Table (6) Error of first CNN architecture in terms of different parameters with Tanh function
تابع فعالسازی Tanh |
نوع خطا |
تعداد فیلتر |
|||
64 |
128 |
256 |
|||
اندازۀ دسته |
32 |
MAPE |
99/2 |
50/2 |
06/4 |
NRMSE |
12/4 |
33/3 |
37/4 |
||
64 |
MAPE |
74/5 |
35/2 |
13/2 |
|
NRMSE |
10/6 |
19/3 |
09/3 |
||
128 |
MAPE |
00/4 |
21/3 |
25/3 |
|
NRMSE |
15/5 |
37/4 |
75/3 |
نتایج بهدستآمده از اجرای معماری اول حاکی از آن است که ترکیب پارامترها با تعداد فیلتر 256، اندازۀ دسته 64 و با تابع فعالسازی Tanh بهترین دقت پیشبینی را دارد. در مرحلۀ دوم، روش CNN با معماری لایههای ذیل اجرا شده است (معماری دوم CNN با لحاظ لایۀ ادغام بیشینه).
شکل (3) معماری دوم CNN
Figure (3) Second CNN architecture
قراردادن یک لایۀ ادغام بین چندین لایۀ پیچشی پشت سر هم در یک معماری CNN امری رایج است. کارکرد این لایه کاهش تعداد پارامترها و محاسبات در داخل شبکه و کنترل بیشبرازش[44] است. لایۀ ادغام بهصورت مستقل بر هر برش عمقی از تودۀ ورودی عمل میکند و آن را با استفاده از عملیات بیشینه[45] ازلحاظ مکانی تغییر اندازه[46] میدهد. رایجترین نحوۀ استفاده از این لایه بهصورت استفادۀ آن با فیلترهایی با اندازه 3×1 بههمراه گام[47]=3 است که همانند شکل (4)، عملیات بیشینه در این قسمت، بزرگترین عدد بین 3 عدد (یک ناحیه 3×1 در برش عمقی) را انتخاب میکند و باعث حذف 67 درصد مقادیر موجود در آن برش عمقی میشود؛ گفتنی است بُعد عمق بدون تغییر باقی میماند.
شکل (4) عملکرد لایه ادغام بیشینه
Figure (4) The function of Max-Pooling Layer
نتایج اجرای الگوریتم CNN با لحاظ کردن لایۀ ادغام بیشینه به شرح جداول (7) و (8) است.
جدول (7) خطای اجرای معماری دوم CNN به تفکیک پارامترهای مختلف با تابع فعالسازی ReLU
Table (7) Error of second CNN architecture in terms of different parameters with ReLU function
تابع فعالسازی ReLU |
نوع خطا |
تعداد فیلتر |
|||
64 |
128 |
256 |
|||
اندازۀ دسته |
32 |
MAPE |
79/2 |
00/3 |
26/2 |
NRMSE |
65/3 |
37/4 |
46/3 |
||
64 |
MAPE |
40/2 |
99/1 |
79/1 |
|
NRMSE |
16/3 |
88/2 |
71/2 |
||
128 |
MAPE |
03/3 |
66/3 |
17/2 |
|
NRMSE |
33/4 |
27/4 |
05/3 |
جدول (8) خطای اجرای معماری دوم CNN به تفکیک پارامترهای مختلف با تابع فعالسازی Tanh
Table (8) Error of second CNN architecture in terms of different parameters with Tanh function
تابع فعالسازی Tanh |
نوع خطا |
تعداد فیلتر |
|||
64 |
128 |
256 |
|||
اندازه دسته |
32 |
MAPE |
89/2 |
61/2 |
25/5 |
NRMSE |
10/4 |
22/3 |
46/7 |
||
64 |
MAPE |
01/4 |
81/2 |
27/7 |
|
NRMSE |
99/4 |
47/3 |
78/9 |
||
128 |
MAPE |
64/3 |
08/3 |
85/3 |
|
NRMSE |
52/4 |
91/3 |
39/4 |
نتایج بهدستآمده از اجرای معماری دوم نشاندهندۀ آن است که ترکیب پارامترها با اندازۀ دسته 64، تعداد فیلتر 256 و با تابع فعالسازی ReLU بهترین دقت پیشبینی را دارد؛ همانگونه که مشخص است خطای بهدستآمده با پارامترهای مذکور از نتایج منتخب معماری اول نیز بهمراتب بهتر است. در مرحلۀ سوم، روش CNN با معماری لایههای ذیل اجرا شده است (معماری سوم CNN با لحاظ لایۀ ادغام بیشینه و حذف تصادفی).
شکل (5) معماری سوم CNN
Figure (5) Third CNN architecture
از معایب مربوط به شبکههای عصبی عمیق، مشکل بیشبرازش و زمان محاسباتی بالاست. شبکههای عصبی عمیق در معرض بیشبرازش هستند؛ چون تعداد لایههای اضافهشده این امکان را ایجاد میکند که وابستگیهای نایاب در دادههای آموزشی حساب شود. با استفاده از روش حذف تصادفی میتوان به از بین بردن بیشبرازش کمک کرد؛ در این شیوه درصد مشخصی از واحدها بهصورت تصادفی از لایههای مخفی حذف میشود. این کار به از بین بردن وابستگیهای نادر در دادههای آموزشی کمک میکند (Poorzaker and et al., 2019). در شکل (6) نحوۀ عملکرد لایۀ حذف تصادفی نشان داده میشود.
شکل (6) عملکرد لایه حذف تصادفی (Cao and et al., 2019)
Figure (6) The function of Dropout Layer (Cao and et al., 2019)
نتایج اجرای الگوریتم CNN با لحاظکردن لایۀ حذف تصادفی و ادغام بیشینه به شرح جداول (9) و (10) است.
جدول (9) خطای اجرای معماری سوم CNN به تفکیک پارامترهای مختلف با تابع فعالسازی ReLU
Table (9) Error of third CNN architecture in terms of different parameters with ReLU function
تابع فعالسازی ReLU |
نوع خطا |
تعداد فیلتر |
|||
64 |
128 |
256 |
|||
اندازۀ دسته |
32 |
MAPE |
57/4 |
72/2 |
57/4 |
NRMSE |
68/5 |
12/4 |
49/5 |
||
64 |
MAPE |
76/3 |
24/3 |
18/2 |
|
NRMSE |
84/4 |
29/4 |
26/3 |
||
128 |
MAPE |
97/2 |
49/3 |
52/4 |
|
NRMSE |
02/4 |
46/4 |
46/5 |
جدول (10) خطای اجرای معماری سوم CNN به تفکیک پارامترهای مختلف با تابع فعالسازی Tanh
Table (10) Error of third CNN architecture in terms of different parameters with Tanh function
تابع فعالسازی Tanh |
نوع خطا |
تعداد فیلتر |
|||
64 |
128 |
256 |
|||
اندازۀ دسته |
32 |
MAPE |
%88/3 |
%77/7 |
%82/3 |
NRMSE |
%00/5 |
%48/9 |
%40/5 |
||
64 |
MAPE |
%17/8 |
%71/2 |
%01/3 |
|
NRMSE |
%94/8 |
%43/3 |
%26/4 |
||
128 |
MAPE |
%44/3 |
%60/3 |
%77/3 |
|
NRMSE |
%32/4 |
%80/4 |
%63/4 |
نتایج بهدستآمده از اجرای معماری سوم حاکی از آن است که ترکیب پارامترها با اندازۀ دسته 64، تعداد فیلتر 256 و با تابع فعالسازی ReLU بهترین دقت پیشبینی را در این بخش دارد.
همانطور که در بخشهای قبلی اشاره شد، RNN یکی دیگر از الگوریتمهای یادگیری عمیق است که استفاده از آن در پیشبینی سریهای زمانی امری متداول است؛ از این رو، در جدول (11) نتایج حاصل از معماریهای منتخب و الگوریتم RNN آورده شده است. برای ارزیابی عملکرد، معیارهای MAPE و NRMSE معماریهای منتخب اول، دوم و سوم CNN با الگوریتم RNN مقایسه شده است.
جدول (11) مقایسۀ خطای اجرای الگوهای منتخب
Table (11) Comparing the error of selected models
نوع خطا نام روش |
MAPE |
NRMSE |
RNN |
46/2 |
79/2 |
منتخب معماری اول CNN |
13/2 |
09/3 |
منتخب معماری دوم CNN |
79/1 |
71/2 |
منتخب معماری سوم CNN |
18/2 |
26/3 |
براساس نتایج جدول (11)، دقت منتخب معماری دوم CNN نسبتبه روشهای دیگر بالاتر است. مقادیر NRMSE برای هر چهار روش کمتر از سطح 05/0 است که نشان از برازش مناسب الگوریتمهای مذکور دارد (Kiyani Mavi & Sayadi Nik, 2015).
در ادامه بهمنظور بررسی رابطۀ بین مقدار واقعی قیمت سهام و مقدار پیشبینیشده از ضریب همبستگی پیرسون استفاده شده است که نتایج آن در جدول (12) آورده شده است. با توجه به اینکه سطح معناداری برای هر چهار روش از سطح خطای یک درصد کمتر است، وجود همبستگی بین مقدار واقعی قیمت سهام و مقدار پیشبینیشده به لحاظ آماری تأیید شده است.
جدول (12) ضریب همبستگی پیرسون بین مقدار واقعی قیمت سهام و مقدار پیشبینیشده
Table (12) Pearson's correlation coefficient between real & predicted stock price
نام روش شرح |
RNN |
منتخب معماری اول CNN |
منتخب معماری دوم CNN |
منتخب معماری سوم CNN |
ضریب همبستگی پیرسون |
922/0 |
982/0 |
985/0 |
903/0 |
سطح معناداری |
000/0 |
000/0 |
000/0 |
000/0 |
تعداد دادۀ آزمایش |
91 |
91 |
91 |
91 |
نظر به اینکه براساس نتایج جدول (11)، منتخب معماری دوم CNN نسبتبه روشهای دیگر عملکرد بهتری داشته است، در ادامه نتایج حاصل از اجرای این روش آورده شده است. فرآیند کاهش خطا در مرحلۀ آموزش معماری منتخب با تکرار 50 مرتبه بهینهسازی در شکل (7) مشخص است.
شکل (7) فرآیند کاهش خطا برای مرحلۀ آموزش در معماری منتخب CNN
Figure (7) The process of error reduction for selected CNN architecture in train step
نمودار قیمت واقعی سهام شرکت ذوبآهن اصفهان بههمراه قیمت پیشبینی به تفکیک دادههای آموزش و آزمایش در شکل (8) نشان داده شده است:
شکل (8) دادههای واقعی قیمت سهام شرکت ذوبآهن اصفهان بههمراه نمودار پیشبینی با استفاده از معماری منتخب
Figure (8) The chart of real stock price compared with the prediction graph using selected model
(ZobAhan Esfahan stock price)
نتایج و پیشنهادها
به موازات انواع روشهای مختلف استفادهشده برای پیشبینی قیمت سهام، پژوهشگران حوزۀ یادگیری ماشینی نیز با استفاده از الگوریتمهای متنوع موجود در این بخش سعی در پیشبینی قیمت داشتهاند. یادگیری عمیق، گونهای از الگوریتمهای یادگیری ماشینی است که تلاش میکند مفاهیم انتزاعی سطح بالا را با استفاده از یادگیری در سطوح و لایههای مختلف لحاظ کند و شامل چندین لایه پردازش اطلاعات است که باعث بیشترین همگامی الگوریتم با دادهها میشود. در پژوهش حاضر از سه معماری مختلف CNN با ترکیب پارامترهای مختلف برای انتخاب الگوریتم بهینه پیشبینی قیمت استفاده شده است؛ بررسیها حاکی از آن بود که پارامترهای اثرگذار در ساخت معماری بهینه CNN شامل مواردی نظیر اندازۀ دسته، تعداد فیلتر و تابع فعالسازی است؛ از این رو، در مرحلۀ اول با استفاده از ترکیبات مختلف پارامترهای مذکور، مقادیر بهینه برای هر معماری به دست آمد و در مرحلۀ نهایی مقایسۀ نتایج حاصل از هر سه معماری منتخب نشاندهندۀ آن بود که منتخب معماری دوم CNN همراه با لایۀ ادغام بیشینه با ترکیب پارامترهای اندازۀ دسته 64، تعداد فیلتر 256 و با تابع فعالسازی ReLU، دارای خطاهای درصد 79/1 = MAPE و درصد 71/2 = NRMSE است که نشاندهندۀ عملکرد بهتر آن نسبتبه سایر معماریها و روش RNN است. معماری بهدستآمده از این پژوهش با نتایج حاصل از مطالعات جی و همکاران (2019) برای پیشبینی قیمت قراردادهای آتی کربن و همکاران (2020) درخصوص پیشبینی قیمت رمزارزها، در استفاده از لایۀ پیچشی همراه با لایۀ ادغام بیشینه مطابقت دارد. بنابراین در مطالعۀ گائو و همکاران (2020) از لایۀ پیچشی همراه با لایۀ حذف تصادفی استفاده شده است و گودلک و همکاران (2017) نیز برای پیشبینی قیمت صندوقهای سرمایهگذاری ETF پیشنهاد استفاده از لایۀ پیچشی را همراه با لایههای حذف تصادفی و ادغام بیشینه دادند که در این پژوهش با بررسی معماریهای بالا، نتایج آنها تأیید نشد و دقت معماری منتخب در استفاده از لایۀ پیچشی همراه با لایۀ ادغام بیشینه بهتر از معماریهای دیگر بوده است.
در پژوهش حاضر با توجه به افق زمانی پیشبینی که یک روز آتی است، از دو دسته متغیرهای ورودی شامل دادههای قیمتی (اولین قیمت، بالاترین قیمت، پایینترین قیمت، آخرین قیمت و حجم معاملات) و ده شاخص تکنیکال استفاده شده است. حال آنکه در پژوهشهای آتی میتوان از طیف گستردهتری از متغیرهای ورودی نظیر متغیرهای بنیادی استفاده کرد و تأثیر هر گروه از انواع مختلف ورودیها را بر دقت پیشبینی بررسی کرد یا به پیشبینی قیمت در افقهای زمانی مختلف پرداخت و توانایی الگو را در پیشبینی افقهای زمانی مختلف با یکدیگر مقایسه کرد. علاوه بر این، میتوان عملکرد روش پیشنهادی این پژوهش را با سایر الگوریتمهای هوش مصنوعی مقایسه کرد. از طرفی، تعداد بالای متغیرهای ورودی بهطور معمول باعث افزایش پیچیدگی و به تبع آن کاهش کارایی الگو میشود. از این رو، استفاده از تکنیکهای کاهش ابعاد دادههای ورودی ممکن است به افزایش دقت الگوریتم کمک کند. در پژوهشهای آتی میتوان از تکنیکهای مختلف کاهش بعد مانند تجزیهوتحلیل مؤلفههای اساسی (PCA)[48]، تجزیۀ مقادیر منفرد(SVD) [49]یا تحلیل تفکیککنندۀ تعمیمیافته (GDA)[50] استفاده و نتایج را در افزایش دقت الگوریتم بررسی کرد. برخی از پژوهشگران نیز با ترکیب الگوریتم CNN با سایر الگوریتمهای یادگیری عمیق مانند شبکۀ حافظۀ کوتاهمدت ماندگار (LSTM)، استفاده از روشهای ترکیبی را پیشنهاد دادهاند (Livieris and et al., 2021) که در پژوهشهای آتی نیز میتوان از ترکیب روش ارائهشده در این پژوهش با سایر الگوریتمهای یادگیری عمیق استفاده کرد یا با ترکیب روش پیشنهادی با الگوریتمهای فراابتکاری بهینهسازی مانند الگوریتم ازدحام ذرات (PSO)[51] و الگوریتم رقابت استعماری (ICA)[52] توانایی آنها را در قدرت پیشبینی قیمت مقایسه کرد.
از محدودیتهای این نوشتار میتوان به این نکته اشاره کرد که با توجه به وجود طیف وسیع شاخصهای تکنیکال، متغیرهای تکنیکال استفادهشده در پژوهش حاضر نمایندۀ کل شاخصهای تکنیکال نیست. علاوه بر این، با در نظر گرفتن عمدۀ پژوهشهای گذشته در این حوزه، برای اجرای الگوریتم تنها از توابع فعالسازی ReLU و Tanh استفاده شده است؛ علاوه بر این، سیاستهای مدیریتی شرکتها و استفاده از معاملات بلوکی برای کنترل دستوری قیمت که بر حجم معاملات و قیمت کوتاهمدت اثرگذار است، ممکن است بر نتایج پژوهش اثرگذار باشد.
[1]. Capital Asset Pricing Model
[2]. Arbitrage Pricing Theory
[3]. Machine Learning
[4]. Recurrent Neural Network
[5]. Long Short-Term Memory
[6]. Convolutional Neural Network
[7]. Evolutionary Computations
[8]. Agent-based models
[9]. Model
[10]. Gao
[11]. Di Persio & Honchar
[12]. Zhou
[13]. Hiransha
[14]. Lee & Yoo
[15]. Hoseinzade & Haratizadeh
[16]. Liu
[17]. Khare
[18]. Gunduz
[19]. Shoushtarian
[20]. Dami & Khodabakhsh
[21]. Convolution
[22]. Pooling
[23]. Dropout
[24]. Fully Connect or Dense Layer
[25]. Filter or Kernel
[26]. Feature Extraction
[27]. Over Fitting
[28]. Feature map
[29]. Kara
[30]. Patel
[31]. Livieris
[32]. Gao
[33]. Gudelek
[34]. Max-Pooling
[35]. Ji
[36]. Li & Dai
[37]. Filters
[38]. Batch Size
[39]. Activation Function
[40]. Epochs
[41]. Min-Max normalization
[42]. Mean Absolute Percentage Error
[43]. Normalized Root Mean Square Error
[44]. Over Fitting
[45]. Max
[46]. Resize
[47]. Stride
[48]. Principal Component Analysis
[49]. Singular Value Decomposition
[50]. Generalized Discriminant Analysis
[51]. Particle Swarm Optimization
[52]. Imperialist Competitive Algorithm