У машинному навчанні персептрон – це алгоритм контрольованого навчання двійкових класифікаторів. Також він часто називається перцептроном. Бінарний класифікатор – це функція, яка може вирішити, чи належить вхід, представлений вектором чисел, якогось певного класу. Це тип лінійного класифікатора, тобто алгоритм класифікації, який робить свої прогнози на основі функції лінійного предиктора, що об’єднує набір ваг з вектором ознак.
В останні роки штучні нейронні мережі привернули увагу завдяки досягненням в області глибокого навчання. Але що таке штучна нейронна мережа і з чого вона складається?
Познайомтеся з персептроном
У цій статті ми коротко розглянемо штучні нейронні мережі в цілому, потім розглянемо один нейрон і, нарешті (це частина кодування), ми візьмемо саму базову версію штучного нейрона, персептрон, і класифікуємо її точки на площині.
Ви коли-небудь замислювалися, чому існують завдання, які настільки прості для будь-якої людини, але неймовірно важкі для комп’ютерів? Штучні нейронні мережі (скорочено ANN) були натхненні центральною нервовою системою людини. Як і їх біологічний аналог, ANN побудовані на простих елементах обробки сигналів, які об’єднані у велику сітку.
Нейронні мережі повинні вчитися
На відміну від традиційних алгоритмів, нейронні мережі не можуть бути «запрограмовані» або «налаштовані» для роботи за призначенням. Так само як людський мозок, вони повинні навчитися виконувати завдання. Грубо кажучи, існує три стратегії навчання.
Найпростіший спосіб може використовуватися, якщо існує набір тестових даних (досить великої) з відомими результатами. Потім навчання йде так: обробіть один набір даних. Порівняйте результат з відомим результатом. Налаштуйте мережу і повторіть. Це стратегія навчання, яку ми будемо використовувати тут.
Неконтрольоване навчання
Корисно, якщо нема доступних тестових даних і, якщо можливо отримати яку-небудь функцію вартості бажаного поведінки. Функція вартості повідомляє нейронної мережі, наскільки вона далеко від цілі. Потім мережа може коригувати свої параметри на льоту, працюючи з реальними даними.
Посилене навчання
Метод «батога і пряника». Може використовуватися, якщо нейронна мережа генерує безперервне дію. З часом мережа навчається віддавати перевагу правильні дії і уникати неправильних.
Добре, тепер ми небагато знаємо про природу штучних нейронних мереж, але з чого вони зроблені? Що ми побачимо, якщо відкриємо кришку і заглянемо всередину?
Нейрони – будівельні блоки нейронних мереж. Основним компонентом будь-якої штучної нейронної мережі є штучний нейрон. Вони не тільки названі на честь своїх біологічних аналогів, але і змодельовані за поведінкою нейронів у нашому мозку.
Біологія проти технологій
Точно так само як у біологічного нейрона є дендрити для прийому сигналів, тіло клітини для їх обробки і аксон для надсилання сигналів іншим нейронам, штучний нейрон має кілька вхідних каналів, стадію обробки і один вихід, який може розгалужуватися до безлічі інших штучних нейронів.
Чи можемо ми зробити щось корисне з одним персептроном? Існує клас проблем, які може вирішити один персептрон. Розглянемо вхідний вектор як координати точки. Для вектора з n-елементами ця точка буде жити в n-мірному просторі. Щоб спростити життя (і наведений нижче код), давайте припустимо, що вона двовимірна. Як аркуш паперу.
Далі уявімо, що ми малюємо кілька випадкових точок на площині і розділяємо їх на два набору, малюючи пряму лінію через папір. Ця лінія ділить точки на два ряди, один над і інший під лінією. Два набору потім називаються лінійно разделимыми.
Один перцептрон, яким би простим він не здавався, здатний дізнатися, де знаходиться ця лінія, і коли він закінчить навчання, він може визначити, чи знаходиться дана точка вище або нижче цієї лінії.
Історія винаходу
Алгоритм цього методу був винайдений в 1957 році в Авіаційної лабораторії Корнелла Френком Розенблатт (персептрон часто називається в його честь), що фінансуються Управлінням військово-морських досліджень США. Перцептрон повинен був бути машиною, а не програмою, і хоча його перша реалізація була в програмному забезпеченні для IBM 704, згодом він був реалізований на обладнанні, виготовленому на замовлення, як «перцептрон марки 1». Ця машина була розроблена для розпізнавання зображень: вона мала масив з 400 фотоелементів, випадковим чином підключених до нейронам. Ваги були закодовані в потенциометрах, а оновлення ваги під час навчання виконувалося електродвигунами.
На прес-конференції, організованій ВМС США в 1958 році, Розенблатт зробив заяви про персептроне, що викликав запеклі суперечки серед молодого спільноти ІІ; ґрунтуючись на заявах Розенблатта, газета New York Times повідомила, що персептрон є «зародком електронного комп’ютера, який, як очікує військово-морський флот, зможе ходити, говорити, бачити, писати, відтворювати себе і усвідомлювати своє існування».
Подальші розробки
Хоча перцептрон спочатку здавався багатообіцяючим, було швидко доведено, що перцептрони не можуть бути навчені розпізнавати багато класи патернів. Це призвело до стагнації в області досліджень з допомогою персептрона нейронних мереж протягом багатьох років, перш ніж було визнано, що нейронна мережа з прямим зв’язком з двома або більше шарами (також звана багатошаровим персептроном) мала набагато більшу обчислювальну потужність, ніж перцептрони з одним шаром (також званих одним шаром персептрона). Одношаровий персептрон здатний вивчати тільки лінійно розділені структури. У 1969 році відома книга Марвіна Мінскі та Сеймура Паперта «Перцептрони» показала, що ці класи мереж не можуть вивчити функцію XOR. Однак це не відноситься до нелінійних класифікаційних функцій, які можна використовувати в одношаровому персептроне.
Застосування таких функцій розширює можливості персептрона, включаючи реалізацію функції XOR. Часто вважають (невірно), що вони також припускали, що аналогічний результат буде мати місце для багатошарової мережі персептрона. Однак це не так, оскільки й Мінський, і Паперт вже знали, що багатошарові персептрони здатні виробляти функцію XOR. Три роки потому Стівен Гроссберг опублікував серію робіт, що представляють мережі, здатні моделювати диференціальні функції, функції підсилення контрасту і функції XOR.
Роботи були опубліковані в 1972 і 1973 рр. Тим не менш часто пропускається текст Мінського/Паперта викликав значне зниження інтересу і фінансування досліджень з допомогою персептрона нейронних мереж. Минуло ще десять років, поки дослідження нейронних мереж не відродилися в 1980-х роках.
Особливості
Алгоритм персептронного ядра був введений в 1964 році Айзерманом та ін. Гарантії граничних меж були дані для алгоритму перцептрона загалом неразделимом випадку спочатку Фрейндом і Шапиром (1998), а нещодавно Морі і Ростамизаде (2013), які розширюють попередні результати і дають нові кордони L1.
Персептрон – це спрощена модель біологічного нейрона. Хоча складність біологічних нейронних моделей часто потрібно для повного розуміння нейронного поведінки, дослідження показують, що перцептроноподобная лінійна модель може викликати деякий поведінку, що спостерігається в реальних нейронах.
Персептрон є лінійним класифікатором, тому він ніколи не потрапить в стан з усіма вхідними векторами, класифікованими правильно, якщо навчальний набір D не є лінійно разделимым, тобто якщо позитивні приклади не можуть бути відокремлені від негативних прикладів гіперплощиною. У цьому випадку ніяке «приблизний» рішення не буде відбуватися поступово за стандартним алгоритмом навчання, замість цього навчання зазнає невдачі повністю. Отже, якщо лінійна відділення навчального набору апріорі невідома, слід використовувати один з наведених нижче варіантів навчання.
Кишеньковий алгоритм
Алгоритм кишені з храповим механізмом вирішує проблему стійкості навчання персептроном, зберігаючи найкраще з поки що знайдених рішень «в кишені». Кишеньковий алгоритм потім повертає рішення в кишені, а не останнє рішення. Він також може бути використаний для неразделимых наборів даних, де метою є пошук персептрона з невеликою кількістю помилкових класифікацій. Тим не менше ці рішення виглядають стохастичними і, отже, кишеньковий алгоритм не підходить до них поступово в процесі навчання, і вони негарантированно виявляються протягом певної кількості етапів навчання.
Алгоритм Максовера
Алгоритм Максовера є «стійким» в тому сенсі, що він буде сходитися незалежно від знання про лінійної віддільність набору даних. У випадку лінійного розподілу це вирішить проблему навчання, при бажанні навіть з оптимальною стабільністю (максимальний запас між класами). Для неразделимых наборів даних буде повернуто рішення з невеликою кількістю помилкових класифікацій. У всіх випадках алгоритм поступово наближається до розв’язання в процесі навчання, без запам’ятовування попередніх станів і без випадкових стрибків. Збіжність полягає в глобальній оптимальності для поділюваних наборів даних та локальної оптимальності для неразделимых наборів даних.
Voted Perceptron
Алгоритм Voted Perceptron є варіантом, який використовує множинні зважені персептрони. Алгоритм запускає новий персептрон кожен раз, коли приклад помилково класифікується, инициализируя вектор ваг кінцевими вагами останнього персептрона. Кожному персептрону також буде присвоєний іншій вага, відповідний тому, скільки прикладів вони правильно класифікують, перш ніж помилково класифікувати один, і в кінці на виході буде зважене голосування по всьому персептрону.
Застосування
У сепарабельных завдання тренування персептрона також може бути спрямована на те, щоб знайти найбільшу межу поділу між класами. Так званий персептрон оптимальної стійкості може бути визначений за допомогою итеративных схем навчання і оптимізації, таких як алгоритм Min-Over або AdaTron. AdaTron використовує той факт, що відповідна квадратична задача оптимізації є опуклою. Перцептрон оптимальної стійкості разом з трюком ядра є концептуальною основою машини опорних векторів.
Альтернатива
Іншим способом вирішення нелінійних задач без використання декількох шарів є використання мереж більш високого порядку (блок сігма-пі). У мережі цього типу кожен елемент вхідного вектора розширюється кожної попарної комбінацією помножених входів (другий порядок). Це може бути розширено до мережі n-порядку. Персептрон – це дуже гнучка річ.
Однак слід пам’ятати, що найкращим класифікатором необов’язково є той, який точно класифікує всі тренувальні дані. Дійсно, якщо б у нас було попереднє обмеження на те, що дані надходять з одно-варіативних гаусівських розподілів, лінійне поділ у вхідному просторі є оптимальним, а нелінійне рішення перевизначено.
Інші алгоритми лінійної класифікації включають в себе Winnow, опорний вектор і логістичну регресію. Персептрон – це універсальний набір алгоритмів.
Головна сфера застосування – контрольоване навчання
Контрольоване навчання – це завдання машинного навчання, яка полягає у вивченні функції, яка відображає вхідні дані у вихідні на основі прикладів пар вводу-виводу. Вони виводять функцію з позначених даних навчання, які складаються з набору прикладів. У контрольованому навчанні кожен приклад являє собою пару, що складається з вхідного об’єкта (зазвичай вектора) і бажаного вихідного значення (також званого контрольним сигналом).
Алгоритм контрольованого навчання аналізує дані навчання і видає передбачувану функцію, яку можна використовувати для відображення нових прикладів. Оптимальний сценарій алгоритму дозволить правильно визначати мітки класів для невидимих примірників. Це вимагає, щоб алгоритм навчання узагальнював дані навчання на невидимі ситуації «розумним».
Паралельна завдання в психології людини і тварин часто називається концептуальним навчанням.