Что такое нейронная сеть и как она обучается?

Данный раздел срывает покров мистики и описывает на пальцах как работает наиболее распространенный тип нейронных сетей.

Что делает исскуственная нейронная сеть?

Большинство реально используемых искусственных нейронных сетей - это последовательности операций применяемых к входным значениям нейронной сети. В качестве таких операций чаще всего встречаются перемножения вектора на матрицу, дискретная свертка и применение элементарных ("школьных") функций к некоторым промежуточным результатам.

Нейронные сети в качестве входного значения могут принимать вектор параметров или матрицу. В качестве выходного значения нейронная сеть обычно возвращает вектор параметров.

Так как матрицу можно представить в виде вектора, развернув ее по столбцам в один большой, без ограничения общности можно считать, что нейронная сеть - это векторная функция векторного аргумента:

Fw(x)=y, F:RnRm,x=(x1,x2,..,xn),y=(y1,y2,..,ym).F_{\mathbf{w}}(\mathbf{x}) = \mathbf{y},\ F:\mathbb{R}^n\rightarrow \mathbb{R}^m,\\ \mathbf{x} = (x_1, x_2,..,x_n),\\ \mathbf{y} = (y_1, y_2,..,y_m).

Примечание: здесь и далее в этом руководстве приняты обозначения, распространенные в англоязычной литературе. Жирный x - это вектор, не жирный x - это число или скаляр.

Вход нейронный сети может содержать разные виды данных, например, это могут быть параметры измерений, финансовые показатели, аудиосигналы, изображения и т.д. В большинстве случаев данные как то предварительно обабатываются. Обычно выполняется нормализация данных, чтобы входные значения поместились в диапазоны [0,1] или [-1,1]. Однако, в случае работы с текстами или графами могут потребоваться дополнительные более сложные преобразования.

Выход нейронной сети должен соответствовать задаче, которая стоит перед исскуственной нейронной сетью. Например, если мы хотим выполнить классификацию, то есть определить к какому из N типов относится входной вектор, то выход обычно состоит из 10 чисел, где максимальное значение будет соответствовать номеру типа, а все остальные значения будут близки к нулю. Такая задача называтся задачей классификации.

Как обучается исскуственная нейронная сеть?

Как уже написано выше, исскуственная нейронная сеть это последовательность применения математических операций. В большинстве случаев все эти операции имеют какие то коэффиценты, назовем вектор этих коэффициентов w:

w=(w1,w2,..,wk)\mathbf{w} = (w_1, w_2, .. , w_k)

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

Fw(x)=y, F:R2R2,x=(x1,x2),y=(y1,y2),w=(w1,w2), (w1w2w1w2)(x1x2)=(y1y2)F_{\mathbf{w}}(\mathbf{x}) = \mathbf{y},\ F:\mathbb{R}^2\rightarrow \mathbb{R}^2,\\ \mathbf{x} = (x_1, x_2),\\ \mathbf{y} = (y_1, y_2),\\ \mathbf{w} = (w_1, w_2),\\ ~\\ \begin{pmatrix} w_1 & w_2 \\ w_1 & w_2 \end{pmatrix} \begin{pmatrix} x_1\\ x_2 \end{pmatrix} = \begin{pmatrix} y_1\\ y_2 \end{pmatrix}

Задача обучения такой нейронной сети - это задача поиска "хороших" коэффициентов w. Для того чтобы определить "степень хорошести" для w используют обучающую выборку данных и функцию потерь.

Обучающая выборка данных - это множество пар из векторов x и y. Тоесть это такие примеры, для которых уже известны правильные ответы. Функция потерь измеряет разницу между ожидаемыми ответами и выдаваемыми нейронной сетью. При этом чем меньше функция потерь, тем ближе предсказания нейронной сети к ожидаемым результатам. Например, функция потерь может быть выражена как сумма Евклидовых дистанций между ожидаемыми и предсказанными векторами:

l=1MFw(xl)yl2min\sum_{l=1}^{M}\|F_{\mathbf{w}}(\mathbf{x}_l) -\mathbf{y}_l\|_2 \rightarrow \min

В итоге, исскуственная нейронная сеть - это просто функция принимающая и возвращающая вектор. А обучение нейронной сети - это поиск минимума для выражения специального вида при зафиксированном наборе данных для которого известны правильные ответы.

Стоит отметить, что здесь описано обучение с учителем, тоесть в распоряжении исследователя есть известные ответы на некоторые входные данные и подход, который определяет насколько хорошо нейронная сеть работает. Так же есть обширный класс подходов, которые решают задачу обучения без учителя. Тоесть они используют входные данные, для которых неизвестны правильные ответы, и представляют их в каком то определенном новом виде.

Last updated