- Познакомьтесь с персептроном
- Нейронные сети должны учиться
- Неконтролируемое обучение
- Усиленное обучение
- Биология против технологий
- История изобретения
- Дальнейшие разработки
- Особенности
- Карманный алгоритм
- Алгоритм Максовера
- Voted Perceptron
- Применение
- Альтернатива
- Главная сфера применения - контролируемое обучение
В машинном обучении персептрон - это алгоритм контролируемого обучения двоичных классификаторов. Также он часто называется перцептроном. Бинарный классификатор - это функция, которая может решить, принадлежит ли вход, представленный вектором чисел, какому-то определенному классу. Это тип линейного классификатора, то есть алгоритм классификации, который делает свои предсказания на основе функции линейного предиктора, объединяющей набор весов с вектором признаков.
Вам будет интересно:Большая надбровная дуга. Выраженные надбровные дуги
В последние годы искусственные нейронные сети привлекли внимание благодаря достижениям в области глубокого обучения. Но что такое искусственная нейронная сеть и из чего она состоит?
Познакомьтесь с персептроном
В этой статье мы кратко рассмотрим искусственные нейронные сети в целом, затем рассмотрим один нейрон и, наконец (это часть кодирования), мы возьмем самую базовую версию искусственного нейрона, персептрон, и классифицируем ее точки на плоскости.
Вам будет интересно:"Анонсировать": значение слова, синонимы
Вы когда-нибудь задумывались, почему существуют задачи, которые настолько просты для любого человека, но невероятно трудны для компьютеров? Искусственные нейронные сети (сокращенно 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, опорный вектор и логистическую регрессию. Персептрон - это универсальный набор алгоритмов.
Главная сфера применения - контролируемое обучение
Контролируемое обучение - это задача машинного обучения, состоящая в изучении функции, которая отображает входные данные в выходные на основе примеров пар ввода-вывода. Они выводят функцию из помеченных данных обучения, состоящих из набора примеров. В контролируемом обучении каждый пример представляет собой пару, состоящую из входного объекта (обычно вектора) и желаемого выходного значения (также называемого контрольным сигналом).
Алгоритм контролируемого обучения анализирует данные обучения и выдает предполагаемую функцию, которую можно использовать для отображения новых примеров. Оптимальный сценарий позволит алгоритму правильно определять метки классов для невидимых экземпляров. Это требует, чтобы алгоритм обучения обобщал данные обучения на невидимые ситуации «разумным» образом.
Параллельная задача в психологии человека и животных часто называется концептуальным обучением.