Ela.kpi.ua



НАЦ?ОНАЛЬНИЙ ТЕХН?ЧНИЙ УН?ВЕРСИТЕТ УКРА?НИ?КИ?ВСЬКИЙ ПОЛ?ТЕХН?ЧНИЙ ?НСТИТУТ?мен? ?ГОРЯ С?КОРСЬКОГО??нститут прикладного системного анал?зуКафедра математичних метод?в системного анал?зу?До захисту допущено?В.О. зав?дувача кафедри__________ О.Л. ТимощукДипломна роботана здобуття ступеня бакалавраз напряму п?дготовки 6.040303 Системний анал?зна тему: ?П?дх?д до анал?зу ?ндексу акц?й з використанням штучних нейронних мереж?Виконала: студент IV курсу, групи КА-53 Стельмащук Мар’яна Микола?вна __________Кер?вник: професор кафедри ММСА, д.т.н. Мух?н Вадим ?вгенович __________Консультант з економ?чного розд?лу:доцент, к.е.н. Шевчук О. А. __________Консультант з нормоконтролю:доцент, к.т.н. Коваленко А.?.__________Рецензент:__________Засв?дчую, що у ц?й дипломн?й робот? нема? запозичень з праць ?нших автор?в без в?дпов?дних посилань.Студентка _____________Ки?в – 2019 рокуНац?ональний техн?чний ун?верситет Укра?ни?Ки?вський пол?техн?чний ?нститут ?мен? ?горя С?корського??нститут прикладного системного анал?зуКафедра математичних метод?в системного анал?зуР?вень вищо? осв?ти – перший (бакалаврський)Напрям п?дготовки (програма профес?йного спрямування) – 6.040303Системний анал?з ( Системи ? методи прийняття р?шень)ЗАТВЕРДЖУЮВ.О.Зав?дувача кафедри__________ О.Л. Тимощук?___?_____________20__ р.ЗАВДАННЯна дипломну роботу студентуСтельмащук Мар’ян? Микола?вн?1. Тема роботи ? П?дх?д до анал?зу ?ндексу акц?й з використанням штучних нейронних мереж?, кер?вник роботи Мух?н Вадим ?вгенович, д.т.н, професор, затверджен? наказом по ун?верситету в?д ?___?___________ 2019 р. №_____2. Терм?н подання студентом роботи 3. Вих?дн? дан? до роботи __________________________________________________________________________________________________________4. Зм?ст роботи ___________________________________________________________________________________________________________________________________________________________________________________ 5. Перел?к ?люстративного матер?алу (?з зазначенням плакат?в, презентац?й тощо) ______________________________________________________________________________________________________________________________________________________________________________6. Консультанти розд?л?в роботиРозд?лПр?звище, ?н?ц?али та посада консультантаП?дпис, датазавдання видавзавданняприйняв7. Дата видач? завдання Календарний план№ з/пНазва етап?в виконання дипломно? роботиТерм?н виконання етап?в роботиПрим?ткаСтудент М. М. СтельмащукКер?вник роботи В. ?. Мух?нРЕФЕРАТДипломна робота: 88 с., 6 табл., 23 рис., 2 дод.та 20 джерел.?НДЕКС АКЦ?Й, БАГАТОШАРОВА НЕЙРОННА МЕРЕЖА, ЗГОРТКОВА НЕЙРОННА МЕРЕЖА, НЕЙРОННА МЕРЕЖА ДОВГО? КОРОТКОЧАСНО? ПАМ’ЯТ?, ПРОЦЕС НАВЧАННЯ, ПЕРЕНАВЧАННЯ, ТОЧН?СТЬ, ПОХИБКА, МАТРИЦЯ НЕТОЧНОСТЕЙ. Метою дано? роботи ? реал?зац?я ? анал?з р?зних арх?тектур нейронних мереж, щоб визначити який тип нейронно? мереж? демонстру? найкращ? результати в прогнозуванн? ?ндексу акц?й. Для розв’язку поставлено? задач? використовуються багатошарова нейронна мережа, згорткова нейронна мережа та мережа довго? короткочасно? пам’ят?. Об’?ктом досл?дження ? часов? ряди ц?н акц?й на приклад? компан?? Apple. Предметом досл?дження ? багатошарова нейронна мережа, згорткова нейронна мереж? та мережа довго? короткочасно? пам’ят? як методи прогнозування ?ндексу акц?й. Актуальн?сть досл?дження зумовлена необх?дн?стю прогнозувати фондов? ринки в умовах пост?йних зм?н та велико? к?лькост? ?нформац??. Результатом ц??? роботи ? арх?тектура нейронно мереж?, яка з певною точн?стю прогнозу? ?ндекс акц?й. Для подальших досладжень доц?льно навчати нейронну мережу на високочастотних даних, використовувати всю доступну ?нформац?ю про ц?ну акц?й, а також використовувати б?льш складн? арх?тектури нейронних мереж. Однак це потребу? наявност? ?нформац??, яка не знаходиться в публ?чному доступ?, а також б?льших обчислювальних потужностей використовуваних комп’ютерних систем.ABSTRACTThesis contains: 88 p., 6 tables, 23 fig., 2 add. and 20 references.STOCK INDEX, MULRILAYER NEURAL NETWORK, CONVULATION NEURAL NETWORK, LONG SHORT-TERM MEMORY, LEARNING, OVERFITTING, MODEL LOSS, MODEL ACCURANCY The theme: Stock index analysis approach using artificial neural networks. The purpose of this work is to implement and analyze neural network architectures in order to determine which type of neural network shows the best results in stock index forecasting. To solve the problem, a multilayer neural network, a convolutional neural network and a long short-term memory network are used. The object of the study is the time series of Apple’s stock indexes. The subject of the study is a multilayer neural network, convolutional neural network and a long short-term memory network as methods for stock index forecasting. The relevance of the study is stock index forecasting in a context of changes and large amounts of information. The result of this work is the neural network architecture, which accurately predicts the stock index.For further research, it is advisable to learn the neural network on high-frequency data, use all available information on stock prices, and use more sophisticated neural network architectures. However, this requires the availability of information that is not publicly available, as well as the large computing power of used computer systems.ЗМ?СТ TOC \o "1-3" \h \z \u ВСТУП PAGEREF _Toc11355597 \h 8РОЗД?Л 1. ОГЛЯД СУЧАСНИХ МЕТОД?В АНАЛ?ЗУ ?НДЕКСУ АКЦ?Й PAGEREF _Toc11355598 \h 101.1 Поняття фондового ринку PAGEREF _Toc11355599 \h 101.2 Сучасн? методи анал?зу ?ндексу акц?й PAGEREF _Toc11355600 \h 111.2.1 Експертн? методи PAGEREF _Toc11355601 \h 111.2.2 Економ?ко-математичн? методи PAGEREF _Toc11355602 \h 121.2.3 Статистичн? методи PAGEREF _Toc11355603 \h 151.2.4 Техн?чний анал?з PAGEREF _Toc11355604 \h 171.2.5 Фундаментальний анал?з PAGEREF _Toc11355605 \h 191.3 Висновки PAGEREF _Toc11355606 \h 20РОЗД?Л 2. НЕЙРОНН? МЕРЕЖ? ДЛЯ ПРОГНОЗУВАННЯ ?НДЕКСУ АКЦ?Й PAGEREF _Toc11355607 \h 222.1 Поняття нейронних мереж PAGEREF _Toc11355608 \h 222.2 Нейронн? мереж? для анал?зу фондового ринку PAGEREF _Toc11355609 \h 252.2.1 Багатошарова нейронна мережа PAGEREF _Toc11355610 \h 262.2.2 Згорткова нейронна мережа PAGEREF _Toc11355611 \h 292.2.3 Мережа довго? короткочасно? пам’ят? PAGEREF _Toc11355612 \h 322.3 Висновки PAGEREF _Toc11355613 \h 34РОЗД?Л 3. РЕАЛ?ЗАЦ?Я НЕЙРОННО? МЕРЕЖ? ТА АНАЛ?З РЕЗУЛЬТАТ?В PAGEREF _Toc11355614 \h 363.1 Виб?р засоб?в для програмно? реал?зац?? PAGEREF _Toc11355615 \h 363.2 Обробка вх?дних даних PAGEREF _Toc11355616 \h 363.3 Реал?зац?я модел? на приклад? ц?ни акц?й компан?? Apple PAGEREF _Toc11355617 \h 383.3.1 За допомогою багатошарово? нейронно? мереж? PAGEREF _Toc11355618 \h 393.3.2 За допомогою згортково? нейронно? мереж? PAGEREF _Toc11355619 \h 443.3.3 За допомогою мереж? довго? короткочасно? пам’ят? PAGEREF _Toc11355620 \h 473.4?Висновки PAGEREF _Toc11355621 \h 49РОЗД?Л 4. ФУНКЦ?ОНАЛЬНО-ВАРТ?СНИЙ АНАЛ?З PAGEREF _Toc11355622 \h 504.1 Постановка задач? техн?ко-економ?чного анал?зу PAGEREF _Toc11355623 \h 514.1.1 Об?рунтування функц?й програмного продукту PAGEREF _Toc11355624 \h 514.1.2 Вар?анти реал?зац?? основних функц?й PAGEREF _Toc11355625 \h 524.2Об?рунтування системи параметр?в ПП PAGEREF _Toc11355626 \h 544.2.1 Опис параметр?в PAGEREF _Toc11355627 \h 544.2.2 К?льк?сна оц?нка параметр?в PAGEREF _Toc11355628 \h 554.2.3 Анал?з експертного оц?нювання параметр?в PAGEREF _Toc11355629 \h 574.3 Анал?з р?вня якост? вар?ант?в реал?зац?? функц?й PAGEREF _Toc11355630 \h 604.4 Економ?чний анал?з вар?ант?в розробки ПП PAGEREF _Toc11355631 \h 624.5 Виб?р кращого вар?анта ПП техн?ко-економ?чного р?вня PAGEREF _Toc11355632 \h 674.6 Висновки PAGEREF _Toc11355633 \h 68ВИСНОВКИ PAGEREF _Toc11355634 \h 70СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ PAGEREF _Toc11355635 \h 71ДОДАТОК А ПРОГРАМНИЙ КОД PAGEREF _Toc11355636 \h 73ДОДАТОК Б ПРЕЗЕНТАЦ?Я ДИПЛОМНО? РОБОТИ PAGEREF _Toc11355637 \h 82ВСТУППередбачення ф?нансових часових ряд?в – необх?дний елемент будь-яко? ?нвестиц?йно? д?яльност?. Сама ?дея ?нвестиц?й – вкладення грошей зараз з метою отримання доходу в майбутньому ?рунту?ться на ?де? прогнозування. Будь-яке завдання, пов'язане з ман?пулюванням ф?нансовими ?нструментами – валюта чи ц?нн? папери, пов'язана з ризиком ? вимага? ретельного розрахунку ? прогнозування.?сну? два основн? п?дходи до анал?зу ринку: техн?чний ? фундаментальний. Перший з них базу?ться на теор?? Доу, в основ? яко? лежить акс?ома: ?Ц?ни враховують все?, ? в?дпов?дно техн?чний анал?тик використову? т?льки ц?ни активу ? р?зн? ?ндикатори. Фундаментальний анал?з, навпаки, шука? вза?мозв'язок ц?н активу, зовн?шн?х под?й, макроеконом?чних показник?в ? ф?нансово? зв?тност? корпорац?й. Застосування нейронних мереж да? ун?кальну можлив?сть об'?днати ц? два методи. Такий анал?з, на в?дм?ну в?д техн?чного, не ма? н?яких обмежень по характеру вх?дно? ?нформац??. Це можуть ?ндикатори часового ряду, в?домост? про повед?нку ?нших ринкових ?нструмент?в або зовн?шн? под??. Нейронн? мереж? активно використовують ?нвестори, що працюють з великими портфелями, для яких особливо важлив? кореляц?? м?ж р?зними ринками.У дан?й робот? представлена реал?зац?я трьох найпопулярн?ших для прогнозування фондового ринку арх?тектур нейронних мереж – багатошарово? нейронно? мереж?, згортоково? нейронно? мереж? та мереж? довго? короткочасно? пам’ят?. В якост? мови програмування обраний Python, а нейронн? мереж? реал?зован? за допомогою нейромережево? б?бл?отеки Keras. Проведено анал?з результат?в роботи кожно? з арх?тектур та визначачено модель, яка з б?льшою точн?стю прогнозу? ?ндекс акц?йСтруктура роботи вигляда? наступним чином. У першому розд?л? розкриваються загальн? теоретичн? в?домост? про сучасн? методи анал?зу ?ндексу акц?й. Дугий розд?л присвячений нейронним мережам, як методу прогнозування фондових ринк?в. Також детально розглянуто арх?тектури нейронних мереж, як? найкраще п?дходять для прогнозування ?ндексу акц?й. Реал?зац?ю р?зних моделей нейронних мереж та результати ?х роботин наведено в третьому розд?л?. Визначено, яка з арх?тектур найкраще справилась з поставленим завданням. Функц?онально-варт?сний анал?з програмного продукту проведено у четвертому розд?л?. РОЗД?Л 1. ОГЛЯД СУЧАСНИХ МЕТОД?В АНАЛ?ЗУ ?НДЕКСУ АКЦ?Й 1.1 Поняття фондового ринкуФондовий ринок – сукупн?сть учасник?в фондового ринку та правов?дносин м?ж ними щодо розм?щення, об?гу та обл?ку ц?нних папер?в ? походних(дереватив?в) [1]. Фондовии? ринок ? системою економ?чних та правових в?дносин, пов’язаних ?з випуском и? об?гом ц?нних папер?в. Суб’?кти п?дпри?мницько?? д?яльност? виступають на ринку як ем?тентами ц?нних папер?в, так ? ?нвесторами. Ем?туючи ц?нн? папери та залучаючи на р?зних умовах в?льн? ф?нансов? ресурси, вони формують св?и? акц?онернии? ? борговии? кап?тал. Корпорац??? використовують залучен? на ринку кошти для ф?нансування основного та оборотного кап?талу, зд?и?снення кап?тальних вкладень, зб?льшення обсяг?в виробництва. В результат? ?нвестування кошт?в вони отримують прибуток, за рахунок якого нарощують як власнии? економ?чнии? потенц?ал, так ? економ?чнии? потенц?ал держави [2].Ф?нансов? ?нститути використовують залучен? на ринку ресурси для надання позик ?ншим учасникам ринку та для ?нвестиц?и? у ц?нн? папери ?нших ем?тент?в. Ф?нансов? ?нститути виступають на ринку ?нституц?и?ними ?нвесторами ? маютьзначнии? вплив на формування ?нвестиц?и?но?? пол?тики ?нших учасник?в ринку. Функц?онування фондового ринку у багатьох кра??нах забезпечу? ефективне використання в?льних ф?нансових ресурс?в та ст?и?к? темпи зростання економ?ки цих кра??н [2].У сучасному св?т? актуальною задачею ? прогнозування фондових ринк?в. Це пов'язано з швидким розвитком комп’ютерних технолог?й ? появою нових ?нструмент?в анал?зу даних. Однак не вс? п?дходи анал?зу ринку, якими звикли користуватися б?льш?сть учасник?в ринку, ? ефективним. Це пов’язано з тим, що економ?ка часто бува? ?ррац?ональна, тому що ?? руха? ?ррац?ональна мотивац?я людей.Фондов? ринки характеризуються наявн?стю нел?н?и?ност?, тобто присутн?стю експоненц?и?но?? реакц??? на певнии? вплив. В економ?чн?и? л?тератур? ?снують досл?дження, спрямован? на вивчення ц???? експоненц?и?ност?, що св?дчать про те, що здоровии? ринок – це ринок волатильнии?, тобто з пост?и?но зм?нюваним стандартним в?дхиленням зм?н вартост? ц?нного папера. Отже фондовии? ринок характеризу?ться нел?н?и?ною залежн?стю м?ж вх?дним впливом та вих?дною реакц??ю. 1.2 Сучасн? методи анал?зу ?ндексу акц?йНа фондовому ринку, як ? в ц?лому в економ?ц?, прогнозування ? основою вс??? системи управл?ння. Розвинена система альтернативних прогноз?в дозволя? ?стотно зменшити ризики. Потреба в перспективн?й оц?нц? зумовлена прагненням ?нвестор?в максим?зувати прибуток в процес? зм?ни курсово? вартост? ?нструмент?в фондового ринку Прогнозування характеризу? майбутн?й розвиток системи, спираючись на г?потезу, що основн? тенденц??, д?юч? фактори ? залежност? минулого та поточного етап?в збережуть свою тенденц?ю на пер?од прогнозу, або можна визначити та врахувати напрям ?х зм?н на прогнозований терм?н. В будь-якому економ?чному прогнозуванн? роль неврахованих ? випадкових фактор?в досить велика, тому кожен прогноз завжди носить ?мов?рн?сний характер. Також сл?д враховувати вплив непередбачених под?й, що в?дбуваються на фондовому ринку, на динам?ку окремих його складових. Профес?йн? учасники використовують р?зн? методи прогнозування фондового ринку, основними з яких ?: експертн? методи, економ?ко-математичн? методи, статистичн? методи, техн?чний анал?з та фундаментальний анал?з. 1.2.1 Експертн? методиЕкспертн? методи ? частиною велико? област? теор?? прийняття р?шень, а саме експертне оц?нювання –– процедура оц?нювання проблеми на основ? думки експерт?в з метою подальшого прийняття р?шення в умовах невизначеност?.У випадках надзвичайно? складност? проблеми, ?? новизни, недостатност? наявно? ?нформац??, неможлив?сть математично? формал?зац?? процесу доводиться звертатися до рекомендац?й компетентних фах?вц?в. ?х р?шення задач?, аргументац?я, формування к?льк?сних оц?нок, обробка даних формальними методами д?стали назву метод експертних оц?нок. Експертне евристичне прогнозування ? найб?льш старим, та широко використову?ться як в науц?, техн?ц?, так ? у повсякденному житт?. Спец?ал?сти, як? виступають як експерти, використовуючи власний досв?д, знання ? в?дпов?дн? матер?али, оц?нюють ймов?рн?сть зд?йснення т??? чи ?ншо? под?? у майбутньому, умови ? терм?ни ?? настання, посл?довн?сть майбутн?х под?й, про в?дносну важлив?сть р?зних фактор?в(ознак, параметр?в, напрям?в розвитку ? т. ?н.), к?льк?сне значення параметр?в тощо. Для анал?зу результат?в застосовуються р?зн? методи математично? статистики. Причому, вони можуть комб?нуватися ? вар?юватися в залежност? в?д типу завдання ? необх?дного результату.Найпоширен?ший серед експертних метод?в – метод Делф?. Суть методу поляга? в збор? думок р?зних експерт?в ? ?х узагальнення в ?дину оц?нку. Якщо ми прогнозу?мо цим методом ф?нансов? ринки, то нам потр?бно вид?лити експертну групу людей, як? знаються на ц?й предметно? област? (це можуть бути анал?тики, профес?йн? трейдери, ?нвестори, банки ? т.д.), провести анкетування або опитування ? зробити узагальнення про поточну ситуац?ю на ринку.1.2.2 Економ?ко-математичн? методи Економ?ко-математичн? методи можна класиф?кувати за групами: методи кореляц?и?но-регрес?и?ного анал?зу; методи математичного програмування; матричн? методи та модел? [3]. Кореляц?и?но-регрес?и?ний анал?з доц?льно застосовувати для встановлення к?льк?сно?? залежност? тих або ?нших об’?ктивних ? суб’?ктивних фактор?в досл?джуваного об’?кта, характер функц?онально?? залежност? м?ж якими невизначено. Зважаючи на те, що б?льш?сть процес?в, як? в?дбуваються в економ?ц? ? випадковими, то и? зв’язок м?ж факторами, як? впливають на результуючу зм?нну ? випадковою величиною. В такому випадку, кореляц?я виража? и?мов?рн?сну залежн?сть м?ж зм?нними параметрами алгоритму зв’язку. Наи?част?ше кореляц?и?но-регрес?и?нии? анал?з використовують на етап? формування репрезентативно?? статистично?? виб?рки. Це дозволя? виключити вза?мозалежн? зм?нн?, зменшивши тим самим розм?рн?сть таблиц?, яка м?стить статистичн? дан?, при цьому не знижуючи ???? значущост?. Як насл?док, досл?дник одержу? можлив?сть застосувати до досл?джуваного явища наи?б?льш адекватну модель, яка здатна ефективно розв’язати поставлену задачу, при цьому не перевантажуючи ???? вх?дними статистичними даними. На першому етап? кореляц?и?но-регрес?и?ного анал?зу визначають показники-фактори кореляц?и?ного зв’язку. На другому – щ?льн?сть зв’язку результативного показника з показниками-факторами, якии? ?дентиф?ку?ться в?дпов?дними значеннями коеф?ц??нт?в парно?? чи множинно?? кореляц???. Значення коеф?ц??нт?в вказу? на и?мов?рн?сть зм?ни результативного показника при зм?н? значення вх?дно?? зм?нно?? на один пункт. Залежн?сть досл?джуваного показника в?д одного фактора у наи?б?льш спрощеному вигляд? можна виразити як л?н?и?ну залежн?сть типу y=ax+b. Де a ? b деяк? параметри модел?, для визначення значень яких наи?част?ше використовують метод наи?менших квадрат?в. Складн?ш? залежност? можуть бути представлен? у вигляд? множинно?? л?н?и?но?? кореляц??? y= a0+a1x1+a2x2+…+anxn. Головне завдання яке ставиться перед анал?тиком – формування задач? анал?тичного досл?дження та правильне ?нтерпретування ???? розв’язання [2]. Методи математичного програмування по сво??и? сут? зводяться до вир?шення умовних задач оптим?зац??? з дек?лькома зм?нними. Наи?част?ше методи математичного програмування застосовуються при вир?шенн? задач планування номенклатури та асортименту вироб?в, визначення оптимального маршруту, м?н?м?зац??? залишк?в виробництва, регулювання р?вня запас?в, календарному плануванн? виробництва тощо. Оск?льки математичн? методи не можуть застосовуватися безпосередньо до досл?джуваного об’?кта, необх?дною умовою ? побудова адекватно?? цьому об’?кту математично?? модел?. П?д математичною моделлю об’?кта (явища, системи) розум??ться деяка штучна система (ф?зична або абстрактна), яка спрощено в?добража? структуру та основн? законом?рност? розвитку реального об’?кта таким чином, що ???? вивчення пода? ?нформац?ю про стан та повед?нку самого досл?джуваного об’?кта. Методи математичного програмування охоплюють методи л?н?и?ного та динам?чного програмування. Методи л?н?и?ного програмування використовуються анал?тиками при розв’язанн? багатьох оптим?зац?и?них задач, де функц?ональн? залежност? досл?джуваних явищ ? процес?в ? детерм?нованими. Одержан? результати при застосуванн? метод?в л?н?и?ного програмування дають можлив?сть анал?тику визначити та проанал?зувати потенц?и?н? можливост? зм?ни значення будь-якого з параметр?в досл?джуваного об’?кта, а також визначити резерви нереал?зованих можливостеи?. Задач? л?н?и?ного програмування усп?шно розв’язують ?з використанням сучасних спец?ал?зованих програмних продукт?в [4]. При досл?джен? систем в яких значення одн???? чи дек?лькох зм?нних зм?ню?ться випадковим чином використовують методи стохастичного програмування. Детерм?нована математична модель – це анал?тичне подання законом?рностеи? при яких для дано?? сукупност? вх?дних даних на виход? системи може бути отримано ?динии? результат. Така модель може в?дображати як ?мов?рн?сну систему (тод? вона ? ???? спрощенням), так ? детерм?новану систему [4]. Матричн? методи та модел? економ?чного анал?зу дозволяють п?дходити до анал?зу наи?б?льш системно, упорядковуючи як складов? елементи системи, так ? вза?мозв’язки м?ж ними. В основ? даних метод?в покладено л?н?и?ну та векторно-матричну алгебру, як? часто використовують при досл?дженн? складних ? великорозм?рних економ?чних структур [5]. Широке розповсюдження матричн? модел? набули у сфер? досл?дження м?жгалузевого балансу, матриць багатокритер?ально?? оптим?зац???, портфельного анал?зу тощо. В економ?чному анал?з? модель м?жгалузевого балансу зазвичаи? використовують при розрахунку технолог?чних норматив?в, анал?зу збалансованост? виробничого процесу, управл?ння ресурсами та запасами сировини тощо. Матрицю багатокритер?ально?? оптим?зац??? використовують в економ?чному анал?з? як метод пор?вняльного, реи?тингового оц?нювання вар?ант?в можливих зм?н параметр?в економ?чно?? системи на багатокритер?альн?и? основ?. За формою це одинична матриця з виокремленням у н?и? задано?? к?лькост? критер???в пор?вняння. У склад? ?нших економ?ко-математичних метод?в та моделеи? можна виокремити теор?ю ?гор, теор?ю масового обслуговування та теор?ю неч?тко?? лог?ки ? неи?ронних мереж. Методи, як? використовуються при розв’язанн? ?грових задач знаи?шли широке застосування у сфер? прии?няття управл?нських р?шень на етап? формування альтернатив та вибору оптимально?? стратег???. Анал?тично ??х можна подати як гру двох, трьох чи б?льше гравц?в, кожен ?з яких хоче максим?зувати свою вигоду (м?н?м?зувати втрати) за рахунок ?ншого, шляхом вибору оптимально?? стратег???. Математичну теор?ю масового обслуговування використовують при розв’язанн? соц?ально-економ?чних задач, пов’язаних з орган?зац??ю обслуговування та ремонту устаткування, проектуванням потокових л?н?и?, плануванням маршрут?в м?ського транспорту, орган?зац??ю телефонно?? служби тощо. Завдання теор??? масового обслуговування – визначити так? характеристики системи, як? забезпечують задану як?сть ???? функц?онування. Метод досл?дження операц?и? використовують в анал?з? для отримання пор?вняльно?? оц?нки альтернативних р?шень. Складн?сть методу поляга? у тому, що досл?джуван? операц??? ? в?дкритими системами, а отже пов’язан? з ?ншими д?ями, як? в певнии? момент часу досл?дника не ц?кавлять, однак можуть впливати на х?д операц???. Однак усв?домлення операц???, ???? мети, анал?з фактор?в, як? стосуються ц???? мети, пор?вняння витрат ? результат?в повинн? дати анал?тику п?дставу виокремити наи?важлив?ше та сформулювати умови задач?, пров?вши п?дб?р показник?в. 1.2.3 Статистичн? методи Статистичн? методи перев?рки т?сно пов’язан? з г?потезою випадкових блукань. Вона говорить про те, що зм?ни доход?в в?д ?нвестиц?и? в ц?нн? папери не мають сер?и?но?? кореляц??? ? ??х розпод?л ? ?нвар?антним у час?. ?ншими словами, ц?на ф?нансових ?нструмент?в на фондовому ринку зм?ню?ться абсолютно випадковим чином. При цьому вона колива?ться навколо певного значення, тобто ? мартингалом.Сам терм?н ?випадкове блукання? походить в?д задач?, яку розглядають в теор??? и?мов?рностеи?. Припустимо, що ми зустр?ли сл?пу та п’яну людину, яка и?де через поле. Якщо ми повернемось на це ж м?сце через деякии? час, як далеко опиниться дана людина? Вона може зробити к?лька крок?в в одному напрямку, пот?м у ?ншому ? т.д. В результат? наи?кращим прогнозом буде та ж позиц?я, в як?и? п’яниця знаходиться зараз. Под?бною ? повед?нка и? ц?ни обл?гац?и? – п?д впливом ново?? ?нформац??? вона може зрости, пот?м впасти ? т.д. Наи?кращим прогнозом на маи?бутн? буде сьогодн?шня ц?на. Б?льше того, кожне наступне коливання не пов’язане з попередн?м, а зумовлене надходженням ново?? ?нформац???. Зм?ни ц?ни формують посл?довн?сть незалежних ? однаково розпод?лених випадкових величин [6]. Центральна гранична теорема говорить про те, що якщо ми ма?мо справу з? значною к?льк?стю незалежних випадкових величин приблизно однакового масштабу, то ??х розпод?л буде близьким до нормального. Нормальнии? розпод?л ? наи?в?дом?шим ? наи?краще досл?дженим. В?н пропону? досить зручн? ? прост? ?нструменти для анал?зу ряд?в даних (у нашому випадку – зм?н ц?ни ф?нансових ?нструмент?в). Використання таких показник?в як математичне спод?вання для анал?зу дох?дност? та стандартне в?дхилення для анал?зу ризику стало широко поширеним починаючи з 1960-х рок?в. Проте вже тод? були вчен?, як? доводили нев?дпов?дн?сть нормального розпод?лу реальним ринковим даним [7]. В основ? статистичного прогнозування лежить виявлення залежност? м?ж фактором-ознакою ? ознакою-результатом за допомогою р?вняння регрес??. Р?вняння регрес?? можуть бути л?н?йними або нел?н?йними, сама регрес?я – парно? або множинно?. Зазвичай в економ?чних досл?дженнях застосовуються пол?номи не вище третього порядку. Використовувати для визначення тренда пол?номи високих ступен?в недоц?льно, оск?льки отриман? таким чином апроксимуюч? функц?? будуть в?дображати випадков? в?дхилення (що суперечить зм?сту тенденц??)1.2.4 Техн?чний анал?зТехн?чний анал?з – це метод прогнозування фондового ринку, заснований на анал?з? зм?н ц?н у минулому. Техн?чний анал?з включа? велику к?льк?сть метод?в та ?нструмент?в, проте вс? базуються на одному припущенн? – вид?ляючи тренди, анал?зуючи тимчасов? ряди, можна спрогнозувати повед?нку ц?н. Також використову?ться ?нформац?я про обсяги торг?вл? та ?нш? статистичн? дан?. Найчаст?ше методи техн?чного анал?зу застосовуються для анал?зу б?ржових ц?н. Ефективна д?яльн?сть на фондовому ринку вимага? досить точного прогнозування можливо? прибутковост? р?зних операц?й. Техн?чний анал?з був заснований у Х?Х ст. Чарльзом Генр? Доу, ?м’я якого ф?гуру? в назв? в?домого ?ндексу Доу-Джонса. З його сл?в, за л?н?йним граф?ком ц?ни продажу в час? можна в?дстежувати певн? граф?чн? модел?, як? вказують на тенденц?? розвитку ринку [7]. Передус?м техн?чний анал?з припуска?, що рух б?ржових курс?в ц?нних папер?в – результат уявлень ?нвестор?в як про стан самого ем?тенту, так ? про ситуац?ю на фондовому ринку. В?дпов?дно, вивчаючи попит ? пропозиц?ю ц?нних папер?в, динам?ку обсяг?в операц?й з ?х куп?вл?-продажу, динам?ку курс?в, можна виявити певну законом?рн?сть ринкового курсу конкретного ц?нного паперу протягом визначеного пер?оду часу – тренд. На цьому етап? активно використовуються в?дносн? величини, показники динам?ки та граф?чний метод. Тому варто зауважити, що в техн?чному анал?з? використовують два напрями застосування статистичних п?дход?в – граф?чна та математична (статистична) оц?нка. Проте варто в?дзначити, що под?бний под?л ? певною м?рою умовним. Адже р?вень чи л?н?я також ? пох?дними в?д ц?ни ? являють собою ?ндикатор, що наноситься трейдером за допомогою комп’ютерного ол?вця. Традиц?йно до ?нструмент?в статистично? оц?нки включають ?ндикатори, як? розраховуються комп’ютером самост?йно на п?дстав? завдано? формули [8]. А вже ?граф?чн? ?ндикатори? наносяться трейдером на граф?к самост?йно. Граф?чний анал?з – статистичний п?дх?д, у якому припущення стосовно подальшо? повед?нки ц?ни форму?ться на п?дстав? вивчення простих граф?чних елемент?в (л?н?й, р?вн?в, ф?гур). У процес? граф?чного вивчення поточно? динам?ки показник?в, що досл?джуються методами техн?чного анал?зу, вир?шуються так? завдання: визнача?ться характер тенденц?й показника, що вивча?ться; визначаються ?точки розвороту? тренд?в – максимальн? або м?н?мальн? значення анал?зованого показника, п?сля яких тенденц?я зм?ню?ться на протилежну; оц?ню?ться р?вень п?дтримки (л?н?я з’?днання вс?х м?н?мальних значень показника за в?дпов?дними точками розвитку) та р?вень опору ц?ни (аналог?чна л?н?я, побудована за максимальними значеннями); виявля?ться частота ? характер розрив?в ц?ни (види розрив?в: прискорювальний, упов?льнювальний, випереджальний, остр?вний, к?нцевий тощо). Поруч ?з граф?чними методами в техн?чному анал?з? використовують ? статистичний (математичний) метод розрахунку узагальнювальних показник?в. Його суть поляга? в тому, що припущення щодо подальшо? повед?нки ц?ни робиться на п?дстав? оц?нки штучно сформованих числових показник?в. Одним ?з таких показник?в ? ковзне середн?. Анал?з базу?ться на пор?внянн? двох кривих – криво?, що в?дпов?да? наявним фактичним даним та криво? ковзного середнього. У тренд? ведмедя ковзна середня проходить вище криво? фактичних даних, а у тренд? бика – нижче. Перетин граф?к?в ковзно? середньо? та фактичних даних вказу? на зм?ну спрямованост? тренда. Проте п?д час застосування цього методу необх?дно враховувати особливост? ковзно? середньо?: чим б?льший порядок ковзно? середньо?, тим б?льшою м?рою ?? граф?к в?др?зня?ться в?д криво? фактичних значень ц?н; ковзне середн? високого порядку ма? малу чутлив?сть; ковзне середн? низького порядку ма? надм?рно велику чутлив?сть та може давати помилков? сигнали про ц?ни та ?х прогнозну динам?ку. Що стосу?ться прогнозування даних ?нвестиц?йного ринку, то в техн?чному анал?з? будують тренди на основ? регрес?йних оц?нок фактичного ряду динам?ки ц?н на ф?нансов? ?нструменти ?з розрахунком коеф?ц??нта детерм?нац?? (квадрат зм?шано? кореляц??) [7]. 1.2.5 Фундаментальний анал?з Метод прогнозування б?ржово? вартост? ц?нних папер?в заснований на анал?з? виробничих ? ф?нансових показник?в д?яльност? компан??. За допомогою фундаментального анал?зу визначають ф?нансовий стан компан?? та рентабельн?сть ?? д?яльност?. Анал?зу п?ддаються так? ф?нансов? показники, як чистий прибуток, виручка, чиста варт?сть компан??, EBIDA, грошовий пот?к, зобов'язання, виробнич? показники ? розм?р виплачуваних див?денд?в. П?д поняттям “фундаментальнии? анал?з” сл?д розум?ти процес досл?дження ключових фактор?в, як? впливають на курс ц?нного паперу з метою встановлення справедливо?? вартост? активу, ризик?в ?нвестування та оч?кувано?? доходност? для прии?няття рац?ональних управл?нських р?шень. Мета фундаментального анал?зу – визначення справедливо?? вартост? ц?нного паперу та подальшии? мон?торинг для ухвалення в?дпов?дних ?нвестиц?и?них р?шень. Пор?внюючи одержану оц?нку з поточним станом ринку, роблять висновок, наск?льки переоц?нении? чи недооц?нении? цеи? товар [8]. Основнии? об’?кт анал?зу – ф?нансовии? ?нструмент, ц?нн? папери, що обертаються на орган?зованому ринку. Проведене досл?дження фахових джерел засв?дчило, що практично вс? “фундаментальн?” п?дходи до анал?зу ц?нних папер?в ? припущеннями про ?снування на ринку ц?нних папер?в феномену подв?и?ност? “ц?на – варт?сть”, протиставляючи поняттю реальност? поточно?? ринково?? ц?ни акц??? поняття ???? “внутр?шньо?? (д?и?сно??) вартост?”, перв?сно?? щодо ринково?? ц?ни. Фундаментальнии? анал?тик або ?нвестор св?домо, ?нту??тивно або машинально припуска?, що ц?на акц??? чутлива до певного набору фактор?в (пов’язана через внутр?шню варт?сть), як? мають р?зну силу впливу, р?знии? пер?од розкриття, р?зну тривал?сть, може бути випадковою або непрогнозованою. Попри наявн?сть або в?дсутн?сть зворотного зв’язку м?ж акц?ями та ем?тентом, ?нвестора ц?кавить поточна оц?нка р?зниц? м?ж внутр?шньою варт?стю та ринковою ц?ною акц???. Проте зауважимо, що доходн?сть ем?тент?в та ринкова ц?на ??х акц?и? певною м?рою обумовлен? зовн?шн?ми факторами, ? насамперед загальним станом економ?ки та фондового ринку. Джерелом оч?кувано?? доходност? звичаи?них акц?и? ? зростання курсу акц?и?, а не див?дендн? виплати. Реальним стимулом ?нвестування ? р?зниця ц?н у момент куп?вл? та продажу акц?и?. Оск?льки над?и?нии? прогноз довгострокового маи?бутнього ц?н на акц??? неможливии?, важливо не переплатити п?д час ??х куп?вл?. Низька ц?на куп?вл? повинна бути головним фактором безпеки ?нвестиц?и?них вкладень. Прогноз маи?бутнього руху ц?н звичаи?них акц?и? починають з анал?зу минулих коливань показник?в ??х ц?н та доходност?. При тлумаченн? минуло?? динам?ки ц?н та доходност? варто уникати спокуси механ?чно екстраполювати ??х на маи?бутн?. Потр?бно також врахувати вплив наявних ? маи?бутн?х зм?н, тобто сили соц?альних, пол?тичних та економ?чних перетворень, як? здатн? вплинути на р?вень та м?нлив?сть доходност? звичаи?них акц?и?.1.3 ВисновкиУ першому розд?л? було розглянуто поняття фондового ринку та сучасн? методи анал?зу для прогнозування ?ндексу акц?й. Оск?льки активно використовуються два п?дходи до анал?зу ринку: техн?чний ? фундаментальний, то саме ц? методи було розглянуто б?льш детально. Перший з них базу?ться на теор?? Доу, в основ? яко? лежить акс?ома: ?Ц?ни враховують все?, ? в?дпов?дно техн?чний анал?тик використову? т?льки ц?ни активу ? р?зн? ?ндикатори. Фундаментальний анал?з, навпаки, шука? вза?мозв'язок ц?н активу, зовн?шн?х под?й, макроеконом?чних показник?в ? ф?нансово? зв?тност? корпорац?й. Застосування нейронних мереж да? ун?кальну можлив?сть об'?днати ц? два методи. Такий анал?з, на в?дм?ну в?д техн?чного, не ма? н?яких обмежень по характеру вх?дно? ?нформац??. Це можуть ?ндикатори часового ряду, в?домост? про повед?нку ?нших ринкових ?нструмент?в або зовн?шн? под??. Нейронн? мереж? активно використовують ?нвестори, що працюють з великими портфелями, для яких особливо важлив? кореляц?? м?ж р?зними ринками. Поданий матер?ал ? основою для подальшого розум?ння матер?алу, а саме р?зноман?тних арх?тектур нейронних мереж, як? буде розглянуто в наступному розд?л?.РОЗД?Л 2. НЕЙРОНН? МЕРЕЖ? ДЛЯ ПРОГНОЗУВАННЯ ?НДЕКСУ АКЦ?Й2.1 Поняття нейронних мережДля моделювання економ?чних процес?в застосовують багато метод?в. Це можуть бути традиц?йн? математичн? методи, а також сучасн? методи, до яких в?дносять нейронн? мереж?. Нейронн? мереж? здатн? вир?шувати завдання, як? не п?д силу традиц?йним методам. Це поясню?ться тим, що нейронн? мереж? можуть ефективно працювати з неповними, зашумленими, викривленими даними. Важливою перевагою нейромережевих технолог?й перед традиц?йними методами ? значне п?двищення швидкод??? процесу, можлив?сть навчання неи?ронно?? мереж? за еталонними зразками, а також зм?на тополог??? мереж? [9]. Поняття нейронно? мереж? походить з б?олог??. В б?олог?? нейронна мережа – мережа, що склада?ться з б?олог?чних нейрон?в, як? пов’язан? та функц?онально об’?днан? в нервов?и? систем?. Нейромережа – це спрощена модель людського мозку, яка усп?шно використову?ться для вир?шення найр?зноман?тн?ших задач. В економ?ц? ?нтерес до використання нейромережевих технолог?й росте з кожним днем. Це пов’язано з тим, що штучн? нейронн? мереж? навчилися вир?шувати багато прикладних ф?нансово-економ?чних задач. Нейронн? мереж? можуть обробляти колосальн? потоки даних, без чого дуже складно, а часом ? неможливо адекватно оц?нити ситуац?ю на ринку ? прии?няти в?рне р?шення. Все це св?дчить про необх?дност? подальшого вивчення, розвитку ? впровадження апарату штучних неи?ронних мереж на практиц? [9]. Неи?ронн? мереж? доц?льно використовувати для вир?шення погано формал?зованих завдань, як? вимагають трудом?стких обчислень. До таких завдань в?дноситься прогнозування. Це першии? клас економ?чних задач, як? можна вир?шити, застосовуючи штучн? неи?ронн? мереж?. Саме ??х здатн?сть до узагальнення ? виявлення прихованих залежностеи? усередин? елемент?в мереж? дозволя? впоратися з под?бними завданнями. Прикладами можуть служити: прогнозування р?вня попиту на новии? товар або послугу, прогнозування обсяг?в продаж?в, прогнозування повед?нки кл??нт?в, анал?з над?и?ност? ф?рми ? визначення и?мов?рност? ???? банкрутства, передбачення зм?ни вартост? акц?и? в певнии? пер?од часу, прогнозування доц?льност? впровадження ?нновац?и?них проект?в ? ??х економ?чно?? ефективност?, оц?нка платоспроможност? кл??нта ? ризику надання и?ому кредиту. Наступним типом завдань, для вир?шення яких можуть бути використан? штучн? неи?ронн? мереж?, ? класиф?кац?я об'?кт?в економ?чного анал?зу. Наприклад, класиф?кац?я кл??нт?в за ступенем ризику надання ??м позики. Розглянувши основн? типи економ?чних завдань, як? можна вир?шити за допомогою апарату штучних неи?ронних мереж, ми можемо звернутися до м?жнародно?? практики, ? подивитися, як деяк? компан??? застосовують неи?ронн? мереж? в сво??и? д?яльност?. Штучна неи?ронна мережа – це система, що склада?ться з багатьох простих обчислювальних елемент?в (неи?рон?в), певним чином пов'язаних м?ж собою. Наи?б?льш поширеними ? багатошаров? мереж?, в яких неи?рони об'?днан? в шари. Шар, в свою чергу – це сукупн?сть неи?рон?в, на як? в кожнии? такт часу паралельно надходить ?нформац?я в?д ?нших неи?рон?в мереж?, тобто виходи неи?рон?в з'?днуються з входами ?нших неи?рон?в, так сигнал в?д одного елемента переда?ться ?ншим. П?сля того, як визначено к?льк?сть шар?в ? число елемент?в в кожному з них, мережу потр?бно навчити, тобто визначити значення для ваг?в мереж?, як? м?н?м?зували б помилку прогнозу, що вида?ться мережею [10]. Помилка для конкретно?? конф?гурац??? мереж? визнача?ться шляхом прогону через мережу вс?х наявних спостережень ? пор?вняння вих?дних значень, що реально видаються, ?з бажаними (ц?льовими) значеннями. По сут?, процес навчання ? п?дгонка модел?, яка реал?зу?ться мережею, до наявних початкових даних. Типовии? приклад роботи неи?ронно?? мереж? показании? на рисунку 2.1. Вх?днии? шар призначении? просто для введення значень вх?дних зм?нних. Кожен з прихованих ? вих?дних неи?рон?в з'?днании? з ус?ма елементами попереднього шару. Можна було б розглядати мереж?, в яких неи?рони пов'язан? т?льки з декотрими з неи?рон?в попереднього шару; однак, для б?льшост? випадк?в краще надавати перевагу мережам з повною системою зв'язк?в. Рисунок 2.1. Схема неи?ронно?? мереж?На сьогодн?шн?и? момент ?сну? к?лька десятк?в структур неи?ронних мереж. Оск?льки вс? штучн? неи?ронн? мереж? базуються на концепц??? неи?рон?в, з'?днань та передатних функц?и?, ?сну? под?бн?сть м?ж р?зними структурами неи?ронних мереж. Б?льш?сть зм?н походить з р?зних правил навчання. Для процесу навчання необх?дно мати модель зовн?шнього середовища, у як?и? функц?ону? неи?рона мережа – потр?бну для вир?шення задач? ?нформац?ю. Також, необх?дно визначити як модиф?кувати вагов? параметри мереж?. Алгоритм навчання означа? процедуру, у як?и? використовуються правила навчання для налаштування ваг. ?снують три загальн? парадигми навчання: ?з вчителем?, ?без вчителя? (самонавчання) ? зм?шана [10]. Навчити неи?ронну мережу – значить, пов?домити ??и?, що ми хочемо в?д не?? отримати. Неи?ронна мережа може навчатися з вчителем або без нього. П?сля багаторазового пред'явлення приклад?в ваги неи?ронно?? мереж? стаб?л?зуються, причому неи?ронна мережа да? правильн? в?дпов?д? на вс? (або маи?же вс?) приклади з бази даних. У такому випадку говорять, що ?неи?ронна мережа вивчила вс? приклади?, ?неи?ронна мережа навчена?, або ?неи?ронна мережа натренована?. У програмних реал?зац?ях можна бачити, що в процес? навчання величина помилки (сума квадрат?в помилок по ус?х виходах) поступово зменшу?ться. Коли величина помилки досяга? нуля або прии?нятного малого р?вня, тренування зупиняють, а отриману неи?ронну мережу вважають натренованою ? готовою до застосування нових даних. 2.2 Нейронн? мереж? для анал?зу фондового ринку Одн??ю з досить значимих областеи? застосування неи?ронних мереж у ф?нансов?и? сфер? ? прогнозування фондового ринку. Стандартн? методи, як? не використовують неи?ронн? мереж?, ?рунтуються на жорсткому ф?ксованому набор? ?правил гри?, як? з часом втрачають свою актуальн?сть через зм?ни умов торг?в на фондов?и? б?рж?. До того ж, системи такого типу ? занадто пов?льними для ситуац?и?, як? вимагають в?д треи?дера або учасника торг?в митт?вого прии?няття р?шень. Таким чином, застосування неи?ронних мереж ? досить потужним методом прогнозування, якии? дозволя? в?дтворювати досить складн? залежност?. Неи?ронн? мереж? для прогнозування фондового ринку мають ряд наступних переваг – простота у використанн?, так як неи?ронн? мереж? навчаються на прикладах. Користувач неи?ронно?? мереж? п?дбира? представницьк? дан?, а пот?м запуска? алгоритм навчання, якии? автоматично сприи?ма? структуру даних. Неи?ронн? мереж? приваблив? з ?нту??тивно?? точки зору, тому що вони заснован? на прим?тивн?и? б?олог?чн?и? модел? нервових систем. В маи?бутньому розвиток таких неи?роб?олог?чних моделеи? може привести до створення д?и?сно мислячих комп'ютер?в [11]. Передбачення ф?нансових часових ряд?в – необх?днии? елемент будь-яко?? ?нвестиц?и?но?? д?яльност?. Сама ?дея ?нвестиц?и? з метою отримання доходу в маи?бутньому заснована на ?де?? прогнозування маи?бутнього. Прогноз ф?нансових часових ряд?в ? основою д?яльност? вс???? ?ндустр??? ?нвестиц?и? – вс?х б?рж ? позаб?ржових систем торг?вл? ц?нними паперами [12]. Отже, для як?сного прогнозу необх?дно використовувати як?сно п?дготовлен? дан?, а також неи?ропакет з б?льшою функц?ональн?стю. Для роботи з неи?ромережами призначена велика к?льк?сть спец?ал?зованих програм, одн? з яких б?льш ун?версальн?, ?нш? – вузькоспец?ал?зован?. Нейронн? мереж? – це математичн? модел?, а також ?х програмн? або апаратн? реал?зац??, як? побудован? за принципом орган?зац?? та функц?онування б?олог?чних нейронних мереж – мереж нервових кл?тин живого орган?зму. Даний терм?н виник при вивченн? процес?в, що прот?кають в мозку при мисленн? та при спроб? змоделювати ц? процеси. Згодом ц? модел? стали використовувати в практичних ц?лях, як правило, в задачах прогнозування. Нейронн? мереж? не програмуються в звичному сенс? цього слова, вони навчаються. Можлив?сть навчання – головна перевага нейронних мереж перед традиц?йними алгоритмами. Техн?чно навчання поляга? в знаходженн? коеф?ц??нт?в зв'язк?в м?ж нейронами. В процес? навчання нейронна мережа здатна виявляти складн? залежност? м?ж вх?дними даними ? вих?дними, а також виконувати узагальнення. Зд?бност? нейронно? мереж? до прогнозування безпосередньо випливають з ?? здатност? до узагальнення ? вид?лення прихованих залежностей м?ж вх?дними та вих?дними даними. П?сля навчання мережа здатна передбачити майбутн? значення посл?довност? на основ? дек?лькох попередн?х значень .Сл?д зазначити, що прогнозування можливо т?льки тод?, коли попередн? зм?ни повною м?рою визначають майбутн? [13].2.2.1 Багатошарова нейронна мережаНейронн? мереж? можна в?днести до метод?в техн?чного анал?зу, тому що вони теж намагаються виявити законом?рност? в розвитку часового ряду, навчаючись на його ?сторичних даних. Вони здатн? будувати оптимальну модель прогнозування. До того ж вони здатн? будувати адаптивн? модел?, яка зм?ню?ться разом з ринком, що особливо важливо для сучасних високо динам?чних ф?нансових ринк?в.Ф?нансов? часов? ряди ? сильно зашумленими, тому особливу увагу сл?д прид?лити ?х попередн?й обробц?. Зм?ни котирувань акц?й ? д?йсно значущими для прогнозування, тому на вх?д гнйронно? мереж? п?сля попередньо? оброьки будемо подавати ряд в?дсоткових зм?н котирувань.Застосування нейронних мереж в ф?нансах базу?ться на одному фундаментальному припущенн? – розп?знавання зам?ню? прогнозування. Нейромережа не передбача? майбутнього, вона намага?ться знайти схожу ситуац?ю, що уже траплялася в минулому ? максимально точно в?дтворити реакц?ю ринку.У деяких випадках не так важливо передбачення конкретних значень прогнозовано? зм?нно?, як передбачення значних зм?н в ?? повед?нц?. Таке завдання виника?, наприклад, при прогноз? моменту, коли поточний напрямок руху ринку (тренд) зм?нить св?й напрямок на протилежний.Точн?сть прогнозу, необх?дна для конкретно? проблеми, ма? великий вплив на що прогнозу? систему. Також значний вплив на прогноз ма? навчальна виб?рка [14].У машинному навчанн? под?ляють два основних п?дходи: навчання з учителем ? навчання без учителя. П?д час навчання без вчителя нейронна мережа не отриму? н?яких пояснень до того, що пода?ться ?й на вх?д. Вона просто вид?ля? т? статистичн? законом?рност?, що присутн? у вх?дному потоц? даних. На в?дм?ну в?д цього навчання з учителем передбача?, що для частини вх?дних образ?в – навчально? виб?рки нам в?домо, який вих?дний результат ми хочемо отримати. В?дпов?дно завданням ? налаштувати нейронну мережу, щоб зрозум?ти законом?рност?, як? пов'язують вх?дн? ? вих?дн? дан?. У 1958 роц? Френк Розенблат описав конструкц?ю, названу ?м персептроном, яка здатна до навчання з учителем. За Розенблатом персептрон склада?ться з трьох шар?в нейрон?в. Перший шар – це сенсорн? елементи, як? задають вх?дн? дан?. Другий шар – асоц?ативн? елементи. ?х зв'язки з сенсорним шаром жорстко задан? ? визначають перех?д до б?льш загально?, н?ж на сенсорному шар?, асоц?ативно? картини опису.Навчання персептрона зд?йсню?ться за рахунок зм?ни ваг нейрон?в третього реагуючого шару. Мета навчання – змусити персептрон правильно класиф?кувати подаються образи. Нейрони третього шару працюють як порогов? суматори. В?дпов?дно ваги кожного з них визначають параметри яко?сь г?перплощини. Якщо ? л?н?йно-розд?льн? вх?дн? сигнали, то вих?дн? нейрони можуть виступати як ?х класиф?катори [15].Якщо Y – це вектор реального виходу персептрона а, D – вектор, який ми оч?ку?мо отримати, то про як?сть роботи нейронно? мереж? можна визначити за допомогою вектора помилки:E=D-YЯкщо метою ? м?н?м?зувати середньоквадратичну помилку, то можна вивести так зване дельта-правило модиф?кац?? ваг:ωijn+1=ωijn+ηxj(n)ei(n)При цьому початковим наближенням можуть виступати нульов? ваги. Це правило Хебба, яке застосову?ться до персептрона (рис. 2.2). INCLUDEPICTURE "" \* MERGEFORMATINET INCLUDEPICTURE "" \* MERGEFORMATINET Рисунок 2.2 – Структура багатошарового персептрона з п'ятьма входами, трьома нейронами в прихованому шар? ? одним нейроном вих?дного шаруДовгий час було незрозум?ло, як можна навчати багатошаровий персептрон. Основний метод – метод зворотного поширення помилки був описаний т?льки в 1974 роц?. Метод склада?ться з двох проход?в: прямого ? зворотного. При прямому проход? пода?ться навчальний сигнал ? розрахову?ться активн?сть вс?х вузл?в мереж?, включаючи активн?сть вих?дного шару. В?дн?манням отримано? активност? з того, що було потр?бно отримати, визнача?ться сигнал помилки. При зворотному проход? сигнал помилки поширю?ться в зворотному напрямку, в?д виходу до входу. При цьому синаптичн? ваги налаштовуються з метою м?н?м?зац?? ц??? помилки.Важливо звернути увагу на той факт, що в багатошаровому персептрона ?нформац?я обробля?ться в?д р?вня до р?вня. При цьому кожен шар вид?ля? св?й наб?р ознак, властивих вх?дному сигналу. Це створю? певн? аналог?? з тим, як перетворю?ться ?нформац?я м?ж зонами кори головного мозку [15].2.2.2 Згорткова нейронна мережаРобота згортково? нейронно? мереж? зазвичай ?нтерпрету?ться як перех?д в?д конкретних особливостей зображення до б?льш абстрактним деталям, ? дал? до ще б?льш абстрактним деталей аж до вид?лення понять високого р?вня. При цьому мережа самоналаштову?ться ? виробля? сама необх?дну ??рарх?ю абстрактних ознак, ф?льтруючи незначн? детал? ? вид?ляючи ?стотне [16].Под?бна ?нтерпретац?я носить ?люстративний характер. Фактично ?ознаки?, що виробляються мережею, малозрозум?л? ? важк? для ?нтерпретац?? тому в практичних системах не рекоменду?ться намагатися зрозум?ти зм?ст цих ознак або намагатися ?х ?п?дправити?, зам?сть цього рекоменду?ться вдосконалити саму структуру ? арх?тектуру мереж?, щоб отримати кращ? результати. Так, ?гнорування системою якихось ?стотних явищ може говорити про те, що або не вистача? даних для навчання, або структура мереж? ма? недол?ки ? система не може виробити ефективних ознак для даних явищ.У звичайному персептрон?, який представля? собою повнозв'язну нейронну мережу, кожен нейрон пов'язаний з ус?ма нейронами попереднього шару, причому кожний зв'язок ма? св?й персональний ваговий коеф?ц??нт. У згортков?й нейронно? мереж? в операц?? згортки використову?ться лише обмежена матриця ваг?в невеликого розм?ру. П?сля кожного зсуву форму?ться сигнал активац?? для нейрона наступного шару з аналог?чною позиц??ю. Тобто для р?зних нейрон?в вих?дного шару використовуються одна ? та ж матриця ваг, яку називають ядром згортки. ?? ?нтерпретують як граф?чне кодування яко?-небудь ознаки, наприклад, наявн?сть похило? л?н?? п?д певним кутом. Тод? наступний шар, що вийшов в результат? операц?? згортки такою матрицею ваг?в, показу? наявн?сть дано? ознаки в оброблюваному шар? ? ?? координати, формуючи карту ознак. В згортков?й нейронн?й мереж? наб?р ваг не один, а масив, що коду? елементи зображення. При цьому так? ядра згортки не закладаються досл?дником заздалег?дь, а формуються самост?йно шляхом навчання мереж? класичним методом зворотного поширення помилки. Прох?д кожним набором ваг форму? св?й власний прим?рник карти ознак, роблячи нейронну мережу багатоканальною (багато незалежних карт ознак на одному шар?). Також сл?д зазначити, що при перебор? шару матрицею ваг ?? пересувають зазвичай не на повний крок (розм?р ц??? матриц?), а на невелику в?дстань [16]. Операц?я субд?скрет?зац?? викону? зменшення розм?рност? сформованих карт ознак. У дан?й арх?тектур? мереж? вважа?ться, що ?нформац?я про факт наявност? шуканого ознаки важлив?ше точного знання його координат, тому з к?лькох сус?дн?х нейрон?в карти ознак вибира?ться максимальний ? прийма?ться за один нейрон ущ?льнено? карти ознак меншо? розм?рност?. За рахунок ц??? операц??, кр?м прискорення подальших обчислень, мережа ста? б?льш ?нвар?антною до масштабу вх?дного зображення. INCLUDEPICTURE "" \* MERGEFORMATINET Рисунок 2.3 – Арх?тектура згортково? нейронно? мереж?Розглянемо типову структуру згортково? нейронно? мереж? б?льш детально. Мережа склада?ться з велико? к?лькост? шар?в: Спочатку ?де шар згортки – це основний блок згортково? нейронно? мереж?. Шар згортки включа? в себе для кожного каналу св?й ф?льтр, ядро згортки якого обробля? попередн?й шар за фрагментами (сума матричного добутка для вс?х фрагмент?в). Вагов? коеф?ц??нти ядра згортки (невелико? матриц?) нев?дом? ? встановлюються в процес? навчання. Особлив?стю згорткового шару ? пор?вняно невелика к?льк?сть параметр?в, яка встановлю?ться при навчанн?. Наступний шар – активац?йний. Скалярний результат кожно? згортки потрапля? на функц?ю активац??, яка ? якоюсь нел?н?йною функц??ю. Шар активац?? зазвичай лог?чно пов'язують з шаром згортки (вважають, що функц?я активац?? вбудована в шар згортки). Функц?я нел?н?йност? може бути вибрана анал?тиком, традиц?йно для цього використовували функц?? типу г?пербол?чного тангенсу fx=tanhx або сигмо?ди fx=(1+e-x)-1. Однак в останн? роки була запропонована ? досл?джена нова функц?я активац?? — ReLU (Rectified linear unit), яка дозволила сутт?во прискорити процес навчання ? одночасно спростити обчислення (за рахунок простоти само? функц??), що означа? блок л?н?йно? ректиф?кац??, що обчислю? функц?ю fx=max?(0, x). Тобто по сут? це в?дкиидання в?д’?мнох частини скалярно? величини. На даний момент ця функц?я ? ?? модиф?кац?? Noisy ReLU та Leaky ReLU ? найб?льш часто використовуваними функц?ями активац?? в глибоких нейромережах, особливо в згорткових. Дал? ?де шар субдискриетизац??. Шар субдискриетизац?? явля? собою нел?н?йне ущ?льнення карти ознак, при цьому група п?ксел?в (зазвичай розм?ру 2 × 2) ущ?льню?ться до одного п?кселя, проходячи нел?н?йне перетворення. Найб?льш розповсюджена при цьому функц?я максимуму. Перетворення застосовуються до неперес?чних прямокутник?в або квадрат?в, кожен з яких зменшк?ться до одного п?кселя, при цьому вибира?ться п?ксель, що ма? максимальне значення. Операц?я субдискриетизац?? дозволя? ?стотно зменшити просторовий обсяг зображення. Субдискриетизац?я ?нтерпрету?ться так: якщо на попередн?й операц?? згортки вже були виявлен? деяк? ознаки, то для подальшо? обробки наст?льки детальне зображення вже не потр?бно, ? воно ущ?льню?ться до менш детального. До того ж ф?льтрац?я вже непотр?бних деталей допомага? уникнути перенавчання. Шар субдискриетизац??, як правило, вставля?ться п?сля шару згортки перед шаром наступно? згортки.Кр?м субдискриетизац?? з функц??ю максимуму можна використовувати ? ?нш? функц?? – наприклад, середнього значення або L2-нормування. Однак практика показала переваги саме субдискриетизац?? з функц??ю максимуму, який включа?ться в типов? системи [17].З метою б?льш агресивного зменшення розм?ру одержуваних уявлень, все част?ше знаходять поширення ?де? використання менших ф?льтр?в або повна в?дмова в?д шар?в субдискриетизац??. П?сля к?лькох проходжень згортки зображення ? ущ?льнення за допомогою субдискриетизац?? система перебудову?ться в?д конкретно? с?тки п?ксел?в з високою розд?льною здатн?стю до б?льш абстрактним картками ознак, як правило на кожному наступному шар? зб?льшу?ться число канал?в ? зменшу?ться розм?рн?сть зображення в кожному канал?. Зрештою залиша?ться великий наб?р канал?в, що збер?гають невелику к?льк?сть даних (нав?ть один параметр), як? ?нтерпретуються як найб?льш абстрактн? поняття, що виявлен? з вих?дного зображення.Ц? дан? об'?днуються ? передаються на звичайну повнозв'язну нейронну мережу, яка теж може складатися з дек?лькох шар?в. При цьому повнозв'язн? шари вже втрачають просторову структуру п?ксел?в ? мають пор?вняно невелику розм?рн?сть (по в?дношенню до к?лькост? п?ксел?в вих?дного зображення).Найб?льш простим ? популярним способом навчання ? метод навчання з вчителем (на маркованих даних) – метод зворотного поширення помилки ? його модиф?кац??. Але ?снують методи навчання згортково? мереж? без вчителя. Наприклад, ф?льтри операц?? згортки можна навчити окремо ? автономно, подаючи на них випадков? шматочки вих?дних зображень навчально? виб?рки ? застосовуючи для них будь-який в?домий алгоритм навчання без вчителя. В?дпов?дно, наступний шар згортки мереж? буде навчатися на шматочках в?д уже навченого першого шару мереж?. Також можна скомб?нувати згорткову нейронну мережу з ?ншими технолог?ями глибинного навчання. Для пол?пшення роботи мереж?, п?двищення ?? ст?йкост? ? запоб?гання перенавчання застосову?ться також виключення (дропаут) – метод тренування мереж? з викиданням випадкових одиничних нейрон?в [18].2.2.3 Мережа довго? короткочасно? пам’ят? Мережа довго? короткочасно? пам’ят? – р?зновид арх?тектури рекурентних нейронних мереж, запропонована в 1997 роц? Сепп? Хохрайтером ? Юргеном Шм?дхубер. Як ? б?льш?сть рекурентних нейронних мереж, LSTM-мережа ? ун?версальною в тому сенс?, що при достатн?й к?лькост? елемент?в мереж? вона може виконати будь-яке обчислення, для якого необх?дна в?дпов?дна матриця ваг, яка може розглядатися як програма. На в?дм?ну в?д традиц?йних рекурентних нейронних мереж, LSTM-мережа добре пристосована до навчання на задачах класиф?кац??, обробки ? прогнозування часових ряд?в у випадках, коли важлив? под?? розд?лен? часовими лагами з невизначеною тривал?стю ? кордонами. В?дносна несприйнятлив?сть до тривалост? тимчасових розрив?в да? LSTM перевагу по в?дношенню до альтернативних рекурентним нейронних мереж, прихованих моделей Маркова ? ?нших методах навчання для посл?довностей в р?зних сферах застосування [19]. LSTM-мережа – це штучна нейронна мережа, яка м?стить LSTM-модул? зам?сть або окр?м ?нших мережевих модул?в. LSTM-модуль – це рекурентний модуль мереж?, який здатний запам'ятовувати значення як на коротк?, так ? на довг? пром?жки часу. Ключем до дано? можливост? ? те, що LSTM-модуль не використову? функц?ю активац?? всередин? сво?х рекурентних компонент?в. Таким чином, збережене значення не розмива?ться в час?, ? град??нт або штраф не зника? при використанн? методу зворотного поширення помилки при тренуванн? мереж?.LSTM-модул? часто групуються в ?блоки?, що м?стять р?зн? LSTM-модул?. Под?бний пристр?й характерно для ?глибоких? багатошарових нейронних мереж ? сприя? виконанню паралельних обчислень ?з застосуванням в?дпов?дного обладнання. LSTM-блоки м?стять три або чотири ?вентиля?, як? використовуються для контролю поток?в ?нформац?? на входах ? на виходах пам'ят? даних блок?в. Ц? вентил? реал?зован? у вигляд? лог?стично? функц?? для обчислення значення в д?апазон? [0; 1]. Множення на це значення використову?ться для часткового допуску або заборони потоку ?нформац?? всередину ? назовн? пам'ят?. Наприклад, ?вх?дний вентиль? контролю? м?ру входження нового значення в пам'ять, а ?вентиль забування? контролю? м?ру збереження значення в пам'ят?. ?Вих?дний вентиль? контролю? м?ру того, в як?й м?р? значення, що знаходиться в пам'ят?, використову?ться при розрахунку вих?дний функц?? активац?? для блоку. В деяких реал?зац?ях вх?дний вентиль ? вентиль забування вт?люються у вигляд? ?диного вентиля. ?дея поляга? в тому, що старе значення сл?д забувати тод?, коли з'явиться нове значення, яке ? кращим (рис 2.4).Рисунок 2.4 – LSTM-блокВаги в LSTM-блоц? (W ? U) використовуються для завдання напряму оперування вентил?в. Ц? ваги визначен? для значень, як? подаються в блок (включаючи xt? вих?д з попереднього тимчасового кроку )ht-1для кожного з вентил?в. Таким чином, LSTM-блок визнача?, як розпоряджатися сво?ю пам'яттю як функц??ю цих значень, ? тренування ваг дозволя? LSTM-блоку вивчити функц?ю, що м?н?м?зувала втрати. LSTM-блоки зазвичай тренують за допомогою методу зворотного поширення помилки в час? [20].2.3 ВисновкиУ даному розд?л? було розглянут? нейронн? мереж?, як метод прогнозування економ?чних процес?в. Було визначено, що нейронн? мереж? найкраще з ус?х метод?в вир?шують погано формал?зован? завдання за допомогою здатност? до узагальнення ? виявлення прихованих залежностей усередин? елемент?в мереж?. Неи?ронн? мереж? для прогнозування фондового ринку мають ряд наступних переваг – простота у використанн?, так як неи?ронн? мереж? навчаються на прикладах. Користувач неи?ронно?? мереж? п?дбира? представницьк? дан?, а пот?м запуска? алгоритм навчання, якии? автоматично сприи?ма? структуру даних. Також було наведено огляд арх?тектур нейронних мереж, як? будуть реал?зован? в третьому розд?л? – багатошарову нейронну мереж?, згортокову нейронну мережу та мережу з довгою короткочасною пам’яттю. Багатошарова нейронна мережа усп?шно застосову?ться, коли важлив?ше передбачити значн? зм?ни в повед?нц? зм?нно?, ан?ж ?? конкретне значення. Навчання багатошарово? нейронно? мереж? за рахунок того, що для частини вх?дних образ?в – навчально? виб?рки нам в?домо, який вих?дний результат ми хочемо отримати. В?дпов?дно завданням ? налаштувати нейронну мережу, щоб зрозум?ти законом?рност?, як? пов'язують вх?дн? ? вих?дн? дан?.Згортков? нейронн? мереж? застосовуються досить широко ? в р?зних областях. Першим ?, по сут?, найб?льш трив?альним завданням, яке навчилися вир?шувати за допомогою згорткових нейронних мереж, стала класиф?кац?я.?Згорткова нейронна мережа за рахунок застосування спец?ально? операц?? – власне згортки – дозволя? водночас зменшити к?льк?сть ?нформац??, що збер?га?ться в пам'ят?, за рахунок чого краще та швидше справля?ться з поставленою задачею.Було розглянуто специф?ку застосування нейромереж з довгою короткочасною пам’яттю у задачах прогнозування ф?нансових актив?в. Для реал?зац?? була обрана саме арх?тектура ?з довгою короткостроковою пам’яттю через те, що при прогнозуванн? фонових ринк?в контекстн? залежност? у часових рядах зазвичай розташован? далеко одна в?д одно? ? застосування звичайних нейромереж не враховувало би ?х.РОЗД?Л 3. РЕАЛ?ЗАЦ?Я НЕЙРОННО? МЕРЕЖ? ТА АНАЛ?З РЕЗУЛЬТАТ?В 3.1 Виб?р засоб?в для програмно? реал?зац?? На даний час для алгоритм?в глибинного навчання розроблено багато в?дкритих б?бл?отек. Дипломна робота була реал?зована в середовищ? Colaboratory мовою Python. Реал?зац?я нейронних мереж була зд?йснена за допомогою нейромережево? б?бл?отеки Keras. Для ман?пулювання даними та ?хнього анал?зу були використан? б?бл?отеки Pandas ? Numpy. Для в?зуал?зац?? даних була використана б?бл?отека Matplotlib. Keras – в?дкрита нейромережева б?бл?отека, написана мовою Python. Вона здатна працювати поверх Deeplearning4, TensorFlow та Theano. Спроектовану для уможливлення швидких експеримент?в з мережами глибинного навчання, ?? зосереджено на тому, щоби вона була м?н?мальною, модульною та розширюваною. Ця б?бл?отека м?стить численн? реал?зац?? широко вживаних блок?в нейронних мереж, таких як шари, ц?льов? та передавальн? функц??, оптим?затори та безл?ч ?нших ?нструмент?в для спрощення роботи ?з зображеннями та текстом.Нейронн? мереж? ? досить гнучкими моделями, а зничить ?х можна оптим?зувати п?д вир?шення р?зноман?тних задач. Модиф?кац?? модел? спрямован? на п?дв?щення ефективност? роботи мереж? можуть включати експерименти з арх?тектурою нейронно? мереж?, типом навчання, а також з обробкою вх?дн?х даних. 3.2 Обробка вх?дних данихПершим та одним з найважлив?ших етап?в навчання нейронно? мереж? ? зб?р даних, як? сформують навчальну множину. Навчальн? множини повинн? бути досить великими, щоб м?стити всю необх?дну ?нформац?ю для виявлення важливих особливостей ? зв'язк?в. Але ? навчальн? приклади повинн? м?стити широке р?зноман?ття даних. Перед тим як навчати нейронну мережу необх?дно п?дготувати дан?. Зазвичай п?дготовка даних ? найб?льш довгим та трудом?стким процесом. Знання основних принцип?в обробки та п?дготовки даних ? не менш важливими, н?ж знання нейромережевих алгоритм?в. Використовуючи нейромережев? б?бл?отеки, у анал?тика нема? потреби самост?йно програмувати алгоритм, проте для вир?шення прикладних задач необх?дним навиком ? правильна обробка та первинний анал?з вх?дних даних. Питання обробки вх?дних даних ? надзвичайно важливим ще й тому, що при прогнозуванн? ф?нансовому анал?тику доводится мати справу з великими масивами даних. Незважаючи на значний прогрес у сфер? ?нфомац?йних технолог?й, обчислювальна потужн?сть б?льшост? сучасних комп’тер?в ? обмеженим ресурсом. Далеко не завжди у анал?тика ? доступ до обчислювальних машин, як? здатн? за обмежений час обробити необмежен? обсяги ?нформац??. Якщо розглядати ?ндекси акц?й максимально детально, то можна прийти до висновку, що нав?ть на перший погляд незначна под?я може мати сутт?вий вплив на ц?ну. При цьому необх?дно пам’ятати, що в епоху глобал?зац?? незначна под?я чи зм?на параметру може кор?нним чином влинути на повед?нку вс??? динам?чно? системи. З ?ншого боку розвиток пост?ндустр?ального сусп?льства призв?в до того, що ?нформац?йн? потоки м?стять дуже багато шуму, тобто ?нформац??, яка не ма? жодно? ц?нност?. Тому необх?дно прид?лити особливу увагу попередн?й обробц? та кодуванн? ?нформац??. В якост? вх?дних даних будемо використовувати ц?ни акц?й компан?? Apple за останн? 5 рок?в (01/05/2014 – 01/05/2019). Побуду?мо граф?к, використовуючи б?бл?отеку Matplotlib (рис. 3.1).Рисунок 3.1 – Граф?к зм?ни ц?ни акц?й компан?? AppleДаний граф?к ма? вигляд випадкового процесу, проте ми будемо намагатися вир?шити задачу прогнозування. Задачу прогнозування необх?дно описати з точки зору задач? машинного навчання. Ми можемо передбачити рух ц?ни акц?й на ринку – вверх чи вниз, вир?шуючи задачу б?нарно? класиф?кац??. В задач? класиф?кац?? ми беремо на вх?д певний пром?жок часового ряду(наприклад 30 дн?в) ? намага?мося передбачити рух ц?ни наступного дня. Основна проблема ф?нансових ряд?в поляга? в тому, що вони не стац?онарн?. Тобто ?хн? характеристики – математичне спод?вання, дисперс?я зм?нюються на пром?жку з часом. 3.3 Реал?зац?я модел? на приклад? ц?ни акц?й компан?? AppleАле якщо детально розглянути задачу класиф?кац??, то нас ц?кавить виключно рух вниз чи вверх. Тому будемо використовувати в?дсоткову зм?ну ц?ни наступного дня. Розд?лимо наш? дан? на навчальну та тренувальну виб?рки. В?зьмемо 80% пром?жк?в для навчання ? останн? 20% для перев?рки роботи нейронно? мереж?. В результат? для навчання нейронно? мереж? отрима?мо так? пари. X, Y : ц?ни в момент закриття ринку за 30 дн?в та [0, 1] чи [1, 0] в залежност? в?д того виросла чи впала ц?на для б?нарно? класиф?кац??. 3.3.1 За допомогою багатошарово? нейронно? мереж?За базову модель в?зьмемо багатошаровий персептрон. Реал?зу?мо нейронну мережу, яка м?стить 3 шари. Вх?дний шар м?стить 30 нейрон?в перший прихований шар м?стить 64 нейрони. Пот?м використову?мо BatchNormalization. Це метод п?двиення швидкост?, продуктивност? та стаб?льност? штучних нейронних мереж. Активац?йною функц??ю буде LeakyReLU. Це функц?я ReLU з “витоком”. LeakyReLU ? спробою вир?шити нестаб?льн?сть та проблему виходу з ладу звичайно? ReLU (рис 3.2). Рисунок 3.2 – Пор?вняння ReLU та LeakyReLUФункц?я для LeakyReLU ма? вигляд fx=αx при x<0 и fx=αx при x ≥0, где α – мала константа. ReLU ма? формулу fx=max?(0, x) ? реал?зу? простий пороговий перех?д в нул?. Для регуляризац?? будемо використовувати Dropout. Це метод регуляризац?? штучних нейронних мереж, призначений для запоб?гання перенавчання мереж?. Суть методу поляга? в тому, що в процес? навчання вибира?ться шар, з якого випадковим чином обира?ться певна к?льк?сть нейрон?в, як? виключаються з подальших обчислень. Такий прийом покращу? ефективн?сть навчання ? як?сть результату. Б?льш навчен? нейрони отримують в мереж? б?льшу вагу. Вих?дний шар матиме два нейрони. Дал? нам необх?дно визначити функц?ю помилки та алгоритм оптим?зац??. Будемо використовуваи оптим?затор Adam з довжиною кроку 0,001. Для задач? класиф?кац?? в параметр loss будемо передавати перехресну ентроп?ю – ‘categorical_crossentropy’. За допомогою Keras ми можемо контролювати процес навчання, наприклад зменшувати крок град??нтного спуску, якщо результати не покращуються. Для цього використову?мо ReduceLROPlateau, який ми додали як колбек в навчання модел?. Так? модел? необ?х?дно навчати 100-150 епох. Якщо ж ми будемо навчати на 5-10 епохах, то скор?ше за все не отрима?мо достатньо? точност?, аби стверджувати, що модель навчилась знаходити законом?рност?. Якщо провести анал?з на тренувальн?й виб?рц? можна зробити висновок, що частина даних була для одного паттерну, наприклад для зростання, а ?нша для спадання. Якщо ж точн?сть буде б?льше 53% ми можемо говорити про те, що модель навчилася знаходити ознаки. Надто висока точн?сть на даних про ц?ну акц?й може св?дчити про перенавчання модел?. П?сля зак?нчення навчання виводимо граф?ки динам?ки значення помилки (рис. 3.3) та точн?сть (рис. 3.4). Продуктивн?сть алгоритм?в машинного навчання, як правило, оц?нюють за допомогою матриц? неточностей (confusion matrix) (рис. 3.5). Стовпц? в?дпов?дають за передбачений клас, а рядки за фактичний клас. Рисунок 3.3 – Динам?ка значення похибки модел? для навчально? та тестово? виб?рокРисунок 3.4 – Динам?ка значення точност? модел? для навчально? та тестово? виб?рокРисунок 3.5 – Матриця неточностей для багатошарово? нейронно? мереж?З матриц? неточностей можна зробити висновок, що точн?сть на тестов?й виб?рц? для передбачення ц?ни вище г?рша, н?ж на передбачення ц?ни нижче. На граф?ку точност? модел? ми бачимо, що точн?сть на тренувальн?й виб?рц? вища, н?ж на тестов?й. Це св?дчить про те, що ми стикнулися з перенавчанням нейронно? мереж?. П?д час перенавчання ми буду?мо модель, яка просто “запам’ятову?” тренувальн? дан? ? не да? узагальнити знання на нових даних. Щоб позбутися перенавчання можна використати б?льш жорстку регуляризац?ю. Оск?льки ми вже використову?мо Dropout – вилучення з мереж? нейрон?в з деякою ймов?рн?стю, то спробу?мо зб?ьшити цю ймов?рн?сть з 50% до 70%. Результати можна побачити на рисунках 3.6, 3.7 та 3.8.Рисунок 3.6 – Динам?ка значення похибки модел? для навчально? та тестово? виб?рокРисунок 3.7 – Динам?ка значення точност? модел? для навчально? та тестово? виб?рокРисунок 3.8 – Матриця неточностей для багатошарово? нейронно? мереж?З граф?к?в бачимо, що використання б?льш жорстко? регуляризац?? в незначн?й м?р? покращило результати навчання. Спробу?мо ?нш? арх?тектури нейронних мереж для дано? задач?. 3.3.2 За допомогою згортково? нейронно? мереж?Використа?мо згорткову нейронну мережу для розв’язання дано? задач?. Найголовн?шими г?перпараметрами, як? ми використову?мо це nb_filter – к?льк?сть ф?льтр?в та filter_length – розм?р ф?льтра. На практиц? виб?р цих параметр?в зд?йсню?ться випадковим чином. К?льк?сть ф?льтр?в залежить в?д розм?ру вх?дних даних. К?льк?сть шар?в, нормал?зац?ю ? дропаут залишимо такими ж як ? в багатошаров?й нейронн?й мереж?. Результати роботи можна побачити на рисунках 3.9, 3.10 та 3.11.Рисунок 3.9 – Динам?ка значення похибки модел? для навчально? та тестово? виб?рокРисунок 3.10 – Динам?ка значення точност? модел? для навчально? та тестово? виб?рокРисунок 3.11 – Матриця неточностей для згортково? нейронно? мереж?Отриман? результати ? дещо кращими, н?ж у багатошаров?й неронн?й мереж?. Проте дана модель краще передбачаю ц?ну нижче, н?ж ц?ну вище. При навчанн? нейронних мереж часто виника? проблема перенавчання. Перенавчання, або надм?рно близька п?дгонка – зайва точна в?дпов?дн?сть нейронно? мереж? до конкретного набору навчальних приклад?в, при якому мережу втрача? здатн?сть до узагальнення. Перенавчання може виникати в раз? довгого навчання, недостатньо? к?лькост? навчальних приклад?в або занадто складно? структури нейронно? мереж?. Перенавчання пов'язано з випадковим вибором навчально? виб?рки. З перших крок?в навчання в?дбува?ться зменшення похибки. На наступних кроках з метою зменшення похибки (ц?льово? функц??) параметри п?длаштовуються п?д особливост? навчально? виб?рки. Однак при цьому в?дбува?ться "п?длаштування" не п?д загальн? законом?рност? ряду, а п?д особливост? його частини - навчально? п?дмножини. При цьому зменшу?ться точн?сть прогнозу.Спробу?мо ще одну арх?тектуру нейронно? мереж? – мережу з довгою короткочасною пам’яттю. 3.3.3 За допомогою мереж? довго? короткочасно? пам’ят?П?сля п?дготовки даних було побудовано та натреновано рекурентну штучну нейронну мережу довго? короткочасно? пам’ят?. Виб?р впав на користь дано? нейронно? мереж? через те, що вона здатна навчатися довготривалим залежностям, що ?деально п?дходить для дано? задач?. К?льк?сть шар?в, нормал?зац?ю ? дропаут залишимо такими ж як ? в згортков?й нейронн?й мереж?.Результати роботи мереж? з регуляризац??ю можна побачити на граф?ках (рис. 3.12 ? рис. 3.13).Рисунок 3.12 – Динам?ка значення похибки модел? для навчально? та тестово? виб?рокРисунок 3.13 – Динам?ка значення точност? модел? для навчально? та тестово? виб?рокРисунок 3.14 – Матриця неточностей для мереж? довго? короткочасно? пам’ят?Похибка тестово? та тренувально? виб?рки зменшу?ться незначним чином, а точн?сть прогнозу для тестово? ? тренувально? виб?рки дуже сильно в?др?зяняються.Дана нейронна мережа показала найг?рш? результати, що робить ?? непридатною для використання в наш?й задач?.3.4?ВисновкиУ даному розд?л? було продемонстровано реал?зац?ю моделей нейронних мереж, як? були описан? в другому розд?л?. Було використано в?дкриту нейромережеву б?бл?отеку Keras для створення моделей. Ця б?бл?отека м?стить численн? реал?зац?? широко вживаних блок?в нейронних мереж, таких як шари, ц?льов? та передавальн? функц??, оптим?затори, та безл?ч ?нших ?нструмент?в. В якост? вх?дних даних будемо використовувати ц?ни акц?й компан?? Apple за останн? 5 рок?в. Оц?нка роботи кожно? модел? проводилася за динам?кою значення помилки для навчально? та тестово? виб?рок, за динам?кою значення точност? модел? для навчально? та тестово? виб?рок та за матрицею неточностей. Найкращ? результати продемонструвала згорткова нейронна мережа. Також п?сля зб?льшення жорсткост? нормал?зац?? хорош? результати продемонструвала багатошарова нейронна мережа. Мережа довго? короткочасно? пам’ят? в даному вигляд? виявилась абсолютно не придатною для погнозування ?ндексу акц?й.РОЗД?Л 4. ФУНКЦ?ОНАЛЬНО-ВАРТ?СНИЙ АНАЛ?ЗУ даному розд?л? проводиться оц?нка основних характеристик програмного модуля, призначеного для розп?знавання стилю картин. Даний продукт розроблений на мов? програмування Python з використання б?бл?отеки Keras у середовищ? Google Colaboratory. Програмний продукт призначено для використання в першу чергу на?персональних комп’ютерах. Нижче наведено анал?з р?зних вар?ант?в реал?зац?? модулю з метою вибору оптимального, з огляду при цьому як на економ?чн? фактори, так ? на характеристики продукту, що впливають на продуктивн?сть роботи ? на його сум?сн?сть з апаратним забезпеченням. Для цього було використано апарат функц?онально-варт?сного анал?зу. Функц?онально-варт?сний анал?з (ФВА) – це технолог?я, яка дозволя? оц?нити реальну варт?сть продукту або послуги незалежно в?д орган?зац?йно? структури компан??. Як прям?, так ? поб?чн? витрати розпод?ляються по продуктам та послугам у залежност? в?д потр?бних на кожному етап? виробництва обсяг?в ресурс?в. Виконан? на цих етапах д?? у контекст? метода ФВА називаються функц?ями. Мета ФВА поляга? у забезпеченн? правильного розпод?лу ресурс?в, вид?лених на виробництво продукц?? або надання послуг, на прям? та непрям? витрати. У даному випадку – анал?зу функц?й програмного продукту й виявлення ус?х витрат на реал?зац?ю цих функц?й. Фактично цей метод працю? за таким алгоритмом: ?Визнача?ться посл?довн?сть функц?й, необх?дних для виробництва продукту. Спочатку – вс? можлив?, пот?м вони розпод?ляються по двом групам: т?, що впливають на варт?сть продукту ? т?, що не впливають. На цьому ж етап? оптим?зу?ться сама посл?довн?сть скороченням крок?в, що не впливають на ц?нн?сть ? в?дпов?дно витрат.Для кожно? функц?? визначаються повн? р?чн? витрати й к?льк?сть робочих годин.Для кожно? функц?? на основ? оц?нок попереднього пункту визнача?ться к?льк?сна характеристика джерел витрат.П?сля того, як для кожно? функц?? будуть визначен? ?х джерела витрат,проводиться к?нцевий розрахунок витрат на виробництво продукту.4.1 Постановка задач? техн?ко-економ?чного анал?зуУ робот? застосову?ться метод ФВА для проведення техн?ко-економ?чного анал?зу розробки.В?дпов?дно до цього варто обирати ? систему показник?в якост? програмного продукту. Техн?чн? вимоги до продукту наступн?:програмний продукт повинен функц?онувати на персональних комп’ютерах з? стандартним набором компонент;забезпечувати зручн?сть задання вх?дних даних та в?зуальне представлення результат?в для користувача;забезпечувати швидке виконання обчислень для отримання результат?в;передбачати м?н?мальн? витрати на впровадження програмного продукту.4.1.1 Об?рунтування функц?й програмного продуктуГоловна функц?я F0 – розробка програмного продукту, який м?стить 3 архутектури нейронних мереж, що прогнозують ?ндекс акц?й з певною точн?стю та похибкою. Виходячи з конкретно? мети, можна вид?лити наступн? основн? функц?? ПП:F1 – виб?р мови програмування;F2 – виб?р б?бл?отеки для реал?зац?? нейронно? мереж?;F3 – виб?р середовища для реал?зац??.Кожна з основних функц?й може мати дек?лька вар?ант?в реал?зац??.Функц?я F1:а) мова програмування C++;б) мова програмування Python.Функц?я F2:а) Torch;б) Keras.Функц?я F3:а) Jupyter Notebook;б) Google Colaboratory.4.1.2 Вар?анти реал?зац?? основних функц?йВар?анти реал?зац?? основних функц?й ?наведен? у морфолог?чн?й карт? системи (рис. 4.1). На основ? ц??? карти побудовано позитивно-негативну матрицю вар?ант?в основних функц?й (табл. 4.1). Рисунок 4.1 – Морфолог?чна картаМорфолог?чна карта в?дображу? вс? можлив? комб?нац?? вар?ант?в реал?зац?? функц?й, як? складають повну множину вар?ант?в ПП.Таблиця 4.1 – Позитивно-негативна матрицяОсновн? функц??Вар?анти реал?зац??ПеревагиНедол?киF1C++Висока швидкод?я, оптим?зац?я п?д р?зн? платформиВисока варт?сть розробки, складн?сть введення нових алгоритм?вPythonНижча варт?сть та вища швидк?сть розробки, в?дносна легк?сть про-ведення експеримент?в Низька швидкод?яF2TorchКросплатформн?сть, полегшений процес ?портування на моб?льн? пристро?Складн?сть при тестуванн?KerasНижча варт?сть та вища швидк?сть розробки ? полегшене тестуванняУскладнений процес портування на моб?льн? пристро?, нижча швидк?стьF3Jupyter NotebookНижча варт?сть та вища швидк?сть розробки, полегшена п?дтримка, ?кросплатформн?сть Нижча зручн?сть в користуванн?Google ColaboratoryЗручн?сть в користуванн? готовим продуктомВисока варт?сть розробки та ?п?дтримкиНа основ? анал?зу позитивно-негативно? матриц? робимо висновок, що при розробц? програмного продукту деяк? вар?анти реал?зац?? функц?й варто в?дкинути, тому, що вони не в?дпов?дають поставленим перед програмним продуктом задачам. Ц? вар?анти в?дзначен? у морфолог?чн?й карт?.Функц?я F1:Оск?льки мова програмування Python ма? б?льше б?бл?отек для нейронних мереж, а також б?льш детальну документац?ю, тому в?дкида?мо вар?ант а).Функц?я F2:Оск?льки Torch не використову?ться разом з Python, використа?мо вар?ант б) як ?диний можливий.Функц?я F3:Оск?льки обидва середовища п?дходять для реал?зац?? програмного продукту, то сл?д розглянути вар?анти а) ? б).Таким чином, будемо розглядати такий вар?ант реал?зац?? ПП:F1б – F2б – F3бF1б – F2б – F3аДля оц?нювання якост? розглянутих функц?й обрана система параметр?в, описана нижче.Об?рунтування системи параметр?в ПП4.2.1 Опис параметр?вНа п?дстав? даних про основн? функц??, що повинен реал?зувати програмний продукт, вимог до нього, визначаються основн? параметри виробу, що будуть використан? для розрахунку коеф?ц??нта техн?чного р?вня.Для того, щоб охарактеризувати програмний продукт, будемо використовувати наступн? параметри:X1 – швидкод?я мови програмування;X2 – об’?м пам’ят? для коректно? роботи програми;X3 – час обробки даних;X4 – потенц?йний об’?м програмного коду.X1: В?добража? швидкод?ю операц?й залежно в?д обрано? мови програмування.X2: В?добража? необх?дний об’?м пам’ят? для збереження датасет?в ц?н акц?йX3: В?добража? час, який витрача?ться на навчання нейронно? мереж?.X4: Показу? розм?р програмного коду, який необх?дно створити розробнику.4.2.2 К?льк?сна оц?нка параметр?вГ?рш?, середн? ? кращ? значення параметр?в вибираються на основ? вимог замовника й умов, що характеризують експлуатац?ю ПП як показано у табл. 4.2.Таблиця 4.2 – Основн? параметри ППНазваПараметраУмовн? позначенняОдиниц? вим?руЗначення параметраг?рш?середн?кращ?Швидкод?я мови програмуванняX1нс/Оп200501Об’?м пам’ят? для коректно? роботиX2Мб32168Час обробки данихX3мс2000840120Потенц?йний об’?м програмного кодуX4к?льк?сть рядк?в коду18001200900За даними таблиц? 4.2 будуються граф?чн? характеристики параметр?в (рис. 4.2 – рис. 4.5). Рисунок 4.2 – Х1, швидкод?я мови програмуванняРисунок 4.3 – Х2, об’?м пам’ят? для коректно? роботиРисунок 4.4 – Х3, час обробки данихРисунок 4.5 – Х4, потенц?йний об’?м програмного коду4.2.3 Анал?з експертного оц?нювання параметр?вП?сля детального обговорення й анал?зу кожний експерт оц?ню? ступ?нь важливост? кожного параметру для конкретно поставлено? ц?л? – розробка програмного продукту, який да? найб?льш точн? результати при знаходженн? параметр?в моделей адаптивного прогнозування ? обчислення прогнозних значень. Значим?сть кожного параметра визнача?ться методом попарного пор?вняння. Оц?нку проводить експертна ком?с?я ?з 7 людей. Визначення коеф?ц??нт?в значимост? передбача?:визначення р?вня значимост? параметра шляхом присво?ння р?зних ранг?в;перев?рку придатност? експертних оц?нок для подальшого використання;визначення оц?нки попарного пр?оритету параметр?в;обробку результат?в та визначення коеф?ц??нту значимост?.Результати експертного ранжування наведен? у таблиц? 4.3.Таблиця 4.3 – Результати ранжування параметр?вПознач. параметраНазва параметраОдиниц? вим?руРанг параметра за оц?нкою експертаСума ранг?в RiВ?дхи-лення ΔiΔi21234567X1Швидкод?я мови програмуваннянс/Оп232111212-14,25203,06X2Об’?м пам’ят? для коректно? роботиМб235524325-1,251,56X3Час обробки данихМс5534334270,750,56X4Потенц?йний об’?м програмного кодук-сть рядк?в коду57476574114,75217,56Разом141814171213161050420,75Для перев?рки степен? достов?рност? експертних оц?нок, визначимо наступн? параметри:а) сума ранг?в кожного з параметр?в ? загальна сума ранг?в:Ri=j=1NrijRij=Nn(n+1)2=105,де N – число експерт?в;n – к?льк?сть параметр?в.б) середня сума ранг?в:T=1nRij=26,25.в) в?дхилення суми ранг?в кожного параметра в?д середньо? суми ранг?в:?i=Ri-TСума в?дхилень по вс?м параметрам повинна дор?внювати 0;г) загальна сума квадрат?в в?дхилення:S=i=1N?i2=420,75.Пораху?мо коеф?ц??нт узгодженост?:W=12SN2(n3-n)=12?420,7572(53-5)=1,03>Wk=0,67.Рангування можна вважати достов?рним, тому що знайдений коеф?ц??нт узгодженост? перевищу? нормативний, який дор?вню? 0,67.Скориставшись результатами рангування, проведемо попарне пор?вняння вс?х параметр?в ? результати занесемо у таблицю 4.4.Таблиця 4.4 – Попарне пор?вняння параметр?вПараметриЕкспертиК?нцева оц?нкаЧислове значення1234567X1 ? X2==<<<<<<0,5X1 ? X3<<<<<<<<0,5X1 ? X4<<<<<<<<0,5X2 ? X3<<>><><<0,5X2 ? X4<<><<<<<0,5X3 ? X4=<<<<<<<0,5Числове значення, що визнача? ступ?нь переваги i–го параметра над j–тим, aij визнача?ться по формул?:aij=1.5 при Хi>Хj,1 при Хi=Хj,0.5 при Хi<Хj,З отриманих числових оц?нок переваги складемо матрицю A=║aij║.Для кожного параметра зробимо розрахунок вагомост? Kв? за наступними формулами:Kв?=bii=1nbi, де bi=i=1Naij.В?дносн? оц?нки розраховуються дек?лька раз?в доти, поки наступн? значення не будуть незначно в?др?знятися в?д попередн?х (менше 2%).На другому ? наступних кроках в?дносн? оц?нки розраховуються за наступними формулами:Kв?=bi'i=1nbi' , де bi'=i=1Naijbj.Як видно з таблиц? 4.5, р?зниця значень коеф?ц??нт?в вагомост? не перевищу? 2%, тому б?льшо? к?лькост? ?терац?й не потр?бно.Таблиця 4.5 – Розрахунок вагомост? параметр?вПараметри iПараметри jПерша ?тер.Друга ?тер.Третя ?терХ1Х2Х3Х4biKbi1Kв?1bi2Kв?2Х110,50,50,52,50,1569,250,15734,1250,158Х21,510,50,53,50,21912,250,20844,8750,208Х31,51,510,54,50,28116,250,27559,1250,274X41,51,51,515,50,34421,250,36077,8750,361Всього:16159121614.3 Анал?з р?вня якост? вар?ант?в реал?зац?? функц?йВизнача?мо р?вень якост? кожного вар?анту виконання основних функц?й окремо.Абсолютн? значення параметр?в Х2 (об’?м необх?дно? оперативно? пам’ят?) та X3 (час обробки зображення) в?дпов?дають техн?чним вимогам умов функц?онування даного ПП.Абсолютне значення параметра Х1 (швидкод?я мови програмування) обрано не найг?ршим (не максимальним), тобто це значення в?дпов?да? або вар?анту а) 50 нс/Оп або вар?анту б) 1 нс/Оп.Коеф?ц??нт техн?чного р?вня для кожного вар?анта реал?зац?? ПП розрахову?ться так (таблиця 4.6): KK(j)=i=1nKвi,jBi,j,де n – к?льк?сть параметр?в; Kвi– коеф?ц??нт вагомост? i–го параметра; Вi – оц?нка i–го параметра в балах.Таблиця 4.6 – Розрахунок показник?в р?вня якост? вар?ант?в реал?зац?? основних функц?й ППОсновн? функц??Вар?ант реал?зац?? функц??Абсолютне значення параметраБальна оц?нка параметраКоеф?ц??нт вагомост? параметраКоеф?ц??нт р?вня якост?F1(X1)А120001,70,2650,4505F2(X2)А183,60,2120,7632F3(X3,Х4)А7903,90,2981,1622Б605,90,2251,3275За даними з таблиц? 4.6 за формулоюKK=KТУ[F1k]+KТУ[F2k]+...+KТУ[Fzk],визнача?мо р?вень якост? кожного з вар?ант?в:КК1 = 0,4505 + 0,7632 + 1,1622 = 2,376КК2 = 0,4505 + 0,7632 + 1,3275 = 2,541Як видно з розрахунк?в, кращим ? другий вар?ант, для якого коеф?ц??нт техн?чного р?вня ма? найб?льше значення.4.4 Економ?чний анал?з вар?ант?в розробки ППДля визначення вартост? розробки ПП спочатку проведемо розрахунок трудом?сткост?.Вс? вар?анти включають в себе два окремих завдання:1. Розробка проекту програмного продукту;2. Розробка програмно? оболонки;Завдання 1 за ступенем новизни в?дноситься до групи А, завдання 2 – до групи Б. За складн?стю алгоритми, як? використовуються в завданн? 1 належать до групи 1; а в завданн? 2 – до групи 3.Для реал?зац?? завдання 1 використову?ться дов?дкова ?нформац?я, а завдання 2 використову? ?нформац?ю у вигляд? даних.Проведемо розрахунок норм часу на розробку та програмування для кожного з завдань.Проведемо розрахунок норм часу на розробку та програмування для кожного з завдань. Загальна трудом?стк?сть обчислю?ться як: ТО = ТР? КП? КСК? КМ? КСТ? КСТ.М,де ТР – трудом?стк?сть розробки ПП; КП – поправочний коеф?ц??нт; КСК – коеф?ц??нт на складн?сть вх?дно? ?нформац??; КМ – коеф?ц??нт р?вня мови програмування; КСТ – коеф?ц??нт використання стандартних модул?в ? прикладних програм; КСТ.М – коеф?ц??нт стандартного математичного забезпечення.Для першого завдання, виходячи ?з норм часу для завдань розрахункового характеру степеню новизни А та групи складност? алгоритму 1, трудом?стк?сть дор?вню?: ТР = 90 людино-дн?в. Поправочний коеф?ц??нт, який врахову? вид нормативно-дов?дково? ?нформац?? для першого завдання: КП = 1.7. Поправочний коеф?ц??нт, який врахову? складн?сть контролю вх?дно? та вих?дно? ?нформац?? для вс?х семи завдань р?вний 1: КСК = 1. Оск?льки при розробц? першого завдання використовуються стандартн? модул?, враху?мо це за допомогою коеф?ц??нта КСТ = 0.8. Тод?, за формулою 4.1, загальна трудом?стк?сть програмування першого завдання дор?вню?:Т1 = 90?1.7?0.8 = 122.4 людино-дн?в.Проведемо аналог?чн? розрахунки для подальших завдань.Для другого завдання (використову?ться алгоритм третьо? групи складност?, степ?нь новизни Б), тобто ТР =27 людино-дн?в, КП =0.9, КСК = 1, КСТ =0.8:Т2 = 27 ? 0.9 ? 0.8 = 19.44 людино-дн?в.Склада?мо трудом?стк?сть в?дпов?дних завдань для кожного з обраних вар?ант?в реал?зац?? програми, щоб отримати ?х трудом?стк?сть:ТI = (122.4 + 19.44 + 4.8 + 19.44) ? 8 = 1328,64 людино-годин;ТII = (122.4 + 19.44 + 6.91 + 19.44) ? 8 = 1345.52 людино-годин;Найб?льш високу трудом?стк?сть ма? вар?ант I?.В розробц? беруть участь два програм?сти з окладом 10000 грн., один ф?нансовий анал?тик з окладом 15000 грн. Визначимо зарплату за годину за формулою:Cч=МTm?tгрн.,де М – м?сячний оклад прац?вник?в; Tm – к?льк?сть робочих дн?в тиждень; t – к?льк?сть робочих годин в день.Cч=10000+10000+150003?21?8=69,44 грн.Тод? розраху?мо зароб?тну плату за формулоюСзп=Сч?Тi?КД,де СЧ– величина погодинно? оплати прац? програм?ста; Тi – трудом?стк?сть в?дпов?дного завдання; КД – норматив, який врахову? додаткову зароб?тну плату.Зарплата розробник?в за вар?антами становить:I.??? СЗП = 69,44? 1328.64 ? 1.2 = 110712,91 грн.II.??? СЗП = 69,44? 1345.52 ? 1.2 = 112119,49 грн. В?драхування на ?диний соц?альний внесок в залежност? в?д групи профес?йного ризику (II клас) становить 22%:I.??? СВ?Д = СЗП ? 0.22 = 110712,91*0.22 = 24356,84 грн.II.??? СВ?Д = СЗП ? 0.22 = 112119,49*0.22 = 24666,29 грн.Тепер визначимо витрати на оплату одн??? машино-години. (СМ)Так як одна ЕОМ обслугову? одного програм?ста з окладом 10000 грн., з коеф?ц??нтом зайнятост? 0,2 то для одн??? машини отрима?мо:СГ = 12?M?KЗ = 12 ? 10000? 0,2 = 24000 грн.З урахуванням додатково? зароб?тно? плати:СЗП =СГ? (1+ KЗ) = 24000? (1 + 0.2) = 28800 грн.В?драхування на ?диний соц?альний внесок:СВ?Д= СЗП ? 0.22 = 28800 * 0,22 = 6336 грн.Амортизац?йн? в?драхування розрахову?мо при амортизац?? 25% та вартост? ЕОМ – 20000 грн.СА = КТМ? KА?ЦПР = 1.15 ? 0.25 ? 20000 = 5750 грн.,де КТМ– коеф?ц??нт, який врахову? витрати на транспортування та монтаж приладу у користувача; KА– р?чна норма амортизац??; ЦПР– догов?рна ц?на приладу.Витрати на ремонт та проф?лактику розрахову?мо як:СР = КТМ?ЦПР ? КР = 1.15 ? 20000 ? 0.05 = 1150 грн.,де КР– в?дсоток витрат на поточн? ремонти.Ефективний годинний фонд часу ПК за р?к розрахову?мо за формулою:ТЕФ = (ДК – ДВ – ДС – ДР) ? tЗ? КВ = (365 – 104 – 8 – 16) ? 8 ? 0.9 = 1706.4 годин,де ДК – календарна к?льк?сть дн?в у роц?; ДВ, ДС – в?дпов?дно к?льк?сть вих?дних та святкових дн?в; ДР – к?льк?сть дн?в планових ремонт?в устаткування; t –к?льк?сть робочих годин в день; КВ– коеф?ц??нт використання приладу у час? протягом зм?ни.Витрати на оплату електроенерг?? розрахову?мо за формулою:СЕЛ ?= ТЕФ? NС? KЗ? ЦЕН =1706,4 ? 0,156 ? 0,85 ? 2,28974= 518,01 грн.,де NС – середньо-споживча потужн?сть приладу; KЗ – коеф?ц??нтом зайнятост? приладу; ЦЕН – тариф за 1 КВт-годин електроенерг??.Накладн? витрати розрахову?мо за формулою:СН = ЦПР?0.67 = 20000? 0,67 =13400 грн.Тод? р?чн? експлуатац?йн? витрати будуть:СЕКС =СЗП+ СВ?Д+ СА + СР+ СЕЛ + СНСЕКС = 28800 + 6336 + 5750 + 1150 + 518,01 + 13400 = 55954,01 грн.Соб?варт?сть одн??? машино-години ЕОМ дор?внюватиме:СМ-Г = СЕКС/ ТЕФ = 55954,01 /1706,4 = 32,79 грн/час.Оск?льки в даному випадку вс? роботи, як? пов‘язан? з розробкою програмного продукту ведуться на ЕОМ, витрати на оплату машинного часу, в залежност? в?д обраного вар?анта реал?зац??, склада?:СМ = СМ-Г ?T?. ??? СМ = 32,79 * 1328,64 = 43566,12 грн.; ??. ??? СМ = 32,79 * 1345.52 = 44119,60 грн.; Накладн? витрати складають 67% в?д зароб?тно? плати:СН = СЗП ? 0,67?. ??? СН = 110712,91 * 0,67 = 74177,65 грн.; ??. ??? СН = 112119,49 * 0,67 = 75120,06 грн.; Отже, варт?сть розробки ПП за вар?антами становить:СПП = СЗП+ СВ?Д+ СМ +СН?. ??? СПП = 110712,91 + 24356,84 + 43566,12 + 74177,65 = 252813,52 грн.; ??. ??? СПП = 112119,49 + 24666,29 + 44119,60 + 75120,06 = 256025,44 грн.; 4.5 Виб?р кращого вар?анта ПП техн?ко-економ?чного р?вняРозраху?мо коеф?ц??нт техн?ко-економ?чного р?вня за формулою:КТЕРj =ККj?СФj,КТЕР1 = 2,376 / 252813,52 = 0,9?10-5;КТЕР2 = 2,541 / 256025,44 = 1?10-5;Як бачимо, найб?льш ефективним ? другий вар?ант реал?зац?? програми з коеф?ц??нтом техн?ко-економ?чного р?вня КТЕР1= 1? 10-5.4.6 ВисновкиВ даному розд?л? проведено повний функц?онально-варт?сний анал?з ПП, який було розроблено в рамках дипломного проекту. Процес анал?зу можна умовно розд?лити на дв? частини.В перш?й з них проведено досл?дження ПП з техн?чно? точки зору: було визначено основн? функц?? ПП та сформовано множину вар?ант?в ?х реал?зац??; на основ? обчислених значень параметр?в, а також експертних оц?нок ?х важливост? було обчислено коеф?ц??нт техн?чного р?вня, який ? дав змогу визначити оптимальну з техн?чно? точки зору альтернативу реал?зац?? функц?й ПП.Другу частину ФВА присвячено вибору ?з альтернативних вар?ант?в реал?зац?? найб?льш економ?чно об?рунтованого. Пор?вняння запропонованих вар?ант?в реал?зац?? в рамках дано? частини виконувалось за коеф?ц??нтом ефективност?, для обчислення якого були обчислен? так? допом?жн? параметри, як трудом?стк?сть, витрати на зароб?тну плату, накладн? витрати.П?сля виконання функц?онально-варт?сного анал?зу програмного комплексу, що розроблю?ться, можна зробити висновок, що з альтернатив, що залишились п?сля першого в?дбору двох вар?ант?в виконання програмного комплексу оптимальним ? другий вар?ант реал?зац?? програмного продукту. У нього виявився найкращий показник техн?ко-економ?чного р?вня якост? КТЕР = 1? 10-5.Цей вар?ант реал?зац?? програмного продукту ма? так? параметри:мова програмування – Python;нейромережева б?бл?отека Keras;середовище Google Colaboratory.Даний вар?ант виконання програмного продукту да? анал?тику можлив?сть прогнозувати ?ндекс акц?й, а також реал?зувати б?льш досконалу арх?тектуру нейронно? мереж?, яка продемонстру? кращу точн?сть.ВИСНОВКИУ дан?й дипломн?й робот? було розгляуто нейронн? мереж? як метод прогнозування руху ц?ни акц?й на ринку. Були розглянут? теоретичн? основи нейронних мереж, найб?льш часто використовуван? мереж? в прогнозуванн? фондових ринк?в. Основна увага прид?лялася ?х структур? та процесом роботи. Для реал?зац?? моделей було вибрано три арх?тектури нейронних мереж – багатошарову нейронну мережу, згорткову нейронну мережу та мережу довго? короткочасно? пам’ят?. Було використано в?дкриту нейромережеву б?бл?отеку Keras для створення моделей. Ця б?бл?отека м?стить численн? реал?зац?? широко вживаних блок?в нейронних мереж, таких як шари, ц?льов? та передавальн? функц??, оптим?затори, та безл?ч ?нших ?нструмент?в. Дан? модел? можна використовувати для будь-яких часових ряд?в, головне правильно обробити вх?дн? дан?, визначити арх?тектуру мереж?, оц?нити як?сть роботи алгоритму. Найкраще з поставленою задачею впоралися багатошарова та згортокова нейронн? мереж?. Дан? модел? можуть слугувати основою для подальшо? розробки б?льш точних алгоритм?в прогнозування ?ндексу акц?й. Для зб?льшення точност? прогнозування було запропоновано дек?лька способ?в: навчати мережу на високочастотних даних, тобто спробувати використовувати дан? за кожну годину, кожн? 5 хвилин, чим б?льше даних ми матимемо, тим менше буде перенавчання використовувати складн?ш? арх?тектури нейронних мереж, як? призначен? для роботи з часовими рядами використовувати не т?льки ц?ну на момент закриття, а вс? дан?, як? ? в вх?дному файл?, тобто в кожний момент часу звертати увагу на всю доступну ?нформац?ю. оптим?зувати г?перпараметри наявно? нейронно? мереж? – розм?р в?кна, к?льк?сть нейрон?в в прихованих шарах, крок навчання СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛПро ц?нн? папери ? фондовий ринок: Закон Укра?ни в?д 23.02.2006 р. - №3480-IVДема Д.?. Ф?нансовии? ринок : навч. пос?б. / Житомир : ЖНАЕУ, 2017. 448 сМних ?. В. Економiчнии? аналiз: пiдруч. / Ки?в: Знання, 2011. 630 с.Лаврик В. ?. Моделювання ? прогнозування стану довк?лля / Ки?в: Академ?я, 2010.Бачевськии? Б. ?. Потенц?ал ? розвиток п?дпри?мства: навч. пос?б. / Ки?в: Центр учбово?? л?тератури, 2009. 400 с.Мандельброт Б., Хадсон Р. Л. (Не)послушне рынки. Фрактальная революция в финансах: п?друч. / Москва: Вильямс, 2006. 408с.Формування ринкових в?дносин в Укра??н?, No7-8 (146-147), 2013, c. 30-37. Наи?ман,Э.Л.Треи?дер-Инвестор: п?друч. / Ки?в:ВИРА-Р, 2000.640с.Хаи?кин С. Неи?ронные сети: п?друч. / Москва: Вильямс, 2006. 1103 с. Степанов В. А. Фондовыи? рынок и неи?росети. URL: 159835/ (дата звернення 18.04.2019). Герасименко Н. А. Неи?росетевые технологии в анализе фондового рынка. URL: (дата звернення 18.04.2019). Мицель А. А. Прогнозирование динамики цен на фондовом рынке. Известия Томского политехнического университета, 2007. No8 Архангельская E., Николенко С., Кадурин А. Глубокое обучение: навч. пос?б. / СПб: Питер, 2018. 476 с Минский М., Пейперт С. Персептроны: п?друч. / Москва: Мир, 1971.261 с. Терехов В.А., Ефимов Д.В., Тюкин И.Ю. Нейросетевые системы управления: навч. пос?б. / Москва: Высшая школа, 2002. 183 с. Convolutional Neural Networks (CNNs / ConvNets). CS231n Convolutional Neural Networks for Visual Recognition. URL: (дата звернення 29.03.2019). Сверточная сеть на python. Часть 1. Определение основных параметров модели. Open Data Science. URL: (дата звернення 16.03.2018). Матер?али курсу CS231n: Convolutional Neural Networks for Visual Recognition URL: (дата звернення 08.05.2018) LSTM – сети долгой краткосрочной памяти. URL: (дата звернення 30.04.2019). LSTM – нейронная сеть с долгой краткосрочной памятью. URL: (дата звернення 02.05.2019)ДОДАТОК А ПРОГРАМНИЙ КОД# -*- coding: utf-8 -*-"""bachelor_work.ipynbAutomatically generated by Colaboratory.Original file is located at """import matplotlib.pylab as pltimport seaborn as snssns.despine()import pandas as pdimport numpy as npfrom google.colab import files, drivefrom keras.models import Sequentialfrom keras.layers.core import Dense, Dropout, Activation, Flattenfrom keras.layers.normalization import BatchNormalization#from keras.layers import Mergefrom keras.callbacks import ModelCheckpoint, ReduceLROnPlateau, CSVLogger, EarlyStoppingfrom keras.optimizers import RMSprop, Adam, SGD, Nadamfrom keras.layers.advanced_activations import *from keras.layers import Convolution1D, MaxPooling1D, AtrousConvolution1Dfrom keras.layers.recurrent import LSTM, GRUfrom keras import regularizersimport theanotheano.pute_test_value = "ignore"files.upload()!lsdrive.mount('/content/gdrive')def shuffle_in_unison(a, b): # courtsey assert len(a) == len(b) shuffled_a = np.empty(a.shape, dtype=a.dtype) shuffled_b = np.empty(b.shape, dtype=b.dtype) permutation = np.random.permutation(len(a)) for old_index, new_index in enumerate(permutation): shuffled_a[new_index] = a[old_index] shuffled_b[new_index] = b[old_index] return shuffled_a, shuffled_bdef create_Xt_Yt(X, y, percentage=0.8): p = int(len(X) * percentage) X_train = X[0:p] Y_train = y[0:p] X_train, Y_train = shuffle_in_unison(X_train, Y_train) X_test = X[p:] Y_test = y[p:] return X_train, X_test, Y_train, Y_testdata = pd.read_csv('AAPL.csv')#data = data.loc[:, 'Adj Close'].tolist()data = data.loc[:, 'Adj Close'].pct_change().dropna().tolist()plt.title('Apple Inc.')plt.plot(data)plt.show()WINDOW = 30EMB_SIZE = 1STEP = 1FORECAST = 5# Straightforward way for creating time windowsX, Y = [], []for i in range(0, len(data), STEP): try: x_i = data[i:i+WINDOW] y_i = data[i+WINDOW+FORECAST] last_close = x_i[WINDOW-1] next_close = y_i if last_close < next_close: y_i = [1, 0] else: y_i = [0, 1] except Exception as e: print(e) break X.append(x_i) Y.append(y_i)#X = [(np.array(x) - np.mean(x)) / np.std(x) for x in X] # comment it to remove normalizationX, Y = np.array(X), np.array(Y)X_train, X_test, Y_train, Y_test = create_Xt_Yt(X, Y)X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], EMB_SIZE))X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], EMB_SIZE))#Multilayer Neural Networkmodel = Sequential()model.add(Dense(64, input_dim=30, activity_regularizer=regularizers.l2(0.01)))model.add(BatchNormalization())model.add(LeakyReLU())model.add(Dropout(0.9))model.add(Dense(16, activity_regularizer=regularizers.l2(0.01)))model.add(BatchNormalization())model.add(LeakyReLU())model.add(Dense(2))model.add(Activation('softmax'))opt = Nadam(lr=0.002) reduce_lr = ReduceLROnPlateau(monitor='val_acc', factor=0.9, patience=25, min_lr=0.000001, verbose=1)checkpointer = ModelCheckpoint(filepath = "/content/gdrive/My Drive/bachelor_work/mnn.hdf5", verbose = 1, save_best_only = True)pile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])history = model.fit(X_train, Y_train, nb_epoch = 150, batch_size = 128, verbose=1, validation_data=(X_test, Y_test), callbacks=[reduce_lr, checkpointer], shuffle=True)plt.style.use('seaborn-darkgrid')plt.figure(figsize = (10.5, 7))plt.plot(history.history['loss'], color = 'seagreen')plt.plot(history.history['val_loss'], color = 'tomato')plt.title('model loss', fontsize=24, fontweight='bold')plt.ylabel('loss', fontsize=17, fontweight='bold')plt.xlabel('epoch', fontsize=17, fontweight='bold')plt.legend(['train', 'test'], loc='best', fontsize=17)plt.show()plt.figure(figsize = (10.5, 7))plt.plot(history.history['acc'], color ='seagreen')plt.plot(history.history['val_acc'], color = 'tomato')plt.title('model accuracy', fontsize=24, fontweight='bold')plt.ylabel('accuracy', fontsize=17, fontweight='bold')plt.xlabel('epoch', fontsize=17, fontweight='bold')plt.legend(['train', 'test'], loc='best', fontsize=17)plt.show()model.load_weights("/content/gdrive/My Drive/bachelor_work/mnn.hdf5")pred = model.predict(np.array(X_test))from sklearn.metrics import classification_reportfrom sklearn.metrics import confusion_matrixC = confusion_matrix([np.argmax(y) for y in Y_test], [np.argmax(y) for y in pred])C = C / C.astype(np.float).sum(axis=1)plt.clf()plt.imshow(C, interpolation='nearest', cmap='Set2')classNames = ['Up','Down']plt.title('confusion matrix', fontsize=24, fontweight='bold')#plt.ylabel('Test')#plt.xlabel('Train')tick_marks = np.arange(len(classNames))plt.xticks(tick_marks, classNames, rotation=45, fontsize=17, fontweight='bold')plt.yticks(tick_marks, classNames, rotation=45, fontsize=17, fontweight='bold')#s = [['TN','FP'], ['FN', 'TP']]for i in range(2): for j in range(2): #plt.text(j,i, str(s[i][j])+" = "+str(C[i][j])) plt.text(j,i,round(C[i][j],3), fontsize=20, fontweight='bold')plt.show()#CNNmodel = Sequential()model.add(Convolution1D(input_shape = (WINDOW, EMB_SIZE), init = 'he_normal', nb_filter = 32, filter_length = 2, border_mode = 'same', subsample_length = 2, kernel_regularizer = regularizers.l2(0.01), activity_regularizer = regularizers.l2(0.01)))model.add(BatchNormalization())model.add(LeakyReLU())model.add(Dropout(0.9))model.add(Flatten())model.add(Dense(64))model.add(BatchNormalization())model.add(LeakyReLU())model.add(Dense(2))model.add(Activation('softmax'))opt = Nadam(lr=0.002) reduce_lr = ReduceLROnPlateau(monitor='val_acc', factor=0.9, patience=25, min_lr=0.000001, verbose=1)checkpointer = ModelCheckpoint(filepath = "/content/gdrive/My Drive/bachelor_work/cnn.hdf5", verbose = 1, save_best_only = True)pile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])history = model.fit(X_train, Y_train, nb_epoch = 150, batch_size = 128, verbose=1, validation_data=(X_test, Y_test), callbacks=[reduce_lr, checkpointer], shuffle=True)plt.style.use('seaborn-darkgrid')plt.figure(figsize = (10.5, 7))plt.plot(history.history['loss'], color = 'seagreen')plt.plot(history.history['val_loss'], color = 'tomato')plt.title('model loss', fontsize=24, fontweight='bold')plt.ylabel('loss', fontsize=17, fontweight='bold')plt.xlabel('epoch', fontsize=17, fontweight='bold')plt.legend(['train', 'test'], loc='best', fontsize=17)plt.show()plt.figure(figsize = (10.5, 7))plt.plot(history.history['acc'], color ='seagreen')plt.plot(history.history['val_acc'], color = 'tomato')plt.title('model accuracy', fontsize=24, fontweight='bold')plt.ylabel('accuracy', fontsize=17, fontweight='bold')plt.xlabel('epoch', fontsize=17, fontweight='bold')plt.legend(['train', 'test'], loc='best', fontsize=17)plt.show()model.load_weights("/content/gdrive/My Drive/bachelor_work/cnn.hdf5")pred = model.predict(np.array(X_test))from sklearn.metrics import classification_reportfrom sklearn.metrics import confusion_matrixC = confusion_matrix([np.argmax(y) for y in Y_test], [np.argmax(y) for y in pred])C = C / C.astype(np.float).sum(axis=1)plt.clf()plt.imshow(C, interpolation='nearest', cmap='Set2')classNames = ['Up','Down']plt.title('confusion matrix', fontsize=24, fontweight='bold')#plt.ylabel('Test')#plt.xlabel('Train')tick_marks = np.arange(len(classNames))plt.xticks(tick_marks, classNames, rotation=45, fontsize=17, fontweight='bold')plt.yticks(tick_marks, classNames, rotation=45, fontsize=17, fontweight='bold')#s = [['TN','FP'], ['FN', 'TP']]for i in range(2): for j in range(2): #plt.text(j,i, str(s[i][j])+" = "+str(C[i][j])) plt.text(j,i,round(C[i][j],3), fontsize=20, fontweight='bold')plt.show()#LSTMmodel = Sequential()model.add(LSTM(input_shape = (1, ), input_dim = 1, output_dim = WINDOW, return_sequences = False, recurrent_dropout = 0.9, kernel_regularizer = regularizers.l2(0.01), activity_regularizer = regularizers.l2(0.01)))model.add(Dropout(0.9))model.add(Dense(64))model.add(BatchNormalization())model.add(LeakyReLU())model.add(Dense(2))model.add(Activation('softmax'))opt = Nadam(lr=0.002) reduce_lr = ReduceLROnPlateau(monitor='val_acc', factor=0.9, patience=25, min_lr=0.000001, verbose=1)checkpointer = ModelCheckpoint(filepath = "/content/gdrive/My Drive/bachelor_work/lstm.hdf5", verbose = 1, save_best_only = True)pile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])history = model.fit(X_train, Y_train, nb_epoch = 150, batch_size = 128, verbose=1, validation_data=(X_test, Y_test), callbacks=[reduce_lr, checkpointer], shuffle=True)plt.style.use('seaborn-darkgrid')plt.figure(figsize = (10.5, 7))plt.plot(history.history['loss'], color = 'seagreen')plt.plot(history.history['val_loss'], color = 'tomato')plt.title('model loss', fontsize=24, fontweight='bold')plt.ylabel('loss', fontsize=17, fontweight='bold')plt.xlabel('epoch', fontsize=17, fontweight='bold')plt.legend(['train', 'test'], loc='best', fontsize=17)plt.show()plt.figure(figsize = (10.5, 7))plt.plot(history.history['acc'], color ='seagreen')plt.plot(history.history['val_acc'], color = 'tomato')plt.title('model accuracy', fontsize=24, fontweight='bold')plt.ylabel('accuracy', fontsize=17, fontweight='bold')plt.xlabel('epoch', fontsize=17, fontweight='bold')plt.legend(['train', 'test'], loc='best', fontsize=17)plt.show()model.load_weights("/content/gdrive/My Drive/bachelor_work/lstm.hdf5")pred = model.predict(np.array(X_test))from sklearn.metrics import classification_reportfrom sklearn.metrics import confusion_matrixC = confusion_matrix([np.argmax(y) for y in Y_test], [np.argmax(y) for y in pred])C = C / C.astype(np.float).sum(axis=1)plt.clf()plt.imshow(C, interpolation='nearest', cmap='Set2')classNames = ['Up','Down']plt.title('Confusion Matrix', fontsize=24, fontweight='bold')#plt.ylabel('Test')#plt.xlabel('Train')tick_marks = np.arange(len(classNames))plt.xticks(tick_marks, classNames, rotation=45, fontsize=17, fontweight='bold')plt.yticks(tick_marks, classNames, rotation=45, fontsize=17, fontweight='bold')#s = [['TN','FP'], ['FN', 'TP']]for i in range(2): for j in range(2): #plt.text(j,i, str(s[i][j])+" = "+str(C[i][j])) plt.text(j,i,round(C[i][j],3), fontsize=20, fontweight='bold')plt.show()ДОДАТОК Б ПРЕЗЕНТАЦ?Я ДИПЛОМНО? РОБОТИ ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download