آشنایی با تجارت عمیق یادگیری در صندوق های تامینی

  • 2021-03-28

در این مقاله ، مهندس نرم افزار مستقل Toptal Neven Pičuljan شما را با پیچیدگی های یادگیری عمیق در صندوق های تامینی و به طور کلی مالی معرفی می کند.

بنیانگذار Poze و مدیرعامل یک شرکت مشاوره AI R&D/مشاوره ، Neven دارای مدرک MCS است و یک سیستم تشخیص چهره را در Tensorflow ایجاد کرده است.

نسخه اسپانیایی این مقاله را ترجمه شده توسط Marisela Ordaz بخوانید

طی چند سال گذشته ، شبکه های عصبی عمیق بسیار محبوب شده اند. این زمینه نوظهور علوم کامپیوتر در اطراف مفهوم شبکه های عصبی بیولوژیکی ایجاد شده است ، و یادگیری عمیق امروز به یک کلمه کلیدی تبدیل شده است.

دانشمندان و مهندسان یادگیری عمیق سعی می کنند الگوهای مختلف را از سیستم های عصبی بیولوژیکی توصیف کنند. از سیستم های یادگیری عمیق در مورد مشکلات مختلف استفاده شده است: چشم انداز رایانه ، تشخیص گفتار ، پردازش زبان طبیعی ، ترجمه ماشین و موارد دیگر. جالب و هیجان انگیز است که در برخی کارها ، یادگیری عمیق از متخصصان انسانی بهتر عمل کرده است. امروز ، ما به یادگیری عمیق در بخش مالی خواهیم پرداخت.

یکی از جذاب ترین کاربردهای یادگیری عمیق در صندوق های تامینی است. صندوق های پرچین صندوق های سرمایه گذاری ، سازمانهای مالی هستند که از سرمایه گذاران وجوه جمع می کنند و آنها را مدیریت می کنند. آنها معمولاً با داده های سری زمانی کار می کنند و سعی می کنند برخی پیش بینی ها را انجام دهند. یک نوع خاص از معماری یادگیری عمیق وجود دارد که برای تجزیه و تحلیل سری زمانی مناسب است: شبکه های عصبی مکرر (RNN) یا حتی به طور خاص ، نوع خاصی از شبکه عصبی مکرر: شبکه های حافظه کوتاه مدت (LSTM).

LSTM ها قادر به گرفتن مهمترین ویژگی ها از داده های سری زمانی و الگوبرداری از وابستگی های آن هستند. یک مدل پیش بینی قیمت سهام به عنوان یک مطالعه موردی مصور در مورد چگونگی استفاده از صندوق های پرچین می تواند از چنین سیستمهایی ارائه شود. چارچوب Pytorch ، که در پایتون نوشته شده است ، برای آموزش مدل ، آزمایش های طراحی و ترسیم نتایج استفاده می شود.

ما قبل از حرکت به مثالهای دنیای واقعی با برخی از اصول یادگیری عمیق شروع خواهیم کرد:

  • یادگیری عمیق را به عنوان یک مفهوم انتزاعی معرفی کنید.
  • معرفی RNN ها - یا به طور خاص ، LSTM ها - و نحوه استفاده از آنها برای مدل سازی داده های سری زمانی.
  • خوانندگان را با داده های مالی مناسب برای یادگیری عمیق آشنا کنید.
  • نشان دهید که چگونه یک صندوق پرچین واقعی از یادگیری عمیق برای پیش بینی قیمت سهام استفاده می کند.
  • سرانجام ، توصیه های عملی را برای صندوق های پرچین جدید و موجود در مورد نحوه استفاده/اهرم یادگیری عمیق برای تقویت عملکرد آنها ارائه دهید.

ارائه پرونده برای تجارت عمیق یادگیری

یکی از چالش برانگیزترین و هیجان انگیزترین وظایف در صنعت مالی پیش بینی اینکه آیا قیمت سهام در آینده بالا یا پایین خواهد آمد یا خیر. امروز ، ما می دانیم که الگوریتم های یادگیری عمیق در حل وظایف پیچیده بسیار خوب هستند ، بنابراین ارزش دارد که سعی کنید با سیستم های یادگیری عمیق آزمایش کنید تا ببینند آیا آنها می توانند با موفقیت مشکل پیش بینی قیمت های آینده را حل کنند.

به عنوان یک مفهوم ، شبکه عصبی مصنوعی مدتهاست که وجود دارد ، اما سخت افزار به اندازه کافی خوب نبود که بتواند آزمایش های سریع در یادگیری عمیق را فراهم کند. Nvidia یک دهه پیش به انقلابی در شبکه های یادگیری عمیق کمک کرد ، زیرا شروع به ارائه واحدهای پردازش گرافیکی بسیار سریع (GPU) برای محاسبات هدف کلی در محصولات سری تسلا کرد. به جای سایه بان چند ضلعی در بازی ها و برنامه های طراحی حرفه ای ، GPU های بسیار موازی می توانند داده های دیگر را نیز محاسبه کنند و در بسیاری موارد ، آنها نسبت به CPU بسیار برتر هستند.

مقالات علمی بسیار کمی در مورد استفاده از یادگیری عمیق در امور مالی وجود دارد ، اما تقاضا برای کارشناسان یادگیری عمیق از شرکت های fintech قوی است ، زیرا آنها به وضوح پتانسیل آن را تشخیص می دهند. این مقاله به توضیح اینکه چرا یادگیری عمیق در امور مالی با تشریح چگونگی استفاده از داده های مالی در ساخت سیستم های یادگیری عمیق ، به طور فزاینده ای محبوب می شود. نوع خاصی از شبکه عصبی مکرر - شبکه LSTM - نیز ارائه می شود. ما توضیح خواهیم داد که چگونه می توان یک کار مرتبط با مالی را با استفاده از شبکه های عصبی مکرر حل کرد.

