Побудова та дослідження моделі штучної нейронної мережі для вирішення задач класифікації об'єктів у багатопоточних комп'ютерних середовищах

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    2,08 Мб
  • Опубликовано:
    2013-07-24
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Побудова та дослідження моделі штучної нейронної мережі для вирішення задач класифікації об'єктів у багатопоточних комп'ютерних середовищах

Зміст

 

Вступ

1. Введення в теорію штучних нейронних мереж

1.1 Модель мозку та біологічний нейрон

1.1.1 Аналогія мозку та комп'ютерного процесору

1.1.2 Біологічний нейрон

1.2 Штучний нейрон

1.3 Штучні нейронні мережі та їх архітетура

1.3.1 Одношарові прямонаправлені мережі

1.3.2 Багатошарові прямонаправлені мережі

1.3.3 Рекурентні мережі

1.3.4 Повністю зв’язані мережі

Висновки до розділу

2. Проблема класифікації символів

2.1 Використання нейронних мереж для вирішення практичних завдань

2.2 Рецепторна структура сприйняття інформації

2.2.1 Поняття про образ

2.2.2 Проблема розпізнавання образів

2.2.3 Перетворення зображень у цифровий код

2.3 Навчання штучної нейронної мережі

2.3.1 Контрольоване навчання

2.3.2 Неконтрольоване навчання

2.3.3 Оцінки навчання

2.3.4 Правила навчання

2.3.5 Навчання методом змагання

2.4 Перцептрон як модель розпізнавання

2.4.1 Поняття перцептрона

2.4.2 Багатошаровий перцептрон

2.4.3 Алгоритм вирішення задач за допомогою БШП

2.4.4 Формалізація задачі розпізнавання букв алфавіту

Висновки до розділу

3. Моделі та засоби організації багатопоточних обчислень

3.1 Багатопочність як явище

3.2 Моделі організації багатопоточності

3.3 Проблеми багапоточності

3.4 Паралельні обчислення

3.5 Програмні інструменти паралелізму

Висновки до розділу

4. Задача моделювання штучної нейронної мережі з розпаралелюванням процесів

4.1 Постановка задачі

4.2 Теоретичне обґрунтування обраних моделей

4.2.1 Метод зворотного поширення помилки

4.2.2 Підходи до організації багапоточності

4.2.3 The Task Parallel Library (TPL)

4.3 Опис системи, що розробляється

4.3.1 Проектування функціональної структури

4.3.2 Опис та ієрархія основних класів системи

4.4 Алгоритм роботи нейронної мережі для задачі класифікації символів

4.4.1 Трансформація малюнку у машинний код

4.4.2 Реалізація алгоритму зворотного поширення помилки

4.4.3 Програмна реалізація багатопоточності

4.4.4 Реалізація функції розпізнавання

4.5 Програмна реалізація нейронної мережі для розпізнавання символів

4.5.1 Запуск та закриття програмного забезпечення

4.5.2 Основні елементи інтерфейсу

4.5.3 Можливі проблеми та шляхи їх вирішення

4.6 Тестування розробленого програмного забезпечення

4.6.1 Тестування роботи програмного забезпечення для виконання задач класифікації

4.6.2 Тестування швидкості роботи програмного забезпечення при його роботі в одно та багатопоточних комп'ютерних середовищах

Висновки до розділу

5. Організаційно-економічний розділ

5.1 Функціонально-вартісний аналіз (ФВА)

5.2 Обґрунтування функцій програмного продукту

5.2.1 Виділення основних функцій

5.2.2 Опис основних функцій ПП

5.3 Обґрунтування системи параметрів

5.4 Аналіз варіантів реалізації функцій

5.5 Економічний аналіз варіантів ПП

5.5.1 Визначення витрат на розробку ПП

5.5.2 Оцінка техніко-економічного рівня варіантів ПП

Висновки до розділу

6. Охорона праці та безпека в надзвичайних ситуаціях

6.1 Аналіз умов праці в приміщенні, де експлуатується програмне забезпечення. Заходи з охорони праці

6.1.1 Аналіз приміщення

6.1.2 Повітря робочої зони

6.1.3 Виробниче освітлення

6.1.4 Захист від виробничого шуму і вібрації

6.1.5 Випромінювання

6.1.6 Електробезпека

6.1.7 Безпека технологічних процесів та обслуговування обладнання

6.2 Пожежна безпека

Висновки до розділу

Висновки

Перелік посилань

Перелік умовних позначень, символів, скорочень і термінів

 

ЦП - центральний процесор

НМ - нейронна мережа

ШН - штучний нейрон

ШНМ - штучна нейронна мережа

ПРО - проблема розпізнавання образів

БШП - багатошаровий перцептрон

ПП - програмний продукт

ОС - операційна система- application programming interfaces- Message Passing Interface- Open Multi-Processing- The Task Parallel Library

Вступ


В останнє десятиліття у світі бурхливо розвивається нова прикладна область математики, що спеціалізується на штучних нейронних мережах, які являють собою системи, що здатні до самонавчання та імітують роботу головного мозку людини.

Актуальність досліджень в цьому напрямку зумовлюється великою кількістю різноманітних можливостей застосування НМ. Це автоматизація процесів розпізнавання образів, адаптивне керування, прогнозування, створення експертних систем та ін.

За своєю природою нейронні мережі - це системи, які за своєю природою являються паралельними. Проте, на жаль, на сьогоднішній день для досліджень використовуються послідовні алгоритми їх навчання та роботи. А це вже зводить нанівець всі переваги НМ.

Метою даного дипломного проекту є розробка системи, призначеної для побудови багатошарової нейронної мережі, що буде навчатися за алгоритмом зворотного поширення помилки, та яка буде призначена саме для роботи в багатопоточних комп’ютерних середовищах. Як задачу класифікації було обрано задачу розпізнавання букв латинського алфавіту.

У першому розділі буде розглянуто теорію штучних нейронних мереж, а саме існуючі ієрархії алгоритмів побудови НМ.

У другому буде розглянута проблематика задачі розпізнавання образів.

Третій розділ присвячений організації багатопоточності.

У четвертому розділі зроблено опис розробленого програмного продукту.

Четвертий та п’ятий розділ присвячені проблемі економічного обґрунтування та охороні праці.

штучна нейронна мережа розпаралелювання

1. Введення в теорію штучних нейронних мереж


Сьогодні є безперечним значний науковий та практичний інтерес до обчислювальних структур нового типу - штучних нейронних мереж (ШНМ). Він зумовлений насамперед тим, їх що технологія дозволила розробити ефективні підходи до вирішення проблем, що вважалися складними для реалізації в традиційних комп’ютерах.

Штучні нейронні мережі - математичні моделі, а також їхня програмна та апаратна реалізація, побудовані за принципом функціонування біологічних нейронних мереж - мереж нервових клітин живого організму. Системи, архітектура і принцип дії базується на аналогії з мозком живих істот. Ключовим елементом цих систем виступає штучний нейрон як імітаційна модель нервової клітини мозку - біологічного нейрона.

1.1 Модель мозку та біологічний нейрон


1.1.1 Аналогія мозку та комп'ютерного процесору

Мозок і Центральний Процесор (ЦП) ЕОМ, є найбільш складними системами переробки інформації. ЦП інтегрує мільйони напівпровідникових транзисторів і подібний мозку, в якому міститься близько 100 мільярдів нейронів, кожен з яких має в середньому 10 000 зв'язків. За аналогією зі схемотехнікою великих інтегральних схем (ВІС) ЕОМ, де відбувається прийом, передача і переробка цифрової інформації, біологічна мережа нейронів відповідає за всі явища, які ми називаємо думками, емоціями, пам'яттю, сенсомоторними та автономними функціями. Мозок, в якому, на відміну від ЦП, щодня гине велика кількість нейронів, надзвичайно надійний і продовжує функціонувати. Обробка величезних обсягів інформації мозком здійснюється дуже швидко, за долі секунди, незважаючи на те, що сам нейрон є повільно діючим елементом з часом реакції у декілька мілісекунд. На відміну від біологічного нейрона, електричні напівпровідники ЦП є більш швидкодіючими і безпомилковими, проте кількість зв'язків між нейронами мозку у багато разів перевищує зв'язки між напівпровідниками ЦП, що забезпечує паралелізм і багатопоточність обробки інформації.

1.1.2 Біологічний нейрон

Нервова система людини побудована з елементів (нейронів), має приголомшуючу складність. Близько 1011 нейронів беруть участь в приблизно 1015 передаючих зв'язках, що мають довжину метр і більше. Кожен нейрон володіє багатьма якостями, спільними з іншими елементами тіла, але його унікальною здатністю є прийом, обробка і передача електрохімічних сигналів по нервових шляхах, які утворюють комунікаційну систему мозку.

Рисунок 1.1 - Біологічний нейрон

На рис.1.1 показана структура пари типових біологічних нейронів. Нейрон складається з трьох частин: тіла клітини, дендритів і аксона, кожна частина зі своїми, але взаємопов’язаними функціями. Дендрити (входи нейрона) йдуть від тіла нервової клітини (сома) до інших нейронів, де вони приймають сигнали в точках з'єднання (синапсах) [23]. Прийняті синапсом вхідні сигнали підводяться до тіла нейрона. Тут вони підсумовуються, причому одні входи стимулюють активізацію нейрона, а інші - зниження його активності. Коли сумарна активність (збудження) нейрона перевищує деякий поріг, нейрон переходить в активний стан, посилаючи по аксону (виходу нейрона) сигнал іншим нейронам. У цієї основної функціональної схеми багато спрощень і виключень, проте більшість штучних нейронних мереж моделює лише ці прості властивості.

Нервові клітини, або нейрони, являють собою особливий вид клітин в живих організмах, що володіють електричною активністю, основне призначення яких полягає в оперативному управлінні організмом. Їх можна розбити на три великі групи: рецепторні, проміжні та ефекторні. Рецепторні нейрони забезпечують введення в мозок сенсорної інформації. Вони трансформують сигнали, що надходять на органи почуттів [28], в електричну імпульсацію своїх аксонів. Ефекторні нейрони передають сигнали, що приходять на них, виконавчим органам. На кінці їх аксонів є спеціальні синаптичні з'єднання з виконавчими органами, наприклад м'язами, де збудження нейронів трансформується в скорочення м'язів. Проміжні нейрони здійснюють обробку інформації, що одержують від рецепторів, і формують керуючі сигнали для ефекторів. Вони утворюють центральну нервову систему.

1.2 Штучний нейрон


Основними компонентами нейронної мережі є нейрони /neurons/ (елементи, вузли), які з’єднані зв’язками. Сигнали передаються по зваженим зв’язкам (connection), з кожним з яких пов’язаний ваговий коефіцієнт (weighting coefficient) або вага.

Штучний нейрон (Математичний нейрон Маккалока - Піттса, Формальний нейрон [26]) - вузол штучної нейронної мережі, що є спрощеною моделлю природного нейрона. Математично, штучний нейрон зазвичай представляють як деяку нелінійну функцію від єдиного аргументу - лінійної комбінації всіх вхідних сигналів. Цю функцію називають функцією активації або функцією спрацьовування, передавальною функцією.

Отриманий результат посилається на єдиний вихід.

Штучний нейрон імітує в першому наближенні властивості біологічного нейрона. На вхід штучного нейрона поступає множина сигналів, які є виходами інших нейронів. Кожен вхід множиться на відповідну вагу, аналогічну його синаптичній силі, і всі виходи підсумовуються, визначаючи рівень активації нейрона.

Кожен нейрон характеризується своїм поточним станом за аналогією з нервовими клітинами головного мозку, які можуть бути порушені або загальмовані. Він володіє групою синапсів - односпрямованих вхідних зв'язків, з'єднаних з виходами інших нейронів, а також має аксон - вихідну зв'язок даного нейрона, з якої сигнал (збудження або гальмування) надходить на синапси наступних нейронів. Загальний вигляд нейрона наведено на рис.1.2 Кожен синапс характеризується величиною синаптичного зв'язку або її вагою wi, який з фізичного змістом еквівалентний електричної провідності.

Рисунок 1.2 - Штучний нейрон

Поточний стан нейрона визначається, як зважена сума його входів:

 (1.1)

Вихід нейрона є функція його стану:

y = f (s) (1.2)

де wі - вага (weight) синапса, i=1…n; b - значення зсуву (bias); s - результат сумування (sum); хi - компонент вхідного вектора (вхідний сигнал), i=1…n; у - вихідний сигнал нейрона; п - число входів нейрона; f - нелінійне перетворення (функція активації).

В загальному випадку вхідний сигнал, вагові коефіцієнти і зсув можуть приймати дійсні значення, а в багатьох практичних задачах - лише деякі фіксовані значення. Вихід у визначається видом функції активації і може бути як дійсним, так і цілим.

Описаний обчислювальний елемент можна вважати спрощеною математичною моделлю біологічних нейронів, щоб підкреслити відмінність нейронів біологічних і штучних, другі іноді називають нейроноподібними елементами чи формальними нейронами.

1.3 Штучні нейронні мережі та їх архітетура


У загальному випадку поняття "штучна нейронна мережа" охоплює ансамблі нейронів будь-якої структури, проте практичне застосування знайшли тільки деякі з них. Це пояснюється тим, що архітектура ШНМ безпосередньо пов'язана з методом її навчання. Навіть різні етапи розвитку ШНМ визначалися появою нових архітектур мереж і спеціально розроблених для них методів навчання.

Сьогодні відома велика кількість нейронних структур та їх модифікацій, що орієнтовані на вирішення конкретного типу задач.

Розглянемо детальніше основні властивості ШНМ:

·        локальна обробка інформації в штучному нейроні, який є базовою структурною одиницею мережі;

·        паралелізм, результатом якого є вирішення глобальної задачі шляхом представлення її у вигляді множини локальних задач, що тісно взаємодіють між собою;

·        здатність до навчання, яке підвищує ефективність роботи мережі;

·        здатність до розподіленого зберігання знань, які були одержані в ході навчання.

ШНМ задають у вигляді направлених графів, вершинами яких є нейрони, а ребрами позначені міжнейронні зв’язки.

Архітектури сучасних нейронних мереж найчастіше поділяють на три категорії:

·        мережі з повним набором міжнейронних зв’язків;

·        мережі з фіксованим індексом оточення;

·        мережі з пошаровою структурою.

У ШНМ із повним набором міжнейронних зв’язків забезпечується можливість взаємодії кожного нейрона мережі з будь-яким іншим. На рис.1.4 наведений приклад повного з’єднання чотирьох нейронів.

Рисунок 1.4 - Повне з’єднання

Структури з повним з’єднанням є узагальненими структурами, оскільки всі інші довільні об’єднання нейронів можуть розглядатися як підмножини даної структури. Тому ШНМ із повним з’єднанням є універсальним середовищем для реалізації мережних алгоритмів. Широке використання таких структур обмежується недоліком, який полягає в значному зростанні кількості міжнейронних зв’язків при збільшенні кількості нейронів.

У випадку, коли необхідно використовувати структури з великою кількістю нейронів, застосовують кліткові структури з фіксованим індексом оточення. На рис.1.5 наведений приклад структури такого типу з індексом оточення 4.

Рисунок 1.5 - Кліткова нейронна мережа з індексом оточення 4

Ще однією важливою характеристикою нейронних мереж із постійним індексом оточення є модульність. Потужність структури у цьому випадку може нарощуватись простим додаванням елементів без зміни ідеології алгоритму, що на ній працює.

Найбільш поширеними є структуровані за шарами нейронні мережі, які, в залежності від свого функціонального призначення, можуть містити однотипні або різнотипні нейрони. Виходячи з шарової структури ШНМ, характер міжнейронних зв’язків має свої міжшарові та внутрішньошарові особливості. На рис.1.6 показана класифікація видів міжнейронних зв’язків.

Рисунок 1.6 - Види міжнейронних зв’язків

Нейронні структури з повним з’єднанням можуть бути як одношаровими, так і багатошаровими. У одношаровій структурі з повним з’єднанням всі вхідні сигнали можуть поступати на всі нейрони. Класичною структурою даного типу є перцептрон Розенблатта [29].

Багатошарові мережі з повним з’єднанням забезпечують можливість передачі інформації з кожного нейрона попереднього шару на будь-який нейрон наступного. Найчастіше це ― багатошарові перцептрони.

У випадку прямого міжшарового поширення інформація передається однонаправлено у напрямку зростання номера шару.

Пряме поширення в межах одного шару використовують у випадку, коли група нейронів даного шару з’єднана з попереднім шаром опосередковано через виділені нейрони.

Двонаправлене поширення допускає також зворотну передачу, що дозволяє створювати алгоритми, за якими враховувався б взаємний міжнейронний обмін.

Таким чином, однонаправленість зв’язків призводить до побудови виключно ієрархічних структур, у яких обробка інформації розподіляється по рівнях. За кожний рівень ієрархічної обробки інформації відповідає свій шар нейронів.

Вихідна інформація більш високого рівня попереднього шару є вхідною для нейронів наступного шару, який забезпечує глибший рівень обробки.

Двонаправлені міжшарові зв’язки необхідні для реалізації рекурентних структур, які дають можливість застосування ітераційних алгоритмів. Загальною рисою таких структур є те, що подальша передача інформації відбувається тільки у випадку завершення ітераційного процесу.

Двонаправлені зв’язки у межах одного шару використовуються для створення конкуруючих груп нейронів.

При активації сигналом з попереднього шару кожен з нейронів передає сигнал активації нейронам своєї групи та сигнал гальмування всім іншим нейронам. В результаті конкурентоздатною стає та група нейронів, що одержала найбільше збудження.

На сьогоднішній день можна виділити чотири основні різновиди архітектури ШНМ:

·        одношарові прямонаправлені мережі;

