Нейронная сеть - это классификационная модель, объясняемая ее параметрами.
Давайте вернемся к основам. Рассмотрим один нейрон с N входами и выходами. Он применяет функцию вида:
x = g (взвешенная сумма всех входных данных)
, где g - некоторая нелинейная функция, такая как сигмоид или tanh или ReLU - точная функция делаетвлияет на производительность, но не имеет отношения к нашему обсуждению.
Проблема в том, что разделительная поверхность между классами является линейной (предполагается, что классификация основана на чем-то вроде x> 0.5).
Проблема в том, что многие реальные проблемы не являются линейными. На самом деле это чрезвычайно сложные проблемы, поэтому нам нужна модель, которая может оценивать такие сильно нелинейные функции.
Теперь давайте представим небольшую нейронную сеть с 2 нейронами в первом слое и 1 нейроном в выходном слое.
2 нейрона на входном слое будут иметь свои выходы:
x_1 = g (взвешенная сумма всех входов) x_2 = g (взвешенная сумма всех входов)
(g обычно одинаков для всех нейронов на одном слое. Он не должен иметь , но в остальном не имеет смысла. Для остальной части обсуждения давайте предположим, что g одинаковвезде).
Теперь x_1 и x_2 являются входами для нейрона на другом уровне, поэтому его выход (и выход всей сети):
X = w_1 * x_1 +w_2 * x_2 = w_1 * g (взвешенная сумма всех входов) + w_2 * g (взвешенная сумма всех входов)
Это функция , оцененная нейронной сетью с N входами,2 нейрона на входном слое и один нейрон на выходном слое. Конечно, он параметризован 2n + 2 весами: n весов для каждого входного нейрона и 2 весами для выходного нейрона.
Как вы можете заметить, это выражение довольно сложно написать на бумаге (еще сложнееписать на StackOverflow), и это будет чрезвычайно сложным для глубоких нейронных сетей. Однако, по сути, все нейронные сети представляют собой простую графическую модель этого длинного, но относительно простого выражения, где мы делаем взвешенную сумму входов каждого узла и применяем нелинейную функцию.
Тенденция к глубокойНейронная сеть растет благодаря способности такой модели оценивать сильно нелинейные функции. Технически, согласно теореме универсального приближения , нам нужен только один скрытый слой (вспомним предыдущую сеть с двумя нейронами на входном слое, с гораздо более чем двумя нейронами на этом слое). Но это оказывается довольно непрактичным для проектирования поезда (частично из-за большого количества нейронов, требуемых на этом слое). Таким образом, люди начали размещать все больше и больше слоев поверх другого, и мы получили сложные архитектуры, которые у нас есть сегодня: большие цепочки сложений, умножения и g.