در این مقاله همچنین یک مطالعه موردی مصور در مورد چگونگی استفاده از صندوق های پرچین می تواند از چنین سیستمهایی ، ارائه شده از طریق آزمایشات ارائه شود. ما همچنین در نظر خواهیم گرفت که چگونه می توان سیستم های یادگیری عمیق را بهبود بخشید و چگونه صندوق های پرچین می توانند در مورد استخدام استعدادها برای ساخت آن سیستم ها استفاده کنند ، یعنی ، چه نوع پیش زمینه ای استعدادهای یادگیری عمیق را باید داشته باشد.

چه چیزی صندوق های تامینی را متفاوت می کند

قبل از اینکه به جنبه فنی مشکل بپردازیم ، باید توضیح دهیم که چه چیزی صندوق های تامینی را منحصر به فرد می کند. بنابراین ، صندوق پرچین چیست؟

صندوق پرچین یک صندوق سرمایه گذاری است-یک سازمان مالی که بودجه سرمایه گذاران را جمع می کند و آنها را در سرمایه گذاری های کوتاه مدت و بلند مدت یا در محصولات مالی مختلف قرار می دهد. این به طور معمول به عنوان یک مشارکت محدود یا یک شرکت با مسئولیت محدود تشکیل می شود. هدف صندوق پرچین حداکثر بازده است. بازده سود یا ضرر در ارزش خالص صندوق های تامینی در یک دوره زمانی خاص است. به طور کلی پذیرفته شده است که وقتی ریسک بیشتری صورت می گیرد ، پتانسیل بیشتری برای بازده و خسارات بیشتر وجود دارد.

برای دستیابی به بازده خوب ، صندوق های تامینی به انواع مختلف استراتژی های سرمایه گذاری متکی هستند و سعی می کنند با بهره برداری از ناکارآمدی بازار ، درآمد کسب کنند. با توجه به انواع استراتژی های سرمایه گذاری که در صندوق های سرمایه گذاری عادی مجاز نیست ، صندوق های تامینی به عنوان صندوق ثبت نمی شوند ، یعنی معمولاً مانند سایر صندوق ها تحت نظارت دولت قرار نمی گیرند. آنها نیازی به انتشار استراتژی های سرمایه گذاری و نتایج کسب و کار ندارند ، که می تواند آنها را بسیار ریسک کند. برخی از صندوق های پرچین پول بیشتری نسبت به میانگین بازار تولید می کنند ، اما برخی از آنها پول خود را از دست می دهند. برخی از آنها نتایج دائمی به همراه دارند ، در حالی که برخی از نتایج صندوق های تامینی متغیر هستند.

با سرمایه گذاری در صندوق های تامینی ، سرمایه گذاران ارزش خالص صندوق را افزایش می دهند. نه فقط هر کسی می تواند در صندوق های تامینی سرمایه گذاری کند. صندوق های پرچین برای تعداد کمی از سرمایه گذاران ثروتمند در نظر گرفته شده است. معمولاً ، کسانی که می خواهند در صندوق های تامینی شرکت کنند ، باید معتبر شوند. این بدان معناست که آنها باید در مورد قوانین تنظیم مالی وضعیت ویژه ای داشته باشند. از کشور به کشور دیگر تمایز قائل است که چه کسی می تواند این وضعیت خاص را داشته باشد. معمولاً ارزش خالص سرمایه گذار باید بسیار زیاد باشد - نه تنها افراد ، بلکه بانک ها و شرکت های بزرگ نیز می توانند در صندوق های تامینی فعالیت کنند. این اعتباربخشی به گونه ای طراحی شده است که فقط به افراد دارای دانش سرمایه گذاری قابل توجهی اجازه می دهد تا در آن شرکت کنند ، بنابراین از سرمایه گذاران کوچک و بی تجربه در برابر ریسک محافظت می کنند.

این مقاله چارچوب نظارتی ایالات متحده را در نظر می گیرد ، زیرا ایالات متحده دارای پیشرفته ترین بازار مالی در جهان است. بنابراین ، در ایالات متحده آمریکا ، اصطلاح "سرمایه گذار معتبر" در قانون 501 آیین نامه D کمیسیون بورس و اوراق بهادار ایالات متحده (SEC) تعریف شده است.

طبق این آیین نامه ، سرمایه گذاران معتبر می توانند باشند:

  • بانک ها
  • شرکت های توسعه تجارت خصوصی
  • سازمان های
  • مدیران ، افسران اجرایی و شرکای عمومی صادرکنندگان اوراق بهادار ارائه شده یا فروخته شده
  • اشخاص طبیعی که ارزش خالص آن یا ارزش خالص مشترک با همسر آن شخص دارد ، بیش از 1000،000 دلار است
  • اشخاص طبیعی که در هر دو سال اخیر بیش از 200000 دلار درآمد بیش از 200000 دلار یا درآمد مشترک با همسر آن شخص بیش از 300000 دلار در هر یک از آن سالها داشته و انتظار منطقی برای رسیدن به همان سطح درآمد در سال جاری دارند
  • با کل دارایی بیش از 5،000،000 دلار اعتماد دارد
  • اشخاصی که در آن همه صاحبان سهام سرمایه گذاران معتبر هستند

مدیران صندوق های پرچین ، صندوق پرچین را مدیریت می کنند. یک مدیر صندوق پرچین باید راهی برای ایجاد یک مزیت رقابتی برای موفقیت ، یعنی ایجاد مزیت نسبت به رقبا و توانایی تولید ارزش بیشتر پیدا کند. این می تواند یک انتخاب شغلی بسیار جذاب باشد ، زیرا اگر فردی در مدیریت صندوق برتری داشته باشد ، می تواند بسیار سودآور باشد.

