Взаимодействие внутри нейронной сети
Каждая связь имеет «вес». То есть, сигнал от одного нейрона, пока идет до следующего, несколько меняет значение (значение этого сигнала умножается на этот «вес»).
Если весам связей присвоить случайные значения, то ничего осмысленного такая нейросеть делать не будет. То есть, их надо ещё как-то правильно подобрать. Иными словами, нейросеть надо обучить.
Как происходит обучение. В качестве примера:
Допустим, мы обучаем нейросеть отличать изображения кошек от изображений собак. Тогда на входной слой нейросети мы отдаем изображение, а на выходе нейросеть возвращает пару действительных чисел от 0 до 1 каждое. Первое означает, насколько нейросеть уверена, что это собака, а второе — что кошка. Почему делают именно так — вопрос, на который простым языком не ответить. То есть, если первое число больше, то нейросеть решила, что увидела собаку, а если второе, то кошку.
В качестве теста сети дадим нейросети изображение. Она отвечает нам этой самой парой чисел (a, b). Но мы-то знаем, кто на картинке. Поэтому мы поправляем нейросеть. А именно, мы «насильно запихиваем» в выходной слой пару (1, 0), если собака или (0, 1), если кошка, а дальше происходит некоторая магия (чтобы постичь её, нужно обладать некоторым знанием математики), которая заставляет нейросеть перераспределять веса связей. Самый распространенный способ творить эту магию — «метод обратного распространения ошибки», но есть и другие.
Спустя множество разных картинок, с которыми мы провернем то же самое, веса связей между нейронами выстроятся таким образом, что она будет хорошо отличать кошек от собак.
Bookmarks