logo

Що таке нейронна мережа?

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

Зміст



Еволюція нейронних мереж

З 1940-х років у галузі нейронних мереж було досягнуто ряд значних досягнень:

  • 1940-1950-ті: Ранні концепції
    Нейронні мережі почалися з представлення першої математичної моделі штучних нейронів Мак-Калохом і Піттсом. Але обчислювальні обмеження ускладнювали прогрес.
  • 1960-1970-ті: Персептрони
    Ця епоха визначається роботами Розенблата над перцептронами. перцептрони є однорівневими мережами, застосовність яких була обмежена питаннями, які могли бути вирішені лінійно окремо.
  • 1980-ті: Зворотне поширення та коннекціонізм
    Багатошарова мережа Навчання стало можливим завдяки винаходу методу зворотного поширення Румелгартом, Гінтоном і Вільямсом. Завдяки наголосу на навчанні через взаємопов’язані вузли, коннекціонізм набув привабливості.
  • 1990-ті: бум і зима
    Із застосуванням у ідентифікації зображень, фінансах та інших галузях нейронні мережі пережили бум. Проте дослідження нейронної мережі пережили зиму через непомірні обчислювальні витрати та завищені очікування.
  • 2000-ті: відродження та глибоке навчання
    Більші набори даних, інноваційні структури та покращені можливості обробки сприяли поверненню. Глибоке навчання показав дивовижну ефективність у ряді дисциплін завдяки використанню численних шарів.
  • 2010-ті – теперішній час: домінування глибокого навчання
    Згорткові нейронні мережі (CNN) і рекурентні нейронні мережі (RNN), дві архітектури глибокого навчання, домінували в машинному навчанні. Їх потужність продемонстрували інновації в іграх, розпізнаванні зображень і обробці природної мови.

Що таке нейронні мережі?

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

До них належать:



iphone emojis на телефоні android
  1. Нейронна мережа моделюється новим середовищем.
  2. Потім вільні параметри нейронної мережі змінюються в результаті цієї симуляції.
  3. Тоді нейронна мережа по-новому реагує на навколишнє середовище через зміни своїх вільних параметрів.
nn-Geeksforgeeks


Важливість нейронних мереж

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

Як працюють нейронні мережі?

Давайте розберемося на прикладі того, як працює нейронна мережа:



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

Робота нейронної мережі

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

nn-ar-Geeksforgeeks


Пряме поширення

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

Зворотне поширення

  • Розрахунок збитків: Вихід мережі оцінюється порівняно з реальними цільовими значеннями, а для обчислення різниці використовується функція втрат. Для задачі регресії, Середня квадратична помилка (MSE) зазвичай використовується як функція витрат.
    Функція втрати: MSE = frac{1}{n} Sigma^{n}_{i=1} (y_{i} - hat y_{i})^2
  • Градієнтний спуск: Потім мережа використовує градієнтний спад для зменшення втрат. Щоб зменшити похибку, ваги змінюються на основі похідної втрати щодо кожної ваги.
  • Регулювання ваги: Вагові коефіцієнти коригуються для кожного з’єднання шляхом застосування цього ітераційного процесу, або зворотне поширення , назад по мережі.
  • Навчання: Під час навчання з різними зразками даних увесь процес прямого розповсюдження, обчислення втрат і зворотного розповсюдження виконується ітераційно, що дозволяє мережі адаптуватися та вивчати шаблони з даних.
  • Функції активації: Нелінійність моделі вводиться функціями активації, такими як випрямлена лінійна одиниця (ReLU) год сигмовидна . Їхнє рішення про те, чи запускати нейрон, базується на повному зваженому вхідному даних.

Вивчення нейронної мережі

1. Навчання під наглядом

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

2. Навчання з неконтрольованим навчанням

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

3. Навчання з підкріпленням

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

Типи нейронних мереж

