Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 19

Лекція №1

Тема: Штучні нейронні мережі. Всуп.


Навчальні питання

1. Що таке ШНМ? Чому і навіщо?


2. Завдання, які вирішуються ШНМ.
3. Класифікація ШНМ.
4. Переваги та недоліки ШНМ.
5. Навчання ШНМ, основні парадигми.
6. Приклади реалізації.
1. Що таке ІНС? Чому і навіщо?

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


математична модель, а також її програмне або апаратне втілення,
побудована за принципом організації та функціонування біологічних
нейронних мереж.
- З точки зору машинного навчання, нейронна мережа є окремим
випадком методів розпізнавання образів, дискримінантного аналізу,
методів кластеризації і т. п.
- З точки зору математики, навчання нейронних мереж - це
багатопараметричне завдання нелінійної оптимізації.
- З погляду кібернетики, нейронна мережа використовується у
задачах адаптивного управління та як алгоритми для робототехніки.
- З точки зору розвитку обчислювальної техніки та програмування,
нейронна мережа - спосіб вирішення проблеми ефективного
паралелізму.
- З погляду штучного інтелекту, ШНМ є основою філософської течії
коннекціонізму та основним напрямом у структурному підході щодо
вивчення можливості побудови (моделювання) природного
інтелекту за допомогою комп'ютерних алгоритмів.
Нейронні мережі не програмуються у звичному значенні цього
слова, вони навчаються.
Можливість навчання - одна з головних переваг нейронних мереж
перед традиційними алгоритмами. Технічно навчання полягає у
знаходженні коефіцієнтів зв'язків між нейронами.
У процесі навчання нейронна мережа здатна виявляти складні
залежності між вхідними даними та вихідними, а також
виконувати узагальнення.
Це означає, що у разі успішного навчання мережа зможе
повернути правильний результат на підставі даних, які були
відсутні у навчальній вибірці, а також неповних та/або
«зашумлених», частково спотворених даних.
2. Задачі, що вирішують ШНМ
Нейронні мережі використовуються для вирішення складних завдань, які
вимагають аналітичних обчислень подібних до тих, які робить людський мозок.
Найпоширенішими завданнями, для вирішення яких застосовуються нейронні
мережі, є:
1. Класифікація (приклад застосування - розпізнавання образів, прийняття
рішень, управління та ін.).
2. Кластеризація. Під кластеризацією розуміється розбиття множини вхідних
сигналів на класи, причому а ні кількість, а ні ознаки класів заздалегідь
невідомі. Після навчання така мережа здатна визначати, до якого класу
належить вхідний сигнал. Мережа також може сигналізувати про те, що
вхідний сигнал не відноситься до жодного з виділених класів - це є ознакою
появи нових даних, які відсутні в навчальній вибірці. Таким чином, подібна
мережа може виявляти нові, раніше невідомі класи сигналів.
3. Прогнозування. Здібності нейронної мережі до прогнозування
безпосередньо випливають з її здатності до узагальнення та виділення
прихованих залежностей між вхідними та вихідними даними. Після
навчання мережа здатна передбачити майбутнє значення певної
послідовності на основі кількох попередніх значень та (або) якихось
існуючих на даний момент факторів.
3. Типи нейромереж та їх класифікація
Станом на початок 2019 р. в інтернеті була інформація стосовно 26 типів
нейромереж. З них 12 називалися за іменами їх винахідників, у решти були
такі назви як хаотична, сіамська, осциляторна, адаптивного резонансу
тощо.
Для того, щоб якось систематизувати наявні та майбутні нейромережі,
робляться спроби їх класифікації.
- Класифікація за типом вхідних даних: аналогові (на вході дійсні числа),
двійкові (на вході двійкові числа) та образні (на вході знаки, ієрогліфи,
символи) нейронні мережі.
- Класифікація за характером навчання: навчання з вчителем (вихідний
простір рішень нейронної мережі відомий), навчання без вчителя (вихідний
простір рішень формується тільки на основі вхідних впливів; такі мережі
називають самоорганізованими); навчання з підкріпленням
(використовується система призначення штрафів та заохочень, що
отримуються в результаті взаємодії ШНМ із середовищем).
- Класифікація за характером налаштування синапсів: мережі з
фіксованими зв'язками (вагові коефіцієнти нейронної мережі вибираються
відразу, виходячи з умов завдання), мережі з динамічними зв'язками (у цих
мереж у процесі навчання відбувається налаштування синаптичних зв'язків).
4. Апроксимація. Нейронна мережа здатна апроксимувати будь-яку
безперервну функцію з деякою заданою точністю.
5. Стиснення даних та асоціативна пам'ять. Здатність нейромереж до
виявлення взаємозв'язків між різними параметрами дає можливість
представити дані компактніше, якщо дані тісно пов'язані між собою.
Зворотний процес — відновлення вихідного набору даних щодо інформації
— називається (авто)асоціативною пам'яттю.
Асоціативна пам'ять дозволяє також відновлювати вихідний сигнал/образ із
зашумлених/пошкоджених вхідних даних.
Нейронні мережі також використовуються для аналізу даних, вирішення
оптимізаційних завдань, знаходження патернів у великих обсягах даних,
орієнтації у просторі та ін.
- Класифікація за часом передачі сигналу: синхронні мережі (час передачі
кожного синаптичного зв'язку дорівнює або нулю, або фіксованої
постійної), асинхронні мережі (час передачі кожного зв'язку між
елементами свій, але теж постійний).
- Класифікація за характером зв'язків: мережі прямого поширення (всі
зв'язки спрямовані суворо від вхідних нейронів до вихідних), рекурентні
мережі (сигнал з вихідних нейронів або нейронів прихованого шару
частково передається назад на входи нейронів вхідного шару), рекурентна
мережа Хопфілда (фільтрує вхідні дані, повертаючись до стійкого стану і,
таким чином, дозволяє вирішувати завдання стиснення даних та побудови
асоціативної пам'яті), двоспрямовані мережі (між шарами існують зв'язки
як у напрямку від вхідного шару до вихідного, так і у зворотному).
Крім того, використовуються радіально-базисні мережі (або RBF-мережі),
карти, що самоорганізуються (зокрема, картка Кохонена, що
самоорганізується) і мережі інших класів, що ще не цілком оформилися.
4. Переваги та недоліки ШНМ
Переваги нейронних мереж

