Зміст:
1. Історія розвитку науки про штучний інтелект.
2. Опис нейронних мереж. P>
1. Мета класифікації p>
2. Використання нейронних мереж в якості класифікатора. P>
3. Підготовка вихідних даних. P>
4. Кодування вихідних значень. P>
5. Вибір обсягу мережі. P>
6. Вибір архітектури мережі. P>
7. Алгоритм побудови класифікатора на основі нейронних мереж.
3. Прогнозування обсягу продажів кондитерських виробів за допомогою нейронних мереж. P>
1. Постановка завдання. P>
2. Метод рішення. P>
3. Результат.
4. Висновок. P>
Історія розвитку науки про штучний інтелект. P>
Штучний інтелект - одна з новітніх наук, що з'явилися в другійполовині 20-го століття на базі обчислювальної техніки, математичної логіки,програмування, психології, лінгвістики, нейрофізіології та іншихгалузей знань. Штучний інтелект - це зразок міждисциплінарнихдосліджень, де поєднуються професійні інтереси фахівціврізного профілю. Сама назва нової науки виникло в кінці 60-х роках, а в
1969 р. у Вашингтоні (США) відбулася перша Всесвітня конференція зштучного інтелекту. Відомо, що сукупність наукових дослідженьнабуває права науки, якщо виконані дві необхідні умови. У цихдосліджень має бути об'єкт вивчення, який не збігається з тими, яківивчають інші науки. І повинні існувати специфічні методидослідження цього об'єкта, відмінні від інших методів, що вже склалисянаук. Дослідження, які об'єднуються зараз терміном "штучнийінтелект ", мають свій специфічний об'єкт вивчення і свої специфічніметоди. У цій статті ми обгрунтуємо це твердження. Коли наприкінці 40-х --початку 50-х років з'явилися ЕОМ, стало зрозуміло, що інженери та математикистворили не просто швидко працюючий пристрій для обчислень, а щосьбільш значне. Виявилося, що за допомогою ЕОМ можна вирішувати різніголоволомки, логічні завдання, грати в шахи, створювати ігровіпрограми. ЕОМ стали брати участь у творчих процесах: складатимузичні мелодії, вірші і навіть казки. З'явилися програми дляперекладу з однієї мови на іншу, для розпізнавання образів,докази теорем. Це свідчило про те, що за допомогою ЕОМ івідповідних програм можна автоматизувати такі види людськоїдіяльності, які називаються інтелектуальними і вважаються доступнимилише людині. Незважаючи на велику різноманітність невичіслітельних програм,створених до початку 60-х років, програмування в сфері інтелектуальноїдіяльності знаходилося в набагато гіршому становищі, ніж рішення розрахунковихзавдань. Причина очевидна. Програмування для задач розрахункового характеруспиралося на відповідну теорію - обчислювальну математику. На основіцієї теорії було розроблено багато методів вирішення завдань. Ці методи сталиосновою для відповідних програм. Нічого подібного для невичіслітельнихзавдань не було. Будь-яка програма була тут унікальною, як твірмистецтва. Досвід створення таких програм ніяк не узагальнювався, вміння їхстворювати не формалізувати. Ніхто не стане заперечувати, що, на відміну відмистецтва, у науки повинні бути методи розв'язання задач. За допомогою цих методіввсі однотипні завдання повинні вирішуватися однаковим способом. І "набившируку "на вирішенні завдань певного типу, легко вирішувати нові завдання,що відносяться до того ж типу. Але саме таких методів і не змогли придуматиті, хто створював перші програми невичіслітельного характеру. Колипрограміст створював програму дл гри в шахи, то він використовуваввласних знання про процес гри. Він вкладав їх в програму, а комп'ютерлише механічно виконували цю програму. Можна сказати, що комп'ютер "невідрізняв "обчислювальні програми від невичіслітельних. Він однаковимчином знаходив коріння квадратного рівняння або писав вірші. У пам'ятікомп'ютера не було знань про те, що він насправді робить. Про інтелекткомп'ютера можна було б говорити, якби він сам, на підставі власнихзнань про те, як протікає гра в шахи і як грають в цю гру люди,зумів скласти шахову програму або синтезував програму длянаписання нескладних вальсів і маршів. Не самі процедури, за допомогою якихвиконується та чи інша інтелектуальна діяльність, а розуміння того,як їх створити, як навчитися нового виду інтелектуальної діяльності, --ось де приховано те, що можна назвати інтелектом. Спеціальні метапроцедуринавчання нових видів інтелектуальної діяльності відрізняють людину відкомп'ютера. Отже, у створенні штучного інтелекту основнийзавданням стає реалізація машинними засобами тих метапроцедур,які використовуються в інтелектуальній діяльності людини. Що ж цеза процедури? У психології мислення є кілька моделей творчоїдіяльності. Одна з них називається лабіринтового. Суть лабіринтовогогіпотези, на якій заснована лабіринтова модель, полягає в наступному:перехід від вихідних даних задачі до розв'язання лежить через лабіринт можливихальтернативних шляхів. Не всі шляхи ведуть до бажаної мети, багато з нихзаводять у глухий кут, треба вміти повертатися до того місця, де втраченоправильний напрямок. Це нагадує спроби не дуже вмілого школяравирішити задачу про спрощення алгебраїчних виразів. Для цієї мети накожному кроці можна застосовувати деякі стандартні перетворення абопридумувати штучні прийоми. Але дуже часто замість спрощеннявираження відбувається його ускладнення, і виникають тупики, з яких немаєвиходу. На думку прихильників лабіринтового моделі мислення, рішення будь-якоїтворчої завдання зводиться до цілеспрямованого пошуку в лабіринтіальтернативних шляхів з оцінкою успіху після кожного кроку. З лабіринтовогомоделлю пов'язана перша з метапроцедур - цілеспрямований пошук в лабіринтіможливостей. Програмуванню цієї метапроцедури відповідаютьчисленні процедури пошуку, засновані на міркуваннях здорового глузду
(людського досвіду вирішення аналогічних завдань). У 60-х роках було створеночимало програм на основі лабіринтового моделі, в основному ігрових ідоводять теореми "в лоб", без залучення штучних прийомів.
Відповідне напрямок в програмуванні отримало назвуевристичного програмування. Висловлювалися навіть припущення, щоцілеспрямований пошук в лабіринті можливостей - універсальна процедура,придатна для вирішення будь-яких інтелектуальних завдань. Але дослідникивідмовилися від цієї ідеї, коли зіткнулися з завданнями, в яких лабіринтуможливостей або не існувало, або він був занадто великий дляметапроцедури пошуку, як, наприклад, при грі в шахи. Звичайно, у ційгрі лабіринт можливостей - це всі мислимі партії гри. Але як у цьомуастрономічно великому лабіринті знайти ті партії, які ведуть до виграшу?
Лабіринт настільки великий, що ніякі мислимі швидкості обчислень не дозволятьцілеспрямовано перебрати шляху в ньому. І всі спроби використовувати для цьоголюдські евристики (в даному випадку професійний досвід шахістів)не дають шляхи вирішення завдання. Тому створені шахові програми вжедавно використовують не тільки метапроцедуру цілеспрямованого пошуку, а йінші метапроцедури, пов'язані з іншими моделями мислення. Довгі роки впсихології вивчалася асоціативна модель мислення. Основний метапроцедуроймоделі є асоціативний пошук і асоціативне міркування.
Передбачається, що рішення невідомою завдання так чи інакше грунтуєтьсяна вже вирішених завданнях, чимось схожих на ту, яку треба вирішити. Новазавдання розглядається як уже відома, хоча і дещо різниться відвідомою. Тому спосіб її рішення повинен бути близький до того, якийколись допоміг вирішити подібну задачу. Для цього треба звернутися до пам'яті іспробувати знайти щось схоже, що раніше вже зустрічалося. Це і єасоціативний пошук. Коли, побачивши незнайому людину, ви намагаєтесяпригадати, на кого він схожий, реалізується метапроцедура асоціативногопошуку. Але поняття асоціації в психології ширше, ніж просто "схожість".
Асоціативні зв'язку можуть виникнути і за контрастом, як протиставленняодного іншому, і по суміжності, тобто в силу того, що деякі явищавиникали в рамках однієї і тієї ж ситуації або відбувалися одночасно
(або з невеликим зрушенням за часом). Асоціативне міркування дозволяєпереносити прийоми, використані раніше, на поточну ситуацію. На жаль,незважаючи на багаторічне вивчення асоціативної моделі, не вдалося створитиструнку теорію асоціативного пошуку та асоціативного міркування.
Виняток становить важливий, але приватний клас асоціацій, які називаютьсяумовними рефлексами. І все ж метапроцедура асоціативного пошуку іміркування зіграла важливу роль: вона допомогла створити ефективні програмив розпізнаванні образів, в класифікаційних завданнях і в навчанні ЕОМ.
Але одночасно ця метапроцедура привела до думки про те, що для їїефективного використання треба залучити результати, отримані в іншіймоделі мислення, що спирається на ідею внутрішнього подання проблемноїобласті, на знання про її особливості, закономірності та процедури діїв ній. Це уявлення про розумову діяльність людини зазвичайназивають модельної гіпотезою. Згідно з нею, мозок людини містить модельпроблемної ситуації, в якій йому треба прийняти рішення. Для вирішеннявикористовуються метапроцедури, які оперують з сукупністю знань з тієїпроблемної області, до якої належить дана проблемна ситуація.
Наприклад, якщо проблемна ситуація-перехід через вулицю з інтенсивнимрухом, то знання, які можуть допомогти її вирішити, стосуються способіворганізації руху транспорту, сигналів світлофорів, наявності доріжок дляпереходу і т. п. У модельній гіпотезі основними метапроцедурамі стаютьподання знань, міркування, пошук релевантної (пов'язаної з даноюпроблемною ситуацією) інформації в сукупності наявних знань, їхпоповнення і коректування.
Ці метапроцедури становлять ядро інтелектуальних можливостей сучаснихпрограм та програмних систем, орієнтованих на вирішення творчих завдань.
У сукупності з метапроцедурамі цілеспрямованого пошуку в лабіринтіможливостей, асоціативного пошуку і міркування вони утворюють арсеналінтелектуальних засобів, який мають сучасні інтелектуальнісистеми, часто називають системами, заснованими на знаннях. Можнасформулювати основні цілі і задачі штучного інтелекту. Об'єктомвивчення штучного інтелекту є метапроцедури, що використовуються привирішенні людиною завдань, традиційно званих інтелектуальними, аботворчими. Але якщо психологія мислення вивчає ці метапроцедуристосовно до людини, то штучний інтелект створює програмні (азараз вже і програмно-апаратні) моделі таких метапроцедур. Метадосліджень у галузі штучного інтелекту - створення арсеналуметапроцедур, достатнього для того, щоб ЕОМ (або інші технічнісистеми, наприклад роботи) могли знаходити по постановок задач їх вирішення.
Іншими словами, стали автономними програмістами, здатними виконуватироботу професійних програмістів-прикладників (створюють програмидля рішення завдань у визначеній предметній області). Зрозуміло,сформульована мета не вичерпує всіх завдань, які ставить перед собоюштучний інтелект. Це мета найближча. Наступні цілі пов'язані зспробою проникнути в області мислення людини, які лежать поза сфероюраціонального і виразність словесно (вербально) мислення. Бо в пошукувирішення багатьох завдань, особливо сильно відрізняються від раніше вирішених,велику роль відіграє та сфера мислення, яку називають підсвідомої,несвідомої, або інтуїтивно. Основними методами, що використовуються вштучний інтелект, є різного роду програмні моделі такошти, експеримент на ЕОМ та теоретичні моделі. Однак сучасні ЕОМвже мало задовольняють фахівців з штучного інтелекту. Вони немають нічого спільного з тим, як влаштований людський мозок. Тому йдеінтенсивний пошук нових технічних структур, здатних краще вирішуватизавдання, пов'язані з інтелектуальними процесами. Сюди відносятьсядослідження з нейроподібні штучним мереж, спроби побудуватимолекулярні машини, роботи в області голографічних систем і багатоінше. Більш докладно тут розглядаються штучні нейронні мережі. P>
Нейронні мережі p>
Рішення задачі класифікації є одним з найважливіших застосуваньнейронних мереж.
Задача класифікації являє собою завдання віднесення зразка до одногоз декількох попарно не перетинаються множин. Прикладом таких завданьможе бути, наприклад, завдання визначення кредитоспроможності клієнта банку,медичні завдання, в яких необхідно визначити, наприклад, вихідзахворювання, рішення задач управління портфелем цінних паперів (продатикупити або "притримати" акції в залежності від ситуації на ринку), завданнявизначення життєздатних і схильних до банкрутства фірм. p>
1. Мета класифікації p>
При вирішенні задач класифікації необхідно віднести наявні статичнізразки (характеристики ситуації на ринку, дані медогляду, інформація проклієнта) до певних класів. Можливо кілька способів поданняданих. Найбільш поширеним є спосіб, при якому зразокпредставляється вектором. Компоненти цього вектора єрізні характеристики зразка, які впливають на прийняття рішення про те,до якого класу можна віднести даний зразок. Наприклад, для медичнихзавдань як компоненти цього вектора можуть бути дані з медичноїкарти хворого. Таким чином, на підставі деякої інформації про приклад,необхідно визначити, до якого класу його можна віднести. Класифікатортаким чином відносить об'єкт до одного з класів відповідно допевним розбиванням N-мірного простору, який називаєтьсяпростором входів, і розмірність цього простору є кількістюкомпонент вектора.
Перш за все, потрібно визначити рівень складності системи. У реальнихзавданнях часто виникає ситуація, коли кількість зразків обмежена, щоускладнює визначення складності завдання. Можливо виділити три основнірівня складності. Перший (найпростіший) - коли класи можна розділитипрямими лініями (або гіперплоскостямі, якщо простір входів маєрозмірність більше двох) - так звана лінійна разделімость. У другомувипадку класи неможливо розділити лініями (площинами), але їх можливовідокремити за допомогою більш складного поділу - нелінійна разделімость. Утретьому випадку класи перетинаються і можна говорити тільки про ймовірнісноїразделімості. p>
В ідеальному варіанті після попередньої обробки ми повинні отриматилінійно разделімую завдання, тому що після цього значно спрощуєтьсяпобудова класифікатора. На жаль, під час вирішення реальних завдань ми маємообмежену кількість зразків, на підставі яких і проводитьсяпобудова класифікатора. При цьому ми не можемо провести такупередобробки даних, при якій буде досягнута лінійна разделімостьзразків. p>
2. Використання нейронних мереж в якості класифікатора. P>
Мережі з прямим зв'язком є універсальним засобом апроксимаціїфункцій, що дозволяє їх використовувати у вирішенні задач класифікації. Якправило, нейронні мережі виявляються найбільш ефективним способомкласифікації, тому що генерують фактично велике число регресійнихмоделей (які використовуються у вирішенні задач класифікації статистичнимиметодами).
На жаль, у застосуванні нейронних мереж у практичних завданнях виникаєряд проблем. По-перше, заздалегідь не відомо, який складності (розміру)може знадобитися мережа для досить точної реалізації відображення. Цяскладність може виявитися надмірно високою, що потребує складноїархітектури мереж. Так Мінський у своїй роботі "Персептрони" довів, щонайпростіші одношарові нейронні мережі здатні вирішувати тільки лінійноразделімие завдання. Це обмеження переборно при використаннібагатошарових нейронних мереж. У загальному вигляді можна сказати, що в мережі зодним прихованим шаром вектор, що відповідає вхідному зразком, перетворитьсяприхованим шаром в якийсь новий простір, що може мати іншурозмірність,?? потім гіперплоскості, відповідні нейронів вихідногошару, поділяють його на класи. Таким чином мережа розпізнає не тількихарактеристики вихідних даних, а й "характеристики характеристик",сформовані прихованим шаром. p>
3. Підготовка вихідних даних p>
Для побудови класифікатора необхідно визначити, які параметри впливаютьна ухвалення рішення про те, до якого класу належить зразок. При цьомуможуть виникнути дві проблеми. По-перше, якщо кількість параметрів мало,то може виникнути ситуація, за якої один і той же набір вихіднихданих відповідає прикладів, що знаходяться в різних класах. Тодінеможливо навчити нейронну мережу, і система не буде коректно працювати
(Не можу знайти мінімум, який відповідає такому набору вихіднихданих). Вихідні дані обов'язково повинні бути несуперечливі. Длявирішення цієї проблеми необхідно збільшити розмірність просторуознак (кількість компонент вхідного вектора, відповідногозразком). Але при збільшенні розмірності простору ознак можевиникнути ситуація, коли число прикладів може стати недостатнім длянавчання мережі, і вона замість узагальнення просто запам'ятає приклади з навчальноївибірки і не зможе коректно функціонувати. Таким чином, привизначенні ознак необхідно знайти компроміс з їх кількістю.
Далі необхідно визначити спосіб представлення вхідних даних длянейронної мережі, тобто визначити спосіб нормування. Нормування необхідна,оскільки нейронні мережі працюють з даними, представленими числами вдіапазоні 0 .. 1, а вихідні дані можуть мати довільний діапазон абовзагалі бути нечислових даними. При цьому можливі різні способи,починаючи від простого лінійного перетворення в необхідний діапазон ізакінчуючи багатовимірним аналізом параметрів і нелінійної нормування взалежно від впливу параметрів один на одного. p>
4. Кодування вихідних значень. P>
Задача класифікації при наявності двох класів може бути вирішена на мережі зодним нейроном у вихідному шарі, який може приймати одне з двохзначень 0 або 1, залежно від того, до якого класу належитьзразок. За наявності декількох класів виникає проблема, пов'язана зподанням цих даних для виходу мережі. Найбільш простим способомпредставлення вихідних даних в такому випадку є вектор, компонентиякого відповідають різним номерами класів. При цьому i-а компонентавектора відповідає i-му класу. Всі інші компоненти при цьомувстановлюються в 0. Тоді, наприклад, другим класом буде відповідати
1 на 2 вихід мережі і 0 на інших. При інтерпретації результату зазвичайвважається, що номер класу визначається номером виходу мережі, на якомуз'явилося максимальне значення. Наприклад, якщо в мережі з трьома виходами мимаємо вектор вихідних значень (0.2,0.6,0.4), то ми бачимо, що максимальназначення має другий компонент вектора, значить клас, до якогоналежить цей приклад, - 2. При такому способі кодування іноді вводитьсятакож поняття впевненості мережі в тому, що приклад відноситься до цього класу.
Найбільш простий спосіб визначення впевненості полягає у визначеннірізниці між максимальним значенням виходу і значенням іншого виходу,яке є найближчим до максимального. Наприклад, для розглянутоговище прикладу впевненість мережі в тому, що приклад відноситься до другогокласу, визначиться як різниця між другою і третьою компонентою вектораі дорівнює 0.6-0.4 = 0.2. Відповідно чим вище впевненість, тим більшеймовірність того, що мережа дала правильну відповідь. Цей метод кодуванняє найпростішим, але не завжди самим оптимальним способомпредставлення даних.
Відомі й інші способи. Наприклад, вихідний вектор являє собоюномер кластеру, записаний в двійковій формі. Тоді за наявності 8 класівнам буде потрібно вектор з 3 елементів, і, скажімо, 3 класу будевідповідати вектор 011. Але при цьому у випадку одержання невірногозначення на одному з виходів ми можемо отримати невірну класифікацію
(невірний номер кластера), тому має сенс збільшити відстань міждвома кластерами за рахунок використання кодування виходу за кодом Хеммінга,що підвищить надійність класифікації.
Інший підхід полягає в розбитті завдання з k класами на k * (k-1)/2 підзадачз двома класами (2 на 2 кодування) кожна. Під підзадачі в даномувипадку розуміється те, що мережа визначає наявність однієї з компонентвектора. Тобто вихідний вектор розбивається на групи по два компоненти вкожній таким чином, щоб у них увійшли всі можливі комбінації компонентвихідного вектора. Число цих груп можна визначити як кількістьневпорядкованих вибірок по два з вихідних компонент. З комбінаторики p>
Тоді, наприклад, на завдання з чотирма класами ми маємо 6 виходів
(підзадач) розподілених наступним чином:
| № | КомпонентиВихода |
| підзадачі (виходу) | |
| 1 | 1-2 |
| 2 | 1-3 |
| 3 | 1-4 |
| 4 | 2-3 |
| 5 | 2-4 |
| 6 | 3-4 | p>
Де 1 на виході говорить про наявність однієї з компонент. Тоді ми можемоперейти до номера класу за результатами розрахунку мережею наступним чином:визначаємо, які комбінації отримали одиничне (точніше близьке до одиниці)значення виходу (тобто які підзадачі у нас активувалися), і вважаємо, щономер класу буде той, який увійшов в найбільшу кількістьактивованих підзадач (див. таблицю).
| № класу | Акт. Виходи |
| 1 | 1,2,3 |
| 2 | 1,4,5 |
| 3 | 2,4,6 |
| 4 | 3,5,6 | p>
Це кодування в багатьох задачах дає кращий результат, ніж класичнийспосіб кодування. p>
5. Вибір обсягу мережі. P>
Правильний вибір обсягу мережі має велике значення. Побудувати невелику іякісну модель часто буває просто неможливо, а велика модель будепросто запам'ятовувати приклади з навчальної вибірки і не вироблятиапроксимацію, що, природно, приведе до некоректної роботикласифікатора. Існують два основні підходи до побудови мережі --конструктивний і деструктивний. При першому з них спочатку береться мережамінімального розміру, і поступово збільшують її до досягнення необхідноїточності. При цьому на кожному кроці її заново навчають. Також існує такзваний метод каскадної кореляції, при якому після закінчення епохивідбувається коригування архітектури мережі з метою мінімізації помилки. Придеструктивному підході спочатку береться мережа завищеного обсягу, і потім знеї віддаляються вузли та зв'язку, мало впливають на рішення. При цьому кориснопам'ятати наступне правило: число прикладів у навчальному безлічі повинно бутибільше числа настроюються ваг. Інакше замість узагальнення мережа простозапам'ятає дані і втратить здатність до класифікації - результат буденевизначений для прикладів, які не ввійшли в навчальну вибірку. p>
6. Вибір архітектури мережі. P>
При виборі архітектури мережі звичайно випробовується кілька конфігурацій зрізною кількістю елементів. При цьому основним показником єобсяг навчального безлічі і узагальнююча здатність мережі. Зазвичайвикористовується алгоритм навчання Back Propagation (зворотного поширення)з підтверджуючим безліччю. p>
7. Алгоритм побудови класифікатора на основі нейронних мереж. P>
1. Робота з даними p>
1. Скласти базу даних із прикладів, характерних для даного завдання p>
2. Розбити всю сукупність даних на дві множини: навчальне і тестове (можливо розбивка на 3 безлічі: навчальне, тестове та підтверджує).
2. Попередня обробка p>
1. Вибрати систему ознак, характерних для даного завдання, і перетворити дані відповідним чином для подачі на вхід мережі p>
(нормування, стандартизація і т.д.). У результаті бажано отримати лінійно відокремлюване простір безлічі зразків. P>
2. Вибрати систему кодування вихідних значень (класичне кодування, 2 на 2 кодування і т.д.)
3. Конструювання, навчання та оцінка якості мережі: p>
1. Вибрати топологію мережі: кількість шарів, кількість нейронів у шарах і т.д. p>
2. Вибрати функцію активації нейронів (наприклад "сігмоіда") p>
3. Вибрати алгоритм навчання мережі p>
4. Оцінити якість роботи мережі на основі підтверджує безлічі або іншого критерію, оптимізувати архітектуру (зменшення ваг, проріджування простору ознак) p>
5. Зупиниться на варіанті мережі, що забезпечує найкращу здатність до узагальнення та оцінити якість роботи з тестового безлічі.
4. Використання та діагностика p>
1. З'ясувати ступінь впливу різних факторів на прийняте рішення p>
(евристичний підхід). P>
2. Переконатися, що мережа дає необхідну точність класифікації (число неправильно розпізнаних прикладів мало)
5. При необхідності повернуться на етап 2, змінивши спосіб представлення зразків або змінивши базу даних.
6. Практично використовувати мережу для вирішення завдання. P>
Прогнозування обсягу продажів кондитерських виробів за допомогою нейроннихмереж. p>
1. Постановка завдання
Обсяг продажів - один з ключових показників, що характеризують діяльністькомерційної фірми. Тому завдання прогнозування обсягу продажівявляє собою великий інтерес, наприклад, для компаній, якізаймаються оптовою торгівлею. Товарознавцям необхідно знати зразковукількість продукції, яку вони зможуть реалізувати найближчим часом, длятого, щоб, з одного боку, мати достатню кількість товарів наскладі, а з іншого - не перевантажити склади продукцією, що особливоактуально, якщо продукція має невеликий термін зберігання.
У більшості випадків обсяг продажу того чи іншого товару піддаєтьсяпрогнозом. Наприклад, багато товарів продаються у відповідність з яскравовираженою сезонної складової, що легко визначається за допомогоюаналітичних технологій. З їх допомогою можна прогнозувати обсяги продажівпо всіх товарних позиціях, що особливо актуально у випадку їх великогокількості. При необхідності можна також враховувати і додатковічинники, наприклад, рекламну кампанію, кон'юнктуру ринку, діїконкурентів і т.д. Комплексний облік всіх факторів може значнопідвищити якість прогнозу.
2. Метод вирішення
Проілюструвати рішення даного завдання ми зможемо на прикладіпрогнозування обсягу продажів мармеладу 'Лимонні часточки' на основіреальних даних компанії, що займається оптовим продажем кондитерськихвиробів. Прогнозування обсягу продажів побудуємо тільки на основі історіїпродажів по даній товарній позиції за певний період. Ця інформаціязбирається в базу даних, що складається з двох колонок: дата і продажу вкількісному виразі. У нашому випадку історія продажів розбита по тижнях,відповідно, прогнозувати ми також будемо на одну або кілька тижнів
(вихідні дані тут).
Для отримання якісного прогнозу нам необхідно провестипопередню обробку даних за допомогою програми RawData Analyzer,що входить до складу пакету Deductor. По-перше, дані з історії продажівслід згладити, тому що по зашумленими даними досить складно встановитизалежність зміни обсягу продажів. Після згладжування даних за допомогоювейвлетів динаміка змін визначається та прогнозується набагатоякісніше. p>
p>
Пояснення до малюнка: темним кольором відображені реальні дані, світлим - згладжені.
По-друге, для проведення прогнозування структуру вхідних данихнеобхідно перетворити за спеціальною схемою. Для цього вибирається глибиназанурення, тобто кількість тимчасових інтервалів, за якими ми будемопрогнозувати наступний. Візьмемо глибину занурення рівною 4, тобтопрогнозування обсягу продажів на наступний тиждень буде здійснюватися зарезультатами чотирьох попередніх тижнів (вихідні дані тут). Зрозуміло,і глибина занурення, і горизонт прогнозування, тобто кількістьпрогнозованих показників, підбираються окремо в кожній конкретнійзавданню. Далі слід перетворити дані з продажу до наступного вигляду: p>
| smoothB3 | smoothB2 | smoothB1 | smoothB0 | smoothF1 |
| m-4 | m-3 | m-2 | m-1 | m |
| m-3 | m-2 | m-1 | m | m 1 |
| m-2 | m-1 | m | m 1 | m 2 |
| ... | ... | ... | ... | ... | P>
Ми отримуємо так зване 'ковзне вікно', в якому представлені данітільки за 5 тижнів. Перші 4 колонки - це дані за тижні, на основіяких будемо будувати прогноз. Останній стовпчик - показник, який мибудемо прогнозувати. Так як даних у нас більше, ніж за 5 тижнів, миможемо зрушувати це вікно з тимчасової осі. Таким чином готується навчальнавибірка, і саме в такому вигляді представляються дані для подальшогоаналізу.
Для вирішення поставленої задачі скористаємося програмою Neural Analyzer,що також входить до складу пакету Deductor. Нейронна мережа не тільки здатнавстановити залежність зміни цільової змінної, якою в даномувипадку є кількість проданого мармеладу, але і дозволитьпрогнозувати обсяг продажів на кілька тижнів наперед. Після закінченняпроцесу навчання на графіку виходів мережі можна помітити, що мережадосить точно моделює поведінку кривої. Однак, на останніх тижняхпомилка помітно збільшується, причому тенденція в кінці часового відрізка --місце, що нас найбільше цікавить, була невірно вгадаланейромереж. p>
p>
Пояснення до малюнка: зеленими крапками відображаються реальні показники, червоними - вихід мережі.
Отримати хороший прогноз за допомогою такої моделі не вдасться. Однак, це неозначає, що нейронні мережі не можуть успішно вирішити поставлене завдання.
Незадовільна якість результату можна пояснити недостатністюданих: для навчання мережі ми використовували дані з продажу трохи більше,ніж за півроку. Виходить, що нейросети просто нічого не може знати провсіх сезонних залежності, наприклад, про падіння продажів у період літніхвідпусток.
Для підвищення якості прогнозу необхідно доповнити аналізованудані даними за аналогічний період минулого року, також розбитими натижні. Таким чином, внесемо для навчання інформацію про сезонності, іструктура даних буде наступною:
| Prev_year | smoothB3 | smoothB2 | smoothB1 | smoothB0 | smoothF1 |
| | | | | | |
| Pm | m-4 | m-3 | m-2 | m-1 | m |
| Pm 1 | m-3 | m-2 | m-1 | m | m 1 |
| Pm 2 | m-2 | m-1 | m | m 1 | m 2 |
| ... | ... | ... | ... | ... | ... | P>
Pm, Pm 1, Pm 2 і т.д. - Кількість проданого товару за відповіднутиждень минулого року. При такому підході якість прогнозування помітнополіпшується. p>
p>
Пояснення до малюнка: зеленими крапками відображаються реальні показники, червоними - вихід мережі.
На малюнку видно, що прогноз на останні три тижні досить точний. Уданому випадку при прогнозуванні враховуються обидва чинники: торішніпродажу, службовці шаблоном для прогнозування, і тренд, тобто тенденція,яка склалася в цьому році. Саме це і зумовило якіснийпрогноз.
3. Результат
За допомогою аналітичних технологій ми вирішили завдання прогнозуванняоптових продажів мармеладу. За допомогою побудованої нами системи на основінейронних мереж ми маємо можливість будувати короткострокові та середньостроковіпрогнози. Крім того, позитивно на якості прогнозу може позначитисяінформація про зовнішнє середовище (курс долара, рекламна підтримка і т.д.), атакож категоріальна змінна, що позначає квартал чи пора року.
Завдяки використанню нейронних мереж при прогнозуванні, такого родузміни в моделі зводяться, фактично, до додавання нових колонок внавчальну вибірку та перенавчання мережі.
Головна проблема для якісного прогнозу - наявність історії продажів задосить тривалий термін і грамотна передобробки даних. Залученняексперта в цій галузі допоможе дати відповідь на питання, чи враховуються прианалізі всі фактори, що впливають на результат. p>
Висновок. p>
Існують декілька основних проблем, що вивчаються у штучномуінтелекті. Представлення знань - розробка методів і прийомів дляформалізації та подальшого введення в пам'ять інтелектуальної системи знаньз різних проблемних областей, узагальнення і класифікація накопиченихзнань, використання знань при вирішенні задач. Моделювання міркувань --вивчення та формалізація різних схем людських умовиводів,використовуються в процесі вирішення різноманітних завдань, створення ефективнихпрограм для реалізації цих схем в обчислювальних машинах. Діалоговіпроцедури спілкування природною мовою, що забезпечують контакт міжінтелектуальною системою і людиною-спеціалістом в процесі вирішеннязавдань. Планування доцільної діяльності - розробка методівпобудови програм складної діяльності на підставі тих знань пропроблемної області, які зберігаються в інтелектуальній системі. Навчанняінтелектуальних систем у процесі їх діяльності, створення комплексузасобів для накопичення та узагальнення умінь і навичок,накопичуються в такихсистемах. Крім цих проблем досліджуються багато інших, що складають тойзачепив, на який будуть спиратися фахівці на наступному витку розвиткутеорії штучного інтелекту. У практику людської діяльностіінтелектуальні системи вже впроваджуються. Це і найбільш відомі широкомуколу фахівців експертні системи, що передають досвід більш підготовленихфахівців менш підготовленим та інтелектуальні інформаційні системи
(наприклад, системи машинного перекладу) та інтелектуальні роботи, іншісистеми, що мають повне право називатися інтелектуальними. Без такихсистем сучасний науково-технічний прогрес вже неможливий. p>