·        багатошарові прямонаправлені мережі;

·        рекурентні мережі;

·        повністю зв'язані мережі.

1.3.1 Одношарові прямонаправлені мережі

Шаровою називається ШНМ, що складається з груп нейронів, розділених по шарах. ШНМ, що містить k шарів, називається k-шарової. Якщо сигнали в мережі розповсюджуються тільки за направленням з початку в кінець, то така ШНМ називається прямонаправленою.

На рис.1.7 зображена одношарова прямонаправлена ШНМ.

Рисунок 1.7 - Одношарова прямо спрямована ШНМ

Вона включає в себе шар вхідних нейронів і шар вихідних. Нейрони вхідного шару просто ретранслюють сигнали на вихідний прошарок, не перетворюючи їх. У вихідному шарі відбувається перетворення сигналів і формування реакції мережі. Необхідно відзначити, що нейрони ШНМ також іноді називаються вузлами або обчислювальними модулями. Кількість нейронів в одному шарі визначає розмір шару.

На відміну від прийнятої методики позначення, такі ШНМ називаються одношаровими, а не двошаровими. Цим підкреслюється, що обчислення проводяться лише одним шаром мережі.

1.3.2 Багатошарові прямонаправлені мережі

Вони характеризуються наявністю одного або декількох прихованих шарів, здійснюють перетворення інформації. Нейрони прихованого шару називаються прихованими нейронами або прихованими вузлами. Використання прихованих шарів дозволяє ШНМ здійснювати нелінійні перетворення вхід-вихід будь-якої складності або витягати з вхідних даних статистичні показники високих порядків. Ці унікальні властивості багатошарових мереж особливо проявляються при високій розмірності простору вхідних сигналів.

На рис.1.8 представлена схема тришарової прямо спрямованої ШНМ з одним прихованим шаром. Для опису такої мережі використовується запис NN3-5-2. Тут 3 - розмір вхідного шару мережі, 5 - прихованого, і 2 - вихідного. У загальному випадку прямо спрямованої ШНМ з g вхідними нейронами, q вихідними нейронами і n прихованими шарами розміру hi позначається NNg-h1-h2-. - hn-q.

Нейрони вхідного шару в таких мережах просто ретранслюють вхідні сигнали на перший прихований шар, не перетворюючи їх. В прихованих нейронах послідовно, шар за шаром, відбувається нелінійне перетворення сигналів. Сигнали з останнього прихованого шару надходять на нейрони вихідного шару, які формують реакцію мережі.

Рисунок 1.8 - Схема тришарової прямо спрямованої ШНМ з одним прихованим шаром

Формально, не існує обмежень на типи активаційних функцій нейронів різних верств ШНМ або навіть одного шару, проте зазвичай всі приховані нейрони вибираються одного типу. Вихідний шар ШНМ може складатися з нейронів з тим же типом активаційної функції, що й у нейронів прихованого шару, але найбільш поширеним є модель прямо спрямованої мережі з лінійними вихідними нейронами. ШНМ цього типу з активаційними функціями нейронів прихованого шару називаються багатошаровими перцептронами. Багатошарові перцептрони знайшли широке застосування при вирішенні різних завдань і є одним з головних об'єктів теоретичних досліджень.

Зображена на рис.1.8 ШНМ називається повністю пов'язаною прямо спрямованою ШНМ, так як кожен нейрон з одного шару пов'язаний з усіма нейронами наступного шару. Широке застосування також знаходять частково пов'язані прямо спрямовані ШНМ, в яких нейрони одного шару пов'язані тільки з певною частиною нейронів наступного шару. Така архітектура дозволяє закласти в ШНМ апріорні знання про бажаний закон обробки сигналів у мережі.

Тришарові прямо спрямовані ШНМ широко використовуються для вирішення задач класифікації, розпізнавання образів, апроксимації та управління.

1.3.3 Рекурентні мережі

Цей тип ШНМ відрізняється існуванням зворотних зв'язків та елементів тимчасової затримки сигналу.

Найбільш простим випадком рекурентна мережі є один шар нейронів, охоплений зворотними зв'язками. При цьому кожен нейрон отримує затримані вихідні сигнали всіх інших нейронів.

На рис.1.9 представлена рекурентна ШНМ, що містить прихований шар нейронів. У цьому випадку кожен нейрон отримує, крім вхідних сигналів, ще й всі вихідні сигнали мережі. Частина ШНМ, охоплена зворотними зв'язками може мати і більшу кількість прихованих шарів.

Рисунок 1.9 - Рекурентна мережа з одним прихованим шаром

Наявність зворотних зв'язків та елементів тимчасової затримки сигналів надає рекурентним мережам власні нелінійні динамічні властивості. Це також позначається на їх здатності до навчання. Тренування рекурентних мереж потребує врахування їх динамічних властивостей.

Одним з головних застосувань рекурентних ШНМ є нейроемулятори динамічних об'єктів, тобто їх нейромережеві моделі. Такі мережі можуть також використовуватися для вирішення завдань апроксимації часових послідовностей, класифікації, розпізнавання образів та управління.

1.3.4 Повністю зв’язані мережі

Характерною ознакою ШНМ цього типу є наявність зв'язків між усіма нейронами.

Найбільш відомою різновидом повністю пов'язаних мереж є мережі Хопфілда (див. рис.1.10). У них кожен нейрон має двосторонні зв'язки з усіма іншими нейронами мережі. У загальному випадку мережа Хопфілда має симетричну кільцеву структуру, в ній не можна виділити приховані нейрони і єдиний напрямок поширення сигналів. Робота повністю зв'язаної ШНМ і обмін даними контролюється одним головним нейроном.

Мережа Хопфілда є прикладом повністю зв'язаної динамічної мережі, що ґрунтується на принципах самоорганізації, проте в ній не використовуються в явному вигляді елементи тимчасової затримки.

Рисунок 1.10 - Повністю зв'язана мережа Хопфілда

Іншим прикладом служать ґратчасті мережі (див. рис.2.7). Вони являють собою масив нейронів, кожен з яких пов'язаний з вхідними нейронами. Розмірність масиву нейронів визначає розмірність ґратчастої мережі. Така ШНМ є прямо направленою, оскільки в ній немає зворотних зв'язків, однак у ній не можна виділити приховані елементи або шари.

Рисунок 1.11 - Одновимірна ґратчаста мережа з трьох нейронів

Повністю зв'язані мережі знаходять особливо широке застосування при вирішенні задач класифікації та розпізнавання образів [27].

Висновки до розділу


У розділі було приведено поняття нейрону та штучної нейронної мережі. Також зроблено аналіз основних властивостей нейронних мереж, приведено варіанти побудови їх архітектури.

В результаті проведеного аналізу для подальших досліджень обрано багатошарову архітектуру нейронної мережі. Вибір зумовлений характеристиками даної архітектури, які будуть необхідні для реалізації подальшої мети проекту, а саме вирішенню задачі класифікації.

2. Проблема класифікації символів


На сьогоднішній день існує багато підходів (алгоритмів) щодо вирішення проблеми розпізнавання символів, але більшість із них або вузько спрямовані на певну сферу розпізнавання (вони показують високі результати розпізнавання, але не є універсальними), або якість розпізнавання дуже низька, й алгоритм працює повільно. Тому для вирішення задач розпізнавання символів часто використовуються високоінтелектуальні системи на основі штучних нейронних мереж.

Однак штучні нейронні мережі не є інструментом для вирішення задач будь-якого типу. Вони не підходять для виконання таких задач як нарахування заробітної платні, але їм віддається перевага у великому класі задач розпізнавання символів, з якими погано або взагалі не справляються звичайні комп’ютери.

2.1 Використання нейронних мереж для вирішення практичних завдань


Класифікація образів. Завдання полягає у визначенні приналежності вхідного образа (наприклад, мовного сигналу чи рукописного символу), представленого вектором ознак, одному чи декільком попередньо визначеним класам. До відомих застосувань відносяться розпізнавання букв, розпізнавання мови, класифікація сигналу електрокардіограми, класифікація кліток крові.

Кластеризація/категоризація. При рішенні задачі кластеризації, що відома також як класифікація образів "без вчителя", навчальна множина з визначеними класами відсутня. Алгоритм кластеризації заснований на подобі образів і розміщує близькі образи в один кластер. Відомі випадки застосування кластеризації для видобутку знань, стиснення даних і дослідження властивостей даних.

Апроксимація функцій. Припустимо, що є навчальна вибірка ( (x1,y1), (x2,y2)., (xn,yn)) (пари даних вхід-вихід), яка генерується невідомою функцією F, спотвореної шумом. Завдання апроксимації полягає в знаходженні невідомої функції F. Апроксимація функцій необхідна при рішенні численних інженерних і наукових задач моделювання.

Передбачення/прогноз. Нехай задані n дискретних відліків {y (t1), y (t2),., y (tn) } у послідовні моменти часу t1, t2,., tn. Завдання полягає в передбаченні значення y (tn+1) у деякий майбутній момент часу tn+1. Передбачення/прогноз мають значний вплив на прийняття рішень у бізнесі, науці й техніці (передбачення цін на фондовій біржі, прогноз погоди).

Оптимізація. Численні проблеми в математиці, статистиці, техніці, науці, медицині й економіці можуть розглядатися як проблеми оптимізації. Задачею алгоритму оптимізації є знаходження такого рішення, що задовольняє системі обмежень і максимізує чи мінімізує цільову функцію.

Пам'ять, що адресується за змістом. В традиційних комп'ютерах звертання до пам'яті доступно тільки за допомогою адреси, що не залежить від змісту пам'яті. Більш того, якщо допущена помилка в обчисленні адреси, то може бути знайдена зовсім інша інформація. Асоціативна пам'ять, чи пам'ять, що адресується за змістом, доступна за вказівкою заданого змісту. Вміст пам'яті може бути викликано навіть по частковому входу чи спотвореному змісту. Асоціативна пам'ять надзвичайно бажана при створенні мультимедійних інформаційних баз даних.

Керування. Розглянемо динамічну систему, задану сукупністю {u (t), y (t) }, де u (t) є вхідним керуючим впливом, а y (t) - виходом системи в момент часу t. В системах керування з еталонною моделлю метою керування є розрахунок такого вхідного впливу u (t), при якому система діє по бажаній траєкторії, заданою еталонною моделлю. Прикладом є оптимальне керування двигуном.

Але, незважаючи на переваги нейронних мереж в часткових галузях над традиційними обчисленнями, існуючі нейронні мережі є не досконалими рішеннями. Вони навчаються і можуть робити "помилки". Окрім того, не можна гарантувати, що розроблена мережа є оптимальною мережею. Застосування нейронних мереж вимагає від розробника виконання ряду умов.

Ці умови включають:

·        множину даних, що включає інформацію, яка може характеризувати проблему;

·        відповідно встановлену за розміром множину даних для навчання й тестування мережі;

·        розуміння базової природи проблеми, яка буде вирішена;

·        вибір функції суматора, передатної функції та методів навчання;

·        розуміння інструментальних засобів розробника;

·        відповідна потужність обробки.

2.2 Рецепторна структура сприйняття інформації


Для того, щоб людина свідомо сприймала інформацію, вона повинна пройти досить тривалий цикл попередньої обробки. Спочатку світло потрапляє в око. Пройшовши через всю оптичну систему фотони, зрештою, потрапляють на сітківку - шар світлочутливих клітин - паличок і колб.

Уже тут - ще дуже далеко від головного мозку, відбувається перший етап обробки інформації, оскільки, наприклад, у ссавців, відразу за світлочутливими клітинами знаходиться зазвичай два шари нервових клітин, які виконують порівняно нескладну обробку.

Тепер інформація надходить по зоровому нерву в головний мозок людини, в так звані "зорові горби", на які проектується зорова інформація те, що ми бачимо. Далі зорова інформація надходить у відділи мозку, які вже виділяють з неї окремі складові - горизонтальні, вертикальні, діагональні лінії, контури, області світлого, темного, кольорового. Поступово образи стають все більш складними і розмитими, але графічний образ картини пройде ще довгий шлях, перш ніж досягне рівня свідомості.

До проблеми розпізнавання образів можна підходити, відштовхуючись від аналогії з біологічними процесами. У деяких умовах здатності тварин до розпізнавання образів перевищують здібності будь-якої машини, яку тільки можна побудувати.

При класифікації, заснованій на безпосередньому сенсорному досвіді, тобто при розпізнаванні осіб або вимовлених слів, люди легко перевершують технічні пристрою. В "несенсорних ситуаціях" дії людей не настільки ефективні. Наприклад, люди не можуть змагатися з програмами класифікації образів, якщо правильний образ класифікації включає логічні комбінації абстрактних властивостей, таких, як колір, розмір і форма. Оскільки розпізнавання образів має бути функцією нейронів тварини, можна шукати ключ до біологічного розпізнавання образів у властивостях самого нейрона. Для багатьох цілей нейрон можна розглядати як граничний елемент. Це означає, що він або дає на виході деяку постійну величину, якщо сума його входів досягає певного значення, або ж залишається пасивним. Мак-Каллок і Піттс довели, що будь-яку обчислювану функцію можна реалізувати за допомогою належним чином організованої мережі ідеальних нейронів - порогових елементів, логічні властивості яких з достатньою підставою можна приписати реальному нейрону. Проблема полягає в тому, чи можна знайти розумний принцип реорганізації мережі, що дозволить випадково об'єднаній спочатку групі ідеальних нейронів самоорганізуватися в "обчислювальний пристрій", здатний вирішувати довільну задачу розпізнавання образів. Такий принцип реорганізації став би теорією навчання, яку можна застосовувати на рівні окремого нейрона.

Нейрологічна теорія навчання, висунута канадським психологом Хеббом, була розрахована на використання в якості моделі, призначеної для психології, справила великий вплив на штучний інтелект. Її модифікація застосовувалася при визначенні принципів системи розпізнавання образів, що одержали назву перцептрон. Перцептрони, описані Розенблаттом [29], можуть існувати і у формі програм, і як спеціально сконструйовані обчислювальні машини.

2.2.1 Поняття про образ

Образ, клас - класифікаційне угруповання в системі класифікації, об'єднує певну групу об'єктів за певною ознакою. Образне сприйняття світу - одна з властивостей живого мозку, що дозволяє розібратися в нескінченному потоці сприйманої інформації і зберігати орієнтацію в розрізнених даних про зовнішній світ. Сприймаючи зовнішній світ, ми завжди проводимо класифікацію інформації, тобто розбиваємо їх на групи схожих, але не тотожних явищ. Наприклад, незважаючи на суттєву різницю, до однієї групи відносяться всі літери "А", написані різними почерками, або всі звуки, що відповідають одній і тій же ноті, взятій в будь октаві і на будь-якому інструменті. Для складання поняття про групу сприйнять досить ознайомитися з незначною кількістю її представників. Це властивість мозку дозволяє сформулювати таке поняття, як образ.

Образи мають характерну властивість, що виявляється в тому, що ознайомлення з кінцевим числом явищ з однієї і тієї ж множини дає можливість впізнавати як завгодно велике число його представників. Образи мають характерні об'єктивні властивості в тому сенсі, що різні люди, які навчаються на різному матеріалі спостережень, здебільшого однаково і незалежно один від одного класифікують одні й ті самі об'єкти. Саме ця об'єктивність образів дозволяє людям усього світу розуміти один одного.

Здатність сприйняття зовнішнього світу у формі образів дозволяє з певною достовірністю впізнавати нескінченне число об'єктів на підставі ознайомлення з кінцевим їх числом, а об'єктивний характер основної властивості образів дозволяє моделювати процес їх розпізнавання.

2.2.2 Проблема розпізнавання образів

Розпізнавання образів - це завдання ідентифікації об'єкта або визначення яких-небудь його властивостей за його зображенням (оптичне розпізнавання) або аудіозаписом (акустичне розпізнавання) [6]. У процесі біологічної еволюції багато тварин з допомогою зорового і слухового апарату вирішили це завдання досить добре. Створення штучних систем з функціями розпізнавання образів залишається складною технічною проблемою.

У цілому проблема розпізнавання образів (ПРО) складається з двох частин: навчання та розпізнавання. Навчання здійснюється шляхом показу окремих об'єктів із зазначенням їх приналежності тому чи іншому образу. В результаті навчання система розпізнавання повинна придбати здатність реагувати однаковими реакціями на всі об'єкти одного образу та іншими реакціями - на всі об'єкти відмітних образів. Дуже важливо, що процес навчання повинен завершитися тільки шляхом показів кінцевого числа об'єктів. В якості об'єктів навчання можуть бути або картинки, або інші візуальні зображення (літери, цифри) [20]. Важливо, що в процесі навчання вказуються тільки самі об'єкти та їх приналежність образу. За навчанням наступає процес розпізнавання нових об'єктів, який характеризує дії вже навченої системи. Автоматизація цих процедур і становить проблему навчання розпізнаванню образів. У тому випадку, коли людина сама розгадує або придумує, а потім нав'язує машині правило класифікації, проблема розпізнавання вирішується частково, тому що основну і головну частину проблеми (навчання) людина бере на себе.

Коло завдань, які можуть вирішуватися за допомогою розпізнавальних систем, надзвичайно широкий. Сюди відносяться не тільки задачі розпізнавання зорових і слухових образів, але і завдання класифікації складних процесів і явищ, що виникають, наприклад, при виборі доцільних дій керівником підприємства або виборі оптимального управління технологічними, економічними, транспортними або військовими завданнями. Перш ніж розпочати аналіз будь-якого об'єкта, потрібно отримати про нього певну, упорядковану інформацію.

Вибір вихідного опису об'єктів є однією з центральних завдань проблеми розпізнавання образів. При вдалому виборі вихідного опису (простору ознак) задача розпізнавання може виявитися тривіальною і, навпаки, невдало вибраний вихідний опис може привести або до дуже складної подальшої переробки інформації, або взагалі до відсутності результату.

