Параметры в модели нейронной сети - PullRequest
0 голосов
/ 18 октября 2019

Можно ли создать классификационную модель, объясняемую параметрами, с помощью нейронных сетей, например, в логите или в линейной вероятностной модели?

Ответы [ 2 ]

0 голосов
/ 19 октября 2019

Нейронная сеть - это классификационная модель, объясняемая ее параметрами.

Давайте вернемся к основам. Рассмотрим один нейрон с 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.

0 голосов
/ 18 октября 2019

Исходя из вашего комментария, в модели логита у вас есть logit = b_0 + b_1*x_1 + ... b_k*x_k + e = b_0 + w^T.x + e, а затем P(y=1|x) = \sigma(logit).

Что делает классификационная нейронная сеть, так это то, что она заменяет линейную (аффинную) b_0 + w^T.xсложной нелинейной функцией NN(x). Таким образом, хотя вы можете легко извлекать его параметры w, фактическое значение logit = f_w(x) будет таким же уродливым, как требует ваша ResNet с глубиной 152 слоя. ваши данные и последний уровень - это ваша обычная модель логита (или мультиклассовая логистическая регрессия или что-то еще). К сожалению, хотя классификатор теперь вам знаком, он работает с некоторыми странными функциями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...