از طرف دیگر ، اگر بسیاری از تصمیمات مدیران صندوق های تامینی بد باشند ، به آنها پرداخت نمی شود و شهرت منفی کسب می کنند. بهترین مدیران صندوق های تامینی یکی از بهترین حرفه های پرداخت شده در تمام صنایع را تشکیل می دهند. مدیران صندوق های پرچین علاوه بر هزینه مدیریت ، درصد بازدهی را که برای سرمایه گذاران کسب می کنند ، دریافت می کنند. این روش جبران خسارت باعث می شود مدیران صندوق های تامینی برای به دست آوردن بازده بیشتر سرمایه گذاری تهاجمی تری داشته باشند ، اما از طرف دیگر ، این امر منجر به افزایش ریسک سرمایه گذار نیز می شود.

تاریخچه مختصری از صندوق های پرچین

اولین صندوق پرچین در سال 1949 ظاهر شد که توسط نویسنده و جامعه شناس سابق آلفرد وینسلو جونز تأسیس شد. این در حالی بود که او در حال نوشتن مقاله ای در مورد روند سرمایه گذاری فعلی برای Fortune ، در سال 1948 بود.

او سعی در مدیریت پول داشت و بسیار موفق بود. وی با استفاده از نوآوری سرمایه گذاری خود ، که اکنون به عنوان سهام بلند/کوتاه شناخته می شود ، پول جمع آوری کرد. این استراتژی هنوز در بین صندوق های پرچین بسیار محبوب است. سهام را می توان خریداری کرد (خرید: طولانی) یا فروخته شده (فروش: کوتاه).

هنگامی که قیمت یک سهم پایین است و انتظار می رود که قیمت یک سهم بالا باشد ، منطقی است که یک سهم (طولانی) بخرید و به محض رسیدن به اوج قیمت بالای خود ، آن را بفروشید (کوتاه) و آندقیقاً نقطه نوآوری است که آلفرد وینسلو جونز ایجاد کرده است - موقعیت های طولانی در سهام که انتظار می رود از آنها قدردانی کنند و موقعیت های کوتاهی را در سهام که انتظار می رود کاهش یابد.

داده های مالی و مجموعه داده ها

داده های مالی متعلق به داده های سری زمانی است. یک سری زمانی مجموعه ای از نقاط داده است که در زمان فهرست بندی شده است. معمولاً ، یک سری زمانی دنباله ای است که در زمان های متوالی و به همان اندازه فاصله گرفته می شود: دنباله ای از داده های زمان گسسته. نمونه هایی از سری زمانی ارتفاعی از جزر و مد اقیانوس ، تعداد لکه های آفتاب و ارزش بسته شدن روزانه میانگین صنعتی داو جونز است.

داده های تاریخی در این زمینه داده های سری زمانی از گذشته است. این یکی از مهمترین و با ارزش ترین بخش ها برای گمانه زنی در مورد قیمت های آینده است. برخی از مجموعه داده های عمومی در دسترس آنلاین وجود دارد ، اما معمولاً این داده ها شامل ویژگی های زیادی نیستند-معمولاً داده های فاصله 1 روزه ، داده های فاصله 1 ساعته یا داده های فاصله 1 دقیقه ای است.

مجموعه داده هایی با ویژگی های غنی تر و در فواصل زمانی کوچکتر معمولاً در دسترس عموم نیستند و برای دستیابی به آن بسیار گران هستند. فواصل کوچکتر به معنای داده های سری زمانی بیشتر در یک دوره ثابت است - در یک سال 365 (یا 366) روز وجود دارد ، بنابراین حداکثر 365 (یا 366) نقطه داده موجود است. هر روز 24 ساعت دارد ، بنابراین در یک سال 8،760 (یا 8،784) نقطه داده ساعتی در دسترس است و هر روز 86،400 دقیقه دارد ، بنابراین در یک سال 525،600 (یا 527،040) امتیاز داده در دسترس است.

با داده های بیشتر ، اطلاعات بیشتر در دسترس است و با کسب اطلاعات بیشتر ، می توان نتیجه گیری بهتری در مورد آنچه در دوره زمانی بعدی اتفاق می افتد - با اطمینان از این که داده ها از یک ویژگی به اندازه کافی خوب برای تعمیم خوب است. داده های قیمت سهام از 2007-2008 ، در اوج بحران مالی جهانی ، مغرضانه است و احتمالاً برای پیش بینی قیمت این روزها ربطی ندارد. با یک بازه زمانی کوچکتر ، پیش بینی آنچه در آینده اتفاق می افتد به دلیل بسیاری از نقاط داده در یک بازه ثابت ، ساده تر است. پیش بینی می کنیم اگر همه نقاط داده برای هر نانو ثانیه در یک بازه N- ثابت در یک بازه زمانی ثابت داشته باشیم ، پیش بینی می کنیم در نانو ثانیه بعدی چه اتفاقی خواهد افتاد تا آنچه در سال آینده در بورس سهام اتفاق می افتد ، اگر همه امتیازات داده را برای هر سال داشته باشیمیک بازه N-یر ثابت.

با این حال ، این بدان معنا نیست که ، با فرض یک سری سریع پیش بینی های کوتاه مدت درست است ، پیش بینی بلند مدت نیز باید درست باشد. هر پیش بینی خطا را معرفی می کند و با زنجیر کردن پیش بینی های متعدد ، پیش بینی طولانی مدت حاوی خطا قابل توجهی در پایان خواهد بود و بی فایده خواهد بود. در زیر نمونه ای از داده های فاصله 1 روزه برای سهام Google که بصورت آنلاین از Finance Yahoo خراب شده اند ، آورده شده است.

فقط چند ستون در مجموعه داده وجود دارد: تاریخ ، باز ، بالا ، پایین و نزدیک - به طور قابل توجهی ، قیمتی که یک امنیت برای اولین بار در افتتاح مبادله معامله می کند ، بالاترین قیمتی که امنیت در یک روز معاملاتی به دست آورد، کمترین قیمت به دست آمده در یک روز معاملاتی معین ، و قیمت نهایی که در آن یک امنیت در آن روز معامله می شود.