Є сім типи нейронних мереж, які можна використовувати.

  • Мережі прямого зв'язку: А нейронна мережа прямого зв'язку це проста архітектура штучної нейронної мережі, в якій дані переміщуються від входу до виходу в одному напрямку. Він має вхідний, прихований і вихідний шари; петлі зворотного зв'язку відсутні. Його проста архітектура робить його придатним для ряду програм, таких як регресія та розпізнавання образів.
  • Багатошаровий персептрон (MLP): MLP це тип прямої нейронної мережі з трьома або більше рівнями, включаючи вхідний рівень, один або більше прихованих рівнів і вихідний рівень. Він використовує нелінійні функції активації.
  • Згорточна нейронна мережа (CNN): А Згорточна нейронна мережа (CNN) — спеціалізована штучна нейронна мережа, призначена для обробки зображень. Він використовує згорткові шари для автоматичного вивчення ієрархічних функцій із вхідних зображень, забезпечуючи ефективне розпізнавання та класифікацію зображень. CNN революціонізували комп’ютерне зір і відіграють ключову роль у таких завданнях, як виявлення об’єктів і аналіз зображень.
  • Повторювана нейронна мережа (RNN): Тип штучної нейронної мережі, призначений для послідовної обробки даних, називається a Рекурентна нейронна мережа (РНН). Він підходить для додатків, де контекстуальні залежності є критичними, наприклад, прогнозування часових рядів і обробка природної мови, оскільки він використовує цикли зворотного зв’язку, які дозволяють інформації виживати в мережі.
  • Довга короткочасна пам'ять (LSTM): LSTM це тип RNN, який призначений для подолання проблеми градієнта, що зникає, під час навчання RNN. Він використовує комірки пам’яті та ворота для вибіркового читання, запису та стирання інформації.

Проста реалізація нейронної мережі

Python3

import> numpy as np> # array of any amount of numbers. n = m> X>=> np.array([[>1>,>2>,>3>],> >[>3>,>4>,>1>],> >[>2>,>5>,>3>]])> # multiplication> y>=> np.array([[.>5>, .>3>, .>2>]])> # transpose of y> y>=> y.T> # sigma value> sigm>=> 2> # find the delta> delt>=> np.random.random((>3>,>3>))>-> 1> for> j>in> range>(>100>):> > ># find matrix 1. 100 layers.> >m1>=> (y>-> (>1>/>(>1> +> np.exp(>->(np.dot((>1>/>(>1> +> np.exp(> >->(np.dot(X, sigm))))), delt))))))>*>((>1>/>(> >1> +> np.exp(>->(np.dot((>1>/>(>1> +> np.exp(> >->(np.dot(X, sigm))))), delt)))))>*>(>1>->(>1>/>(> >1> +> np.exp(>->(np.dot((>1>/>(>1> +> np.exp(> >->(np.dot(X, sigm))))), delt)))))))> ># find matrix 2> >m2>=> m1.dot(delt.T)>*> ((>1>/>(>1> +> np.exp(>->(np.dot(X, sigm)))))> >*> (>1>->(>1>/>(>1> +> np.exp(>->(np.dot(X, sigm)))))))> ># find delta> >delt>=> delt>+> (>1>/>(>1> +> np.exp(>->(np.dot(X, sigm))))).T.dot(m1)> ># find sigma> >sigm>=> sigm>+> (X.T.dot(m2))> # print output from the matrix> print>(>1>/>(>1> +> np.exp(>->(np.dot(X, sigm)))))>
>
>

Вихід:

[[0.99999325 0.99999375 0.99999352]  [0.99999988 0.99999989 0.99999988]  [1. 1. 1. ]]>

Переваги нейронних мереж

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

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

Недоліки нейронних мереж

Нейронні мережі, хоча й потужні, не позбавлені недоліків і труднощів:

  • Обчислювальна інтенсивність: Навчання великої нейронної мережі може бути трудомістким процесом, що потребує великих обчислювальних ресурсів.
  • Чорний ящик Природа: Як моделі чорного ящика, нейронні мережі створюють проблему у важливих програмах, оскільки важко зрозуміти, як вони приймають рішення.
  • Переобладнання: Переобладнання — це явище, при якому нейронні мережі запам’ятовують навчальний матеріал, а не виявляють шаблони в даних. Хоча підходи до регулярізації допомагають полегшити це, проблема все ще існує.
  • Потреба у великих наборах даних: Для ефективного навчання нейронним мережам часто потрібні значні, помічені набори даних; інакше їх продуктивність може погіршитися через неповні або спотворені дані.

Часті запитання (FAQ)

1. Що таке нейронна мережа?

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

2. Як працює нейронна мережа?

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

3. Які поширені типи архітектур нейронних мереж?

Нейронні мережі прямого зв’язку, рекурентні нейронні мережі (RNN), згорткові нейронні мережі (CNN) і мережі довготривалої короткочасної пам’яті (LSTM) є прикладами загальних архітектур, кожна з яких розроблена для певного завдання.

4. Яка різниця між контрольованим і неконтрольованим навчанням у нейронних мережах?

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

5. Як нейронні мережі обробляють послідовні дані?

Циклі зворотного зв’язку, які включають рекурентні нейронні мережі (RNN), дозволяють їм обробляти послідовні дані та з часом фіксувати залежності та контекст.