После линейнойрегрессии была логистическаярегрессия. А потом начались нейросети
— Neural Networks.
Оказывается,
серией экспериментов была подтверждена
следующая гипотеза: мозг не содержит
разных специальных низкоуровневых
программ, вся его деятельность основывается
на одной программе.
Вот, к примеру,
если нервный канал, идущий от глаз
отключить от участка мозга, ответственного
за зрение и подключить к участку мозга,
ответственному за слух. А слух отключить.
Что будет? Ну, кроме глухоты, конечно.
Нет, слепоты не будет. Через некоторое
время организм (мозг) научится
ориентироваться в пространстве,
распознавая образы «слышащим» участком
мозга.
Весь фокус в
обучении нейросетей. Нейроны в мозгу
связаны между собой и представляют
кибернетическую систему с обратной
связью. Если на входе сигналы такие, то
действие такое. Действие неправильное?
Сообщение о ошибке передается по сети
обратно, перенастраивая весовые
коэффициенты входных цепей.
В компьютерной
модели все довольно просто и сводится
к логистической регрессии. Чтобы получить
выходной сигнал с одного нейрона (юнита)
надо вычислить, кто догадается? Да,
полином! В форме логистической регрессии.
Переменными для этого полинома будут
значения сигналов с тех нейронов
(юнитов), которые связаны с этим нашим
одним. А коэффициентами полинома для
этих переменных будут весовые коэффициенты
связей между юнитами. И вот так, через
полиномы (завернутые в сигмоидную
функцию) входные сигналы постепенно
преобразуются к выходным. В простейшем
случае, это один выходной юнит, выдающий
0 или 1 (с некоторой вероятностью, конечно,
может выдать и 0.77 и 0.12).
То есть, если
нейронная сеть достаточно развесиста,
чтобы совокупность полиномов могла
адекватно отразить сложность проблемы,
то можно, скормив на входе показания
погодных станций по всему миру, получить
на выходе вероятность дождичка в четверг.
Но перед этим
сеть надо обучить. Процесс обучения
представляет собой сравнение выходного
сигнала сети с образцами, предварительно
скормив на вход образцовые данные. Если
выходной сигнал сильно отличается от
образца, по связям между нейронами в
обратном направлении распространяется
значение ошибки, дельты, разницы между
ожидаемым и полученным значениями.
Алгоритм подбирает новые значения
коэффициентов полиномов и процесс
повторяется до тех пор, пока значение
ошибки не минимизируется.
Как-то так.
Чуть не забыл,
для удобства сеть представляют слоями.
Входной слой — набор нейронов (юнитов)
получающих входные параметры. Выходной
слой — набор юнитов с которых снимается
решение, выходной сигнал. А между ними
произвольное количество слоев с
произвольным количеством юнитов. Юниты
предыдущего (левого слоя) передают
сигнал юнитам следующиго (правого) слоя.
Левый — правый, это если рисовать юниты
в виде грида, колонками юнитов. Каждый
юнит правого слоя получает сигнал от
всех юнитов левого слоя. И все расчеты
алгоритмов ведутся по слоям. Forward
Propagation — передача сигнала от входа к
выходу, вычисление задачи для которой
построена сеть. Back Propagation — передача
сигнала от выхода ко входу, обучение
сети, подбор коэффицентов.
original post http://vasnake.blogspot.com/2014/05/neural-networks.html
Комментариев нет:
Отправить комментарий