از LSTM برای پیش بینی قیمت ارزهای دیجیتال استفاده کنید و برای خود یک لامبورگینی بخرید
اگرچه ارزهای دیجیتال و فناوری بلاک چین سالهاست که وجود داشته است، چند مورد اخیر شاهد انفجاری در علاقه عموم مردم در همه چیزهای رمزنگاری بودهاند که به احتمال زیاد به دلیل افزایش شدید قیمت بیتکوین (به دنبال کاهش 50 درصدی) است. خیلی زود بعد!).
بسیاری از سرمایهگذاران جدید و آماتور احساس میکنند که میتوانند با حداقل تلاش بر اساس فرضیات و پیشبینیها، درآمد غیرفعالی داشته باشند یا بهطور شگفتانگیزی ثروتمند شوند. دیگران سعی کردهاند راهحلهای یادگیری ماشینی بسازند تا قیمتهای آینده را پیشبینی کنند. در این مقاله، یک شبکه عصبی بسیار ابتدایی حافظه کوتاه مدت (LSTM) برای پیشبینی قیمت بیتکوین را مورد بحث و بررسی قرار میدهم و در مورد نقاط قوت و محدودیتهای این رویکرد (و اینکه چرا همه آن را انجام نمیدهند) صحبت میکنم.
شبکه عصبی چیست و آیا من را میلیونر Dogecoin می کند؟
الگوریتم های شبکه عصبی مصنوعی به موضوعی داغ در فضای هوش مصنوعی تبدیل شده است. آنها از یک حلقه تکرارشونده از داده ها و اطلاعات و شناسایی الگو از طریق تعدادی چرخه برای تعیین نتیجه پیش بینی شده استفاده می کنند.
یکی از مهمترین جنبههای شبکه عصبی این است که برای تعمیم نتایج مورد انتظار خود، به مقادیر زیادی از نمونههای قبلی، معروف به «دادههای آموزشی» نیاز دارند تا الگوها را بیابند.
اگرچه الگوریتمهای پشت این فناوری برای دههها وجود داشتهاند، قدرت پردازش لازم برای کاربردهای واقعی تنها در چند سال گذشته به ثمر نشسته است.
به احتمال زیاد هنگام تعامل با یک ربات چت یا هنگام استفاده از نرم افزار تشخیص تصویر مدرن، یا وقتی که Deepfake باراک اوباما را در Tiktok می بینید، از الگوریتم شبکه عصبی استفاده کرده اید.
حتی اگر برخی کالاها را میتوان تا حدودی با دقت با استفاده از یادگیری ماشین و هوش مصنوعی پیشبینی کرد، استفاده از این فناوری به عنوان پایهای برای پیشبینی ارزهای دیجیتال دشوار است.
دلیل های متفاوتی برای این هست؛اولین دلیل عمده به دلیل فقدان داده های بلند مدت در رابطه با موضوع است. شبکه های عصبی برای عملکرد موفقیت آمیز به مقدار قابل توجهی داده نیاز دارند. ما هنوز مانند معاملات ارزهای سنتی یا معاملات سهام، دادههای چند دهه معاملاتی نداریم. در طول زمان مطمئناً مجموعه داده های تاریخی گسترده ای در ارتباط با ارزهای دیجیتال و تجارت رمزنگاری وجود خواهد داشت، اما اینها هنوز فناوری های نسبتاً جدیدی هستند و داده ها به سادگی هنوز وجود ندارند.
یکی دیگر از محدودیت های تجارت رمزنگاری مبتنی بر الگوریتم، جنبه مهندسی انسانی است. الگوریتمها و مدلها هنوز محصول انسان هستند و با محدودیتها و سوگیریهایی همراه است. ما بهعنوان انسان، کاملاً متوجه نوسانات بازار نیستیم یا نمیتوانیم درک کنیم که چگونه تأثیرات خارجی ممکن است بر قیمت یک ارز دیجیتال تأثیر بگذارد. تا زمانی که بتوان تحقیقات و درک بیشتری را به فضا نسبت داد، این محدودیت ها همچنان وجود خواهند داشت.
LSTM برای پیشبینیهای سری زمانی
LSTM (حافظه کوتاه مدت بلند مدت) نوعی معماری شبکه عصبی بازگشتی (RNN) است که با موفقیت بیشتر در پردازش زبان طبیعی و پیش بینی سری های زمانی استفاده شده است. Code Emporium یک ویدیوی معرفی عالی در این زمینه دارد.
LSTM ها با دیگر شبکه های عصبی به دلیل استفاده از یادگیری از عناصر از ابتدای مجموعه، نه فقط سری های بلافاصله قبل، متفاوت هستند. در زمینه پیشبینی سریهای زمانی برای بیتکوین، LSTMs نتایج در زمان ایجاد کوین و همچنین دادههای شش ماه گذشته را در نظر میگیرد تا بتواند پیشبینیای را انجام دهد که درک کاملتری از آن داشته باشد. تمام تصویر.
با توجه به این دلایل و برخی دلایل فنی دیگر، عمدتاً در مورد ویژگی های بهینه سازی در LSTM که مشکلات مربوط به گرادیان های ناپدید را کاهش می دهد، این باعث می شود آنها کاندیدای ایده آل برای پیش بینی BTC باشند.
حالا بیایید بسازیم!
ما قصد داریم مدل خود را با استفاده از یک نوت بوک Jupyter در پایتون بسازیم. اول از همه، ما به وابستگی های خود نیاز داریم:
این بلوک کد به سادگی کتابخانه ها را وارد می کند و پارامترها را برای نمودارهایی که بعداً استفاده خواهیم کرد، تنظیم می کند.
بعد، باید در فایل خود بخوانیم، من یک فایل CSV حاوی قیمت بسته شدن به دلار و تاریخ ایجاد کرده ام. اگر به اطلاعات بهروز بیشتری نیاز دارید یا به جزئیات بیشتر نیاز دارید، نزدک به شما اجازه میدهد تا دادههای ارزهای دیجیتال تاریخی را دانلود کنید.
حال بیایید نگاهی بصری به داده ها بیندازیم. با قرار دادن زمان بر روی محور x و قیمت در Y ، می توانیم ببینیم که چگونه قیمت با گذشت زمان نوسان داشته است. نوسانات BTC از نمودار مشخص است. به طور شهودی ، دیدن هرگونه الگوی یا روند واضح از طرح دشوار است. ما می توانیم ببینیم که خط به طور کلی به سمت بالا گرایش دارد ، اما نوسانات تصادفی و شدید به نظر می رسد.
مرحله بعدی تغییر شکل داده ها است. این کار برای جابجایی نقاط داده نزدیک به یکدیگر و تعمیم آنها انجام می شود تا فاصله بین آنها کمتر باشد. مرحله اول ستون را به نسخه کوتاه تر و قابل خواندن تر تغییر می دهد.
حال ما باید داده ها را از قبل پردازش کنیم. اول ، ما باید یک "دنباله" ایجاد کنیم. LSTMS از سری یا داده های "پی در پی" استفاده می کند (در این حالت ، دنباله زمان است ، به طور خاص "روزها". در اینجا ، دنباله روی 100 تنظیم شده است ، به این معنیدر یک زمان. این بسته به آزمایش شما قابل تغییر است. در اینجا ما از 100 به عنوان پیش فرض استفاده می کنیم.
سپس باید داده ها را به آموزش و آزمایش تقسیم کنیم. پس از تغییر شکل داده ها در آرایه های 3 عاملی که می توانند در مدل تغذیه شوند ، داده ها به 80 ٪ آموزش و 20 ٪ آزمایش تقسیم می شوند. این 2364 مورد برای آموزش و 592 برای آزمایش باقی می ماند.
اکنون زمان آن رسیده است که مدل را بسازیم. ما از یک الگوی اساسی با پارامترهای بیشتر پیش فرض استفاده خواهیم کرد. این را می توان به راحتی گسترش داد یا با آزمایش های خود سازگار شد. مدل های شبکه عصبی لایه های متوالی ساخته شده و پارامترهای مختلف و استراتژی های بهینه سازی موجود هستند.
این مدل دارای لایه های LSTM است که به طور پیش فرض 32 لایه پنهان است. نرخ ترک تحصیل 0. 2 نیز تعیین شده است. Dropout تکنیکی است که در آن نورونهای منتخب به طور تصادفی در طول آموزش نادیده گرفته می شوند ، این یک روش منظم است که برای متوقف کردن بیش از حد طراحی شده است.). میزان ترک تحصیل 0. 2 به این معنی است که 20 ٪ از سلولهای عصبی نادیده گرفته می شوند ، بنابراین مدل داده ها را تا جایی یاد نمی گیرد که دقیقاً بر روی آن متناسب باشد ، و پیش بینی های ما را بی فایده می کند. لایه خروجی نهایی یک لایه متراکم است. این همه لایه های ما را به مجموعه ای از گزینه های کوچکتر ادغام می کند ، بنابراین نتیجه پیش بینی شده ما را ارائه می دهد.
در مرحله بعد ، مدل گردآوری می شود ، از دست دادن مدل در MSE اندازه گیری می شود ، استاندارد برای مدل های خطی برای پیش بینی ها. بهینه کننده Adam (تابعی که برای بهبود دقت وزن را تغییر می دهد) انتخاب شد اما بسته به متن ، بسیاری از بهینهای ممکن برای استفاده وجود دارد.
اکنون مدل آموزش دیده است. اندازه دسته ای 64 به این معنی است که تعداد نمونه هایی است که در هر زمان از طریق مدل تغذیه می شود. از آنجایی که این پروژه بیشتر یک اثبات مفهومی است تا یک آزمایش، دورهها روی 5 تنظیم شدهاند، معمولاً مدلهای شبکه عصبی را برای مدت طولانیتری آموزش میدهیم. مجموعه اعتبارسنجی 10٪ نیز پاک شده است که به ما امکان می دهد تا نتایج را با دقت بیشتری تأیید کنیم.
حالا بیایید ببینیم مدل ما در طول آموزش چگونه عمل کرد! این قطعه کد نموداری را ایجاد می کند که آموزش و آزمایش مدل را از دست داده است. تابع ضرر در یک شبکه عصبی تفاوت بین نتیجه مورد انتظار و نتیجه تولید شده توسط مدل را نشان می دهد.
بنابراین این طرح در مورد مدل به ما چه می گوید؟
به نظر می رسد از دست دادن تمرین در هر دوره افزایش می یابد، در حالی که ضرر تست، اگرچه نوسان دارد، اگر کم نباشد، ثابت می ماند. این نشانه عدم تناسب است. این نشان می دهد که این مدل ممکن است نیاز به آموزش طولانی تری داشته باشد. یک راه سریع برای حل این مشکل، افزایش تعداد دورهها تا زمانی است که خطوط بیشتر همگرا شوند. به نظر می رسد این مدل قادر به یادگیری بیشتر باشد.
نمودار ضرر همچنین نشان میدهد که پیشبینی دادههای آزمایش آسانتر از دادههای آموزشی بود، که با سطح پایینتر از دست دادن برای این جنبه نشان داده شد. ممکن است برای بهبود نتایج، داده ها به روشی متفاوت تقسیم شوند.
در کل، نماینده ترین مدل نیست!
بنابراین این مدل در پیشبینیهای واقعی چگونه عمل کرد؟قطعه زیر نموداری را ایجاد می کند که تفاوت بین نتایج پیش بینی شده و نتایج واقعی را نشان می دهد.
همانطور که نمودار نشان می دهد، به نظر می رسد این مدل در پیش بینی روند سری بسیار خوب است، اما به طور مداوم کمتر یا بیش از حد پیش بینی می شود. به نظر میرسد پیشبینیهای زیر بیشتر در طول جهشهای فرار عظیم به سمت بالا اتفاق میافتد. به نظر میرسد این مدل محافظهکارانه عمل میکند، زیرا پیشبینی بسیار بیشتر از پیشبینی بیش از حد است. به نظر می رسد شیب های نزولی پیش بینی های دقیق تری نسبت به روندهای صعودی دارند. اگرچه به نظر نمی رسد این مدل در پیش بینی خود قیمت ماهر باشد، اما توانایی آن در پیش بینی روندهایی مانند این نشان می دهد که ممکن است در آینده پتانسیل پیش بینی قیمت کریپتو وجود داشته باشد.
نتیجه گیری! چه چیزی یاد گرفتیم؟
حداقل از این آزمایش، به نظر می رسد که ممکن است هنوز مدتی از داشتن یک مدل مفید پیش بینی BTC فاصله داشته باشیم، اما می توانیم با استفاده از LSTM روندها را پیش بینی کنیم، حتی در پروژه کوچکی مانند این. اما هیچ چیزی وجود ندارد که نشان دهد دانشمندان و مهندسان به نقطهای نخواهند رسید که بتوانیم با اطمینان در آینده پیشبینی کنیم.
نوسانات یک مسئله بزرگ برای تلاش برای پیشبینی ارزهای دیجیتال است. برخی از محققان پیشنهاد کردهاند که بازار کریپتو در آینده نوسانات کمتری خواهد داشت و مسیری را برای پیشبینیهای سنتی و پایدارتر باز میکند.
عامل دیگری که در بهبود این نتایج باید در نظر گرفته شود، میتواند شامل راههای اطلاعات بیشتر به دلیل تغییر قیمت به دلیل رفتار انسانی رویدادهای جغرافیایی باشد. ترکیبی از پردازش آنلاین زبان طبیعی، سریهای زمانی و سایر عوامل یا ویژگیها ممکن است ثبات بیشتری را برای پیشبینیها فراهم کند، اما به دلیل نوسانات، نسبتا جدید بودن، کمبود دادهها، کمبود تحقیق، عوامل خارجی، در حال حاضر امکان استفاده از آن وجود ندارد. هوش مصنوعی قیمت بیت کوین را پیشبینی میکند، اما هیچ چیزی وجود ندارد که نشان دهد در آینده زمانی که دادههای بیشتری در دسترس قرار میگیرد و بازار ارزهای دیجیتال باثباتتر میشود، این تغییر نخواهد کرد.