معمولاً ، دو ستون دیگر در چنین مجموعه داده هایی وجود دارد که از نزدیک و حجم تنظیم شده است ، اما در اینجا ربطی ندارند. تعدیل شده نزدیک قیمت بسته شدن پس از تعدیل تقسیمات قابل اجرا و توزیع سود سهام است ، در حالی که حجم تعداد سهام معامله شده در بازار در طی یک دوره زمانی معین است.

می بینید که برخی از تاریخ ها از دست رفته اند. این روزهایی است که بورس اوراق بهادار کار نمی کند ، معمولاً در آخر هفته و تعطیلات. به منظور تظاهرات الگوریتم یادگیری عمیق ما ، روزهای گمشده با قیمت قبلاً در دسترس تکمیل می شوند. به عنوان مثال ، قیمت های نزدیک برای 2010-01-16 ، 2010-01-17 ، 2010-01-18 همه 288. 126007 خواهد بود زیرا این همان چیزی است که در 2010-01-15 بود. برای الگوریتم ما مهم است که داده ها بدون شکاف باشد ، بنابراین ما آن را اشتباه نمی گیریم. الگوریتم یادگیری عمیق می تواند از اینجا یاد بگیرد که آخر هفته ها و تعطیلات - E. g. ، می آموزد که بعد از پنج روز کاری ، باید دو روز با قیمت مسطح از آخرین روز کاری وجود داشته باشد.

این نمودار از حرکات قیمت سهم Google از سال 2010-01-04 است. توجه داشته باشید که فقط روزهای معاملاتی برای ترسیم نمودار استفاده می شود.

یادگیری عمیق چیست؟

یادگیری عمیق بخشی از یادگیری ماشین است و مبتنی بر بازنمایی داده های یادگیری است. یادگیری ماشین الگوریتم هایی را که عملکرد آنها برنامه ریزی نشده است اما از داده ها آموخته است ، بررسی می کند. این در اصل رویکردی برای هوش مصنوعی است.

یادگیری عمیق در زمینه های مختلف استفاده شده است: چشم انداز رایانه ، تشخیص گفتار ، پردازش زبان طبیعی ، ترجمه ماشین - و در برخی از این کارها ، عملکرد برتر از انسان را بدست آورده است.

یک شبکه عصبی عمیق در مرکز یادگیری عمیق قرار دارد. ساده ترین و اساسی ترین نمونه یک شبکه عصبی عمیق ، یک شبکه عصبی تغذیه ای است. در زیر تصویری از یک شبکه عصبی ساده فیدر به سمت بالا آورده شده است. این شامل ورودی و لایه های خروجی و لایه های پنهان است.

لایه های پنهان همه لایه ها بین لایه های ورودی و خروجی هستند. ما می گوییم اگر بیش از یک لایه پنهان داشته باشد ، یک شبکه عصبی عمیق است. هر لایه از تعداد مختلف نورون تشکیل شده است. لایه های موجود در این شبکه عصبی اصلی Feedforward لایه های خطی نامیده می شوند-نورون های موجود در لایه خطی فقط مقادیر 1-D (یا 2-D را اگر داده ها از طریق شبکه در دسته ها ارسال می شوند) چند برابر می کنند) با وزن مناسب ، جمع محصولات با هم و با وزن مناسب ، ونتیجه نهایی را به عنوان خروجی 1-D یا 2-D ارائه دهید.

عملکرد فعال سازی معمولاً در شبکه های Feedforward برای معرفی غیرخطی اعمال می شود تا شبکه بتواند مشکلات پیچیده تر و غیرخطی تری را مدل کند. در شبکه های Feedforward ، داده ها از لایه ورودی به لایه خروجی بدون حلقه برگشت جریان می یابد. اتصالات بین نورون ها وزن می شوند. وزنه ها باید تنظیم شوند تا شبکه عصبی خروجی های صحیح را برای ورودی های داده شده بازگرداند. شبکه Feedforward داده ها را از فضای ورودی به فضای خروجی نقشه می کند. لایه های پنهان ویژگی های مهم و انتزاعی تر را از ویژگی های لایه قبلی استخراج می کنند.

خط لوله یادگیری عمیق همان خط لوله یادگیری ماشین است و از مراحل زیر تشکیل شده است:

  1. جمع آوری داده هاداده ها به سه بخش داده می شوند - داده های آموزش داده ، داده های اعتبار سنجی و داده های آزمون.
  2. آموزش DNN با استفاده از داده های آموزش بر روی تعدادی "دوره" (هر یک از آنها شامل تعدادی از تکرارها) و اعتبار سنجی پس از هر دوره با استفاده از داده های اعتبار سنجی.
  3. آزمایش مدل (یک نمونه از یک شبکه عصبی با پارامترهای ثابت) پس از توالی جلسات آموزشی و اعتبارسنجی.

آموزش شبکه عصبی در واقع به معنای تنظیم وزن بین جفت نورون ها با به حداقل رساندن عملکرد از دست دادن با استفاده از یک الگوریتم backpropagation در ترکیبی با نزول شیب تصادفی است. به استثنای وزنهایی که از طریق فرایند یادگیری تعیین می شوند ، الگوریتم های یادگیری عمیق معمولاً نیاز به تنظیم هایپرپارامترها دارند - پارامترهایی که آموخته نمی شوند اما قبل از یادگیری ثابت هستند. Hyperparameters تعداد لایه ها ، تعداد نورون ها در لایه ها ، انواع لایه ها ، انواع نورون ها و اولیه سازی وزن است.