2.2.3 Перетворення зображень у цифровий код

Для того щоб ввести зображення в машину, потрібно перевести його на машинну мову, тобто закодувати, уявити у вигляді деякої комбінації символів, якими може оперувати машина. Кодування плоских фігур можна здійснити самим різним чином. Краще прагнути до найбільш "природного" кодування зображень. Будемо малювати фігури на деякому полі, розбитому вертикальними і горизонтальними прямими на однакові елементи - квадратики. Елементи, на які впало зображення, будемо суцільно зафарбовувати в чорний колір, решту - залишати білими. Домовимося позначати чорні елементи одиницею, білі - нулем. Введемо послідовну нумерацію всіх елементів поля, наприклад, в кожному рядку зліва направо і по рядках зверху вниз. Тоді кожна фігура, намальована на такому полі, буде однозначно відображатися кодом, що складається із стількох цифр (одиниць і нулів), скільки елементів містить поле. Таке кодування (рис.2.1) вважається "природним" тому, що розбиття зображення на елементи лежить в основі роботи нашого зорового апарату.

Рисунок 2.1 - Приклад кодування зображень

2.3 Навчання штучної нейронної мережі


2.3.1 Контрольоване навчання

Величезна більшість рішень отримана від нейронних мереж з контрольованим навчанням, де біжучий вихід постійно порівнюється з бажаним виходом. Ваги на початку встановлюються випадково, але під час наступних ітерацій коректуються для досягнення близької відповідності між бажаним та біжучим виходом. Створені методи навчання націлені на мінімізації біжучих похибок всіх елементів обробки, яке створюється за якийсь час неперервною зміною синаптичних ваг до досягнення прийнятної точності мережі [3].

Перед використанням, нейронна мережа з контрольованим навчанням повинна бути навченою. Фаза навчання може тривати багато часу, зокрема, у прототипах систем, з невідповідною процесорною потужністю навчання може займати декілька годин. Навчання вважається закінченим при досягненні нейронною мережею визначеного користувачем рівня ефективності. Цей рівень означає, що мережа досягла бажаної статистичної точності, оскільки вона видає бажані виходи для заданої послідовності входів. Після навчання ваги з'єднань фіксуються для подальшого застосування. Деякі типи мереж дозволяють під час використання неперервне навчання, з набагато повільнішою оцінкою навчання, що допомагає мережі адаптуватись умов, що повільно змінюються.

Навчальні множини повинні бути досить великими, щоб містити всю необхідну інформацію для виявлення важливих особливостей і зв'язків. Але і навчальні приклади повинні містити широке різноманіття даних. Якщо мережа навчається лише для одного прикладу, ваги старанно встановлені для цього прикладу, радикально змінюються у навчанні для наступного прикладу. Попередні приклади при навчанні наступних просто забуваються. В результаті система повинна навчатись всьому разом, знаходячи найкращі вагові коефіцієнти для загальної множини прикладів. Наприклад, у навчанні системи розпізнавання піксельних образів для десяти цифр, які представлені двадцятьма прикладами кожної цифри, всі приклади цифри "сім" не доцільно представляти послідовно. Краще надати мережі спочатку один тип представлення всіх цифр, потім другий тип і так далі.

Головною компонентою для успішної роботи мережі є представлення і кодування вхідних і вихідних даних. Штучні мережі працюють лише з числовими вхідними даними, отже, необроблені дані, що надходять із зовнішнього середовища повинні перетворюватись. Додатково необхідне масштабування, тобто нормалізація даних відповідно до діапазону всіх значень. Нормалізація виконується шляхом ділення кожної компоненти вхідного вектора на довжину вектора, що перетворює вхідний вектор в одиничний. Попередня обробка зовнішніх даних, отриманих за допомогою сенсорів, у машинний формат спільна для стандартних комп'ютерів і є легко доступною [1].

Якщо після контрольованого навчання нейронна мережа ефективно опрацьовує дані навчальної множини, важливим стає її ефективність при роботі з даними, які не використовувались для навчання. У випадку отримання незадовільних результатів для тестової множини, навчання продовжується. Тестування використовується для забезпечення запам'ятовування не лише даних заданої навчальної множини, але і створення загальних образів, що можуть міститись в даних.

2.3.2 Неконтрольоване навчання

Неконтрольоване навчання може бути великим надбанням у майбутньому. Воно проголошує, що комп'ютери можуть самонавчатись у справжньому роботизованому сенсі. На даний час, неконтрольоване навчання використовується мережах відомих, як самоорганізовані карти (self organizing maps), що знаходяться в досить обмеженому користуванні, але доводячи перспективність самоконтрольованого навчання. Мережі не використовують зовнішніх впливів для коректування своїх ваг і внутрішньо контролюють свою ефективність, шукаючи регулярність або тенденції у вхідних сигналах та роблять адаптацію згідно навчальної функції. Навіть без повідомлення правильності чи неправильності дій, мережа повинна мати інформацію відносно власної організації, яка закладена у топологію мережі та навчальні правила [4].

Алгоритм неконтрольованого навчання скерований на знаходження близькості між групами нейронів, які працюють разом. Якщо зовнішній сигнал активує будь-який вузол в групі нейронів, дія всієї групи в цілому збільшується. Аналогічно, якщо зовнішній сигнал в групі зменшується, це приводить до гальмуючого ефекту на всю групу.

Конкуренція між нейронами формує основу для навчання. Навчання конкуруючих нейронів підсилює відгуки певних груп на певні сигнали. Це пов'язує групи між собою та відгуком. При конкуренції змінюються ваги лише нейрона-переможця.

2.3.3 Оцінки навчання

Оцінка ефективності навчання нейронної мережі залежить від декількох керованих факторів. Теорія навчання розглядає три фундаментальні властивості, пов'язані з навчанням: ємність, складність зразків і обчислювальна складність. Під ємністю розуміють, скільки зразків може запам'ятати мережа, і які межі прийняття рішень можуть бути на ній сформовані. Складність зразків визначає число навчальних прикладів, необхідних для досягнення здатності мережі до узагальнення. Обчислювальна складність напряму пов'язана з потужністю процесора ЕОМ.

2.3.4 Правила навчання

У загальному використанні є багато правил навчання, але більшість з цих правил є деякою зміною відомого та найстаршого правила навчання, правила Хеба. Дослідження різних правил навчання триває, і нові ідеї регулярно публікуються в наукових та комерційних виданнях. Представимо декілька основних правил навчання.

Правило Хеба

Опис правила з'явився у його книзі "Організація поведінки" у 1949 р. "Якщо нейрон отримує вхідний сигнал від іншого нейрону і обидва є високо активними (математично мають такий самий знак), вага між нейронами повинна бути підсилена". При збудженні одночасно двох нейронів з виходами (хj, уі) на t-тому кроці навчання вага синаптичного з'єднання між ними зростає, в інакшому випадку - зменшується, тобто

∆Wij (k) =r xj (k) yi (k) (2.15)

де r - коефіцієнт швидкості навчання.

Може застосовуватись при навчанні "з вчителем" і "без вчителя".

Правило Хопфілда

Є подібним до правила Хеба за винятком того, що воно визначає величину підсилення або послаблення. "Якщо одночасно вихідний та вхідний сигнал нейрона є активними або неактивними, збільшуємо вагу з'єднання оцінкою навчання, інакше зменшуємо вагу оцінкою навчання".

Правило "дельта"

Це правило є подальшою зміною правила Хеба і є одним із найбільш загально використовуваних. Це правило базується на простій ідеї неперервної зміни синаптичних ваг для зменшення різниці ("дельта") між значенням бажаного та біжучого вихідного сигналу нейрона.

 

∆Wij= xj (di - yi) (2.16)

За цим правилом мінімізується середньоквадратична похибка мережі. Це правило також згадується як правило навчання Відрова-Хофа та правило навчання найменших середніх квадратів.

У правилі "дельта" похибка отримана у вихідному прошарку перетворюється похідною передатної функції і послідовно пошарово поширюється назад на попередні прошарки для корекції синаптичних ваг. Процес зворотного поширення похибок мережі триває до досягнення першого прошарку. Від цього методу обчислення похибки успадкувала своє ім'я відома парадигма FeedForward BackPropagation.

При використанні правила "дельта" важливим є невпорядкованість множини вхідних даних. При добре впорядкованому або структурованому представленні навчальної множини результат мережі може не збігтися до бажаної точності і мережа буде вважатись нездатною до навчання.

Правило градієнтного спуску

Це правило подібне до правила "дельта" використанням похідної від передатної функції для змінювання похибки "дельта" перед тим, як застосувати її до ваг з'єднань. До кінцевого коефіцієнта зміни, що діє на вагу, додається пропорційна константа, яка пов'язана з оцінкою навчання. І хоча процес навчання збігається до точки стабільності дуже повільно, це правило поширене і є загально використовуване.

Доведено, що різні оцінки навчання для різних прошарків мережі допомагає процесу навчання збігатись швидше. Оцінки навчання для прошарків, близьких до виходу, встановлюються меншими, ніж для рівнів, ближчих до входу.

2.3.5 Навчання методом змагання

На відміну від навчання Хеба, у якому множина вихідних нейронів може збуджуватись одночасно, при навчанні методом змагання вихідні нейрони змагаються між собою за активізацію. Це явище, відоме як правило "переможець отримує все". Подібне навчання має місце в біологічних нейронних мережах. Навчання за допомогою змагання дозволяє кластеризувати вхідні дані: подібні приклади групуються мережею відповідно до кореляцій і представляються одним елементом.

При навчанні модифікуються синаптичні ваги нейрона-переможця. Ефект цього правила досягається за рахунок такої зміни збереженого в мережі зразка (вектора синаптичних ваг нейрона-переможця), при якому він стає подібним до вхідного приклада. Нейрон з найбільшим вихідним сигналом оголошується переможцем і має можливість гальмувати своїх конкурентів і збуджувати сусідів. Використовується вихідний сигнал нейрона-переможця і тільки йому та його сусідам дозволяється коректувати свої ваги з'єднань.

 

∆Wij (k+1) = Wij (k) +r [xj - Wij (k)] (2.17)

Розмір області сусідства може змінюватись під час періоду навчання. Звичайна парадигма повинна починатись з великої області визначення сусідства і зменшуватись під час процесу навчання. Оскільки елемент-переможець визначається по найвищій відповідності до вхідного зразку, мережі Коxонена моделюють розподіл входів. Це правило використовується в самоорганізованих картах.

2.4 Перцептрон як модель розпізнавання


2.4.1 Поняття перцептрона

Перцептрон, або персептрон - математична та комп'ютерна модель сприйняття інформації мозком (кібернетична модель мозку), запропонована Френком Розенблато в 1957 році [29] і реалізована у вигляді електронної машини "Марк-1". У 1960 році перцептрон став однією з перших моделей нейронних мереж, а "Марк-1" - першим у світі нейрокомп'ютером. Не зважаючи на свою простоту, перцептрон здатний навчатися і вирішувати досить складні завдання. Перцептрон складається з трьох типів елементів, а саме: сенсорні, асоціативні та реагуючі. Сигнали, що надходять від сенсорних елементів передаються асоціативним, а потім реагуючим елементам. Таким чином, перцептрони дозволяють створити набір "асоціацій" між вхідними стимулами і необхідною реакцією на виході. В біологічному плані це відповідає перетворенню, наприклад, зорової інформації в фізіологічну відповідь рухових нейронів. Відповідно до сучасної термінології, перцептрони можуть бути класифіковані як штучні нейронні мережі: з одним прихованим шаром; з пороговою передавальною функцією; з прямим розповсюдженням сигналу.

На рис.2.2 показана логічна схема перцептрону з трьома виходами.

Рисунок 2.2 - Логічна схема перцептрону з трьома виходами.

Елементарний перцептрон складається з елементів 3-х типів: S-елементів, A-елементів і одного R-елементу. S-елементи - це шар сенсорів, або рецепторів. У фізичному втіленні вони відповідають, наприклад, світлочутливим клітинам сітківки ока або Фоторезисторам матриці камери. Кожен рецептор може перебувати в одному з двох станів: спокою або збудження, і тільки в останньому випадку він передає одиничний сигнал у наступний шар асоціативним елементів.

A-елементи називаються асоціативними, тому що кожному такому елементу, як правило, відповідає цілий набір (асоціація) S-елементів. A-елемент активізується, як тільки кількість сигналів від S-елементів на його вході перевищує певну величину θ.

Сигнали від збуджених A-елементів, у свою чергу, передаються в суматор R, причому сигнал від i-го асоціативного елемента передається з коефіцієнтом wi. Цей коефіцієнт називається вагою A-R зв'язку.

Так само як і A-елементи, R-елемент підраховує суму значень вхідних сигналів, помножених на ваги (лінійну форму). R-елемент, а разом з ним і елементарний перцептрон, видає "1", якщо лінійна форма перевищує поріг θ, інакше на виході буде "-1". Математично, функцію, яку реалізують R-елементом, можна записати так:

Навчання елементарного перцептрона полягає у зміні вагових коефіцієнтів wi зв'язків A-R. Ваги зв'язків S-A (які можуть приймати значення (-1; 0;

)) і значення порогів A-елементів вибираються випадковим чином на самому початку і потім не змінюються [12].

Після навчання перцептрон готовий працювати в режимі розпізнавання або узагальнення. У цьому режимі перцептрону пред'являються раніше невідомі йому об'єкти, і він повинен встановити, до якого класу вони належать. Робота перцептрона полягає в наступному: при пред'явленні об'єкта, збуджені A-елементи передають сигнал R-елементу, що дорівнює сумі відповідних коефіцієнтів wi. Якщо ця сума позитивна, то приймається рішення, що даний об'єкт належить до першого класу, а якщо вона негативна - то до другого.

2.4.2 Багатошаровий перцептрон

На рис.2.3 наведено приклад багатошарового перцептрона.

Рисунок 2.3 - Багатошаровий перцептрон

Мережа складається з довільної кількості шарів нейронів. Нейрони кожного шару з'єднуються з нейронами попереднього і наступного шарів за принципом "кожен з кожним". Перший шар (ліворуч) називається сенсорним або вхідним, внутрішні шари називаються прихованими або асоціативними, останній (самий правий, на малюнку складається з одного нейрона) - вихідним або результативним. Кількість нейронів у шарах може бути довільною. Зазвичай у всіх прихованих шарах однакова кількість нейронів.

Позначимо кількість шарів і нейронів у шарі. Вхідний шар: NI нейронів; NH нейронів у кожному прихованому шарі; NO вихідних нейронів; х - вектор вхідних сигналів мережі, у - вектор вихідних сигналів.

Існує плутанина з підрахунком кількості шарів у мережі. Вхідний шар не виконує ніяких обчислень, а лише розподіляє вхідні сигнали, тому іноді його рахують, іноді - ні. Позначимо через NL повну кількість шарів у мережі, рахуючи вхідний.

Робота багатошарового перцептрона (БШП) описується формулами:

 (2.18)

 (2.19)

 (2.20)

де індексом i завжди будемо позначати номер входу, j - номер нейрона в шарі, l - номер шару.

Xijl - й вхідний сигнал j-го нейрона у шарі l;

Wijl - ваговий коефіцієнт i-го входу нейрона номер j у шарі l;

NETjl - сигнал NET j-го нейрона в шарі l;

OUTjl - вихідний сигнал нейрона;

θjl - пороговий рівень нейрона j у шарі l;

Введемо позначення: Wjl - вектор-стовпець ваг для всіх входів нейрона j у шарі l; Wl - матриця ваг всіх нейронів у шарі l. У стовпцях матриці розташовані вектора Wjl. Аналогічно Xjl - вхідний вектор-стовпець шару l.

Кожен шар розраховує нелінійне перетворення від лінійної комбінації сигналів попереднього шару. Звідси видно, що лінійна функція активації може застосовується тільки для тих моделей мереж, де не потрібно послідовне з'єднання шарів нейронів один за одним. Для багатошарових мереж функція активації повинна бути нелінійною, інакше можна побудувати еквівалентну одношарову мережу, і багатошаровість виявляється непотрібною. Якщо застосована лінійна функція активації, то кожен шар даватиме на виході лінійну комбінацію входів. Наступний шар дасть лінійну комбінацію виходів попереднього, а це еквівалентно одній лінійній комбінації з іншими коефіцієнтами, і може бути реалізовано у вигляді одного шару нейронів.

Багатошарова мережа може формувати на виході довільну багатовимірну функцію при відповідному виборі кількості шарів, діапазону зміни сигналів і параметрів нейронів. Як і ряди, багатошарові мережі виявляються універсальним інструментом апроксимації функцій. Видно відмінність роботи нейронної мережі від розкладання функції в ряд:

Ряд:

 (2.21)

Нейронна мережа:


За рахунок почергового розрахунку лінійних комбінацій і нелінійних перетворень досягається апроксимація довільної багатовимірної функції при відповідному виборі параметрів мережі.

2.4.3 Алгоритм вирішення задач за допомогою БШП

Щоб побудувати БШП, необхідно вибрати його параметри. Найчастіше вибір значень ваг і порогів вимагає навчання, тобто покрокових змін вагових коефіцієнтів і порогових рівнів.

Загальний алгоритм рішення:

.        Визначити, який зміст вкладається в компоненти вхідного вектора x. Вхідний вектор повинен містити формалізовану умову задачі, тобто всю інформацію, необхідну для отримання відповіді.

2.      Вибрати вихідний вектор y таким чином, щоб його компоненти містили повну відповідь щодо поставленого завдання.

.        Вибрати вид нелінійності в нейронах (функцію активації). При цьому бажано врахувати специфіку завдання, тому що вдалий вибір скоротить час навчання.

