- •1 Сучасні методи прогнозування щоденної зайнятості
- •1.1 Аналіз проблеми прогнозування щоденної зайнятості
- •1.2 Порівняльний аналіз існуючих програмних засобів прогнозування щоденної зайнятості
- •Порівняльний аналіз методів прогнозування щоденної зайнятості
- •1.4 Постановка задачі
- •1.5 Висновки
- •2 Розробка інформаційної моделі процесу прогнозування щоденної зайнятості
- •3 Розробка алгоритму роботи інтелектуального модуля прогнозування щоденної зайнятості робітників банка
- •4.1 Розробка структури програмного засобу, який базується на інтелектуальному модулі прогнозування щоденної зайнятості робітників банка
- •4.2 Проектування бази даних прогнозування щоденної зайнятості робітників банка
- •4 Моделювання процесу прогнозування щоденної зайнятості робітників банка
- •4.3 Розробка uml-діаграми класів програмного засобу на основі інтелектуального модуля прогнозування щоденної зайнятості робітників банка
- •Перелік використаних джерел
Порівняльний аналіз методів прогнозування щоденної зайнятості
Нейронні мережі - це дуже потужний і гнучкий механізм прогнозування. При визначенні того, що потрібно прогнозувати, необхідно вказувати змінні, які аналізуються і передвіщаються. Тут дуже важливий необхідний рівень деталізації. На використовуваний рівень деталізації впливає безліч факторів: доступність і точність даних, вартість аналізу і переваги Робітники банка результатів прогнозування. У ситуаціях, коли найкращий набір змінних неясний, можна спробувати різні альтернативи і вибрати один з варіантів, який дає найкращі результати. Зазвичай так здійснюється вибір при розробці прогнозуючих систем, заснованих на аналізі історичних даних.
Другий важливий етап при побудові нейромережевої прогнозуючої системи - це визначення наступних трьох параметрів: періоду прогнозування, обрію прогнозування та інтервалу прогнозування. Період прогнозування - це основна одиниця часу, на яку робиться прогноз. Горизонт прогнозування - це число періодів в майбутньому, які покриває прогноз. Тобто, може знадобитися прогноз на 10 днів вперед, з даними на кожен день. У цьому випадку період - добу, а горизонт - 10 діб. Нарешті, інтервал прогнозування - частота, з якою робиться новий прогноз. Часто інтервал прогнозування збігається з періодом прогнозування. Вибір періоду і горизонту прогнозування зазвичай диктується умовами прийняття рішень в області, для якої проводиться прогноз. Вибір цих двох параметрів - ледь не найважче в нейросетевом прогнозуванні. Для того щоб прогнозування мало сенс, горизонт прогнозування повинен бути не менше, ніж час, необхідний для реалізації рішення, прийнятого на основі прогнозу. Таким чином, прогнозування дуже сильно залежить від природи прийнятого рішення. У деяких випадках, час, необхідний на реалізацію рішення, не визначено, наприклад, як у випадку постачання запасних частин для поповнення запасів ремонтних підприємств. Існують методи роботи в умовах подібної невизначеності, але вони підвищують варіацію помилки прогнозування. Оскільки зі збільшенням горизонту прогнозування точність прогнозу, зазвичай, знижується, часто можна поліпшити процес прийняття рішення, зменшивши час, необхідний на реалізацію рішення і, отже, зменшивши горизонт і помилку прогнозування.
У деяких випадках не так важливо пророкування конкретних значень прогнозованої змінної, як прогноз значних змін у її поведінці. Таке завдання виникає, наприклад, при прогнозі моменту, коли поточний напрямок руху ринку (тренд) змінить свій напрямок на протилежне.
Точність прогнозу, необхідна для конкретної проблеми, має великий вплив на прогнозуючу систему. Також величезний вплив на прогноз надає навчальна вибірка.
Розглянемо детально 3 відомих методи, щоб переконатись, яку нейронну мережу найкраще використовувати для прогнозування щоденної зайнятості робітника: рекурентний персептрон, багатошаровий персептрон, асоціативна пам’ять.
Багатошаровий персептрон – найвідоміша і дуже стара архітектура, в якій йдуть підряд кілька шарів нейронів - вхідний, один або кілька прихованих шарів, і вихідний шар. Майже завжди навчається методом зворотного поширення помилки - що автоматично означає, що ми повинні надати для навчання набір пар «вхідний вектор - правильний вихід». Тоді вхідний вектор відправиться на вхід мережі, послідовно будуть розраховані стану всіх проміжних нейронів, і на виході утворюється вихідний вектор, який ми і порівняємо з правильним. Розбіжність дасть нам помилку, яку можна поширити назад по зв'язках мережі, обчислити внесок у підсумкову помилку кожного нейрона, і скоригувати його ваги, щоб її виправити. Повторивши цю процедуру багато тисяч разів, можливо вийде навчити мережу.
Мережа такого типу зазвичай дуже добре справляється з завданнями, де:
1) відповідь дійсно залежить тільки від того, що ми даємо на вхід мережі, і ніяк не залежить від історії входів (тобто це не динамічний процес, або, принаймні, ми дали на вхід вичерпну інформацію про цей процес у формі, придатної для обробки мережею);
2) відповідь не залежить / слабко залежить від високих ступенів та / або творів параметрів - функції цього типу мережу будувати майже не вміє;
3) в наявності є досить багато прикладів (бажано мати не менше сотні прикладів на кожну зв'язок мережі), або є великий досвід боротьби з ефектом спеціалізації. Це пов'язано з тим, що маючи багато коефіцієнтів, мережа може банально запам'ятати багато конкретних прикладів, і видавати на них відмінний результат - але її прогнози не матимуть нічого спільного з реальністю у випадку, якщо дати на вхід приклади не з навчальної вибірки.
Сильні сторони - вивчена з усіх боків, добре працює на своїх завданнях, якщо на деякій задачі не працює, то це привід стверджувати, що завдання складніше, ніж здавалося.
Слабкі сторони - невміння працювати з динамічними процесами, необхідність великої навчальної вибірки.
Рекурентний персептрон на перший погляд схожий на звичайний персептрон, єдина істотна відмінність полягає в тому, що його виходи потрапляють йому ж на входи, і беруть участь в обробці вже наступного вхідного вектора. Тобто, у разі рекурентного перцептрона має місце не набір окремих, нічим не пов'язаних образів, а певний процес, і значення мають не тільки самі входи, але і те, в якій послідовності вони надходять. Через це виникають відмінності в методі навчання - використовується те ж саме зворотне поширення помилки, але для того, щоб помилка потрапила за рекурентних зв'язку в минуле, використовуються різні хитрощі (якщо підійти до завдання «в лоб» - то виникне проблема догляду помилки на нескінченне число циклів тому). В іншому ж ситуація схожа на звичайний перцептрон - для навчання потрібно мати достатньо довгу послідовність пар вхід-вихід, яку потрібно багато разів прогнати через мережу, щоб її навчити (або ж мати під рукою мат. Модель шуканого процесу, яку можна ганяти у всіляких умовах , і в реалтайм давати результати мережі для навчання).
Мережа такого типу зазвичай добре вирішує завдання управління динамічними процесами (починаючи від класичної задачі стабілізації перевернутого маятника, і до будь-яких систем, якими взагалі хоч якось виходить управляти), передбачення динамічних процесів, крім курсу валют, і взагалі всього, де крім явно спостережуваного входу у системи є деякий внутрішній стан, який не зовсім зрозуміло як використовувати.
Сильні сторони: мережа дуже хороша для роботи з динамічними процесами.
Слабкі сторони: якщо все ж не працює, зрозуміти в чому проблема - дуже важко, в процесі навчання може вилетіти в самозбудження (коли сигнал, отриманий з виходу, забиває все, що приходить по входах), якщо рішення все ж отримано - складно зрозуміти, чи можна домогтися кращих результатів, і яким шляхом. Іншими словами, погано вивчена.
Асоціативна пам'ять - це широкий клас мереж, які в тій чи іншій мірі нагадують архітектуру Хопфілда, яка складається з одного шару нейронів, виходи якого надходять на його входи в наступний момент часу. Цей шар служить і входом мережі (у початковий момент виходи нейронів приймаються рівними вхідному вектору), і її виходом - значення на нейронах, що утворилися в кінці роботи, вважаються відповіддю мережі. Ця мережа змінює свої стани з плином часу до тих пір, поки стан не перестане змінюватися. Властивості вагової матриці обрані таким чином, щоб стійкий стан завжди гарантовано досягалося (і зазвичай це відбувається за кілька кроків). Така мережа пам'ятає деяку кількість векторів, і при подачі на вхід будь-якого вектора, може визначити, на якій із запам'ятованих він найбільше схожий - звідси і назва. Двошарова модифікація цієї мережі (гетероасоціативна пам'ять) може запам'ятовувати вектора не по-одному, а по парах різної розмірності.
Мережі такого типу добре справляються з завданнями, де потрібно визначити схожість вектора на один із стандартних заповнень. Власне, це єдиний клас задач, де вони підходять.
Сильні сторони - дуже швидке навчання (тому замість градієнтного спуску вирішується система рівнянь), можливість видалити образ з пам'яті або додати в пам'ять, не торкнувшись інші, деякі властивості такої пам'яті нагадують властивості мозку, і їх вивчення цікаво з такої позиції.
Слабкі сторони - дуже вузький клас вирішуваних завдань, невміння узагальнювати приклади, максимальний обсяг пам'яті жорстко пов'язаний з розмірністю запоминаемого вектора (зважаючи на особливості побудови).
Отже, визначено, що найкращим методом для реалізації процесу прогнозування щоденної зайнятості є багатошаровий персептрон, який досліджений з усіх сторін, що дозволяє в повній мірі ознайомитись з особливостями даної нейронної мережі.