محدودیت های سخت افزاری در تنظیم HyperParameters وجود دارد. در حال حاضر از نظر جسمی امکان پذیر نیست که یک تریلیون نورون بر روی یک پردازنده گرافیکی واحد تنظیم شود. مشکل دوم برای جستجوی جامع Hyperparameter انفجار ترکیبی است. جستجو در تمام ترکیبات احتمالی هایپرپارامترها امکان پذیر نیست زیرا این زمان بی نهایت طول می کشد. به همین دلیل ، Hyperparameters به طور تصادفی یا از برخی اکتشافات و نمونه های شناخته شده ای که در مقالات علمی شرح داده شده است ، تنظیم می شوند-یکی از هیپرامترهای مورد استفاده برای تجزیه و تحلیل داده های مالی که بعداً در این پست وبلاگ نشان داده شده است ، استفاده از نورون های مکرر است ، به عنوان دانشمندان و مهندسینثابت کرده اند که آنها با داده های سری زمانی خوب کار می کنند. معمولاً بهترین راه برای دیدن اینکه آیا Hyperparameters برای یک مشکل خاص خوب است یا خیر ، از طریق آزمایشات است.

نکته آموزش این است که شبکه های عصبی متناسب با داده های آموزش باشد. هر دو اعتبار سنجی مدل ، که بعد از هر مرحله آموزش انجام می شود ، و تست مدل ، که پس از تمام مراحل آموزش انجام می شود ، انجام می شود تا ببیند آیا این مدل می تواند به خوبی تعمیم یابد. تعمیم بدان معنی است که شبکه عصبی می تواند پیش بینی های خوبی را در مورد داده های جدید و غیب انجام دهد.

دو اصطلاح مهم مربوط به انتخاب مدل وجود دارد: بیش از حد و زیرپوش. اگر یک شبکه عصبی نسبت به داده هایی که در آن آموزش داده شده بسیار پیچیده است - اگر پارامترهای زیادی داشته باشد (لایه های بیش از حد ، و یا نورون های زیادی در لایه ها) - شبکه عصبی می تواند داده ها را بیش از حد کند. این می تواند به خوبی داده های آموزش را تنظیم کند زیرا بیش از ظرفیت کافی برای متناسب کردن تمام داده ها دارد ، اما پس از آن عملکرد در اعتبار سنجی و مجموعه های آزمایش ضعیف است.

اگر شبکه عصبی نسبت به داده هایی که در آن آموزش داده شده بسیار ساده است ، شبکه عصبی می تواند داده ها را تحت تأثیر قرار دهد. در این حالت ، شبکه عصبی عملکرد ضعیفی در آموزش ، اعتبار سنجی و مجموعه های آزمایش دارد زیرا ظرفیت آن به اندازه کافی مناسب نیست تا بتواند داده های آموزشی و تعمیم داشته باشد. در تصویر زیر ، این اصطلاحات به صورت گرافیکی توضیح داده شده است. خط آبی نشان دهنده آنچه توسط شبکه عصبی مدل شده است. تصویر اول وضعیتی را نشان می دهد که چند پارامتر شبکه عصبی وجود دارد ، برای متناسب با داده های آموزش و تعمیم کافی نیست. تصویر دوم وضعیت را نشان می دهد که تعداد بهینه پارامترها وجود داشته باشد و شبکه عصبی می تواند به خوبی در داده های غیب تعمیم دهد ، و تصویر سوم وضعیت را نشان می دهد که تعداد پارامترهای یک شبکه عصبی خیلی بزرگ باشد و شبکه عصبی کاملاً می تواندتمام داده های مجموعه آموزش را متناسب کنید ، اما عملکرد ضعیفی در مجموعه های اعتبار سنجی و آزمایش دارد.

شبکه های عصبی مکرر

نسخه پیچیده تری از یک شبکه عصبی یک شبکه عصبی مکرر است. در شبکه های عصبی مکرر ، داده ها می توانند از هر جهت ، بر خلاف شبکه های عصبی تغذیه ای جریان پیدا کنند. آنها می توانند وابستگی های سری زمانی را به خوبی یاد بگیرند. معماری یک شبکه عصبی مکرر عمومی در تصویر زیر نشان داده شده است.

در تصویر زیر یک نورون مکرر نشان داده شده است. X_ ، به زمان t ، به عنوان یک ورودی و بازگشت H_ ، حالت پنهان در زمان t ، به عنوان یک خروجی. خروجی پنهان به نورون پخش می شود. نورون مکرر را می توان کنترل کرد همانطور که در همان تصویر از سمت راست نشان داده شده است. X_ در دوره زمانی T_ ، X_ در دوره زمانی T_ ، و X_ در دوره زمانی t است. خروجی های به دست آمده با استفاده از ورودی های x_ ، x_ ،… ، x_ در دوره های زمانی t_ ، t_ ،… ، t_ به اصطلاح خروجی های پنهان هستند: h_ ، h_ ،… ، h_.

یکی از بهترین معماری های مکرر شبکه عصبی معماری LSTM است. LSTM در زیر نشان داده شده است:

LSTM ها همان ساختار کلی شبکه های عصبی مکرر عمومی دارند ، اما نورون مکرر با یک ساختار پیچیده تر کمی متفاوت است. از تصویر بالا می توان مشاهده کرد که محاسبات زیادی در داخل یک سلول LSTM انجام می شود. سلولهای LSTM را می توان به عنوان یک جعبه سیاه در زمینه این پست مشاهده کرد ، اما برای خوانندگان کنجکاوتر ، این پست وبلاگ عالی محاسبات موجود در LSTM ها و موارد دیگر را توضیح می دهد.

بگذارید ورودی شبکه عصبی را "بردار ویژگی" بنامیم. این یک بردار n بعدی است که عناصر آن ویژگی هایی است: f_ ، f_ ، f_… ، f_.