.        Вибрати число шарів і нейронів у шарі.

.        Поставити діапазон зміни входів, виходів, ваг і порогових рівнів, враховуючи безліч значень вибраної функції активації.

.        Присвоїти початкові значення ваговим коефіцієнтам і граничним рівням і додатковим параметрам (наприклад, крутизні функції активації, якщо вона буде налаштовуватися при навчанні). Початкові значення не повинні бути великими, щоб нейрони не опинилися в насиченні (на горизонтальній ділянці функції активації), інакше навчання буде дуже повільним. Початкові значення не повинні бути і занадто малими, щоб виходи більшої частини нейронів не були рівні нулю, інакше навчання також сповільниться.

.        Провести навчання, тобто підібрати параметри мережі так, щоб задача вирішувалася найкращим чином. Після закінчення навчання мережа готова вирішити завдання того типу, яким вона навчена.

.        Подати на вхід мережі умови задачі у вигляді вектора x. Розрахувати вихідний вектор y, який і дасть формалізоване рішення задачі.

2.4.4 Формалізація задачі розпізнавання букв алфавіту

Як було показано вище букви можна подати у вигляді точкових зображень.

Рисунок 2.4 - Точкове зображення

Темна клітинка зображення відповідає Iij = 1, світла - Iij =0. Задача полягає в тому, щоб визначити по зображенню букву.

Побудуємо БШП з Ni * Nj входами, кожному входу відповідає один піксель: хk =Iij, k = 1. Ni* Nj. Яскравості пікселів будуть компонентами вхідного вектору. В якості вихідних сигналів виберемо ймовірності того, що пред'явлене зображення повідає даній букві: y = (c1. cM) T. Мережа розраховує вихід:

 (2.22)

де вихід с1 = 0,9 означає, наприклад, що пред'явлено зображення літери "А", і мережа впевнена в цьому на 90%, вихід с2 = 0,1 - що зображення відповідало букві "Б" з імовірністю 10% і т.д.

Висновки до розділу


Даний розділ було присвячено варіантам застосування нейронних мереж для вирішення різноманітних задач. Для подальших досліджень обрано задачу класифікації символів латинського алфавіту. Було запропоновано різноманітні алгоритми навчання нейронної мережі. Як основу для досліджень обрано модель контрольованого навчання мережі, адже вона дозволяє контролювати бажаний вихід мережі. Для задачі класифікації символів було запропоновано алгоритм її вирішення за допомогою багатошарового перцептрона.

3. Моделі та засоби організації багатопоточних обчислень


З розвитком комп’ютерних технологій з’явилися нові можливості для прискорення вирішення задач шляхом розбиття основної задачі на більш дрібні та виконання останніх паралельно та одночасно.

Сучасні комп’ютери обладнуються багатоядерними процесорами, не кажучи вже про кластерні технології. Саме тому виникає потреба в організації багатопоточних обчислень.

3.1 Багатопочність як явище


Сучасні операційні системи багатозадачні. Це дозволяє користувачеві запускати одночасно кілька додатків. Операційна система дозволяє запускати велику кількість додатків навіть на одному фізичному процесорі. Така квазібагатозадачність реалізовується шляхом постійного перемикання активного завдання. Кожен додаток у системі на якийсь квант часу захоплює процесор і виконує необхідні дії, потім ОС перемикає активність на інший додаток і так у нескінченному циклі.

Якщо в системі доступно кілька процесорів (ядер), то ОС ділить процеси на доступні ядра й тоді кілька процесів можуть працювати дійсно одночасно. Більше того, можна розпаралелити обчислення одного додатка на кілька фізичних процесорів і тим самим збільшити швидкість виконання складних обчислень.

Отже багатопоточність - властивість операційної системи або додатку, що полягає в тому, що процес, породжений в операційній системі, може складатися з кількох потоків, що виконуються паралельно, або навіть одночасно на багатопроцесорних системах. При виконанні деяких завдань таке розділення може досягти ефективнішого використання ресурсів комп’ютера.

Такі потоки називають також потоками виконання (від англ. Thread of execution); іноді називають "нитками" (буквальний переклад англ. Thread) або неформально "тред".

Суттю багатопоточності є квазібагатозадачність на рівні одного виконуваного процесу, тобто всі потоки виконуються в адресному просторі процесу. Крім цього, всі потоки процесу мають не тільки загальний адресний простір, а й загальні дескриптори файлів. Процес, що виконується має як мінімум один (головний) потік [2].

Типи реалізації потоків:

·        потік в просторі користувача (кожен процес має таблицю потоків, аналогічну таблиці процесів ядра);

·        потік в просторі ядра (разом з таблицею процесів в просторі ядра є таблиця потоків)

