НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Штучний інтелект. Уроки для початківців

En

Перцептрони

Перцептрон — це штучний нейрон.

Перцептрон — це найпростіша нейронна мережа.

Нейронні мережі є будівельними блоками машинного навчання.

Frank Rosenblatt / Френк Розенблат

Frank Rosenblatt / Френк Розенблат (1928 – 1971) був відомим американським психологом у галузі штучного інтелекту.

У 1957 році він почав щось справді велике. Він "винайшов" програму Perceptron на комп’ютері IBM 704 у Корнельській аеронавігаційній лабораторії.

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

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

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


Персептрон

Оригінальний персептрон був розроблений для прийому кількох двійкових входів і отримання одного двійкового виходу (0 або 1).

Ідея полягала в тому, щоб використовувати різні ваги для представлення важливості кожного вхідного значення, а сума значень повинна бути більшою за порогове значення, перш ніж прийняти таке рішення, як так або ні (true або false / істинне або хибне) (0 або 1).

Perceptron


Приклад перцептрона

Уявіть собі перцептрон (у вашому мозку).

Перцептрон намагається вирішити, чи варто вам піти на концерт.

Чи хороший артист? Чи хороша погода?

Яку вагу повинні мати ці факти?

КритеріїВведенняВага
Артисти хорошіx1 = 0 або 1w1 = 0.7
Погода гарнаx2 = 0 або 1w2 = 0.6
Друзі прийдутьx3 = 0 або 1w3 = 0.5
Їжа та випивка подаєтьсяx4 = 0 або 1w4 = 0.3
Дівчата теж будутьx5 = 0 або 1w5 = 0.4

Алгоритм перцептрона

Френк Розенблат запропонував такий алгоритм:

  1. Установити порогове значення
  2. Помножити всі вхідні дані на його ваги
  3. Підсумувати всі результати
  4. Активувати виведення

1. Встановіть порогове значення:

  • Поріг = 1.5

2. Помножте всі вхідні дані на їхні ваги:

  • x1 * w1 = 1 * 0.7 = 0.7
  • x2 * w2 = 0 * 0.6 = 0
  • x3 * w3 = 1 * 0.5 = 0.5
  • x4 * w4 = 0 * 0.3 = 0
  • x5 * w5 = 1 * 0.4 = 0.4

3. Підсумуйте всі результати:

  • 0.7 + 0 + 0.5 + 0 + 0.4 = 1.6 (Сума вагів)

4. Активуйте виведення:

  • Повертає true, якщо сума > 1.5 ("Так, я піду на концерт")

Примітка

Якщо вага погоди становить 0,6 для вас, це значення може бути іншим для когось іншого. Більша вага означає, що для них важливіша погода.

Якщо для вас порогове значення становить 1,5, для когось іншого воно може бути іншим. Нижчий поріг означає, що вони більше хочуть піти на будь-який концерт. Так само якщо для когось в більшому пріоритеті є наявність гарних дівчат 😍 - то скоріше за все інші чинники для них будуть менш важливими 😄

Приклад

const threshold = 1.5;
const inputs = [1, 0, 1, 0, 1];
const weights = [0.7, 0.6, 0.5, 0.3, 0.4];

let sum = 0;
for (let i = 0; i < inputs.length; i++) {
  sum += inputs[i] * weights[i];
}

const activate = (sum > 1.5);

Спробуйте самі »


Персептрон термінологія

  • Входи персептрона (вузли)
  • Значення вузлів (1, 0, 1, 0, 1)
  • Вага вузлів (0,7, 0,6, 0,5, 0,3, 0,4)
  • Функція активації (сума > порогове значення)

Вузли (входи перцептрона)

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

Вузли мають як значення, так і вагу.


Значення вузла (вхідні значення)

Кожен вхідний вузол має двійкове значення 1 або 0.

Це можна інтерпретувати як true або false / yes або no.

У прикладі вище значення вузла є: 1, 0, 1, 0, 1


Вага вузлів

Вага показує потужність кожного вузла.

У наведеному вище прикладі ваги вузлів є такими: 0.7, 0.6, 0.5, 0.3, 0.4


Функція активації

Функція активації перетворює зважену суму на двійкове значення 1 або 0.

Це можна інтерпретувати як true або false / yes або no.

У прикладі вище функція активації проста: (сума > 1.5)

Примітка

Очевидно, що рішення приймається НЕ одним нейроном.

Багато інших нейронів повинні надавати вхідні дані:

  • Чи хороший артист?
  • Чи хороша погода?
  • Чи гарні дівчата?
  • ...

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


Нейронні мережі

Перцептрон визначає перший крок до нейронних мереж:

Нейронні мережі