حال ، توضیح دهید که چگونه می توان شبکه های عصبی مکرر را برای یک کار مرتبط با امور مالی اعمال کرد. ورودی برای شبکه عصبی مکرر [x_ ، x_ ، x_ ،… ، x_] است. بیایید بگوییم که n = 5. ما پنج قیمت سهم نزدیک Google را از پنج روز متوالی می گیریم (به جدول با داده های باز/بالا/پایین/نزدیک در بالا مراجعه کنید) بین ، بیایید بگوییم ، 2010-01-04 و 2010-01-08 ، یعنی ، [[311. 35] ،[309. 98] ، [302. 16] ، [295. 13] ، [299. 06]]. وکتور ویژگی در این مثال یک بعدی است. دنباله زمان شامل پنج بردار ویژگی است. خروجی های شبکه عصبی مکرر از ویژگی های پنهان [H_ ، H_ ، H_ ،… ، H_] هستند. این ویژگی ها در سطح انتزاعی تر از ویژگی های ورودی قرار دارند [X_ ، X_ ، X_ ،… ، x_] - lstm باید قسمت های مهم ویژگی های ورودی را بیاموزد و آنها را به فضای ویژگی های پنهان معرفی کند. این ویژگی های پنهان و انتزاعی را می توان در سلول LSTM بعدی پخش کرد ، که مجموعه بعدی از ویژگی های پنهان و انتزاعی تر را ارائه می دهد که می تواند دوباره به LSTM بعدی و غیره پخش شود. پس از دنباله LSTM های زنجیره ای ، مؤلفه نهایی شبکه عصبی لایه خطی (قسمت ساختمان شبکه Feedforward ساده توضیح داده شده در بخش قبلی) است که از ویژگی های پنهان از آخرین LSTM تا نقطه در فضای یک بعدی استفاده می کند ، واین نقطه خروجی نهایی شبکه است - قیمت نزدیک پیش بینی شده در دوره زمانی X_. حقیقت زمین در این مثال برای X_ 298. 61 است.

توجه: همچنین می تواند به اندازه یک LSTM تعداد کمی وجود داشته باشد. اگر داده ها چندان پیچیده نباشند ، ما از معماری پیچیده کمتری استفاده می کنیم تا مدل از داده ها بیش از حد استفاده نکند. اگر داده ها پیچیده باشند ، ما از یک مدل پیچیده استفاده می کنیم تا مدل داده ها را زیرنویس نکند.

در مرحله آموزش ، قیمت های نزدیک پیش بینی شده با قیمت های حقیقت زمین مقایسه می شود ، و تفاوت بین قیمت های نزدیک پیش بینی شده و قیمت های حقیقت زمین با استفاده از یک الگوریتم backpropagation و الگوریتم بهینه سازی بهینه سازی شیب (یا یکی از اشکال آن - به طور واضح ، در این مورد به حداقل می رسد. وبلاگ ، نسخه به اصطلاح "آدم" از الگوریتم بهینه سازی نزول شیب استفاده می شود) با تغییر وزن شبکه عصبی.

پس از آموزش و آزمایش ، در آینده کاربر فقط باید داده های ورودی را به شبکه عصبی بدهد و قیمت پیش بینی شده را بازگرداند (و امیدوارم قیمتی نزدیک به قیمت حقیقت زمین از آینده).

نکته دیگری که باید در اینجا ذکر کنیم این است که ، معمولاً ، داده ها از طریق شبکه ، هر دو در آموزش در مراحل آزمایش ، برای شبکه ارسال می شوند تا شبکه بتواند چندین خروجی را فقط در یک پاس محاسبه کند.

در زیر تصویری از معماری مورد استفاده در این وبلاگ برای آزمایش ها آورده شده است. این شامل دو LSTM انباشته و یک لایه خطی است.

آزمایش با الگوریتم های صندوق پرچین

سعی کنید از استراتژی های تجارت الگوریتمی استفاده کنید که ساده است ، به شرح زیر: اگر الگوریتم پیش بینی می کند که قیمت روز بعد بالا می رود ، پس از آن N (n = 1 در این مثال) سهام یک شرکت (طولانی) را بخرید ، در غیر این صورت همه سهام A را بفروشیدشرکت (کوتاه). ارزش اولیه نمونه کارها (ارزش پول نقد و سهام) 100000 دلار تعیین شده است. هر یک از اقدامات طولانی یا کوتاه به ترتیب N سهام یک شرکت (Google ، در این مثال) خریداری می کند یا به ترتیب تمام سهام یک شرکت را می فروشد. در ابتدا ، سیستم دارای 0 سهام یک شرکت خاص است.

همیشه به یاد داشته باشید که این یک نمونه بسیار اساسی و ساده است ، نه معنی برای استفاده در دنیای واقعی ، زیرا کار تحقیق و توسعه بسیار بیشتری برای تغییر مدل لازم است تا در عمل به خوبی کار کند. برخی از موارد در اینجا مورد غفلت قرار می گیرند که باید در یک سناریوی در دنیای واقعی مورد توجه قرار گیرد. به عنوان مثال ، هزینه های معامله در مدل گنجانیده نشده است. فرض بر این است که این سیستم می تواند هر روز دقیقاً در همان زمان تجارت کند و فرض بر این است که هر روز ، حتی در یک آخر هفته یا تعطیلات ، یک روز معاملاتی است.

برای آزمایش ، از روش پشتی استفاده می شود. روش پشتی از داده های تاریخی برای بازسازی معاملات استفاده می کند که در گذشته با استفاده از قوانین تعریف شده با استراتژی توسعه یافته اتفاق می افتاد. مجموعه داده به دو بخش تقسیم می شود - قسمت اول مجموعه آموزش (گذشته) و قسمت دوم مجموعه آزمایش (آینده) است. این مدل در یک مجموعه آموزش آموزش دیده است و پس از آموزش ، ما آینده را در قسمت دوم مجموعه داده ها شبیه سازی می کنیم تا ببینیم مدل آموزش دیده چگونه در آینده رفتار می کرد بدون اینکه در آن آموزش دیده باشد.