·        "волокна" (англ. fibers, кілька потоків режиму користувача, що виконуються в одному потоці режиму ядра. Потік простору ядра споживає помітні ресурси, в першу чергу фізичну пам'ять і діапазон адрес режиму ядра для стека режиму ядра. Тому було введено поняття "волокна" - полегшеного потоку, що виконується виключно в режимі користувача. У кожного потоку може бути кілька "волокон").

Переваги першого типу наступні:

·        можливість реалізації на ядрі, що не підтримує багатопоточність;

·        швидше переключення, створення і завершення потоків;

·        процес може мати власний алгоритм планування.

Недоліки:

·        відсутність переривання по таймеру усередині одного процесу;

·        при використанні блокуючого системного запиту решта всіх потоків блокується;

·        відсутній виграш у швидкодії на багатопроцесорних системах;

·        складність реалізації.

Переваги другого типу:

·        ядро може одночасно планувати виконання декількох потоків одного процесу на декількох процесорах, блокування виконується на рівні потоку;

·        процедури ядра можуть бути багатопоточними.

Недоліки:

·        перемикання потоків в межах одного процесу вимагає участі ядра.

Переваги в багатопоточності такі:

·        спрощення програми в деяких випадках, за рахунок використання загального адресного простору;

·        менші відносно процесу часові витрати на створення потоку і взаємодію між потоками;

·        підвищення продуктивності процесу за рахунок розпаралелювання процесорних обчислень і операцій вводу/виводу;

Основною проблемою при роботі багатопоточних додатків є ресурси комп'ютера - пристрої, потоки вводу/виводу, файли, дані. Складність полягає в тому, що якщо кілька потоків використовують один ресурс, то можуть виникнути колізії. Уявимо ситуацію: один потік відкриває файл для запису даних, і в цей же час другий потік видаляє цей файл. У результаті перший потік одержує невалідний покажчик на неіснуючий файл. Інший приклад, коли два потоки намагаються одночасно одержати доступ у якусь область даних. Припустимо, існує загальна змінна, в яку два потоки пишуть дані, така програма буде нестабільною і працювати буде неправильно. Для забезпечення унікальності й атомарності доступу до конкурентних ресурсів операційна система дає кілька інструментів [2]:

·        взаємовиключення (м'ютекси);

·        семафори;

·        критичні секції;

·        події.

Семафор - це універсальний механізм для організації взаємодії процесів. Розв'язує задачі взаємного виключення та синхронізації потоків. Він є одним з найстаріших засобів розподілення доступу процесів, що працюють паралельно, до критичних ресурсів. Семафори використовуються для контролю доступу до спільного ресурсу, або для синхронізації процесів.

Мета використання м'ютексів - захист цілісності даних; проте ним породжуються інші проблеми, такі як взаємне блокування (клінч) і "змагання за ресурс".

Критична секція (англ. critical section) - об'єкт синхронізації потоків, що дозволяє запобігти одночасному виконанню деякого критичного набору операцій (зазвичай пов'язаних з доступом до даних) кількома потоками. Критична секція виконує ті ж завдання, що і м'ютекс. Між м'ютексом і критичною секцією є термінологічні відмінності, так процедура аналогічна захопленню м'ютекса називається входом в критичну секцію (enter), зняття блокування мьютекса - виходом з критичної секції (leave).

Подія - це об'єкт, який зберігає в собі 1 біт інформації "просигналізував чи ні", над яким визначено операції "просигналізувати", "скинути в непросигналізований стан" і "чекати". Очікування на просигналізованій події є відсутність операції з негайним продовженням виконання потоку. Очікування на непросигналізованій події призводить до припинення виконання потоку до тих пір, поки інший потік (або ж друга фаза обробника переривання в ядрі ОС) не просигналізує подію. Можливо очікування кількох подій в режимах "любого" чи "всіх". Можливо також створення події, що автоматично скидається в непросигналізований стан після пробудження першого ж - і єдиного - потоку, що очікує (такий об'єкт використовується як основа для реалізації об'єкта "критична секція"). Активно використовуються в MS Windows, як в режимі користувача, так і в режимі ядра. Аналогічний об'єкт є і в ядрі Linux під назвою kwait_queue.

3.2 Моделі організації багатопоточності


Існують різні моделі багатопоточності - способи відображення потоків користувача в потоки ядра. Теоретично можливі (і на практиці реалізовані) наступні моделі багатопоточності:

·        модель багато / один (many-to-one) - відображення декількох потоків користувача в один і той же потік ядра. Використовується в операційних системах, що не підтримують множинні системні потоки (наприклад, з метою економії пам'яті).

·        модель один / один (one-to-one) - взаємно-однозначне відображення кожного потоку користувача в певний потік ядра. Приклади ОС, що використовують дану модель, - Windows 95/98/NT/2000/XP/2003/2008/7; OS / 2.

·        модель багато / багато (many-to-many) - модель, яка припускає відображення декількох потоків користувача в кілька системних потоків. Така модель дозволяє ОС створювати велику кількість системних потоків. Характерним прикладом ОС, що використовує подібну модель, є ОС Solaris, а також Windows NT / 2000/XP / 2003/2008/7 з пакетом ThreadFiber. Дана модель зображена на рис.3.3.

3.3 Проблеми багапоточності


Багатопоточність - дуже складна, ще не повністю вивчена і, тим більше, не повністю формалізована область, в якій є багато цікавих проблем. Розглянемо деякі з них [2].

Припинення потоків. Важливою проблемою є проблема припинення потоків: наприклад, якщо батьківський потік припиняється, то чи повинен при цьому припинятися дочірній потік? Якщо припиняється стандартний процес, який створив декілька потоків, то чи повинні припинятися всі його потоки? Відповіді на ці питання в різних ОС неоднозначні.

Обробка сигналів. Сигнали в UNIX - низькорівневий механізм обробки помилкових ситуацій. Приклади сигналів: SIGSEGV - порушення сегментації (звернення за невірною адресою, найчастіше за нульовою); SIGKILL - сигнал процесу про виконання команди kill його знищення. Користувач може визначити свою процедуру-обробник сигналу системним викликом signal. Проблема в наступному: як поширюються сигнали в багатопоточних програмах і яким потоком вони повинні оброблятися? У більшості випадків це питання вирішується таким чином: сигнал обробляється потоком, в якому він згенерований, і впливає на виконання тільки цього потоку. У більш сучасних ОС (наприклад, Windows 2000 і пізніших версіях Windows), заснованих на об'єктно-орієнтованої методології, концепція сигналу замінена більш високорівневої концепцією виключення (exception). Виняток поширюється по стеку потоку в порядку, зворотному порядку викликів методів, і обраховується першим з них, в якому система знаходить відповідний обробник. Аналогічна схема обробки виключень реалізована в Java і в.net.

Групи потоків. У складних завданнях, наприклад, завданнях моделювання, при великому числі різнорідних потоків, виникає потреба в їх структуруванні за допомогою концепції групи потоків - сукупності потоків, що має своє власне ім'я, над потоками якої визначені групові операції. Найбільш вдало групи потоків реалізовані в Java (за допомогою класу ThreadGroup). Слід відзначити також ефективну реалізацію пулів потоків (ThreadPool) в.net.

Локальні дані потоку (thread-local storage - TLS) - дані, що належать тільки певному потоку і використовуються тільки цим потоком. Необхідність у таких даних очевидна, так як багатопоточність - важливий метод розпаралелювання рішення великого завдання, при якому кожен потік працює над вирішенням дорученої йому частини. Всі сучасні операційні системи та платформи розробки програм підтримують концепцію локальних даних потоку.

Синхронізація потоків. Оскільки потоки, як і процеси можуть використовувати загальні ресурси і реагувати на загальні події, то необхідні засоби їх синхронізації.

Тупики (deadlocks) та їх запобігання. Потоки можуть взаємно блокувати один одного (тобто може створитися ситуація deadlock), при їх недолугому програмуванні.

3.4 Паралельні обчислення


Паралельні обчислення - такий спосіб організації комп'ютерних обчислень, при якому програми розробляються як набір взаємодіючих обчислювальних процесів, що працюють паралельно (одночасно) [2]. Термін охоплює сукупність питань паралелізму в програмуванні, а також створення ефективно діючих апаратних реалізацій.

Існують різні способи реалізації паралельних обчислень. Наприклад, кожен обчислювальний процес може бути реалізований у вигляді процесу операційної системи, або ж обчислювальні процеси можуть являти собою набір потоків виконання всередині одного процесу ОС. Паралельні програми можуть фізично виконуватися або послідовно на єдиному процесорі - перемежовуючи по черзі кроки виконання кожного обчислювального процесу, або паралельно - виділяючи кожному обчислювальному процесу один або декілька процесорів (що знаходяться поряд або розподілених в комп'ютерну мережу).

Основна складність при проектуванні паралельних програм - забезпечити правильну послідовність взаємодій між різними обчислювальними процесами, а також координацію ресурсів, що розділяються між процесами.

Види паралельної взаємодії:

У деяких паралельних системах програмування передача даних між компонентами прихована від програміста, тоді як в інших вона повинна вказуватися явно. Явні взаємодії можуть бути розділені на два типи:

·        взаємодія через розділювану пам'ять (наприклад, в Java або C #). Даний вид паралельного програмування зазвичай вимагає якоїсь форми захоплення управління (мьютекс, семафори, монітори) для координації потоків між собою.

·        взаємодія за допомогою передачі повідомлень (наприклад, в Erlang або occam). Обмін повідомленнями може відбуватися асинхронно, або з використанням методу "рандеву", при якому відправник блокований до тих пір, поки його повідомлення не буде доставлене. Асинхронна передача повідомлень може бути надійною (з гарантією доставки) або ненадійною.

Паралельні системи, засновані на обміні повідомленнями, найчастіше більш прості для розуміння, ніж системи з пам'яттю, і зазвичай розглядаються як більш досконалий метод паралельного програмування. Обмін повідомленнями може бути ефективно реалізований на симетричних мультипроцесорах як з роздільною когерентною пам'яттю, так і без неї.

3.5 Програмні інструменти паралелізму


ü  POSIX Threads або Pthread - стандарт POSIX реалізації потоків виконання, який визначає API для створення та управління ними [17]. Бібліотеки, які реалізують цей стандарт та його функції, звичайно називаються Pthreads (функції мають приставку "pthread_"). Найбільш широко використовуються для Unix-подібних операційних систем, таких як Linux чи Solaris, також існує реалізація для Microsoft Windows (Pthreads-w32)(Open Multi-Processing) - це набір директив компілятора, бібліотечних процедур та змінних середовища, які призначені для програмування багатопоточних додатків на багатопроцесорних системах із загальною пам'яттю на мовах C, C++ та Fortran.

Розробку специфікації OpenMP ведуть кілька великих виробників обчислювальної техніки та програмного забезпечення, робота яких регулюється некомерційною організацією, названою OpenMP Architecture Review Board (ARB).

ü  OpenMP можна розглядати як високорівневу надбудову над Pthreads (або аналогічними бібліотеками потоків) [17]. POSIX-інтерфейс для організації потоків Pthreads підтримується широко (практично на всіх UNIX-системах), проте з багатьох причин не підходить для практичного паралельного програмування:

·        немає підтримки Fortran;

·        дуже низький рівень;

·        немає підтримки паралелізму за даними;

·        механізм нитей спочатку розроблявся не для цілей організації паралелізму.

OpenMP реалізує паралельні обчислення за допомогою багатопоточності, в якій "головний" (master) потік створює набір підлеглих (slave) потоків і завдання розподіляється між ними. Передбачається, що потоки виконуються паралельно на машині з декількома процесорами (кількість процесорів не обов'язково має бути більше або дорівнювати кількості потоків).

Завдання, що виконуються потоками паралельно, так само як і дані, необхідні для виконання цих завдань, описуються за допомогою спеціальних директив препроцесора відповідної мови - прагм.

Кількість створюваних потоків може регулюватися як самою програмою за допомогою виклику бібліотечних процедур, так і ззовні, за допомогою змінних оточення.

ü  Windows API (application programming interfaces) - загальне найменування для цілого набору базових функцій інтерфейсів програмування додатків операційних систем сімейства Windows корпорації Майкрософт. Є найпрямішим способом взаємодії додатків з Windows. Для створення програм, що використовують Windows API, Майкрософт випускає SDK, який називається Platform SDK і містить документацію, набір бібліотек, утиліт і інших інструментальних засобів.

Центральним механізмом паралелізму в інтерфейсі Windows API є потік. Як правило, для створення потоків використовується функція CreateThread. Хоча потоки відносно легко створювати і використовувати, операційна система виділяє на управління ними значну кількість часу і інших ресурсів. Більше того, незважаючи на те що всіх потоків одного рівня пріоритету гарантується рівний час виконання, відповідне навантаження на систему вимагає створення досить великих завдань. При роботі з більш дрібними або специфічними завданнями навантаження на систему при роботі в режимі паралелізму може зводити до нуля переваги від паралельного виконання завдань.

Пули потоків є одним із способів зниження витрат на управління потоками. Користувальницькі пули потоків і реалізація пулу потоків, що надаються інтерфейсом Windows API, дозволяють ефективно виконувати невеликі робочі елементи в паралельному режимі. Пул потоків Windows поміщає робочі елементи в чергу, що обслуговується за принципом "першим надійшов - першим обслужили" (FIFO). Кожен робочий елемент запускається в тому порядку, в якому він був доданий в пул.

Виконавча з паралелізмом реалізує алгоритм перенесення навантаження для розширення механізму планування FIFO. Цей алгоритм переміщує завдання, які ще не були розпочаті, в потоки, в яких закінчуються робочі елементи. Алгоритм перенесення навантаження дозволяє не тільки рівномірно розподіляти робоче навантаження, а й змінювати порядок робочих елементів. Через зміни порядку послідовність запуску робочих елементів може відрізнятися від послідовності передачі елементів в пул. Це властивість корисно використовувати з рекурсивними алгоритмами, так як в цьому випадку вище ймовірність спільного використання даних більш новими завданнями, ніж надійшли раніше. Пріоритетне виконання нових елементів дозволяє знизити число пропусків влучень в кеш і, ймовірно, число помилок сторінки.

З точки зору операційної системи перенесення навантаження не є "справедливим" методом роботи. Однак якщо додаток реалізує алгоритм або завдання для паралельного виконання, адекватність розподілу ресурсів між підзадачами часто не має значення. У цьому випадку важливіше те, наскільки швидко завершується спільне завдання. Для інших алгоритмів FIFO є адекватною стратегією планування.

ü  Message Passing Interface (MPI) це специфікація API що дозволяє комп'ютерам обмінюватись повідомленнями [17]. Використовується в комп'ютерниx кластерах, та суперкомп'ютерах. MPI було створене Вільямом Гроппом, Едвіном Луском та іншими.

Програма MPI - це набір незалежних процесів, які взаємодіють між собою за допомогою відправки та отримання повідомлень. Сильна сторона MPI полягає в тому, що цей інтерфейс пред'являє дуже низькі вимоги до апаратної частини паралельного комп'ютера. Все, що потрібно цьому інтерфейсу, - щоб процесори або ядра спільно використовували одну мережу, придатну для передачі повідомлень між будь-якими двома процесами. Це дозволяє MPI працювати на будь-якої стандартній паралельній системі, від симетричних багатопроцесорних систем до систем з розподіленою пам'яттю, від суперкомп'ютерів з високим ступенем паралелізму до кластерів.

Ключове поняття MPI - комунікатор. При створенні набору процесів вони утворюють групу, яка може спільно використовувати середовище для зв'язку.

Група процесів у поєднанні з середовищем зв'язку утворює унікальний комунікатор. Переваги такої концепції стають очевидними, якщо розглянути використання бібліотек в програмі. Якщо програміст буде неуважний, повідомлення, створені розробником бібліотеки, можуть конфліктувати з повідомленнями, які використовуються в програмі, що викликає цю бібліотеку. Але при наявності комунікаторів розробник бібліотеки може створити власне середовище зв'язку і при цьому гарантувати, що поки мова йде про повідомлення, які передаються в системі, все, що відбувається в бібліотеці, не вийде за її межі.

Висновки до розділу


Даний розділ присвячений багатопоточним системам. Були розглянуті різноманітні механізми взаємодії процесів, основні моделі організації багатопоточності. Також введено поняття паралельності, та проаналізовані програмні інструменти паралелелізму.

Подальші дослідження ґрунтувалися на основі API інтерфейсів організації багатопоточності, адже для реалізації обрано мову програмування C#, яка має стандартні засоби організації багатопоточних обчислень.

4. Задача моделювання штучної нейронної мережі з розпаралелюванням процесів


У цьому розділі буде приведено опис реалізованої системи розпізнавання символів, побудованої на базі нейронної мережі з розпаралелюванням процесів.

4.1 Постановка задачі


В даній роботі за мету ставилася задача побудови нейронної мережі для вирішення задач класифікації об’єктів у багатопоточних комп’ютерних середовищах. Для реалізації даної мети потрібно було провести аналіз існуючих моделей та засобів організації багатопоточних обчислень, а також можливих архітектурних моделей побудови та навчання нейронних мереж. Згрупувавши отримані дані, потрібно було обрати одну з моделей для подальших досліджень та реалізації.

У попередніх розділах детально описувалися існуючі архітектури нейронних мереж, їх застосування та методи навчання. Згрупувавши всю доступну інформацію, автор пропонує реалізувати модель нейронної мережі на основі трьохшарового перцептрона. Вибір зумовлений тим, що дана модель, за своїми показниками, якнайкраще підходить для вирішення задач класифікації, оскільки трьохшарова архітектура є оптимальною (при меншій кількості шарів недостатня точність розпізнавання, в результаті накладання схожих областей; більша ж кількість шарів використовується для вирішення складніших завдань).

Для навчання мережі було обрано контрольований метод. Адже він дозволяє контролювати бажаний вихід мережі та порівнювати його з входом. Крім того неконтрольовані алгоритмі являються достатньо складними для реалізації. Для побудови моделі буде використано метод зворотного поширення помилки, який являється одним із різновидів контрольованих методів навчання.

Для програмної реалізації продукту, було обрано мову програмування C#, як середовище розробки Visual Studio 10. Вибір обґрунтований функціональними можливостями платформи, що дозволить реалізувати поставлені цілі, а також зручністю використання модулів програми, простотою інтерфейсу та доступністю великої кількості інформації для підтримки розробників.

Для досягнення головної мети даного проекту, а саме організації багатопоточності, було обрано стандартну бібліотеку для підтримки паралельних обчислень в С#, TPL (The Task Parallel Library), що є одним з функцій інтерфейсів Windows API. Основним критерієм вибору є зручність використання та відносна простота в програмній реалізації.

4.2 Теоретичне обґрунтування обраних моделей


4.2.1 Метод зворотного поширення помилки

У багатошарових мережах оптимальні вихідні значення нейронів всіх шарів, крім останнього, як правило, не відомі, і двох або більше шаровий перцептрон вже неможливо навчити, керуючись тільки величинами помилок на виходах НМ. Один з варіантів вирішення цієї проблеми - розробка наборів вихідних сигналів, що відповідають вхідним, для кожного шару НМ, що, звичайно, є дуже трудомісткою операцією і не завжди здійснено. Другий варіант - динамічне підстроювання вагових коефіцієнтів синапсів, в ході якого вибираються, як правило, найбільш слабкі зв'язки і змінюються на малу величину в ту чи іншу сторону, а зберігаються тільки ті зміни, які спричинили зменшення помилки на виході всієї мережі. Очевидно, що даний метод, незважаючи на свою простоту, вимагає громіздких рутинних обчислень. І, нарешті, третій, більш прийнятний варіант - поширення сигналів помилки від виходів НМ до її входів, у напрямку, зворотному прямому поширенню сигналів у звичайному режимі роботи. Цей алгоритм навчання НС отримав назву процедури зворотного поширення [25].

Згідно методу найменших квадратів, цільовою функцією помилки НМ, що мінімізується, є величина:

 (4.1)

де  - реальний вихідний стан нейрона j вихідного шару N нейронної мережі при подачі на її входи p-го образу;  - ідеальний бажаний стан цього нейрона.

Підсумовування ведеться по всім нейронам вихідного шару і по всім оброблюваних мережею образам. Мінімізація ведеться методом градієнтного спуску, що означає підстроювання вагових коефіцієнтів наступним чином:

 (4.2)

Тут wij - ваговий коефіцієнт синаптичного зв'язку, що з'єднує i-ий нейрон шару n-1 з j-им нейроном шару n, η - коефіцієнт швидкості навчання, 0 < η <1.

 (4.3)

Тут під yj, мається на увазі вихід нейрона j, а під sj - зважена сума його вхідних сигналів, тобто аргумент активаційної функції. Так як множник dyj/dsj є похідною цієї функції за її аргументом, з цього випливає, що похідна активаційної функції повинна бути визначена на всій осі абсцис. У зв'язку з цим функція одиничного стрибка та інші активаційні функції з неоднорідностями не підходять для розглянутих НМ. У них застосовуються такі гладкі функції, як гіперболічний тангенс або класичний сигмоїд з експонентою.

У випадку гіперболічного тангенса

 (4.4)

Третій множник sj/wij, очевидно, дорівнює виходу нейрона попереднього шару yi (n-1).

 (4.5)

Тут підсумовування по k виконується серед нейронів шару n +1.

Ввівши нову змінну

 (4.6)

ми отримаємо рекурсивну формулу для розрахунків величин dj (n) шару n з величин dk (n+1) більш старшого шару n +1.

 (4.7)

Для вихідного слоя

 (4.8)

Одже тепер стало можливо записати рівняння 4.2 в розкритому вигляді:

 (2.9)

Іноді для додання процесу корекції ваг деякої інерційності, що згладжує різкі скачки при переміщенні по поверхні цільової функції, (4.9) доповнюється значенням зміни ваги на попередній ітерації

 (4.10)

де

μ - коефіцієнт інерційності, t - номер поточної ітерації.

Таким чином, повний алгоритм навчання НМ за допомогою процедури зворотного поширення будується так [25]:

1.      Подати на входи мережі один з можливих образів і в режимі звичайного функціонування НМ, коли сигнали поширюються від входів до виходів, розрахувати значення останніх.

 (4.11)

де M - число нейронів у шарі n-1 з урахуванням нейрона з постійним вихідним станом +1, що задає зсув; yi (n-1) =xij (n) - i-ий вхід нейрона j шару n.

 (4.12)

де f () - сигмоїд

 (4.13)

де Iq - q-та компонента вектору вхідного образу

2.      Розрахувати d (N) для вихідного шару по формулі (4.8).

Розрахувати по формулі (4.9) та (4.10) зміну ваги Dw (N) шару N.

.        Розрахувати по формулам (4.7) та (4.9) відповідно d (N) та Dw (N) для всіх інших шарів, n = N-1,…1.

4.      Скорегувати усі ваги в НМ

 (4.14)

5.      Якщо помилка мережі вагома, перейти на крок 1. Інакше - кінець.

4.2.2 Підходи до організації багапоточності

Існує наступна досить загальна класифікація варіантів паралельної декомпозиції нейромережевих обчислень:

·        паралелізм рівня сесії навчання;

·        паралелізм рівня навчального прикладу;

·        паралелізм рівня шарів;

·        паралелізм рівня вузлів (нейронів);

·        паралелізм рівня ваг (зв'язків);

·        паралелізм рівня окремих бітів.

Паралелізм рівня сесії навчання передбачає одночасне навчання однієї і тієї ж мережі на однакових навчальних прикладах, проте з різними параметрами навчання.

Паралелізм рівня навчального приклад називають також навчанням групами (batch learning): безліч навчальних прикладів розбивається на певну кількість навчальних підмножин, кожне з яких використовується для навчання свого примірника нейронної мережі даного типу. У процесі навчання накопичуються зміни ваг вихідної мережі для кожної навчальної підмножини. В кінці навчання накопичені зміни ваг об'єднуються і обчислюються нові значення ваг.

Паралелізм рівня шарів корисний коли мережа має достатню кількість шарів N > 1. Обчислення ведуться поточно: кожен шар обробляє в даний момент часу свій окремий приклад і, таким чином, збільшується швидкість проходження даних одного прикладу через всю мережу, оскільки мережею обробляється кілька прикладів одночасно.

Паралелізм рівня обробних вузлів (нейронів) означає, що кожен вузол є окремою обчислювальною одиницею, що працює незалежно від інших вузлів. Паралельно в цьому випадку виконується, наприклад, підсумовування зважених входів кожного нейрона, а також інша необхідна обробка.

Паралелізм рівня ваг (зв'язків) має на увазі ще більш глибоке розпаралелювання забезпечуючи одночасні обчислення "провідності" кожного зваженого зв'язку окремо.

Паралелізм рівня вузлів і паралелізм рівня ваг можуть бути застосовні до всіх конекціоністских моделей нейронних мереж.

Паралелізм рівня окремих бітів є найтоншим видом паралелізму і означає паралельну обробку на рівні окремих бітів.

Найбільш загальними й універсальними у застосуванні є способи розпаралелювання нейромережевих обчислень з 4 по 5. Проте, представляється очевидним, що в рамках кластерної архітектури дані підходи навряд чи можуть виявитися виправдані в зв’язку з занадто малими гранулами паралелізму (під гранулою паралелізму розуміється середня кількість операцій на кожен введений в гранулу або виведений з гранули байт) відповідних моделей обчислень.

Найбільш перспективними для реалізації на кластерному обчислювальному пристрої, очевидно, є варіанти 1 і 2, а також в деякій мірі (залежить від розв'язуваної задачі) варіант 3.

Слід зазначити, що при кластерній організації обчислень, що припускає досить істотний обсяг сумарної оперативної пам'яті, розподіленої по окремим вузлам, з'являється сприятлива можливість для паралельної обробки досить великих масивів даних, що може бути корисним при роботі з графічними зображеннями.

Метод 3 при сприятливих умовах (хороша реалізація, велика кількість шарів, і т.д.) може бути застосований для прискореної обробки потоку зображень (наприклад, відео-зйомки).

Відомо, що найбільш інтенсивне обчислювальне навантаження припадає на фазу навчання нейронних мереж (наприклад мереж прямого поширення за алгоритмом зворотного поширення помилки). Зменшення часу навчання нейронної мережі є актуальним завданням, особливо, на стадії експериментального дослідження придатності тих чи інших нейромережевих моделей, вибору оптимальних параметрів для їх успішного застосування на практиці.

Саме тому в даному проекті буде реалізовано розпаралелювання процесу навчання нейронної мережі, а саме обчислень на рівні нейронів в процесі роботи алгоритму зворотного поширення помилки.

4.2.3 The Task Parallel Library (TPL)

Для програмної реалізації поставленої мети було обрано стандартну бібліотеку організації паралельних обчислень програмного середовища С#.Task Parallel Library (TPL) являє собою набір відкритих типів і інтерфейсів API в System. Threading і System. Threading. Tasks простору імен в.net Framework версії 4 [18]. Мета TPL - зробити розробку більш продуктивною за рахунок спрощення процесу додавання паралелізму і паралелізму в додатках. TPL зважує ступінь паралелізму динамічно, щоб найбільш ефективно використовувати всі процесори, які доступні. Крім того, TPL проводить розбиття роботи, планування потоків на ThreadPool, підтримку скасування, управління та інших низькорівневих деталей. За допомогою TPL, ви можете максимізувати продуктивність вашого коду, зосереджуючись на задачах, які були поставлені щодо розробки вашої програми.

Починаючи з платформи.net Framework 4, TPL є кращим способом написання багатопоточного і паралельного коду. Однак не весь код підходить для розпаралелювання, наприклад, якщо цикл виконує лише невеликий обсяг робіт на кожній ітерації, або він не призначений для виконання багатьох ітерацій, то накладні витрати на розпаралелювання можуть викликати більш повільну роботу програми. Крім того, розпаралелювання, як і будь-яка багатопоточність ускладнює виконання програми.

4.3 Опис системи, що розробляється


4.3.1 Проектування функціональної структури

При розробці програмного продукту важливим є процес порівневого спуску від найбільш загальної та абстрактної моделі системи до логічної, а потім й до фізичної моделі. Для досягнення даної структури спочатку побуємо діаграму віріантів використання, яка описує функціональне призначення системи, або, іншими словами, що буде робити система в процесі свого функціонування.

На основі технічного завдання була побудована діаграма використання, що представлена на рис.4.1 З її допомогою було описано бачення системи з точки зору користувача, описані функціональні можливості системи.

Рисунок 4.1 - Загальна діаграма використання

Основні функції системи, що розробляється:

·        розпізнавання букв латинського алфавіту;

·        встановлення параметрів для створення нейронної мережі;

·        можливість навчання нейронної мережі з використанням нових прикладів;

·        можливість збереження та використання навченої конфігурації.

Взаємодія між користувачем та системою представляє собою діалог, де користувач обирає параметри системи та задає початкові дані. Процес навчання проходить без участі першого. Надалі користувачеві надається можливість працювати з навченою мережею. Він може подавати для обробки різні варіанти символів латинського алфавіту, які система буде розпізнавати та виводити результат.

Далі проведемо опис ієрархічних структур системи.

4.3.2 Опис та ієрархія основних класів системи

Діаграма класів (class diagram) слугує для представлення статичної структури моделі системи в термінології класів об'єктно-орієнтованого програмування. Діаграма класів може відображати, зокрема, різні взаємозв'язки між окремими сутностями предметної області, такими як об'єкти і підсистеми, а також описує їх внутрішню структуру і типи відносин.

Загальна діаграма ієрархії класів побудованої нейронної мережі представлена на рис.4.2, нижче приведено опис основних класів.- клас, що описує логіку формування та навчання нейронної мережі, а також розпізнавання, за її допомогою, вхідного символу. Клас інкапсулює екземпляр класу, який реалізує інтерфейс IBackPropagation. Завдяки цьому екземпляру ми можемо формувати нейронні мережі з різною кількістю шарів не змінюючи сам клас NeuralNetwork.- проміжний інтерфейс, що дозволяє відокремити інтерфейс нейронної мережі від її реалізації.Layaer - клас, що реалізує інтерфейс IBackPropagation та описує нейронну мережу з трьома шарами нейронів. Він реалізує самі алгоритми навчання та розпізнавання через трьохшарову структуру нейронної мережі., Input, Hidden, Output - структури, що описують нейрони конкретних шарів (відповідно попередній, вхідний, прихований та вихідний шари). Однаковим полем для всіх структур, окрім Output, являється масив ваг. Для PreInput додатковим параметром є вхідне значення. Для Input, Hidden та Output розраховується вхідне, вихідне значення та помилка. Для Output додатковим параметром являється ціль (чи є вхідний символ правильним для виходу даного нейрону), а також саме символьне значення відповідного символу.- клас, який містить в собі 2 функції для опрацювання зображень. Перша інтерпретує зображення як масив чисел з плаваючою комою, а друга навпаки відновлює зображення з масиву.

Рисунок 4.2 - Ієрархія класів нейронної мережі

4.4 Алгоритм роботи нейронної мережі для задачі класифікації символів

4.4.1 Трансформація малюнку у машинний код

Навчання нейронної мережі починається з того, що потрібно обрати приклади для навчання. Розроблена програма використовує картинки у форматі. bmp, що знаходяться в окремій директорії. Кожна картинка має ім’я, що співпадає з символом, зображеним на ній. Це необхідно для подальшого функціонування алгоритму навчання.

Після вибору прикладів для навчання відбувається конвертація зображення в масив типу double. Спочатку розраховується середня ширина та висота усіх картинок. Далі розраховуються норми між розрахованим середнім значенням та реальним розміром даної. Потім попіксельно вираховуються кольори з клітинок. Після чого отримані результати записуються в масив.

4.4.2 Реалізація алгоритму зворотного поширення помилки

Для організації процесу навчання використовується алгоритм зворотного поширення помилки. Він був описаний у другому пункті даного розділу.

Перед етапом навчання йде етап формування нейронної мережі. За замовчанням формується нейронна мережа із наступної кількості шарів (формування автоматичне при виборі директорії та збереженні налаштувань):

)        (середня висота*середню ширину зображення (кількість значень у масиві double) + кількість прикладів навчання) * 0,33;

2)      кількість нейронів першого шару поділена на 3;

)        кількість прикладів навчання.

Навчання відбувається почергово для кожної картинки з директорії. Алгоритм реалізується через 2 функції ForwardPropagate та BackPropagate. Перша виконує прямий хід через нейронні шари та призначена для встановлення початкових значень помилки на вихідному шарі. Друга робить зворотний хід цих помилок та призначена для корегування ваг на нейронних шарах.

Навчання системи продовжується поки помилка на виході не буде меншою від заданої користувачем або ж, якщо кількість ітерацій перевищить допустиму норму. Користувач також має можливість перервати навчання вручну.

На рис.4.3 зображено блок-схему роботи алгоритму навчання ШНМ методом зворотного поширення помилки.

Рисунок 4.3 - Блок-схема роботи алгоритму навчання

4.4.3 Програмна реалізація багатопоточності

Як було зазначалось раніше багатопоточність буде реалізована шляхом розпаралелювання в процесі навчання нейронної мережі, а саме обчислень на рівні нейронів в момент роботи алгоритму. Для програмної реалізації використано бібліотеку TPL.

Програмно використовується System. Threading. Tasks. Parallel, який забезпечую можливість паралельного виконання ітерацій на нейронному рівні.

4.4.4 Реалізація функції розпізнавання

Розпізнавання символів відбувається наступним чином. Зображення конвертується в масив типу double та подається на вхід мережі, після чого запускається функція прямого проходу і на виході ми отримуємо два найбільш вірогідних значення розпізнаного символу. Це 2 найбільших значення ваги на вихідному шарі.

4.5 Програмна реалізація нейронної мережі для розпізнавання символів


Розроблений програмний продукт призначений для розпізнавання символів латинського алфавіту та арабський цифр. Він орієнтований на багатрпоточні комп’ютерні середовища, адже в основі покладені паралельні алгоритми роботи.

4.5.1 Запуск та закриття програмного забезпечення

Для запуску та функціонування програми потрібно запустити файл BPNeuralNetwork. exe. Крім всього іншого на комп’ютері повинна знаходитись папка з файлами для навчання.

Після запуску відкривається головне вікно програми.

Для закриття програми достатньо закрити головне вікно.

4.5.2 Основні елементи інтерфейсу

Суть інтерфейсу це зручність та простота. Користувач не повинен витрачати багато часу на усвідомлення ситуації та прийняття рішення. Автором було запропоновано наступний вигляд інтерфейсу (Рис.4.4)

Рисунок 4.4 - Інтерфейс користувача

Area - поле, у якому можна малювати символи для розпізнавання. Тут також показується символ, що був завантажений з картинки.- кнопка очищення поля для малювання.

Кнопки для дії над нейронними мережами:

·        Train Network - навчити нейронну мережу;

·        Stop Training - переривання процесу навчання;

·        Save Network - зберегти конфігурацію мережі після навчання;

·        Load Network - завантажити вже готову навчену мережу.

Recognize - кнопка для запуску функції розпізнавання символів.

Поле Work Part містить:

·        Draw Characters - при виборі даної опції можна малювати у полі Drawing Area;

·        Choose Existing Image - є можливість завантаження картинки для розпізнавання з файлу.

State - у даному полі відображаються всі процеси, що зараз виконуються або виконалися ранішеPatterns - у даному полі відображаються:

·        Input - вхідне зображення;

·        Matched High - найбільш вірогідне розпізнане зображення;

·        Matched Low - друге найбільш вірогідне зображення.

Network Properties - поле, де можна обрати:

·        Maximum Error - максимальну помилку мережі;

·        Number of Input Unit - кількість нейронів у вхідному шарі;

·        Number of Hidden Unit - кількість нейронів у другому шарі;

·        Number of Output Unit - кількість нейронів у вихідному шарі.

Training Images Properties - поле, у якому обирається шлях до файлів навчання.Sattings - кнопка збереження параметрів ШНМ.

4.5.3 Можливі проблеми та шляхи їх вирішення

Розроблене програмане забезпечення розроблене для платформи.net Framawork 4 та може працювати на довільній операційній системі сімейства Windows зі встановленою платформою. Програма потребує всього лише 1МБ памяті на диску.

При використанні даного програмного забезпечення можуть виникнути наступні проблеми:

.        Виникли помилки при навчанні

Це може бути зумовлено насамперед тим, що обрано некоректну директорію, тобто вона не містить прикладів для навчання. Шляхом вирішення є вибір коректної директорії. По-друге, неправильно обрані параметри для навчання нейронної мережі. Шляхом вирішення є перевірка введених параметрів на коректність.

.        Не розпізнаються символи, або розпізнаються некоректно.

Це може бути викликано, по-перше, тим що мережа навчена некоректно. Шляхом вирішення проблеми є повторний запуск алгоритму навчання. По-друге, намальоване зображення не відповідає жодному з прикладів, що використовувалися для навчання. Шляхом вирішення проблеми є зміна навчальних прикладів, або ж розширення діапазону прикладів навчання.

4.6 Тестування розробленого програмного забезпечення


4.6.1 Тестування роботи програмного забезпечення для виконання задач класифікації

Спочатку протестуємо здатність системи виконувати першочергове завдання - розпізнавати символи. Спочатку зазначимо, що навчання мережі відбувалося лише за одним набором варіантів символів, тому точність розпізнавання буде не достатньо високою.

Як вхідні дані обрано кількість нейронів у шарах за замовчанням.

Для розпізнавання символів користувач може або намалювати його у полі Drawing Area, при виборі відповідного або ж завантажити готове зображення із жорсткого диску.

Результати тестів буде зображено на рисунках 4.5 - 4.9

Рисунок 4.5 - Розпізнана буква W

Рисунок 4.6 - Розпізнана буква V

Рисунок 4.7 - Розпізнана буква O

Рисунок 4.8 - Розпізнана буква T

Рисунок 4.9 - Розпізнана одиниця

Як видно з наведених прикладів реалізована система повністю справляється з поставленою задачею.

4.6.2 Тестування швидкості роботи програмного забезпечення при його роботі в одно та багатопоточних комп'ютерних середовищах

Оскільки головною метою даної роботи була розробка моделі нейронної мережі для роботи у багатопоточних середовищах, то тестуватися буде процес навчання нейронної мережі. Для цього буде проведено аналіз показників швидкодії продукту на різних системах з різною кількістю процесорів. В тестових умовах буде проводитись порівняння двох реалізацій навчання нейронної мережі, а саме паралельної та послідовної моделі.

У таблиці 4.1 приведено технічні характеристики комп’ютерів, на яких тестувалось програмне забезпечення.

На кожному з наведених нижче комп’ютерів було проведено по 10 тестових запусків програм. Дані, отримані під час тестування було занесено до таблиць 4.2 - 4.5.

До таблиць 4.6 та 4.7 зведені середні дані з усіх тестів паралельної та послідовної організації навчання нейронної мережі відповідно.

Таблиця 4.1 - Параметри експериментальних комп’ютерів

Критерій

Тест № 1

Тест № 2

Тест № 3

Тест № 4

Процесор

Intel (R) Celeron (TM) CPU 2.66 GHz

AMD Athlon (TM) 64 x2 Dual core processor 4600+ 2.3 GHz

Intel (R) Core (TM) i3 CPU 550 3.2GHz

Intel (R) Core (TM) 2 quad CPU Q6600 2,4GHz

Ядра

1

2

2

4

Операційна система

Windows 7 32 bit

Windows 7 64 bit

Windows 7 64 bit

Windows 7 64 bit


Таблиця 4.2 - Результати тесту № 1


Паралельна реалізація

Послідовна реалізація


Кількість ітерацій

Час, с

Кількість ітерацій

Час, с

1

320

568

340

680

2

385

786

375

630

3

453

915

380

808

4

348

679

336

585

5

333

538

368

690

6

307

520

305

551

7

343

728

430

806

8

359

683

354

664

9

442

841

371

695

10

342

650

343

643


Таблиця 4.3 - Результати тесту № 2


Паралельна реалізація

Послідовна реалізація


Кількість ітерацій

Час, с

Кількість ітерацій

Час, с

1

328

123

346

223

2

347

128

328

212

3

342

126

403

265

4

308

116

303

198

5

346

128

372

248

6

343

127

358

237

7

403

140

332

218

8

356

130

366

238

9

445

157

435

273

10

405

142

340

219



Таблиця 4.4 - Результати тесту № 3


Паралельна реалізація

Послідовна реалізація


Кількість ітерацій

Час, с

Кількість ітерацій

Час, с

1

339

43

344

85

2

330

42

316

76

3

380

49

380

92

378

49

592

143

5

378

49

307

76

6

297

38

337

83

7

390

53

403

98

8

494

63

340

82

9

334

42

288

70

10

405

53

434

107


Таблиця 4.5 - Результати тесту № 4


Паралельна реалізація

Послідовна реалізація


Кількість ітерацій

Час, с

Кількість ітерацій

Час, с

1

338

48

326

146

2

451

64

375

163

3

289

41

402

172

4

357

50

352

151

5

318

45

324

139

6

372

53

300

128

7

409

59

283

121

8

391

56

339

146

9

331

46

383

164

10

289

42

366

157


Таблиця 4.6 - Середні значення всіх тестів паралельної конфігурації

тест №1

тест №2

тест №3

тест №4

Середня кількість ітерацій

Середній час, с

Серед. кількість ітерацій за с

Середня кількість ітерацій

Середній час, с

Серед. кількість ітерацій за с

Середня кількість ітерацій

Середній час, с

Серед. кількість ітерацій за с

Середня кількість ітерацій

Середній час, с

Серед. кількість ітерацій за с

363

690,8

0,526

362

131,7

2,751

372,5

48,1

7,744

355

50,4

7,034


Таблиця 4.7 - Середні значення всіх тестів послідовної конфігурації

тест №1

тест №2

тест №3

тест №4

Середня кількість ітерацій

Середній час, с

Серед. кількість ітерацій за с

Середня кількість ітерацій

Середній час, с

Серед. кількість ітерацій за с

Середня кількість ітерацій

Середній час, с

Серед. кількість ітерацій за с

Середня кількість ітерацій

Середній час, с

Серед. кількість ітерацій за с

360

675,2

0,533

358

233,1

1,537

374,1

91,2

4,102

345

148,7

2,320


Для визначення ефективності розробленого продукту, було введено поняття середньої кількості ітерацій за 1 секунду. Даний показник дає можливість говорити про швидкодію ПП, оскільки наглядно показує, яка кількість ітерацій відбувається за одиницю часу.

На основі результатів тестування побудовано графік, зображений на рисунку 4.10.

Рисунок 4.10 - Результати тестування

Провівши аналіз отриманих даних можна зробити наступні висновки:

.        При використанні системи з одним процесором спостерігається збільшення часу виконання програми з розпаралелюванням обчислень. Це зумовлено насамперед тим, що йде витрачання часу на створення потоків, але самого розпаралелювання як такого не відбувається, оскільки доступним ресурсом є тільки 1 ядро процесора. При використанні ж багатопроцесорних систем явно спостерігається збільшення швидкодії програмного продукту.

2.      При використанні більш потужних комп’ютерних систем спостерігається зростання швидкодії програмного продукту.

.        Зростання швидкості є пропорційним кількості ядер процесора комп’ютера, тобто чим більше ядер використовується, там швидше у відсотковому відношенні працює програма з розпаралелюванням процесів, на відміну від послідовної реалізації такого ж алгоритму.

Висновки до розділу


Розділ присвячено опису програмної реалізації поставленої задачі. Проведено опис основних функцій програмного забезпечення та варіантів його використання. В результаті тестування було отримано дані, на основі яких зроблено висновок, що багатопоточні середовища при використанні паралельних алгоритмів організації обчислень дають змогу значно пришвидшити алгоритми роботи програми.

5. Організаційно-економічний розділ


5.1 Функціонально-вартісний аналіз (ФВА)


На створення програмного продукту (ПП) витрачаються значні трудові та фінансові ресурси, отже необхідний ретельний аналіз усіх можливих варіантів створення ПП, який дозволить вибрати найбільш раціональний варіант. Одним із сучасних методів економічного аналізу ПП є функціонально-вартісний аналіз (ФВА) [21].

ФВА - це метод комплексного техніко-економічного дослідження функцій об’єкта, що спрямований на оптимізацію співвідношення між якістю виконання вкладених функцій у продукт, та витратами, які забезпечать його реалізацію. ФВА проводиться у два етапи: функціональний аналіз та вартісний аналіз.

Темою організаційно-економічної частини дипломного проекту є техніко-економічне обґрунтування (ТЕО) етапів розробки програмного продукту "модель штучної нейронної мережі для вирішення задач класифікації об'єктів у багатопоточних комп'ютерних середовищах".

Даний розділ містить економічне обґрунтування вибору оптимального плану розробки програмної функціональності.

 

5.2 Обґрунтування функцій програмного продукту


5.2.1 Виділення основних функцій

Виділимо основні функції, які повинна виконувати дана програма:- встановлення параметрів нейронної мережі;- навчання нейронної мережі;- подання символу для розпізнавання;- виведення одержаних результатів.

5.2.2 Опис основних функцій ПП

Розглянемо варіанти реалізації цих функцій::) введення параметрів з клавіатури;

б) завантаження рекомендованих параметрів.:) навчання нейронної мережі з параметрами;

б) завантаження готової та навченої конфігурації мережі;

