ما در دنیایی زندگی می کنیم که بیشتر چیزها به طور فزاینده ای به بینایی کامپیوتر و یادگیری عمیق بستگی دارد. از برچسبگذاری خودکار عکسهای تابستانی تا تشخیص چهره توسط دوربینهای امنیتی، به نظر میرسد که در آیندهای دیستوپیایی زندگی میکنیم.
در حالی که انقلاب هوش مصنوعی هنوز در اطراف ما اتفاق می افتد، بهار 2019 برای من زمان جالبی بود. پس از اتمام یک دوره یادگیری عمیق، من شروع به بررسی موارد مختلف استفاده از یادگیری عمیق کردم، مانند طبقه بندی تصویر تا پردازش زبان طبیعی (NLP). پس از گذراندن حدود چند ساعت با استفاده از کتابخانههای پایتون و کراس، یک شبکه عصبی کانولوشنال ساده (CNN) را آموزش دادم که قادر بود بین تصویر گربه و سگ تمایز قائل شود. به نظر به اندازه کافی ساده به نظر می رسد، چند سال پیش انجام آن کار بسیار بزرگی بود و من به سختی می توانستم باور کنم که چگونه شبکه های عصبی ساده یک مشکل پیچیده را حل می کنند!به طور معمول اگر می خواهید با استفاده از کتابخانه های CV تشخیص تصویر را انجام دهید، باید مهندسی ویژگی ها را انجام دهید، فیلترهای خود را توسعه دهید و بسیاری از ویژگی ها را در کد کدنویسی کنید. حتی پس از تلاشهای زیاد، الگوریتمی با دقت 60 تا 70 درصد باقی میماند که بسیار با آنچه امروز میتوانیم با یادگیری ماشین انجام دهیم فاصله دارد.
من از سادگی یادگیری عمیق کاملا متحیر شدم. ابتدا یک معماری بسیار ساده CNN تعریف کردم، سپس مجموعه داده هایم را با تصاویر گربه و سگ برچسب زدم. پس از آن آموزش را شروع کنید و دقت تمرین و صحت اعتبارسنجی را تماشا کنید تا تا رسیدن به یک معیار رضایت بخش بالا رود. خودشه!!در مرحله بعد، فایل مدل و وزن خود را بارگذاری کنید و سپس دستور model. predict را با فایلی که می خواهید پیش بینی کنید اجرا کنید و بوم کنید!نتیجه با نمره دقت وجود دارد!
سادگی و دقت یادگیری عمیق فقط زیبا بود!
تقریباً در همان زمان، من به اقتصاد و چگونگی کارکرد این تجارت روز علاقه پیدا کردم. من شروع به خواندن کتاب اصول زندگی و کار توسط ری دالیو کردم.(اگر هنوز آن را نخوانده اید، فقط می توانم آن را توصیه کنم)
او در کتاب خود در مورد چگونگی ایجاد الگوریتمهای اختصاصی شرکتش صحبت میکند که تصمیمات مالی برای راهاندازی صندوق تامینی و تبدیل شدن به یکی از موفقترین صندوقهای سرمایهگذاری در جهان اتخاذ میکند. در حالی که داستان فوقالعاده الهامبخش بود، باعث شد به این فکر کنم که چطور چیزی به کامپیوتر آموزش ندهیم و به خودش اجازه دهیم همه چیز را بفهمد. برخلاف مهندسی ویژگی در گذشته با Computer Vision، یادگیری عمیق همچنین میتواند برای ایجاد الگوریتمهایی استفاده شود که تصمیم میگیرند زمان خرید یا فروش سهام، فارکس، نفت، هر چیزی که فکرش را بکنید.
اگر الگویی در دادهها وجود داشته باشد، نیازی نیست خودتان آن را پیدا کنید، این الگو توسط Deep Learning پیدا میشود و این آغاز پروژه Inpredo بود.
مرحله 1. ایجاد داده های آموزشی:
بنابراین قبل از اینکه وارد شویم و یک ماشین پولساز ایجاد کنیم (در نظرات بیش از حد خوش بینانه من محتاط باشید.) به داده های آموزشی نیاز داریم. مقدار زیادی از آن!
خدا را شکر که سخت نیست زیرا ما از قبل به داده های CSV از لینک بالا دسترسی داریم. تنها کاری که ما باید انجام دهیم این است که الگوریتمی ایجاد کنیم که بتواند به داده های تاریخی نگاه کند و نمودارها را ایجاد کند و سپس در صورت افزایش یا کاهش قیمت ابزار (به عنوان مثال یورو/دلار) در آینده، آنها را طبقه بندی کند. از آنجایی که ما داده های تاریخی را داریم، می دانیم که در هر زمان معینی در چارچوب زمانی داده چه اتفاقی برای قیمت رخ داده است، طبقه بندی تصویر نمودار تولید شده آسان است.
ایجاد نمودارها بخش آسان است ، ما به چند کتابخانه و عملکردی که من فقط برای این منظور ایجاد کردم Graphwerk. py (Kraftwerk ، هر کسی؟)
بنابراین Graphwerk بسیار ساده است ، شما فقط باید داده های تاریخی ابزار انتخاب شده را در قالب لیست وصل کنید. ما نمودارهایی را چاپ خواهیم کرد که 12 ساعت/شمع را پوشش می دهد. بنابراین طول لیست شما باید 12 باشد. اگر می خواهید یک بازه زمانی بزرگتر را بپوشانید ، باید طول لیست خود را افزایش دهید. در مورد دانه بندی ، می توانید پیش بروید و بین داده های ساعتی ، حتی روزانه انتخاب کنید. اگر می خواهید نمودارها را با شمع های بیشتر چاپ کنید ، کاملاً خوب است ، اما من نمی خواهم آنقدر سر و صدای داده های آموزش را وارد کنم.
پس از اجرای این اسکریپت نمودار را ایجاد می کند که به شرح زیر است:
من می دانم که اندازه تصویر کوچک است ، اما برای یادگیری عمیق ، شما نیازی به عکس یا نمودارهای با وضوح 4K ندارید. داشتن چیزی در حدود 200x200 پیکسل برای بیشتر A. I. برنامه های یادگیری عمیق. در واقع استفاده از تصاویر با اندازه کوچکتر چیز خوبی است زیرا تغذیه یک تصویر 4K برای یادگیری عمیق در نهایت نیاز به داشتن یک خوشه GPU فوق العاده گران قیمت مانند NVIDIA DGX جدید دارد که حدود 20 عالی دارد. جالب در مورد یادگیری عمیق این است که اگر باهوش هستید می توانید با استفاده از تصاویر با وضوح پایین که هنوز هم همان مقدار اطلاعات را حمل می کند ، قدرت پردازش خود را به میزان قابل توجهی کاهش دهید :)
اگر ممکن است توجه داشته باشید ، میله ها واقعاً به نظر نمی رسد که در زندگی واقعی به نظر می رسد. دلیل این امر این است که من آنها را به طور هدفمند دستکاری کردم تا اطلاعات بیشتری را بین شمع ها تعبیه کرده و شفافیت آنها را کاهش دهم. این باعث ایجاد شمع های همپوشانی می شود که می توانند اطلاعاتی را در رنگ های مختلط منطقه همپوشانی شمع ها حمل کنند.
در بالای این شمع های نیمه شفاف ، یک خط متوسط متحرک ساده (SMA) وجود دارد که در شفافیت نیز کاهش می یابد تا اطلاعات بیشتری را هنگام عبور از شمع ها ایجاد کند. شما می توانید با شکل ، اندازه و شفافیت بازی کنید اما دوست دارید مجموعه داده های آموزش عالی خود را ایجاد کنید.
مرحله 2: ایجاد loooooots از تصاویر برای مجموعه داده های آموزش
بنابراین اسکریپت فوق برای ایجاد تصاویر مجرد بسیار جذاب است اما ما برای آموزش یک شبکه عصبی بیش از آن نیاز داریم. من در مورد داشتن هزاران نفر در اینجا صحبت می کنم. بنابراین به عنوان توسعه دهندگان ، ما فقط هزار بار روی دکمه کلیک نمی کنیم ، درست است؟ما باید این کار را به صورت خودکار انجام دهیم تا کل پرونده CSV را به روش پنجره زمان نورد طی کنیم و به طور خودکار تصاویر نمودار را در پوشه های صحیح به عنوان "خرید" و "فروش" قرار دهیم. منطق بسیار ساده است ، پنجره زمانی 12 را تعریف کنید ، (که به معنی پنجره 12 ساعته در پرونده CSV ساعتی است) و پنجره را 1 ساعت به جلو در هر حلقه داخل حلقه حرکت دهید. به این ترتیب ما بسته به اندازه داده های تاریخی قادر به ایجاد مقدار کافی نمونه خواهیم بود.
برای اینکه بتوانید مقدار کافی از داده های آموزشی را ایجاد کنید ، فقط به داده های CSV تمیز خود در قالب زیر نیاز دارید ، سپس بقیه فقط در مورد انتظار برای اسکریپت است تا حلقه کامل خود را روی داده ها به پایان برساند. برای این کار باید 2 پوشه ایجاد کنید که در نهایت با 2 نوع داده پر خواهد شد: خرید و فروش. هنگامی که قیمت بسته شدن شمع آخر پایین تر از قیمت بسته شدن شمع های بعدی باشد ، یک نمودار ایجاد شده در پوشه "خرید" ذخیره می شود. روش دیگر ، پوشه "فروش" شامل تصاویر نمودار خواهد بود اگر آخرین قیمت بسته شدن شمع از قیمت شمع بعدی بالاتر باشد.
مرحله 3: آموزش یک شبکه عصبی ساده و ساده
پس از ایجاد مجموعه داده ، ما باید یک معماری شبکه عصبی را تعریف کنیم و سپس داده های آموزش را برای آموزش شبکه عصبی تغذیه کنیم تا تفاوت بین سیگنال خرید یا فروش احتمالی را تشخیص دهیم.
اگر متوجه شده اید ، من در مورد هیچ نوع استراتژی یا نوعی طراحی الگوریتم برای یافتن این الگوهای صحبت نمی کنم. نکته شگفت انگیز در مورد هوش مصنوعی این است که به خودی خود الگوهای را پیدا می کند.
در حال حاضر انواع مختلفی از معماری های شبکه Convolutional برای طبقه بندی تصویر طراحی شده اند. Xception یکی از برنده جایزه است اما ما قصد نداریم از چیزی استفاده کنیم که در حال حاضر پیشرفت کرده است.
مدل ما یک شبکه اصلی حلقوی با لایه های ترک تحصیل و لایه های کاملاً متصل مانند موارد زیر خواهد بود:
نتایج
پس از ساعتهای بی شماری از پرفروش با پارامترها و ایجاد ، کاهش ، فیلتر کردن داده های آموزش ، مدل AI توانست با 63 درصد دقت در یک مجموعه داده 2 ساله "حدس بزند"!
همانطور که همه افراد عاقل انجام می دادند ، من این مدل هوش مصنوعی را به موتور تجارت زنده Kraken برای تجارت BTC-USD وصل کردم و امیدوارم که مقداری پول بدست آورم و به داستانهای ثروتمندی بگویم. به هر حال اگر می خواهید وارد تجارت API شوید ، من فقط می توانم Kraken را توصیه کنم. آنها یک مبادله تنظیم شده با API های ایمن و پایدار هستند.
در مورد هوش مصنوعی و یادگیری ماشین ایده ای دارید؟یک زمان با من رزرو کنید و بگذارید ببینیم چه کاری می توانیم با هم انجام دهیم!
بسیار جالب ، واقعاً 10 روز پشت سر هم درآمد کسب کرد و در این بازه زمانی به 5. 34 درصد رسید. در حالی که این اتفاق می افتد ، BTC-USD 3. 29 ٪ کاهش یافته است!
بنابراین چیزهای جالب ، اهمیتی نمی دهد که آیا بازار بالا یا پایین می رود. این فقط شلوارک را مطابق با اوضاع کوتاه می کند. بنابراین حتی در موردی که همه چیز در بازار ارزش خود را از دست می دهد ، این مدل هنوز قادر به کسب درآمد است.
هزینه های کل پس از ایجاد چنین مدلی برای اجرای ربات به طور مداوم به لطف 15 دلار در ماه به لطف کاربردهای بسیار آسان DigitalOcean برای استفاده از VM ، حدود 15 دلار در ماه برای من هزینه کرد. همچنین می توانید با کد تبلیغاتی زیر آن را امتحان کنید و 100 دلار اعتبار دریافت کنید تا یک ماشین مجازی بچرخید. که برابر با 3 ماه استفاده رایگان است. فقط یک استقرار اوبونتو را با استقرار 1 کلیک انتخاب کنید و از repo github که من در پایان مقاله به آن وصل شده ام استفاده کنید.
بنابراین دلیل اینکه من مقاله را نوشتم این است که به شما نشان دهم که باید کارهای بیشتری انجام شود. پیش بینی اینکه آیا سهام بالا یا پایین می رود ، فقط نیمی از داستان است. اگر نمی دانید که سهام درصدی بالا یا پایین می رود ، کمک زیادی نمی کند زیرا نمی دانید چه زمانی سود خود را بدست آورید.
بنابراین بدیهی است که این مدل هوش مصنوعی با گذشت زمان باید بهبود یابد. همچنین خوب است که در نظر بگیریم که مدل AI باید به طور مرتب به روز شود تا با تغییر شرایط بازار سازگار شود.
توجه داشته باشید از ویرایشگران Data Science: در حالی که ما به نویسندگان مستقل اجازه می دهیم مقالات را مطابق با قوانین و دستورالعمل های خود منتشر کنند ، ما سهم هر نویسنده را تأیید نمی کنیم. شما نباید بدون اینکه به دنبال مشاوره حرفه ای باشید ، به آثار نویسنده اعتماد کنید. برای جزئیات بیشتر به شرایط خواننده ما مراجعه کنید.
اگر می خواهید کد را به خودتان اجرا کنید و نتایج را ببینید ، نگاهی به صفحه GitHub: https://github. com/cderinbogaz/inpredo
c پروژه ها و مقالات دیگر من را در رسانه ها هک کنید:
سلب مسئولیت: اگر از کد من برای تجارت در بازار با پول خود استفاده کنید ، مسئولیت ضرر شما را بر عهده ندارم. ایمن باشید ، خطراتی را که کاملاً درک نمی کنید ، ریسک نکنید.