متریک برای ارزیابی استراتژی تجارت نسبت شارپ (نسخه سالانه آن ، با فرض همه روزهای یک سال روز معاملاتی است و سال 365 روز است: SQRT (365)*میانگین (بازده)/STD (بازده)) ، جایی که در آنبازده به عنوان P_/P_ - 1 تعریف شده است ، و P_ قیمت دوره t است. نسبت شارپ نسبت بین بازده و خطر اضافی که متحمل می شود را نشان می دهد ، بنابراین خوب است که نسبت شارپ بزرگتر داشته باشید. به طور معمول ، نسبت بیشتر از 1 توسط سرمایه گذاران قابل قبول است ، 2 بسیار خوب و 3 عالی است.

فقط قیمت نزدیک هر روز ، قیمت های تاریخی Google از مجموعه داده های مالی یاهو ، به عنوان یک ویژگی استفاده می شود. ویژگی های بیشتر به شما کمک می کند ، اما خارج از محدوده این وبلاگ است که آزمایش کنید که سایر ویژگی های مجموعه داده (باز ، بالا ، پایین) مهم هستند. برخی از ویژگی های دیگر که در جدول موجود نیست نیز می تواند مفید باشد - به عنوان مثال ، احساسات اخبار در یک دقیقه خاص یا اتفاقات مهم در یک روز خاص. با این حال ، گاهی اوقات ساخت نمایش داده هایی که برای ورودی شبکه عصبی مفید هستند و آنها را با ویژگی های موجود ترکیب می کنند ، بسیار دشوار است. به عنوان مثال ، می توان بردار ویژگی را گسترش داد و عددی را قرار داد که نشانگر احساسات خبری یا احساسات توییت ترامپ (-1 بسیار منفی ، 0 خنثی ، 1+ بسیار مثبت و غیره) برای هر دوره زمانی معین است ، اما اینگونه نیست. خیلی آسان است که لحظه های خاص رویداد (دزدان دریایی در کانال سوئز ، بمب در پالایشگاه در تگزاس) را در بردار ویژگی قرار دهید زیرا برای هر لحظه خاص ، ما باید یک عنصر اضافی در بردار ویژگی داشته باشیم تا 1 را قرار دهیماین رویداد یا در غیر این صورت 0 اتفاق افتاد ، که منجر به تعداد نامتناهی عناصر برای همه لحظات ممکن خواهد شد.

برای این داده های دشوارتر ، ما می توانیم برخی از دسته ها را تعریف کنیم و برای هر لحظه تعیین کنیم که به کدام دسته تعلق دارد. ما همچنین می توانیم ویژگی های سهام شرکت های دیگر را برای یک سیستم برای یادگیری همبستگی بین قیمت سهم شرکت های مختلف اضافه کنیم. همچنین ، یک نوع شبکه عصبی تخصصی برای دید رایانه - شبکه های عصبی کنفلوله ای وجود دارد - که جالب است که با لایه های مکرر ترکیب شود و ببینید که چگونه ویژگی های بصری با قیمت برخی از شرکت ها ارتباط دارد. شاید ما بتوانیم از یک ایستگاه قطار شلوغ به عنوان یک ویژگی استفاده کنیم و آن را به یک شبکه عصبی وصل کنیم و ببینیم که آیا شبکه عصبی با قیمت سهام برخی از شرکت ها ارتباط دارد - حتی می تواند دانش پنهان نیز وجود داشته باشدنمونه پیش فرض و پوچ.

در زیر نمودار وجود دارد که نشان می دهد چگونه میانگین از دست دادن آموزش با گذشت زمان کاهش می یابد ، به این معنی که شبکه عصبی از ظرفیت کافی برای متناسب بودن داده های آموزش برخوردار است. این مهم است که بگوییم داده ها باید عادی شوند تا الگوریتم یادگیری عمیق بتواند همگرا شود.

در زیر نمودار وجود دارد که نشان می دهد چگونه از دست دادن آزمون با گذشت زمان کاهش می یابد ، به این معنی که شبکه عصبی توانایی تعمیم داده های غیب را دارد.

الگوریتم حریص است. اگر پیش بینی می کرد که قیمت روز بعد بالا می رود ، الگوریتم بلافاصله N = 1 سهم یک شرکت را خریداری می کند (اگر پول کافی در نمونه کارها باشد) ، و در غیر این صورت ، تمام سهام شرکت را به فروش می رساند (در صورت داشتن هرگونه). دوره سرمایه گذاری ثابت است و 300 روز طول می کشد. بعد از 300 روز ، تمام سهام فروخته می شود. شبیه سازی در مورد داده های غیب ، پس از برخی از آموزش ها ، در زیر مشاهده می شود. نشان داده شده است که چگونه با اقدامات طولانی/کوتاه (یا هیچ کاری) هر روز مقدار نمونه کارها با گذشت زمان افزایش می یابد.

نسبت شارپ برای شبیه سازی فوق 1. 48 است. ارزش نمونه کارها نهایی پس از 300 روز 100،263. 79 دلار است. اگر ما فقط در روز اول سهام خریداری کردیم و پس از 300 روز آنها را فروختیم ، این نمونه کارها به ارزش 99. 988. 41 دلار خواهد بود.

در زیر وضعیتی نشان داده شده است که شبکه عصبی به خوبی آموزش دیده و پس از مدت زمان ثابت 300 روز پول از دست می دهد.

نسبت شار پ-0. 94 است. ارزش نمونه کارها نهایی پس از 300 روز 99،868. 36 دلار است.

در اینجا یک مثال جالب وجود دارد - الگوریتم فوق حریص است و فقط قیمت روز بعد را پیش بینی می کند ، و بر اساس آن پیش بینی اقدام می کند. می توان پیش بینی های متعدد را زنجیر کرد و قیمت را در چند مرحله بعدی در آینده پیش بینی کرد. x_ground_truth_ ، x_predited_] و خروجی [x_predited_] است. ورودی بعدی از آنجا [x_ground_truth_ ، x_ground_truth_ ، x_ground_truth_ ، x_predited_ ، x_predited_] است که منجر به [x_predited_] و غیره می شود. مشکل اینجاست که ما یک خطای پیش بینی را معرفی می کنیم که با هر مرحله جدید افزایش می یابد و در نهایت با نتیجه طولانی مدت بسیار بد پایان می یابد ، همانطور که در تصویر زیر نشان داده شده است. پیش بینی در ابتدا به دنبال روند کاهش حقیقت زمین است و سپس راکد می شود و با گذشت زمان بدتر و بدتر می شود.