в) збереження конфігурації мережі після навчання.:

а) введення символів за допомогою зовнішніх пристроїв;

б) завантаження символів з файлу.:

а) виведення результатів на екран;

По розглянутим варіантам будуємо морфологічну карту (рис.5.1).

Рисунок 5.1 - Морфологічна карта

Побудуємо позитивно-негативну матрицю варіантів реалізації основних функцій (таблиця 5.1).

Таблиця 5.1 - Позитивно-негативна матриця

Основні функції

Варіанти реалізації

Переваги

Недоліки

F1

а)

Можливість моделювання процесу без прив’язки до файлу

Низька продуктивність роботи мержі


б)

Мінімальний час отримання вхідних даних

Необхідність додаткових ресурсів для зв’язку програми з файлом

 F2

а)

Можливість встановити самостійно необхідні параметри

Можливо неправильно підібрати параметр чи помилки при навчанні


б)

Не витрачається час на навчання, відсутність помилок при навчанні

Не має доступу до зміни параметрів


в)

Можливість збереження найкращих параметрів

Збереження невдалої конфігурації у файл вдалої

F3

а)

Можливість моделювання процесу без прив’язки до файду

Збільшення часу отримання даних для моделювання


б)

Мінімальний час отримання вхідних даних

Необхідність додаткових ресурсів для зв’язку програми з файлом

F4

а)

Велика наочність отриманої інформації

Повторення процесу моделювання кожен раз при необхідності (дані не зберігаються)

 

5.3 Обґрунтування системи параметрів


Для характеристики розроблюваного ПП можна використати наступну систему параметрів:

·        Х1 - час розрахунку параметрів моделі, сек;

·        X2 - розмір модуля, що загружається, Кб;

·        X3 - час для завантаження даних з файлу, сек;

·        X4 - наочність інформації, що відображається, %;

·        X5 - коефіцієнт використання ПП, %.

По даним технічної літератури і досвіду попередніх розробок визначаємо гірші, середні та кращі значення параметрів (таблиця 5.2) [21]:

Таблиця 5.2 - Основні параметри ПП

Назва параметра

Позначення параметра

Одиниця виміру

Значення




гірше

середнє

Краще

Час розрахунку параметрів моделі

X1

Сек

3

0.1

0.05

Розмір модуля, що загружається

X2

Кб

5000

3000

1200

Час для завантаження даних із файлу

X3

Сек

0.1

0.01

0.001

Наочність інформації, що відображається

X4

Доля одиниці

1

80

100

Коефіцієнт використання ПП

X5

Доля одиниці

10

40

100


По даним цієї таблиці будуємо бальні оцінки основних параметрів програмного продукту. Гіршому значенню відповідає бальна оцінка 1, середньому - 5, кращому - 10 (рис.5.2 - 5.6).

Рисунок 5.2 - Бальна оцінка часу розрахунку параметрів моделі

Рисунок 5.3 - Бальна оцінка розміру модуля, що загружається

