Как выглядит перцептрон
Снаружи перцептрон - это функция, которая принимает n
аргументы (т.е. n
-мерный вектор) и выдает m
выходные данные (т.е. m
-мерный вектор).
Внутри персептрон состоит из слоев нейронов , так что каждый нейрон в слое получает вход от всех нейронов предыдущего слоя и использует этот входрассчитать один выход.Первый слой состоит из n
нейронов и получает входные данные.Последний слой состоит из m
нейронов и содержит выход после того, как персептрон завершил обработку ввода.
Как рассчитывается выходной сигнал из ввода
Каждое соединение от нейрона i
к нейрону j
имеет вес w(i,j)
(позже я объясню, откуда они взялись).total input
нейрона p
второго слоя является суммой взвешенного выхода нейронов из первого слоя.Итак,
total_input(p) = Σ(output(k) * w(k,p))
, где k
пробегает все нейроны первого слоя.Активация нейрона вычисляется из общего ввода нейрона путем применения функции активации .Часто используемой функцией активации является функция Ферми, поэтому
activation(p) = 1/(1-exp(-total_input(p))).
Выход нейрона рассчитывается на основе активации нейрона путем применения output function
.Часто используемая функция вывода - это идентификатор f(x) = x
(и действительно, некоторые авторы рассматривают функцию вывода как часть функции активации).Я просто предположу, что
output(p) = activation(p)
Когда рассчитывается выходной сигнал от всех нейронов второго слоя, используйте этот выход для расчета выходного сигнала третьего слоя.Итерируйте, пока не достигнете выходного слоя.
Откуда берутся веса
Сначала веса выбираются случайным образом.Затем вы выбираете несколько примеров (из которых вы знаете желаемый результат).Подайте каждый пример перцептрону и рассчитайте ошибку , т. Е. Насколько далеко от требуемого выхода находится фактический выход.Используйте эту ошибку для обновления весов.Один из самых быстрых алгоритмов для расчета новых весов - это Resilient Propagation .
Как создать Perceptron
Некоторые вопросы, на которые вам нужно ответить:
- Каковы соответствующие характеристики документов и как их можно кодировать в
n
-мерный вектор? - Какие примеры следует выбрать для корректировки весов?
- Как следуетвывод интерпретировать для классификации документа?Пример: один выход, который дает наиболее вероятный класс по сравнению с вектором, который присваивает вероятности каждому классу.
- Сколько нужно скрытых слоев и сколько они должны быть?Я рекомендую начинать с одного скрытого слоя с
n
нейронами.
Первая и вторая точки очень важны для качества классификатора.Персептрон может правильно классифицировать примеры, но потерпеть неудачу в новых документах.Вам, вероятно, придется экспериментировать.Чтобы определить качество классификатора, выберите два набора примеров;один для обучения, один для проверки.К сожалению, из-за отсутствия практического опыта я не могу дать вам более подробных советов для ответа на эти вопросы.