عنوان مقاله:
پیش بینی قیمت بیت کوین با استفاده از یادگیری ماشین
Predicting the Price of Bitcoin Using Machine Learning
سال انتشار: 2022
رشته: کامپیوتر - اقتصاد
گرایش: هوش مصنوعی
دانلود رایگان این مقاله:
مشاهده سایر مقالات جدید:
Related Work
Research on predicting the price of Bitcoin using machine learning algorithms specifically is lacking. implemented a latent source model as developed by to predict the price of Bitcoin noting 89% return in 50 days with a Sharpe ratio of 4.1. There has also been work using text data from social media platforms and other sources to predict Bitcoin prices. investigated sentiment analysis using support vector machines coupled with the frequency of Wikipedia views, and the network hash rate. investigated the relationship between Bitcoin price, tweets and views for Bitcoin on Google Trends. implemented a similar methodology except instead of predicting Bitcoin price they predicted trading volume using Google Trends views. However, one limitation of such studies is the often small sample size, and propensity for misinformation to spread through various (social) media channels such as Twitter or on message boards such as Reddit, which artificially inflate/deflate prices . In the Bitcoin exchanges liquidity is considerably limited. As a result, the market suffers from a greater risk of manipulation. For this reason, sentiment from social media is not considered further. analysed the Bitcoin Blockchain to predict the price of Bitcoin using support vector machines (SVM) and artificial neural networks (ANN) reporting price direction accuracy of 55% with a regular ANN. They concluded that there was limited predictability in Blockchain data alone. also used Blockchain data, implementing SVM, Random Forests and Binomial GLM (generalised linear model) noting prediction accuracy of over 97% however without cross-validating their models limiting the generalisability of their results. Wavelets have also been utilised to predict Bitcoin prices, with noting positive correlations between search engine views, network hash rate and mining difficulty with Bitcoin price. Building on these findings, data from the Blockchain, namely hash rate and difficulty are included in the analysis along with data from the major exchanges provided by CoinDesk. Predicting the price of Bitcoin can be considered analogous to other financial time series prediction tasks such as forex and stock prediction. Several bodies of research have implemented the MultiLayer Perceptron (MLP) for stock price prediction. However, the MLP only analyses one observation at a time . In contrast, the output from each layer in a recurrent neural network (RNN) is stored in a context layer to be looped back in with the output from the next layer. In this sense, the network gains a memory of sorts as opposed to the MLP. The length of the network is known as the temporal window length. notes that the temporal relationship of the series is explicitly modelled by the internal states contributing significantly to model effectiveness. successfully took this approach in predicting stock returns combining a RNN with a genetic algorithm for network optimization.
Implementation
A. RNN The first parameter to consider was the temporal length window. As suggested by supporting literature these type of networks may struggle to learn long term dependencies using gradient based optimisation. An autocorrelation function (ACF) was run for the closing price time series to assess the relationship between the current closing price and previous or future closing prices. While this is not a guarantee of predictive power for this length, it was a better choice than random choice. Closing price is correlated with a lag of up to 20 days in many cases, with isolated cases at 34, 45 and 47 days. This led the grid search for the temporal window to test from 2 to 20, 34, 45 and 47 days. To ensure a robust search, larger time periods of up to 100 days were also tested in increments of five. The most effective window temporal length was 24. In addition to the temporal window, some hyperparameters also need tuning: Learning rate is the parameter that guides stochastic gradient descent (SGD), i.e. how the network learns. Similarly, momentum updates the learning rate to avoid the model falling into local minima (in terms of error) and attempts to move towards the global minimum of the error function . We used the RMSprop optimiser to improve on SGD, as it keeps a running average of recent gradients and as a result is more robust against information loss. According to Heaton, one hidden layer is enough to approximate the vast majority of non-linear functions. Two hidden layers were also explored and were chosen as they achieved lower validation error. Heaton also recommends for the number of hidden nodes to select between the number of input and output nodes. In this case, less than 20 nodes per layer resulted in poor performance. 50 and 100 nodes were tested with good performance. However, too many nodes can increase the chances of overfitting, and significantly increase the time needed to train the network. As 20 nodes performed sufficiently well this was chosen for the final model. An activation function, a nonlinear stepwise equation that passes signals between layers, is also needed. The options explored were Tanh, ReLu, and Sigmoid. Tanh performed the best but the differences were not significant. The final parameters for selection are batch size and number of training epochs. Batch size was found to have little effect on accuracy but considerable effect on training time when using smaller batches in this case. The number of epochs tested ranged from 10 to 10000, however, too many training epochs can result in overfitting. To reduce the risk of overfitting, dropout was implemented as discussed above. Optimal dropout between 0.1 and 1 was searched for both layers with .5 dropout the optimal solution for both layers. A Keras callback method was also used to stop the training of the model if its performance on validation data did not improve after 5 epochs to prevent overfitting. Generally, the RNN converged between 20 and 40 epochs with early stopping.
(دقت کنید که این بخش از متن، با استفاده از گوگل ترنسلیت ترجمه شده و توسط مترجمین سایت ای ترجمه، ترجمه نشده است و صرفا جهت آشنایی شما با متن میباشد.)
کار مرتبط
تحقیقات در مورد پیش بینی قیمت بیت کوین با استفاده از الگوریتم های یادگیری ماشین به طور خاص وجود ندارد. یک مدل منبع پنهان را که توسط برای پیشبینی قیمت بیتکوین ایجاد شده است، با نسبت شارپ 4.1 با 89 درصد بازدهی در 50 روز پیادهسازی کرد. همچنین کار با استفاده از داده های متنی از پلتفرم های رسانه های اجتماعی و سایر منابع برای پیش بینی قیمت بیت کوین انجام شده است. تحلیل احساسات را با استفاده از ماشینهای بردار پشتیبان همراه با فراوانی بازدیدهای ویکیپدیا و نرخ هش شبکه بررسی کرد. رابطه بین قیمت بیتکوین، توییتها و بازدیدهای بیتکوین در Google Trends را بررسی کرد. روش مشابهی را پیاده سازی کردند، به جز اینکه به جای پیش بینی قیمت بیت کوین، حجم معاملات را با استفاده از نماهای Google Trends پیش بینی کردند. با این حال، یکی از محدودیتهای چنین مطالعاتی، حجم نمونه اغلب کوچک و تمایل به انتشار اطلاعات نادرست از طریق کانالهای رسانههای مختلف (اجتماعی) مانند توییتر یا در تابلوهای پیام مانند Reddit است که بهطور مصنوعی قیمتها را افزایش/بالا میکنند. در مبادلات بیت کوین نقدینگی به میزان قابل توجهی محدود است. در نتیجه، بازار از خطر بیشتر دستکاری رنج می برد. به همین دلیل، احساسات از رسانه های اجتماعی بیشتر در نظر گرفته نمی شود. بلاک چین بیت کوین را برای پیش بینی قیمت بیت کوین با استفاده از ماشین های بردار پشتیبان (SVM) و شبکه های عصبی مصنوعی (ANN) تجزیه و تحلیل کرد که دقت جهت قیمت 55 درصد را با ANN معمولی گزارش می کند. آنها به این نتیجه رسیدند که تنها در داده های بلاک چین قابلیت پیش بینی محدودی وجود دارد. همچنین از دادههای بلاک چین، پیادهسازی SVM، جنگلهای تصادفی و دوجملهای GLM (مدل خطی تعمیمیافته) استفاده کرد و دقت پیشبینی بیش از 97 درصد را ذکر کرد، اما بدون اعتبارسنجی متقابل مدلهای آنها، تعمیمپذیری نتایج را محدود کرد. از موجکها نیز برای پیشبینی قیمت بیتکوین استفاده شده است، با توجه به همبستگیهای مثبت بین نمایشهای موتور جستجو، نرخ هش شبکه و دشواری استخراج با قیمت بیتکوین. بر اساس این یافتهها، دادههای بلاک چین، یعنی نرخ هش و دشواری، همراه با دادههای صرافیهای اصلی ارائهشده توسط CoinDesk در تحلیل گنجانده شدهاند. پیشبینی قیمت بیتکوین را میتوان مشابه سایر کارهای پیشبینی سری زمانی مالی مانند پیشبینی فارکس و سهام در نظر گرفت. چندین گروه تحقیقاتی پرسپترون چندلایه (MLP) را برای پیشبینی قیمت سهام پیادهسازی کردهاند. با این حال، MLP تنها یک مشاهده را در یک زمان تجزیه و تحلیل می کند. در مقابل، خروجی از هر لایه در یک شبکه عصبی بازگشتی (RNN) در یک لایه زمینه ذخیره میشود تا با خروجی لایه بعدی دوباره به داخل حلقه شود. از این نظر، شبکه در مقابل MLP حافظهای به دست میآورد. طول شبکه به عنوان طول پنجره زمانی شناخته می شود. اشاره می کند که رابطه زمانی سری به صراحت توسط حالت های داخلی مدل سازی شده است که به طور قابل توجهی در اثربخشی مدل نقش دارند. این رویکرد را با موفقیت در پیشبینی بازده سهام با ترکیب یک RNN با یک الگوریتم ژنتیک برای بهینهسازی شبکه اتخاذ کرد.
پیاده سازی
الف. RNN اولین پارامتری که باید در نظر گرفت، پنجره طول زمانی بود. همانطور که در ادبیات پشتیبانی پیشنهاد میشود، این نوع شبکهها ممکن است در یادگیری وابستگیهای بلندمدت با استفاده از بهینهسازی مبتنی بر گرادیان دچار مشکل شوند. یک تابع همبستگی خودکار (ACF) برای سری زمانی قیمت پایانی اجرا شد تا رابطه بین قیمت بسته شدن فعلی و قیمت های بسته شدن قبلی یا آتی را ارزیابی کند. در حالی که این تضمینی برای قدرت پیش بینی برای این طول نیست، انتخاب بهتری نسبت به انتخاب تصادفی بود. قیمت بسته شدن در بسیاری از موارد با تاخیر تا 20 روز مرتبط است، با موارد جداگانه در 34، 45 و 47 روز. این باعث شد که جستجوی شبکه ای برای پنجره زمانی از 2 به 20، 34، 45 و 47 روز آزمایش شود. برای اطمینان از جستجوی قوی، بازههای زمانی بزرگتر تا 100 روز نیز با افزایش پنجگانه آزمایش شدند. موثرترین طول زمانی پنجره 24 بود. علاوه بر پنجره زمانی، برخی از فراپارامترها نیز نیاز به تنظیم دارند: نرخ یادگیری پارامتری است که نزول گرادیان تصادفی (SGD) را هدایت میکند، یعنی شبکه چگونه یاد میگیرد. به طور مشابه، مومنتوم نرخ یادگیری را بهروزرسانی میکند تا از سقوط مدل به حداقلهای محلی (از نظر خطا) جلوگیری کند و تلاش میکند به سمت حداقل جهانی تابع خطا حرکت کند. ما از بهینه ساز RMSprop برای بهبود SGD استفاده کردیم، زیرا میانگین در حال اجرا گرادیان های اخیر را حفظ می کند و در نتیجه در برابر از دست دادن اطلاعات قوی تر است. به گفته هیتون، یک لایه پنهان برای تقریب اکثر توابع غیر خطی کافی است. دو لایه پنهان نیز مورد بررسی قرار گرفتند و انتخاب شدند زیرا به خطای اعتبارسنجی کمتری دست یافتند. هیتون همچنین توصیه میکند که تعداد گرههای پنهان بین تعداد گرههای ورودی و خروجی انتخاب شود. در این مورد، کمتر از 20 گره در هر لایه منجر به عملکرد ضعیف می شود. 50 و 100 گره با عملکرد خوب آزمایش شدند. با این حال، تعداد بیش از حد گره ها می تواند شانس بیش از حد برازش را افزایش دهد و زمان مورد نیاز برای آموزش شبکه را به میزان قابل توجهی افزایش دهد. از آنجایی که 20 گره به اندازه کافی خوب عمل کردند، این برای مدل نهایی انتخاب شد. یک عمل تابع ivation، یک معادله گام به گام غیر خطی که سیگنال ها را بین لایه ها ارسال می کند، نیز مورد نیاز است. گزینه های بررسی شده Tanh، ReLu و Sigmoid بودند. تنها بهترین عملکرد را داشت اما تفاوت ها معنی دار نبود. پارامترهای نهایی برای انتخاب، اندازه دسته و تعداد دوره های آموزشی است. اندازه دسته تأثیر کمی بر دقت دارد اما تأثیر قابل توجهی بر زمان تمرین در هنگام استفاده از دسته های کوچکتر در این مورد دارد. تعداد دوره های آزمایش شده از 10 تا 10000 متغیر بود، با این حال، دوره های تمرینی زیاد می تواند منجر به بیش از حد برازش شود. برای کاهش خطر اضافه کردن، ترک تحصیل همانطور که در بالا مورد بحث قرار گرفت اجرا شد. ریزش بهینه بین 0.1 و 1 برای هر دو لایه با 0.5 خروجی راه حل بهینه برای هر دو لایه جستجو شد. در صورتی که عملکرد آن بر روی دادههای اعتبارسنجی پس از 5 دوره بهبود نیافت تا از برازش بیشازحد جلوگیری شود، از روش فراخوانی Keras نیز برای توقف آموزش مدل استفاده شد. به طور کلی، RNN بین 20 تا 40 دوره با توقف اولیه همگرا شد.