Рисунок 5.4 - Бальна оцінка час для завантаження даних із файлу

Рисунок 5.5 - Бальна оцінка коефіцієнту наочність інформації, що відображається

Рисунок 5.6 - Бальна оцінка коефіцієнт використання ПП

На основі рішення експертної комісії, в склад якої входять 5 спеціалістів, кожному одиничному показнику якості продукту ставиться у відповідність ранг. Найбільш важливому (на думку експерта) ставиться ранг 1, менш важливому 2 - і т.д.

Розрахуємо коефіцієнт конкордації (узгодженості) експертних оцінок (таблиця 5.3).

Таблиця 5.3 - Результати ранжування параметрів

Позначення параметра    Назва параметра              Одиниця виміру Ранг параметра по оцінкам експертів        Сума рангів Ri Відхилення DDi

DD2i





1

2

3

4

5




X1

Час розрахунку параметрів моделі

Сек

5

5

4

5

4

23

8

64

X2

Розмір модуля, що загружається

Кб

1

2

1

1

1

6

-9

81

X3

Час для завантаження даних із БД

Сек

4

3

3

4

2

16

1

1

X4

Наочність інформації, що відображається

Доля одиниці

3

4

5

3

5

20

5

25

X5

Коефіцієнт використання ПП

Доля одиниці

2

1

2

2

3

10

-5

25


15

15

15

15

15

75

0

196


Обчислюємо суму рангів кожного параметра:

, для  (5.1)

де rij - ранг і-го параметра, визначений j-м експертом, N - кількість експертів, n - кількість параметрів. . Перевіримо значення суми рангів, яке повинно дорівнювати

 (5.2)

Дійсно:


Середня сума рангів:

 (5.3)


Відхилення суми рангів кожного параметра  від середньої суми рангів:

 (5.4)

Сума відхилень по всім параметрам має дорівнювати 0, що виконується:


Знаходимо квадрат відхилень по кожному з параметрів  та суму квадратів відхилень всіх параметрів.


Тепер знайдемо коефіцієнт узгодженості (конкордації):

 (5.5)

 (5.6)

 (5.7)

Порівнюючи отриманий коефіцієнт W=0,72 з нормативною величиною (яка для засобів обчислювальної техніки та ПП дорівнює 0.67) отримаємо, що  (0,72>0,67), тобто дані заслуговують на довіру. Можемо користуватися результатами експертного опитування для подальших розрахунків.

Вагу параметрів будемо визначати методом розстановки пріоритетів на основі рішення експертної комісії (таблиця 5.4).

Значення коефіцієнтів:

 (5.8)

де  параметри, що порівнюються

Використовуючи значення  (див. табл.4) будуємо квадратну матрицю

А= ||.

Таблиця 5.4 - Експертне порівняння параметрів

Параметри

Експерти

Підсумкова

Чисельне


1

2

3

4

5

оцінка

Значення

 X1, X2

1.5

 

X1, X3

1.5

 

X1, X4

0.5

 

X1, X5

1.5

 

X2, X3

0.5

 

X2, X4

0.5

 

X2, X5

0.5

 

X3, X4

0.5

 

X3, X5

1.5

 

X4, X5

1.5

 


Вагомість кожного параметра будемо обчислювати за формулами:

 (5.9)

 (5.10)

 (5.11)

 (5.12)

де  - відносна оцінка i-го параметра;

 - вагомість i-го параметра за результатами оцінок всіх експертів,  - числове значення оцінки;

 - відносна оцінка і-го параметра на другому кроці;

 - вагомість i-го параметра за результатами оцінок всіх експертів на другому кроці.


Результати розрахунків (таблиця 5.5):

Таблиця 5.5 - Розрахунок пріоритету параметрів

Пара-метри

Параметри Xj

1-й крок

2-й крок

Xi

X1

X2

X3

X4

X5

Bi

jjiBi|jji |



X1

1.0

1.5

1.5

0.5

1.5

7

0.28

34

0.2957

X2

0.5

1.0

0.5

0.5

0.5

3

0.12

14

0.1217

X3

0.5

1.5

1.0

0.5

1.5

5

0.2

22

0.1913

X4

1.5

1.5

1.5

1.0

1.5

6

0.24

27.5

0.2391

X5

0.5

1.5

0.5

0.5

1.0

4

0.16

17,5

0.1521

Сума

25

1

115

1


Перевіримо, чи варто нам виконувати подальші ітерації:

 (5.13)

, що складає 5% відхилення  від попереднього .

Відносна оцінка , отримана на останній ітерації розрахунків, вважається коефіцієнтом вагомості () i-того параметра. Згідно з нею судять про пріоритетність параметра.

5.4 Аналіз варіантів реалізації функцій


На основі порівняльного аналізу реалізації функцій, їх переваг та недоліків, коефіцієнтів вагомості параметрів, залишимо наступні 4 варіанти реалізації функцій:

) F1a + F2a + F3б + F4а;

) F1a + F2б + F3б + F4a;

) F1б + F2б + F3б + F4а;

) F1б + F2б + F3б + F4а;

Визначимо рівень якості обраних розв’язків за формулою:

 (5.14)

Та варіантів виконання за формулою:

 (5.15)

де  - коефіцієнт важливості (табл.4);

 - бальна оцінка якості, знаходиться з графіків (рис.5.1-5.5);

 - число параметрів, яке прийняте в якості критерію вибору оптимального варіанта схемного розв’язку.

Розрахуємо показники рівня якості для кожного варіанта реалізації функцій (таблиця 5.6):

, (5.16)

де  - показник технічного рівня першої функції k-го варіанту реалізації основних функцій виробу.

Таблиця 5.6 - Розрахунок рівня якості

Основна Функція

Варіант реалізації ПП

Параметр реалізації функції

Абсолютне значення параметра

Оцінка параметра в балах

Коефіцієнт важливості параметра

Коефіцієнт рівня якості

F1

а

X3

0.090

0.5

0.1913

0.096


б

X3

0.005

7.2

0.1913

1.377

F2

a

X2

2700

5.8

0.1217

0.706


б

X2

2900

5.2

0.1217

0.633


в

X1

0.07

4

0.2957

1.183

F3

a

X4

70

4.4

0.2391

1.052


б

X4

90

7.6

0.2391

1.817

F4

а

X4

40

2.5

0.2391

0.598


= F1a + F2a + F3б + F4а = 3.80;

= F1a + F2б + F3б + F4a = 2.96;

= F1б + F2б + F3б + F4а = 3.79;

= F1б + F2б + F3б + F4а = 5.01.

Отже, найкращим на етапі функціонального аналізу є четвертий варіант реалізації, оскільки йому відповідає найбільше значення коефіцієнта технічного рівня - 5,01.

5.5 Економічний аналіз варіантів ПП


5.5.1 Визначення витрат на розробку ПП

Витрати на розробку кожного варіанту ПП знайдемо за допомогою наступної формули:

 (5.17)

де  - зарплата разом з відрахуваннями;

 - витрати на оплату машинного часу;

 - накладні витрати.

Витрати на оплату праці розробників ПП:

, (5.18)

де  - денна зарплата програміста,  - трудомісткість розробки ПП.

Визначимо вихідні дані для розрахунку трудомісткості ПП:

·        кількість наборів даних вхідної інформації - 2;

·        кількість різновидів форм вихідної інформації - 3;

·        за ступенем новизни що розробляється завдання відноситься до групи А;

·        за складністю алгоритм відноситься до першої групи;

·        складність організації контролю вхідної і вихідної інформації:

а) вхідний контроль - група 12;

б) вихідний контроль - група 22;