Основними перевагами нейронних мереж перед традиційними


обчислювальними методами є:
- Розв'язання задач в умовах невизначеності. Завдяки здатності до
навчання нейронна мережа дозволяє вирішувати завдання з невідомими
закономірностями та залежностями між вхідними та вихідними даними,
що дозволяє працювати з неповними даними.
- Стійкість до шумів у вхідних даних. Нейронна мережа може самостійно
виявляти неінформативні для аналізу параметри та робити їх відсівання, у
зв'язку з чим відпадає необхідність попереднього аналізу вхідних даних.
- Гнучкість структури нейронних мереж. Компоненти нейрокомп'ютерів -
нейрони та зв'язки між ними можна комбінувати різними способами. За
рахунок цього один нейрокомп'ютер можна застосовувати для вирішення
різних завдань, які часто ніяк не пов'язані між собою.
- Висока швидкодія. Вхідні дані обробляються багатьма нейронами
одночасно, завдяки чому нейронні мережі вирішують завдання швидше,
ніж більшість інших алгоритмів.
- Адаптація до змін довкілля. Нейронні мережі, навчаючись на
даних, здатні підлаштовуватися під навколишнє середовище, що
змінюється (наприклад, під зміни ситуації на ринку, якщо
завдання нейромережі — прогнозування коливань цін на біржі).
Якщо необхідно вирішувати якесь завдання в умовах
нестаціонарного середовища, то можуть бути створені нейронні
мережі, що перенавчаються в режимі реального часу. Чим вище
адаптивні можливості системи, тим більш стійкою буде її робота
в нестаціонарному середовищі.
- Відмовостійкість нейронних мереж. На несприятливу зміну
умов нейромережа реагує лише незначним зниженням
продуктивності. Ця особливість пояснюється розподіленим
характером зберігання інформації в нейронній мережі, тому
лише серйозні ушкодження структури можуть суттєво вплинути
на працездатність нейромережі.
Недоліки нейронних мереж

У нейронних мереж є ряд серйозних недоліків:


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

Точніше визначення дав набагато пізніше Том Мітчелл – засновник першої у


світі кафедри ML (Хенрік Брінк та ін. Підручник "Машинне навчання"): "Кажуть,
що комп'ютерна програма навчається на основі досвіду E по відношенню до
деякого класу завдань T та міри якості P, якщо якість розв'язання задач з T,
виміряна на основі P, покращується з придбанням досвіду E" (або інакше:
комп'ютерна програма навчається, якщо її продуктивність при виконанні
певної задачі, виражена у одиницях, що вимірюються, збільшується в міру
накопичення досвіду).
Основні парадигми навчання:

- Навчання з вчителем (supervised learning), - це тип тренувань властивий


таким проблемам як регресія та класифікація. Ви виступаєте у ролі вчителя,
а ШНМ у ролі учня. Ви надаєте вхідні дані та бажаний результат, тобто учень
подивившись на вхідні дані "зрозуміє", що потрібно прагнути того
результату, який ви йому надали.
В основному навчання з учителем застосовується для вирішення двох типів
завдань: класифікації та регресії.
У задачах класифікації алгоритм передбачає дискретні значення, які
відповідають номерам класів, до яких належать об'єкти. У датасеті з
фотографіями тварин кожне зображення матиме відповідну мітку —
«кішка», «коала» або «черепаха».
Якість алгоритму оцінюється тим, наскільки точно може правильно
класифікувати нові фото, наприклад, з коалами і черепахами.
Завдання регресії пов'язані з безперервними даними. Один із прикладів,
лінійна регресія, обчислює очікуване значення змінної y, враховуючи
конкретні значення x.
- Навчання без вчителя (unsupervised learning) чи самонавчання. У ШНМ є
набір даних, і немає явних вказівок, що з ним робити. Нейронна мережа
намагається самостійно знайти кореляції даних, витягуючи корисні ознаки та
аналізуючи їх. В основному використовується для вирішення задач
кластеризації (наприклад, угруповання даних за певними параметрами).
Припустимо, ви подаєте на вхід 10000 статей з інтернету і після аналізу всіх цих
статей ШНМ зможе розподілити їх за категоріями, ґрунтуючись, наприклад, на
словах, які часто зустрічаються.
Крім того, цей підхід використовується для:
- Виявлення аномалій. Наприклад, банки можуть виявити шахрайські
операції, виявляючи незвичайні дії в купівельній поведінці клієнтів
(підозріло, якщо одна кредитна картка використовується в Каліфорнії та
Данії в той самий день). Схожим чином, навчання без вчителя
використовують для знаходження викидів даних.
- Асоціації. Наприклад, розпізнавання за наявності неповних даних чи
ситуативне (контекстне) розпізнавання. Приклад асоціацій: деякі
характеристики об'єкта корелюють з іншими ознаками. Розглядаючи пару
ключових ознак об'єкта, модель може передбачити інші, із якими існує
зв'язок.
- Автоенкодери. Автоенкодери приймають вхідні дані, кодують їх, а потім
намагаються відтворити початкові дані з отриманого коду (наприклад,
автоенкодери можуть видаляти шум з відео, зображень або медичних
сканів, щоб підвищити якість даних).
6. Приклади реалізації
- У 2013 р. вважалося, що створення масштабних нейронних мереж
коштує дуже дорого з погляду обчислювальних ресурсів. Наприклад,
компанії Google для створення мережі, яка навчилася лише розпізнавати
кішок у серії роликів YouTube, довелося задіяти приблизно 1000
серверів, що еквівалентно 16 тисячам процесорних ядер. Побудована
мережа характеризувалася 1,7 млрд. параметрів, що віртуально
відображають зв'язки між нейронами. Пізніше компанія Google створила
мережу з 11,2 млрд. параметрів, а Ліверморська національна
лабораторія Лоренса — з 15-ою млрд. параметрів.
- На 32-й Міжнародній конференції з машинного навчання в Ліллі
компанія Digital Reasoning заявила про створення нейронної мережі зі
160 млрд параметрів — найбільшої ШНМ у світі станом на середину
2015 р.
- 2022 р. – генеративний інтелект CatGPT від OpenAI, та Midjourney. У
технічному звіті GPT-4 (2023 рік) явно утримувалися від вказівки розміру
моделі, посилаючись на «конкурентне середовище та наслідки безпеки
великомасштабних моделей». Журнал The Verge процитувала чутки про
те, що GPT-4 суттєво збільшить кількість параметрів зі 175 мільярдів у
GPT-3 до 100 трильйонів, що генеральний директор OpenAI Сем Олтмен
назвав "повною нісенітницею"
- Навчання з підкріпленням (reinforcement learning). Такий спосіб
застосовується тоді, коли ми можемо, ґрунтуючись на результатах,
отриманих від ШНМ, дати їй оцінку.
Наприклад, ми хочемо навчити ШНМ грати у просту гру і щоразу, коли
вона буде набирати багато очок, ми її "заохочуватимемо" доти, поки
вона не даватиме "хороший" результат.

You might also like