تجزیه و تحلیل یادگیری عمیق بسیار ساده در قیمت های Google Share انجام شد ، اما می تواند تقریباً هر مجموعه ای از داده های مالی را در بر بگیرد ، مشروط بر اینکه میزان داده ها به اندازه کافی بزرگ باشد و از کیفیت خوبی برخوردار باشد. داده ها باید تبعیض آمیز باشند و باید مشکل را به خوبی توصیف و نشان دهند.

پیچیدن

اگر در تست های گسترده کار کند و به خوبی تعمیم یابد ، این سیستم می تواند به مدیران صندوق های تامینی اجازه دهد تا درباره قیمت های آینده سهام یک شرکت با استفاده از یادگیری عمیق و تکیه بر استراتژی های تجارت الگوریتمی حدس بزنند.

مدیران صندوق های پرچین می توانند مبلغی را به سیستم بدهند تا هر روز به طور خودکار تجارت کنند. با این حال ، اجازه دادن به الگوریتم های معاملاتی خودکار بدون هیچ گونه نظارت بسیار بد خواهد بود. مدیر صندوق پرچین باید مهارت های یادگیری عمیقی داشته باشد یا از شخصی با مهارت های لازم برای نظارت بر سیستم و تعیین اینکه سیستم توانایی تعمیم و تجارت را از دست داده است ، استفاده کند.

اگر این سیستم توانایی تعمیم را از دست داده است ، پس از آن لازم است که از ابتدا آن را بازآفرینی کنید و دوباره آن را آزمایش کنید (شاید با معرفی ویژگی های تبعیض آمیز تر یا دانش جدید - با استفاده از داده های جدید از گذشته که وقتی مدل وجود داشت وجود نداشت. برای اولین بار آموزش دیده).

بعضی اوقات ، داده ها به اندازه کافی مناسب نیستند که سیستم یادگیری عمیق آموزش دیده و به خوبی تعمیم یابد و در این صورت ، یک مهندس یادگیری عمیق با تجربه باید بتواند چنین شرایطی را تشخیص و اصلاح کند. برای ایجاد یک سیستم تجارت عمیق یادگیری ، شما به دانشمندان داده های پرچین ، دانشمندان یادگیری ماشین/کارشناسان یادگیری عمیق (چه دانشمندان و مهندسین) ، مهندسان تحقیق و توسعه آشنا با یادگیری ماشین/یادگیری عمیق و غیره نیاز دارید. مهم نیست که کدام بخش از کاربردهای یادگیری ماشین استآنها با آن آشنا هستند ، خواه این دیدگاه رایانه باشد و چه تشخیص گفتار ، متخصصان فصلی قادر خواهند بود تجربه خود را در بخش مالی استفاده کنند. در ریشه خود ، Deep Learning بدون در نظر گرفتن کاربرد یا صنعت ، اصول مشابهی را دارد و باید برای کسی که از موضوع به موضوع دیگر تغییر می دهد آسان باشد.

سیستمی که ما ارائه کردیم بسیار اساسی است و برای افزایش بازده باید تحقیق و توسعه بیشتری انجام شود. پیشرفت های احتمالی سیستم می تواند در تدوین استراتژی های تجاری بهتر باشد. جمع آوری داده های بیشتر برای آموزش ، که معمولاً بسیار گران است ، کمک خواهد کرد. فاصله زمانی کوچکتر بین نقاط بهتر است. پیشرفت ها همچنین می توانند در استفاده از ویژگی های بیشتر (به عنوان مثال ، احساسات خبری یا اتفاقات مهم مربوط به هر نقطه در مجموعه داده ها ، علی رغم اینکه کد برای یک شبکه عصبی سخت است) و جستجوی شبکه گسترده برای هایپرپارامترها و کشف معماری RNN.

همچنین ، قدرت محاسباتی بیشتر (GPU های قدرتمند ضروری است) برای انجام آزمایش های گسترده به صورت موازی و پردازش مقدار زیادی از داده ها ، به شرط آنکه مقدار زیادی از داده ها جمع آوری شود ، لازم است.

منابع:

یادداشت نویسنده: من می خواهم از ایوان čapalija و Matej Paradžik بخاطر مکالمات سازنده و مشاوره در مورد یادگیری عمیق در امور مالی تشکر کنم ، که به من در نوشتن این وبلاگ کمک کرد.

درک اصول

صندوق های تامینی چگونه کار می کنند؟

صندوق های پرچین وجوه را از سرمایه گذاران خود جمع می کنند و آنها را در سرمایه گذاری های کوتاه مدت و بلند مدت یا در محصولات مالی مختلف قرار می دهند تا سود را به حداکثر برساند. صندوق های پرچین به انواع مختلفی از استراتژی های سرمایه گذاری متکی هستند و سعی می کنند با بهره برداری از ناکارآمدی بازار درآمد کسب کنند.

تجارت الگوریتمی چیست؟

تجارت الگوریتمی روشی برای استفاده از رایانه ها به منظور ایجاد سود به طور خودکار با استفاده از قوانینی است که از مدل های یادگیری ماشین یا قوانین دست نوشته استنباط می شود.

یادگیری عمیق در امور مالی چیست؟

یادگیری عمیق بخشی از یادگیری ماشین است که نمایش داده ها را یاد می گیرد. امور مالی مدیریت پول است. یادگیری عمیق در امور مالی کاربرد فن آوری های یادگیری عمیق در زمینه مالی است.

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.