·        - трудомісткість виконання робіт; для завдань групи А та першої групи складності алгоритму складає 90 людино-днів (норма часу розрахована на восьми годинний робочий день при п'ятиденного робочого тижня).

Тепер знайдемо загальну трудомісткість розробки:

, (5.19)

де  - поправковий коефіцієнт, який враховує групу складності, ступінь новизни і вид інформації, що використовується:

Кп = (К1 ∙ m+ К2 ∙ n+ К3 ∙ р) / (m + n + р), (5.20)

де K1, K2, К3 - поправкові коефіцієнти, що визначаються за таблицею "Поправкові коефіцієнти для розрахунку трудомісткості робіт";, n, р - відповідно ПІ, ПДІ, БД кількість наборів даних. ,

 - поправковий коефіцієнт, що враховує складність контролю вхідної та вихідної інформації, .

 - поправковий коефіцієнт, який враховує рівень мови програмування, .

 - поправковий коефіцієнт, який враховує використання стандартних модулів, .

Отже, знаходимо загальну трудомісткість розробки ПП:

 людино-днів

Визначимо потрібну кількість працівників, що будуть виконувати розробку програмного продукту. Оскільки запланований строк розробки 12 місяців, то:

, (5.21)

де  - річний фонд робочого часу, =253 дні.

Отже

 людина.

Врахувавши, що в розробці приймали участь два інженер-програміст 2-ї категорії з місячною зарплатою грн. Тоді денна зарплата при 5-денному робочому тижні:

 грн. (5.22)

Основна заробітна плата:

 грн. (5.23)

Додаткова зарплата:

 грн. (5.24)

Таким чином, фонд заробітної плати програміста дорівнює:

 (5.25)

Вартість машинного часу, витраченого на налагодження ПП, визначається за формулою:

, (5.26)

де  - собівартість однієї машинної години роботи ЕОМ, грн.;

 - машинний час, необхідний для налагодження ПП, год.

Собівартість однієї машинної години визначається за формулою:

 (5.27)

де  - річні експлуатаційні витрати, грн;

 - річний фонд корисної роботи ЕОМ, год (визначається виходячи з календарного річного фонду часу за винятком вихідних, свят і добового режиму роботи).

Річний фонд часу корисної роботи ЕОМ складає:

 (5.28)

де  - кількість робочих днів у році ( = 253 днів);

 - номінальна кількість годин щодоби роботи пристрою (8год);

 - кількість годин у році на поточний ремонт та обслуговування (15% від ).

Тоді  год.

Річні експлуатаційні витрати визначаються за наступною формулою:

 (5.29)

де  - основна і додаткова заробітна плата персоналу, який обслуговує техніку;

 - амортизаційні відрахування (25% від , де  - вартість машини);

 - витрати на електроенергію;

 - витрати на ремонт ЕОМ (0.04, де  - вартість машини);

 - інші витрати.

Так як вартість машини дорівнює  = 7000 грн.,

то =0.25∙ 7000 =1750 грн.,

=0.04∙7000 =280 грн.

Так як потужність ЕОМ становить -  = 400 Вт, вартість 1 кВт/г - = 0.243 грн., а річний фонд корисного часу роботи ЕОМ -  = 1720 год, то витрати на електроенергію за рік складають:

 грн. (5.30)

Один інженер з окладом 2000 грн. обслуговує 4 ЕОМ, а середня кількість робочих днів у місяці складає 21.1, то денна заробітна плата інженера становить:

грн;

 людино-дні - трудомісткість інженера;

Таким чином, фонд заробітної плати інженера дорівнює:

 грн. (5.31)

Отже, відрахування від заробітної плати в пенсійний фонд, фонд соціального страхування, фонд зайнятості складають:

= 0.375 ∙  = 0.375 ∙ 5056.5 = 1896.2 грн.

Інші витрати приймаються в розмірі 7% від суми всіх попередніх статей витрат:

=0.07 ∙ (1896.2+5056.5 +167.184+1750+280) =640.5 грн.

Таким чином, сума експлуатаційних витрат, що забезпечують функціонування використовуваних технічних засобів, дорівнює:

=1896.2+5056.5 +167.184+1750+280+640.5 = 9790.4 грн.

Отже, вартість однієї машинної години складає:

грн. =1200год.

Таким чином, вартість машинного часу становить:

 грн.

=5.69∙1200 =6828 грн.;

 грн.

Функціонально необхідні витрати на створення програмного продукту визначаються за формулою:

 грн. (5.32)

5.5.2 Оцінка техніко-економічного рівня варіантів ПП

Визначимо показник техніко-економічного рівня за формулою:

 (5.33)

де  - коефіцієнт рівня якості і-го варіанту;

 - вартість розробки ПП і-го варіанту.

Проведемо оцінку варіантів рішення, порівнюючи показники техніко-економічного рівня:

;

;

;

.

Самим раціональним варіантом буде четвертий, оскільки він має максимальне значення

Висновки до розділу


В результаті виконання економічного розділу були систематизовані і закріплені теоретичні знання в області економіки та організації виробництва використанням їх для техніко-економічного обґрунтування розробки методом ФВА. У даному дипломному проекті виконаний ФВА програмного продукту. Запропоновано чотири різних варіанти реалізації даного програмного продукту. Найбільш ефективним є останній варіант, показаний в таблиці 5.7.

Таблиця 5.7 - Результати аналізу

Назва показника

Позначення

Одиниця виміру

Числове значення

Узагальнений показник рівня якості

Кт. р


5,01

Показник техніко-економічного рівня якості ПП

Кт.е. р


0,000056435

Загальні витрати на розробку ПП

Спп

грн.

88774,42


6. Охорона праці та безпека в надзвичайних ситуаціях


В результаті дипломного проектування був створений програмний продукт, що має в своїй основі змодельовану та навчену нейронну мережу для розпізнавання образів. Даний програмний продукт може використовуватися в різноманітних умовах. Автором рекомендується його використання в дослідницьких лабораторіях, обладнаних за принципом комп’ютерних аудиторій. Саме тому в даному розділі буде проведено опис такої дослідницької лабораторії.

Зрозуміло, що в даному приміщенні знаходиться комп’ютерна техніка, під час роботи з якою, зазвичай немає яскраво виражених загроз для життя та здоров’я людини. Проте є приховані загрози, такі як погіршення зору, випромінення, біль у спині та м'язах кистей рук. Тому необхідно забезпечити такі умови праці, щоб зменшити ризик для здоров’я людей.

Проект виконаний з урахуванням вимог охорони праці, пожежної та екологічної безпеки виробництва.

В даному розділі на основі аналізу шкідливих і небезпечних виробничих факторів в приміщенні, яке проектуються, передбачені заходи, направлені на створення здорових, безпечних умов праці, пожежної безпеки.

6.1 Аналіз умов праці в приміщенні, де експлуатується програмне забезпечення. Заходи з охорони праці


Згідно "Гігієнічна класифікація праці" (затверджено наказом МОЗ України № 528 від 27.12.2001 року), робота з розробленим програмним продуктом відноситься до 2 класу (таблиця "Класи умов праці за показниками напруженості трудового процесу").

6.1.1 Аналіз приміщення

Використання програмного продукту буде проводитись у приміщенні, показаному на рисунку 7.1, геометричні розміри зведено до таблиці 7.1.

Кількість працюючих у приміщенні 2. У приміщенні знаходиться 3 столи, 4 стільці, 2 комп'ютери, 1 принтер, 1 телефон, 1 шафа, 1 тубмбочка.

Рисунок 6.1 - План робочого приміщення

Таблиця 6.1 - Розміри приміщення

Найменування

Значення

Довжина, м

6.0

Ширина, м

4.0

Висота, м

3.0

Площа, м2

24.0

Об’єм, м3

72

6.1.2 Повітря робочої зони

Відповідно до ДСН 3.3.6.042-99 [8] роботу, що виконується в лабораторії, можна віднести до категорії легка Ia, оскільки вона виконується сидячи і не вимагає фізичної напруги. Оптимальні значення параметрів мікроклімату, прийняті проектом, наведені у таблиці 6.2.

Таблиця 6.2 - Норми мікроклімату робочої зони об’єкту

Період року

Категорія робіт

Температура С0

Відносна вогкість %

Швидкість руху. повітря, м/с

Холодна

легка-1 а

22 - 24

40 - 60

0,1

Тепла

легка-1 а

23 - 25

40 - 60

0,1


Для забезпечення оптимальних параметрів мікроклімату в лабораторії проводяться перерви у роботі співробітників, що працюють у приміщенні, з метою його провітрювання. Існують спеціальні системи кондиціонування, які забезпечують підтримання у приміщенні балансу оптимальних параметрів мікроклімату.

Контроль параметрів мікроклімату в холодний і теплий період року здійснюється не менше 3-х разів в зміну (на початку, середині, в кінці).

Прилади контролю - термометр, психрометр, анемометр.

6.1.3 Виробниче освітлення

Відповідно до ДБН В.2.5-28-2006 [3] роботи, що виконуються в приміщенні відносяться до V розряду зорових робіт. Передбачається використання комбінованого природного (верхнє освітлення поєднується з бічним), і комбінованого штучного (загальне і місцеве освітлення робочих місць світильниками) і суміщеного освітлення. У світильниках місцевого освітлення використовуються люмінесцентні лампи, нормального виконання.

У виробничих приміщеннях прийнята система загального рівномірного освітлення. Норми параметрів освітлення приведено в таблиці 6.3.

Таблиця 6.3 - Санітарні норми параметрів освітлення приміщення

Характеристика зорової роботи

Розряд зорової роботи

Штучне освітлення

Природне освітлення

Суміщене освітлення



Освітленість, лк

КЕО%



При комбінованому освітленні

При загальному освітленні

При верхньому або комбінованому освітленні

При бічному освітленні

При верхньому або комбінованому освітленні

При бічному освітленні

Малої точності

 V6

300-200

200-100

3

1

1,8

0,6


В небезпечних місцях з високим ступенем ризику травматизму при аварійному відключенні освітлення передбачається система евакуаційного освітлення, а також аварійне освітлення, світильники приєднані до незалежного джерела живлення, справність перевіряється один раз в квартал. Контроль освітленості на робочому місці проводиться за допомогою люксметрів не рідше, ніж один раз на квартал (або на вимогу) у всіх виробничих приміщеннях.

Проводиться чищення скла вікон та світильників не менше двох разів на рік, а також замінюються перегорілі лампи по мірі їх виходу з ладу.

На даному підприємстві згідно СН 181-70 передбачається пофарбування стін і стелі в світлі тони з відносно невеликою насиченістю і високим коефіцієнтом віддзеркалення; застосовувати теплі тони, необхідно дотримувати контрасти між теплими і холодними тонами (оскільки стіни забарвлені в теплі тони, то устаткування забарвлено в холодні).

Для збереження зору працівників у хорошому стані необхідно робити невеликі перерви, щоб дати очам відпочити, а також дотримуватись визначеної відстані, на якій працівники повинні знаходитись від комп’ютера.

6.1.4 Захист від виробничого шуму і вібрації

Джерелами шуму в приміщенні є вентилятор ЕОМ і принтер. Звук, створюваний вентилятором, можна класифікувати як постійний. Рівень звукового тиску, створюваний цим джерелом, настільки малий, що практично збігається з фоновим.

Допустимий рівень вібрації на робочому місці:

·        для 1 ступеня шкідливості до 3 дБ;

·        для 2-3 - 1-6 дБ;

·        для 3 - більше 6 дБ.

Параметрами постійного шуму, що підлягають нормуванню, є рівні звукового тиску 8 дБ в октавних смугах частот з середньогеометричними частотами 16, 31.5, 63, 125, 250, 500, 1000, 2000, 4000, 8000 Гц, рівні звуку 80 дБА згідно ДСН 3.36.037-99 [8].

Допустимі значення октавних рівнів звукового тиску, рівнів звуку на робочих місцях в приміщеннях з комп'ютерною технікою слід приймати згідно таблиці 6.4.

В приміщеннях із ЕОМ корегований рівень звукової потужності не перевищує 45 дБА.

Вібрація на робочих місцях, що створюється ЕОМ, не вище значень, які представлені в таблиці 6.5.

Таблиця 6.4 - Норми параметрів значення октавних рівнів

Призначення приміщення та умови

Рівні звукового тиску, дБ, в октанових смугах частот з середньогеометричними частотами, Гц

Рівні звуку, дБА


16

31,5

63

125

250

500

1000

2000

4000

8000


Приміщення без роботи ЕОМ

-

-

63

52

45

39

35

32

30

28

40

Приміщення при роботі ЕОМ

85

75

67

57

49

44

40

37

35

33

45


Для зниження шуму на шляху його розповсюдження передбачається розміщення в приміщенні штучних поглиначів. Віброізоляція здійснюється за допомогою спеціальної прокладки під системний блок, що послаблює передачу вібрацій робочому столу.

Таблиця 6.5 - Гранично допустимі рівні вібрації на робочому місці, дБ

Нормований параметр

Середньогеометричні частоти октанових смуг, Гц

Коректовані та еквівалентні рівні, дБ


2

4

8

16

31,5

63


Віброшвидкість

79

73

67

67

67

67

72

Віброприскорення

25

25

25

31

37

43

30


Службами відділу охорони праці передбачено періодично проводити виміри виробничого шуму, вібрації на робочих місцях, котрі вимірюються за допомогою приладів вимірниками шуму і вібрації ВШВ-2, ВШВ-2п. Передбачено істотне ослаблення шуму якісним монтажем окремих вузлів комп’ютерів і своєчасним проведенням планового запобіжного ремонту.

6.1.5 Випромінювання

Одним із шкідливих апаратних забезпечень ЕОМ для людського організму є дисплеї, побудовані на основі електронно-променевої трубки, які являються джерелами електростатичного поля, м'якого рентгенівського, ультрафіолетового, інфрачервоного, видимого, низькочастотного, наднизькочастотного та високочастотного електромагнітного випромінювання (ЕМВ).

Енергія рентгенівського та частини інших випромінювань повністю поглинається склом екрана. Навколо працюючого монітору виникають електромагнітні поля низької частоти (від 5 Гц до 400 кГц).

Граничнодопустима напруженість електростатичного поля на робочих місцях не перевищує рівнів, наведених в ТСО’99, ДСанПіН 3.3.2-007-98 [7], ДНАОП 000.131-99 [5].

Таблиця 6.6 - Параметри електромагнітних неіонізуючих випромінювань і електростатичного поля

Смуга частот, кГц

Електричне поле, В/м

Магнітне поле, нТл

0,005-2

10

200

2-400

1,0

25


Поверхневий електростатичний потенціал не перевищує 500 В.

Для захисту користувачів ПК від дії електромагнітних випромінювань передбачені наступні заходи:

·        встановлені заземлені захисні фільтри для екранів моніторів (СР-фільтри фірми Polaroid CP Universal Gold), які зменшують випромінювання видимого діапазону на 60 %, випромінювання ELF+VLF на 99,6 %, збільшують контрастність в 50 разів.

·        віддаль від екрана монітору до користувача становить 600-700 мм;

6.1.6 Електробезпека

Електробезпека - система організаційних і технічних заходів та засобів, що забезпечують захист людей від шкідливої і небезпечної дії електричного струму, електричної дуги, електричного поля і статичної електрики.

Електричний струм, проходячи через тіло людини, зумовлює перетворення поглинутої організмом електричної енергії в інші види і спричиняє термічну, електролітичну, механічну і біологічну дію.

Відповідно ГОСТ 12.1.038-82 допустимі рівні напруги дотику (Uд) і струму, що проходить через тіло людини (Iд) дорівнює: при нормальному режимі роботи електроустаткування Uд = 2В, а Iд = 0,3мА при τ ≤ 10хв; при аварійному - відповідно 36В і 6мА, при τ > 1c.

Однофазний дотик зустрічається частіше, ніж двофазний. Величина струму, який проходить через людину при однофазному дотику, визначається по формулі:

,

де Uф = 220 - фазна напруга, В;л = 4000 - опір тіла людини, Ом;o - опір нейтралі заземлення, Ом.

Напруга дотику розраховується по формулі:

пр = Iл* Rл = 55*4 = 220В.

Як видно з порівняння при порушені ПБЕ (правил безпечної експлуатації електроустановок споживача) можливі електротравми з тяжкими наслідками.

На робочому місці виконуються наступні вимоги електробезпеки:

ПК, периферійні пристрої ПК та устаткування для обслуговування, електропроводи та кабелі за виконанням та ступенем захисту відповідають класу зони за ПВЕ (правила влаштування електроустановок), мають апаратуру захисту від струму короткого замикання та інших аварійних режимів.

Лінія електромережі для живлення ПК, периферійних пристроїв ПК та устаткування для обслуговування, виконана як окрема групова три провідна мережа, шляхом прокладання фазового, нульового робочого та нульового захисного провідників. Нульовий захисний провідник використовується для заземлення (занулення) електроприймачів.

Нульовий захисний провід прокладено від стійки групового розподільчого щита. Площа перерізу нульового робочого та нульового захисного провідника в груповій три провідній мережі є більшою площі перерізу фазового провідника. ПК, периферійні пристрої ПК та устаткування для обслуговування, підключаються до електромережі тільки з допомогою справних штепсельних з'єднань і електророзеток заводського виготовлення.

Штепсельні з'єднання та електророзетки крім контактів фазового та нульового робочого провідників мають спеціальні контакти для підключення нульового захисного провідника.

Електромережу штепсельних розеток для живлення персональних ПК, периферійних пристроїв ПК та устаткування прокладено по підлозі поряд зі стінами приміщення, в металевих трубах і гнучких металевих рукавах з відводами відповідно до затвердженого плану розміщення обладнання та технічних характеристик обладнання. Металеві труби та гнучкі металеві рукави заземлені.

Захисне заземлення включає заземлюючий пристрій і провідник, що з'єднує заземлюючий пристрій з обладнанням, яке заземлюється - заземлюючий провідник.

6.1.7 Безпека технологічних процесів та обслуговування обладнання

З метою очищення кімнати від пилу щодня на робочому місці проводиться вологе прибирання, тим самим освіжаючи повітря робочої зони.

Для підтримки оптимальних умов в холодний період передбачена центральна система водяного опалення, згідно СНиП 2.04.05-91 [19] однотрубна з нижнім підведенням і передбачається природна і механічна вентиляція. Механічна вентиляція здійснюється за допомогою вентиляторів. Припливні отвори розташовані в нижній частині приміщення на висоті 1,2м, щоб зовнішнє повітря в теплу пору року надходило безпосередньо на робоче місце. У холодний час припливні отвори відкривають на висоті 4м від підлоги, аби зовнішнє повітря, доходячи на робоче місце, встигало змішуватись з теплим внутрішнім повітрям. Отвори для витоку повітря розташовуються вище за пристрої для приймання повітря.

6.2 Пожежна безпека


Причинами пожеж електрообладнання є: коротке замикання між струмоведучими частинами обладнання (шини, електроди), в результаті перевантаження напруги, розряди зарядів статичної електрики, пошкодження обладнання та електропроводки. Тому проектом передбачено прокладати проводку: скрито, під знімною підлогою розділяють негорючими діафрагмами, в малодоступних місцях.

Електростатичний розряд виникає під час тертя двох ізольованих матеріалів. Розряд статичної електрики може виникнути під час роботи вентилятора чи комп’ютера.

За ступенем вогнестійкості виробничі будівлі відносяться до 1 групи. У виробничому корпусі і на території проектованого підприємства передбачаються наступні протипожежні заходи:

·        у виробничому корпусі передбачено п'ять виходів, що забезпечують евакуацію людей при пожежах;

·        навкруги виробничих корпусів - проїзди;

·        через кожні 5,0-7,5 м по ланцюгу зовнішнього водопроводу встановлені гідранти;

·        передбачений внутрішній протипожежний водопровід з витратами води 2,5 л\с;

·        із зовнішньої сторони будівлі передбачено встановлення пожежних сходів.

На проектованому підприємстві передбачається пожежна сигналізація, зв'язок. Протипожежні розриви між будівлями складають 10м.

Для гасіння пожежі у приміщенні передбачена водопровідна мережа, обладнана у вигляді системи стояків, на яких встановлені пожежні крани.

Будівля захищена від прямого удару блискавки (відповідно до СН 305 - 77) за допомогою вертикально-стрижньового блискавковідводу, що складається з блискавкоприймача, заземлювача і струмопровідника антенного типу. У приміщенні, окрім стаціонарної системи пожежогасіння є вуглекислотні та порошкові вогнегасники.

У даному розділі проекту була проведена оцінка пожежо- і вибухонебезпечності проектованого приміщення, яка надана в таблиці 7.7

Таблиця 7.7 - Показники пожежо- і вибухонебезпечності речовин та матеріалів. Класифікація виробництва пожежо- і вибухонебезпечності та влаштування блискавко захисту.

Найменування будівель, зовнішніх установок

Речовини, які використовуються в модельованому приміщенні

Агресивний стан речовини за н. у.

Горючість, вибуховість Швидкість займання

Показники пожежо - і вибухонебезпечності

Засоби пожежогасіння

Категорія приміщення за ОНТП 24-96

Клас приміщення (зони) за ПУЕ

Категорія об’єкта і тип зони Захисна і влаштуванню блискавко захисна згідно з БН 305-77





Температура спалаху

Температура займання





Офісне приміщення

Деревина

тв.

горить

235

537

Піна хімічна, ВПХ-10

В

ІІ-ІІа

ІІІА


Полістирол

тв.

горить

274

537

Піна хімічна





Висновки до розділу


В даному розділі проведено аналіз основних аспектів охорони праці. Було показано, що проводяться всі необхідні заходи для забезпечення достойних умов праці. Параметри приміщення відповідають нормативним вимогам. Рівень шуму не перевищує нормативних обмежень. Пожежна безпека, електробезпека та мікроклімат відповідають нормам безпеки.

Висновки


В даній роботі було проведено аналіз існуючих архітектур та методів навчання нейронних мереж. Як результат для програмної реалізації обрано модель контрольованого навчання багатошарового перцептрону.

Було проведено аналіз існуючих моделей та засобів організації багатопоточних обчислень. В результаті аналізу було обрано The Task Parallel Library мови С#.

Як задачу класифікації розглянуто модель розпізнавання символів латинського алфавіту.

В результаті проектування розроблено програмний продукт, який дозволяє використовувати штучні нейронні мережі для виконання задачі класифікації символів латинського алфавіту в багатопоточних комп’ютерних середовищах.

Проведено ряд експериментальних досліджень над програмним продуктом. В результаті експериментів були отримані дані, які показали, що використання моделі паралельних алгоритмів роботи мають кращі результати від послідовних при використанні однакових вхідних параметрів у багатопоточних середовищах.

Аналіз основних аспектів з охорони праці виявив, що проводяться всі необхідні заходи для забезпечення достойних умов праці. Усі необхідні параметри приміщення знаходяться в нормі.

Техніко-економічне обґрунтування розробки дозволяє стверджувати, що проект є економічно вигідним.

При внесенні модифікацій розроблений продукт може використовуватися, наприклад, в системах розпізнавання автомобільних номерів, тощо.

Перелік посилань


1.       Горбань А.Н. Обучение нейронных сетей. Москва, "ПараГраф”, 1990.

2.      Грегори Р. Эндрюс "Основы многопоточного, параллельного и распределённого программирования"

.        ДБНВ.1.1-7 - 2002, Пожарная безопасность объектов строительства Госстрой Украины, Киев, 2003 - 42с.

.        Джеффри Е. Хинтон. Как обучаются нейронные сети. // В мире науки - 1992 - N 11 - N 12 - c.103-107.

.        ДНАОП 0.00 - 1.31 - 99. Правила охорони праці під час експлуатації ЕОМ. - К.: Основа, 1999. - 111с.

.        Дуда Р., Харт П. Распознавание образов и анализ сцен, Москва, "Мир", 1976.

.        ДСанПіН 3.3.2.007 - Державні санітарні правила і норми роботи з візуальними дисплейними терміналами електронно-обчислювальних машин. - Київ 1998р.

.        ДСН 3.3.6.037-99 Санітарні норми виробничого шуму, ультразвуку і інфразвуку, 1999с.

.        Каллан, Роберт. Основные концепции нейронных сетей. - М.: Издательский дом "Вильямс", 2001. - 288 с.

.        Методические указания по выполнению расчета искусственного освещения в дипломных проектах и работах с применением ЭВМ. / Сост. Френзе Ю.К., Подколзин М.Я. и др. - К.: КПИ, 1989. - 66с.

.        Методичні вказівки до виконання організаційно-економічного розділу дипломних проектів. За ред.А.Т. Чернявського. К.: НТУУ "КПІ", 1999.

.        Минский М., Пеперт С. Персептроны. - М.: Мир, 1971. - 262 с.

.        ОНТП 24-86. Определение категорий помещений и зданий по взрывопожарной и пожарной опасности. ВНИИ ПО МВД СССР, 1987.30с.

.        Правила устройства электроустановок. - М.: Энергоатомиздат, 1986. - 648с.

.        Практична психологія в економіці та бізнесі: Навчальний посібник / О.В. Данчева, Ю.М. Швалб - К.: Лібра, 1998.

.        Руденко О.Г., Бодянский Е.В. Основы теории искусственных нейронных сетей. - Харьков: ТЕЛЕТЕХ, 2002. - 317 с.: ил.

.        Тимоти Г. Мэттсон (Timothy G. Mattson), Беверли Э. Сэндерс (Beverly A. Sanders), Берна Л. Мессингилл (Berna L. Massingill), Шаблоны для параллельного программирования, изд-во Addison Wesley, 2005

.        Сайт майкрософт для підтримки програмних засобів. Режим доступу: http://msdn. microsoft.com/ - Дата доступу: 10.12.2011

.        СНиП 2.09.02. - 85. Производственные здания. - М.: Госкомитет по делам строительства, 1986. - 16с.

.        Сотник С. Л, Конспект лекций по курсу "основы проектирования систем искусственного интеллекта", Москва, 1998.

.        Швець Л.В. "Конспект лекцій по курсу "Економічні основи виробництва”.

.        Carpenter G., Grossberg S. A massively parallel architecture for a self2organizing neural pattern recognition machine // Computing Vision. Graphics, and Image Processing, 1987. - vol.37. - P.542115.

.        Grossberg S. 1974. Classical and instrumental learning by neural networks. Progress in theoretical biology, vol.3, pp.51-141. New York: Academic Press.

.        Haukin S. Neural networks: a comprehensive foundation. - 2nd ed. Pren-tice Hall Upper Saddle River, New Jerseu 07458, - 842 p.

.        Karnin E. D. A simple procedure for pruning backpropagation trained neural networks // IEEE transactions on neural networks, 1990. - vol.1, №2. - P.2392242.

.        McCulloch W. S., Pitts W. A logical calculus of the ideas immanent in nervous activity // Bulletin of Mathematical Biophysics, 1943. - № 5. - P.1152133.

.        Mendel J. M., McLaren R. W. Re-inforcement-learning and pattern recognition system. // Adaptive, Learning, and Pattern Recognition System: Theory and applcations (J. M. Mendel and K. S. Fu, eds.). - New York: Academic Press, 1970. - P.287-318.

.        Psaltis D., Wagner K., Brady D. 1987 Learning in optical neural computers. In Proceedings ofIEEE First International Conference on Neural Networks, M. Caudill and C. Butler. San Diego, CA: SOS Printing.

.        Rosenblatt F. 1962. Principles of Neurodinamics. New York: Spartan Books.

.        Senashova Masha Yu., Gorban Alexander N., and Wunsch Donald, "Back-Propagation ofAccuracy” // Proc. IEEE/INNS International Conference of Neural Networks, Houston, IEEE, 1997, pp. 1998-2001

Похожие работы на - Побудова та дослідження моделі штучної нейронної мережі для вирішення задач класифікації об'єктів у багатопоточних комп'ютерних середовищах

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!