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

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

Історія нейронної мережі

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

Історія нейронної мережі

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

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

Вчені відкрили ШІ

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

Біологічні обчислювальні машини

Біологічні обчислювальні машини

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

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

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

Елементи нейронної моделі

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

Мережі глибокого навчання відрізняються від звичайних нейронних з одним прихованим шаром. Приклад навчання нейронних мереж - мережі Кохонена.

Елементи нейронної моделі

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

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

Чорний ящик ANN

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

Архітектурно штучна нейронна (ANN)

Простий приклад нейронної мережі-архітектурно штучна нейронна ANN-мережа, де:

  • Input layer-вхідний шар.
  • Hidden layer-прихований шар.
  • Output layer-вихідний шар.

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

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

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

Алгоритми глибокого навчання

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

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

Алгоритми глибокого навчання

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

Оптимальні параметри алгоритму

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

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

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

Значення CAP

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

Значення CAP

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

  1. Прямі нейронні мережі.
  2. Рецидивуюча нейронна мережа.
  3. Багатошарові персептрони (MLP).
  4. Згорткові нейронні мережі.
  5. Рекурсивні нейронні мережі.
  6. Глибокі мережі переконань.
  7. Згорткові мережі глибоких переконань.
  8. Самоорганізовані карти.
  9. Глибокі машини Больцмана.
  10. Складені шумозаглушувальні авто-кодери.

Топ сучасних архітектур

Перцептрони вважаються нейронними мережами першого покоління, обчислювальними моделями одного нейрона. Вони були винайдені в 1956 році Френком Розенблаттом в роботі " Перцептрон: передбачувана модель зберігання і організації інформації в головному мозку». Перцептрон, також званий мережею прямого зв`язку, передає інформацію від передньої його частини до задньої.

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

Джон Хопфілд представив Hopfield Net у статті 1982 року «нейронні мережі та фізичні системи з новими колективними обчислювальними можливостями». У мережі Хопфілда (HN) кожен нейрон пов`язаний з будь-яким іншим. Вони навчаються шляхом установки їх значення на бажану схему, після чого можна обчислити вагові коефіцієнти.

Машина Больцмана

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

Генеративна змагальна мережа Яна Гудфеллоу (GAN) складається з двох мереж. Часто це комбінація Feed Forwards і Convolutional Neural Nets. Одна генерує контент генеративний, а інша повинна оцінювати контент дискримінаційний.

Початок роботи SKIL з Python

Глибоке навчання нейронної мережі на прикладі Python зіставляє входи з виходами і знаходить кореляції. Він відомий, як універсальний апроксиматор, тому що може навчитися наближати невідому функцію f (x) = y між будь-яким входом " x "і будь-яким виходом "y", припускаючи, що вони пов`язані кореляцією або причинно-наслідковим зв`язком.

У процесі навчання знаходиться правильний» f "або спосіб перетворення" x " в "y", будь то f(x) = 3x + 12 або f(x) = 9x-0,1.

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

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

Приклад згорткової нейронної мережі

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

Перш ніж починають кодувати CNN, для побудови моделі використовують бібліотеку, наприклад, Keras з бекендом Tensorflow. Спочатку виконують необхідний імпорт. Бібліотека допомагає будувати згорткову нейронну мережу. Завантажують набір даних mnist через keras. Імпортують послідовну модель keras, в яку можна додати шари згортки і об`єднання, щільні шари, так як вони використовуються для прогнозування міток. Випадаючий шар зменшує переоснащення, а вирівнюючий перетворює тривимірний вектор в одновимірний. Нарешті, імпортуємо numpy для матричних операцій:

  • Y = 2 # значення 2 означає, що зображення має цифру 2;
  • Y = [0,0,1,0,0,0,0,0,0,0] # 3-я позиція у векторі зроблена 1;
  • # Тут значення класу перетворюється на матрицю двійкового класу.

Алгоритм будівництва:

  1. Додають до послідовної моделі надточні шари і максимальний пул.
  2. Додають випадають шари між ними. Випадаючий випадково вимикає деякі нейрони в мережі, що змушує дані знаходити нові шляхи та зменшує переобладнання.
  3. Додають щільні шари, які використовуються для прогнозування класу (0-9).
  4. Компілюють модель з категоріальною функцією Крос-ентропійної втрати, оптимізатором Adadelta і метрикою точності.
  5. Після навчання оцінюють втрати і точність моделі за даними випробувань і роздруковують її.
Алгоритм будівництва

Моделювання в Matlab

Наведемо простий приклад нейронних мереж матлаб-моделювання.

Припускаючи, що "а" модель має три входи "a", "b" і "c" і генерує вихід "y".

Моделювання в Matlab

Для цілей генерації даних: у = 5а + bc + 7с.

Спочатку прописують невеликий скрипт для генерації даних:

  • а = Rand (11000);
  • b = Rand (1,1000);
  • з = Rand (1,1000);
  • n = Rand (1,1000) * 0,05;
  • у = а * 5 + Ь * с + 7 * з + n,

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

Таким чином, вхід-це набір "a", "b" і "c", а висновок:

  • I = [a; b; c];
  • O = y.

Далі використовують вбудовану функцію matlab newff для генерації моделі.

Приклади завдань нейронних мереж

Спочатку створюють матрицю R розміром 3 * 2. Перший стовпець покаже мінімум усіх трьох входів, а другий - максимум трьох входів. У цьому випадку три входи знаходяться в діапазоні від 0 до 1, тому:

R = [0 1; 0 1; 0 1].

Тепер створюють матрицю розміру, яка має V-розмір всіх шарів: S = [51].

Тепер викликають функцію newff наступним чином:

net = newff ([0 1; 0 1; 0 1], S, {`tansig`, `purelin`}).

Нейронна модель {`tansig`,` purelin`} показує функцію відображення двох шарів.

Навчають її з даними, які створені раніше: net = train (net, I, O).

Мережа навчена, можна побачити криву продуктивності, як вона навчається.

Крива продуктивності

Тепер знову моделюють її на тих же даних і порівнюють вихідні дані:

O1 = sim(net,I);

plot(1:1000,O,1:1000,O1).

Таким чином, вхідна матриця буде:

  • net.IW{1}
  • -0.3684 0.0308 -0.5402
  • 0.4640 0.2340 0.5875
  • 1.9569 -1.6887 1.5403
  • 1.1138 1.0841 0.2439
  • net.LW{2,1}
  • -11.1990 9.4589 -1.0006 -0.9138

Додатки штучного інтелекту

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

Галузь застосування:

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

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

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

Статті на тему