Что такое нейронная сеть и как она обучается?
Данный раздел срывает покров мистики и описывает на пальцах как работает наиболее распространенный тип нейронных сетей.
Что делает исскуственная нейронная сеть?
Большинство реально используемых искусственных нейронных сетей - это последовательности операций применяемых к входным значениям нейронной сети. В качестве таких операций чаще всего встречаются перемножения вектора на матрицу, дискретная свертка и применение элементарных ("школьных") функций к некоторым промежуточным результатам.
Нейронные сети в качестве входного значения могут принимать вектор параметров или матрицу. В качестве выходного значения нейронная сеть обычно возвращает вектор параметров.
Так как матрицу можно представить в виде вектора, развернув ее по столбцам в один большой, без ограничения общности можно считать, что нейронная сеть - это векторная функция векторного аргумента:
Примечание: здесь и далее в этом руководстве приняты обозначения, распространенные в англоязычной литературе. Жирный x - это вектор, не жирный x - это число или скаляр.
Вход нейронный сети может содержать разные виды данных, например, это могут быть параметры измерений, финансовые показатели, аудиосигналы, изображения и т.д. В большинстве случаев данные как то предварительно обабатываются. Обычно выполняется нормализация данных, чтобы входные значения поместились в диапазоны [0,1] или [-1,1]. Однако, в случае работы с текстами или графами могут потребоваться дополнительные более сложные преобразования.
Выход нейронной сети должен соответствовать задаче, которая стоит перед исскуственной нейронной сетью. Например, если мы хотим выполнить классификацию, то есть определить к какому из N типов относится входной вектор, то выход обычно состоит из 10 чисел, где максимальное значение будет соответствовать номеру типа, а все остальные значения будут близки к нулю. Такая задача называтся задачей классификации.
Как обучается исскуственная нейронная сеть?
Как уже написано выше, исскуственная нейронная сеть это последовательность применения математических операций. В большинстве случаев все эти операции имеют какие то коэффиценты, назовем вектор этих коэффициентов w:
Например, нейронная сеть состоящая из одного слоя с двумя нейронами и линейными функциями активации может быть представлена как перемножение входного вектора на матрицу:
Задача обучения такой нейронной сети - это задача поиска "хороших" коэффициентов w. Для того чтобы определить "степень хорошести" для w используют обучающую выборку данных и функцию потерь.
Обучающая выборка данных - это множество пар из векторов x и y. Тоесть это такие примеры, для которых уже известны правильные ответы. Функция потерь измеряет разницу между ожидаемыми ответами и выдаваемыми нейронной сетью. При этом чем меньше функция потерь, тем ближе предсказания нейронной сети к ожидаемым результатам. Например, функция потерь может быть выражена как сумма Евклидовых дистанций между ожидаемыми и предсказанными векторами:
В итоге, исскуственная нейронная сеть - это просто функция принимающая и возвращающая вектор. А обучение нейронной сети - это поиск минимума для выражения специального вида при зафиксированном наборе данных для которого известны правильные ответы.
Стоит отметить, что здесь описано обучение с учителем, тоесть в распоряжении исследователя есть известные ответы на некоторые входные данные и подход, который определяет насколько хорошо нейронная сеть работает. Так же есть обширный класс подходов, которые решают задачу обучения без учителя. Тоесть они используют входные данные, для которых неизвестны правильные ответы, и представляют их в каком то определенном новом виде.
Last updated