что такое веса в нейросети

Нейронные сети. (Machine learning #1)

Что такое нейронная сеть и как она работает? Разбираем популярную технологию на простых примерах!
Сайту исполняется год и в честь этого я решил написать небольшой пост о том, чем я сейчас занимаюсь 🙂
Однажды, гуляя по просторам YouTube, я наткнулся на очень классный канал, посвященный математике, физике и многим другим интересным вещам (даже радиоэлектронике!) На канале было очень много всего, чего я не успел пока посмотреть, но я обратил внимание на ролик, посвященный работе нейронных сетей. Так как я давно уже слышал о нейронных сетях и похожих вещах (вроде генетических алгоритмов), но при этом не понимал толком, о чём идёт речь, я очень заинтересовался. Это цикл из 4х видео, которые, по сути, являются визуализацией статьи Michael Nielsen.

Здесь я хочу дать краткое и простое описание работы нейронной сети на примере классической задачи распознавания нарисованных от руки цифр.
Итак, представьте, что перед вами встала задача распознать цифры:

Наш мозг без труда справляется с такой задачей! Но что, если у нас есть миллион написанных от руки цифр, которые необходимо распознать и записать, допустим, в базу данных. Нужно написать программу, которая будет делать это за вас.
Но как будет работать такая программа? И тут задача, которая казалась пустяковой, превратилась в большую проблему: каждый человек пишет одни и те же цифры по-разному, а компьютер этого не знает. Вот, например, написанная по-разному, цифра 5:

Понятие нейрона, веса и смещения

Давайте рассмотрим простую нейронную сеть:

Запишем сумму со всех нейронов из входного слоя:

$$
z = \sum\limits_^<3> \qquad (1)
$$
Получившийся результат может быть любым вещественным числом. Нам нужно преобразовать его в число от 0 до 1, которое мы и присвоим нейрону.
Сделать это можно, например, так:

Видно, что рост функции от нуля до единицы происходит в окрестности нуля. Но часто активационный барьер необходимо сместить. Поэтому к числу \(z \) в (1) нужно прибавить число \(b \), которое называется смещением (bias). То есть

$$
z = \sum\limits_^ + b \qquad (3)
$$
Для всего слоя (в матричном виде):

Как происходит обучение?

Картинка \(28*28 \) содержит \(784 \) пикселя, именно столько и будет нейронов в входном слое.
В выходном слое будет 10 нейронов, каждый из которых указывает на цифру от \(0\) до \(9\). Для упрощения понимания изобразим лишь один скрытый слой. По выходному слою мы будем судить о том, как отработал алгоритм.

Как и было сказано ранее, работа алгоритма полностью определяется входными данными и взаимосвязями нейронов. Когда алгоритм не натренирован, то, скорее всего, он не сможет дать правильный ответ, так как взаимосвязи между нейронами (веса нейронов и смещения) настроены неправильно. Именно в подборе этих параметров и заключается обучение нейронной сети.
Теперь дадим нашей сети группу картинок с написанными цифрами для тренировки и после каждого завершения алгоритма будем проверять то, насколько точно она «угадала» цифру.
Для того, чтобы оценить эффективность работы алгоритма, введём так называемую функцию расходимости (cost function) следующим образом:

Чем ближе результат работы алгоритма к требуемому результату, тем меньше становится функция расхождения. То есть задача обучения на данном этапе сводится к уменьшению функции расхождения.
Как нужно изменять все \(w\) и \(b\), чтобы максимально быстро уменьшить функцию расхождения?
Нужно найти вектор-градиент функции и идти в противоположную сторону. Если бы наша сеть имела только одно смещение \(b\) и один вес \(w\), то данный процесс можно было бы проиллюстрировать мячом, скатывающимся в самую нижнюю точку ямки:

$$
\frac<\partial C(w, b)> <\partial y_t>= \frac<1><2l>2y_t = \frac
$$
А производная
$$
\frac<\partial y_t(x_, w, b)><\partial w_i>
$$
легко считается, так как у нас есть явный вид функции \(y_t\) от \(w_i\) в (5).
Теперь разберёмся с производными \(С(w, b)\) по смещениям \(b\). Расчёт производится аналогично:

В принципе, это все! Весь процесс обучения взял на себя компьютер, который считает частные производные функции расхождения и с их помощью правильно корректирует параметры связей нейронов.
Однако, как я понял, чаще всего вычисляют не все частные производные (в нашем случае их \(12719\)), а только часть, разделяя параметры на небольшие группы. Такой подход называется stochastic gradient descent, и он быстрее приводит к нужному результату, так как на вычисление всех частных производных тратится большее время.

Можете похлопать себя по плечам, ведь выше прочитанный материал не из простых и требует усилия для усвоения!
Это не последний мой пост, посвященный нейронным сетям и машинному обучению. У меня есть несколько крутых проектов, связанных с этой темой, которые я хочу реализовать и более глубоко раскрыть в следующих моих статьях.

Отдельная благодарность моей сестре Соне (отличному репетитору по русскому языку) за час смеха и мучения при правке статьи!

Друзья! Я очень благодарен вам за то, что вы интересуетесь моими работами, ведь каждый пост на сайте даётся очень непросто. Я буду рад любому отклику и поддержке с вашей стороны.

Источник

Нейронные сети для начинающих. Часть 1

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.

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

Первым и самым важным моим открытием был плейлист американского программиста Джеффа Хитона, в котором он подробно и наглядно разбирает принципы работы нейронных сетей и их классификации. После просмотра этого плейлиста, я решил создать свою нейронную сеть, начав с самого простого примера. Вам наверняка известно, что когда ты только начинаешь учить новый язык, первой твоей программой будет Hello World. Это своего рода традиция. В мире машинного обучения тоже есть свой Hello world и это нейросеть решающая проблему исключающего или(XOR). Таблица исключающего или выглядит следующим образом:

abc
000
011
101
110

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

Что такое нейронная сеть?

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Нейронная сеть — это последовательность нейронов, соединенных между собой синапсами. Структура нейронной сети пришла в мир программирования прямиком из биологии. Благодаря такой структуре, машина обретает способность анализировать и даже запоминать различную информацию. Нейронные сети также способны не только анализировать входящую информацию, но и воспроизводить ее из своей памяти. Заинтересовавшимся обязательно к просмотру 2 видео из TED Talks: Видео 1, Видео 2). Другими словами, нейросеть это машинная интерпретация мозга человека, в котором находятся миллионы нейронов передающих информацию в виде электрических импульсов.

Какие бывают нейронные сети?

Пока что мы будем рассматривать примеры на самом базовом типе нейронных сетей — это сеть прямого распространения (далее СПР). Также в последующих статьях я введу больше понятий и расскажу вам о рекуррентных нейронных сетях. СПР как вытекает из названия это сеть с последовательным соединением нейронных слоев, в ней информация всегда идет только в одном направлении.

Для чего нужны нейронные сети?

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

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

Предсказание — возможность предсказывать следующий шаг. Например, рост или падение акций, основываясь на ситуации на фондовом рынке.

Распознавание — в настоящее время, самое широкое применение нейронных сетей. Используется в Google, когда вы ищете фото или в камерах телефонов, когда оно определяет положение вашего лица и выделяет его и многое другое.

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

Что такое нейрон?

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Нейрон — это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. Они делятся на три основных типа: входной (синий), скрытый (красный) и выходной (зеленый). Также есть нейрон смещения и контекстный нейрон о которых мы поговорим в следующей статье. В том случае, когда нейросеть состоит из большого количества нейронов, вводят термин слоя. Соответственно, есть входной слой, который получает информацию, n скрытых слоев (обычно их не больше 3), которые ее обрабатывают и выходной слой, который выводит результат. У каждого из нейронов есть 2 основных параметра: входные данные (input data) и выходные данные (output data). В случае входного нейрона: input=output. В остальных, в поле input попадает суммарная информация всех нейронов с предыдущего слоя, после чего, она нормализуется, с помощью функции активации (пока что просто представим ее f(x)) и попадает в поле output.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

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

Что такое синапс?

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Синапс это связь между двумя нейронами. У синапсов есть 1 параметр — вес. Благодаря ему, входная информация изменяется, когда передается от одного нейрона к другому. Допустим, есть 3 нейрона, которые передают информацию следующему. Тогда у нас есть 3 веса, соответствующие каждому из этих нейронов. У того нейрона, у которого вес будет больше, та информация и будет доминирующей в следующем нейроне (пример — смешение цветов). На самом деле, совокупность весов нейронной сети или матрица весов — это своеобразный мозг всей системы. Именно благодаря этим весам, входная информация обрабатывается и превращается в результат.

Важно помнить, что во время инициализации нейронной сети, веса расставляются в случайном порядке.

Как работает нейронная сеть?

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

В данном примере изображена часть нейронной сети, где буквами I обозначены входные нейроны, буквой H — скрытый нейрон, а буквой w — веса. Из формулы видно, что входная информация — это сумма всех входных данных, умноженных на соответствующие им веса. Тогда дадим на вход 1 и 0. Пусть w1=0.4 и w2 = 0.7 Входные данные нейрона Н1 будут следующими: 1*0.4+0*0.7=0.4. Теперь когда у нас есть входные данные, мы можем получить выходные данные, подставив входное значение в функцию активации (подробнее о ней далее). Теперь, когда у нас есть выходные данные, мы передаем их дальше. И так, мы повторяем для всех слоев, пока не дойдем до выходного нейрона. Запустив такую сеть в первый раз мы увидим, что ответ далек от правильно, потому что сеть не натренирована. Чтобы улучшить результаты мы будем ее тренировать. Но прежде чем узнать как это делать, давайте введем несколько терминов и свойств нейронной сети.

Функция активации

Функция активации — это способ нормализации входных данных (мы уже говорили об этом ранее). То есть, если на входе у вас будет большое число, пропустив его через функцию активации, вы получите выход в нужном вам диапазоне. Функций активации достаточно много поэтому мы рассмотрим самые основные: Линейная, Сигмоид (Логистическая) и Гиперболический тангенс. Главные их отличия — это диапазон значений.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Эта функция почти никогда не используется, за исключением случаев, когда нужно протестировать нейронную сеть или передать значение без преобразований.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Это самая распространенная функция активации, ее диапазон значений [0,1]. Именно на ней показано большинство примеров в сети, также ее иногда называют логистической функцией. Соответственно, если в вашем случае присутствуют отрицательные значения (например, акции могут идти не только вверх, но и вниз), то вам понадобиться функция которая захватывает и отрицательные значения.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

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

Тренировочный сет

Тренировочный сет — это последовательность данных, которыми оперирует нейронная сеть. В нашем случае исключающего или (xor) у нас всего 4 разных исхода то есть у нас будет 4 тренировочных сета: 0xor0=0, 0xor1=1, 1xor0=1,1xor1=0.

Итерация

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

Эпоха

При инициализации нейронной сети эта величина устанавливается в 0 и имеет потолок, задаваемый вручную. Чем больше эпоха, тем лучше натренирована сеть и соответственно, ее результат. Эпоха увеличивается каждый раз, когда мы проходим весь набор тренировочных сетов, в нашем случае, 4 сетов или 4 итераций.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

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

Ошибка

Ошибка — это процентная величина, отражающая расхождение между ожидаемым и полученным ответами. Ошибка формируется каждую эпоху и должна идти на спад. Если этого не происходит, значит, вы что-то делаете не так. Ошибку можно вычислить разными путями, но мы рассмотрим лишь три основных способа: Mean Squared Error (далее MSE), Root MSE и Arctan. Здесь нет какого-либо ограничения на использование, как в функции активации, и вы вольны выбрать любой метод, который будет приносить вам наилучший результат. Стоит лишь учитывать, что каждый метод считает ошибки по разному. У Arctan, ошибка, почти всегда, будет больше, так как он работает по принципу: чем больше разница, тем больше ошибка. У Root MSE будет наименьшая ошибка, поэтому, чаще всего, используют MSE, которая сохраняет баланс в вычислении ошибки.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Принцип подсчета ошибки во всех случаях одинаков. За каждый сет, мы считаем ошибку, отняв от идеального ответа, полученный. Далее, либо возводим в квадрат, либо вычисляем квадратный тангенс из этой разности, после чего полученное число делим на количество сетов.

Задача

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

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

H1input = 1*0.45+0*-0.12=0.45
H1output = sigmoid(0.45)=0.61

H2input = 1*0.78+0*0.13=0.78
H2output = sigmoid(0.78)=0.69

O1input = 0.61*1.5+0.69*-2.3=-0.672
O1output = sigmoid(-0.672)=0.33

Результат — 0.33, ошибка — 45%.

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

Источник

Синаптические веса в нейронных сетях – просто и доступно

Этой статьей начинается серия статей, рассказывающих просто и доступно о нейронных сетях и искусственном интеллекте.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Автоматические методы обучения искусственных нейронных сетей совершенствуются постоянно. Уже сейчас автоматизм достиг такого уровня, что начальные значения весов можно задавать любые. Действительно, компьютерная программа будет постепенно корректировать веса в сторону уменьшения ошибки, и откуда начинать – не так уж и важно. Чем дальше начальная совокупность от решения, тем больше времени пройдет, вот и вся разница. Все близко к тому, что нажал кнопку, пошел в бассейн, пришел – сеть обучена. Если сеть посерьезнее, то нажал кнопку, уехал в отпуск, приехал через две недели – сеть обучена. Перед нажатием кнопки нужно только архитектуру задать. Хотя программы могут уже сами корректировать архитектуру сети, все более и более автоматизируясь. Так, с некоторой точки зрения, совокупность весов, а также методы их подбора, могут быть некими черными ящиками, в которых что-то как-то происходит и на выходе получаем допустимый уровень ошибки. Есть случаи, когда никто и не ожидал наличия закономерностей, а черный ящик взял и нашел. Например, в сеть заложили параметры – рост и вес. И результат – мужчина/женщина. Сеть самообучилась и выявила закономерность, и смогла на тестовой выборке достаточно точно определять, это мужчина или женщина. Хотя до этого никто и не задумывался именно об этой закономерности. Так что в принципе, можно совсем не изучать этот вопрос, полностью полагаясь на математическую теорию и компьютерное моделирование.

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

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

Прежде всего, освежим термины. Что есть нейронная сеть, синапсы и веса.

Термином «искусственная нейронная сеть» или просто «нейронная сеть» часто обозначают математическую модель, очень упрощенно описывающую общий алгоритм работы человеческой нервной системы.

Нервную систему человека можно рассматривать как трехступенчатую.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

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

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Синапсы – места соединения аксона одного нейрона с телом или отростком (дендритом или аксоном) другого нейрона. Через синапсы сигналы передаются от нейрона к нейрону.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

У каждого синапса есть свой «вес», то есть как бы своя «важность», придаваемая значению сигнала, проходящего через данный синапс.

Получаем модель нейрона из трех элементов:

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

Сумматор, складывающий входные сигналы, взвешенные относительно соответствующих синапсов нейрона. Математически, это просто сумма значений входных сигналов, умноженных на их вес («важность»).

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросетичто такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

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

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Что все эти линии, кружочки и взвешенные суммы означают на практике?

Предположим, нужно определить, является ли объект автомобилем. Подходим, начинаем осматривать, заполняем чек-лист. Крыша есть – ставим галочку, добавляем баллы. Стекла есть, двери есть, щетки-дворники есть, четыре колеса есть – все это плюс баллы. При достижении заданного количества баллов считаем, что перед нами автомобиль. А вот если есть пропеллер, то это уже не автомобиль. Это может быть самолет, вертолет, какая-то специальная лодка, но не автомобиль. То есть важность наличия пропеллера такова, что сразу перечеркивает все «автомобильные» баллы до этого. В этом случае наличию пропеллера мы придадим большой «отрицательный» вес. Теперь посмотрим на крышу. Есть автомобили и без крыши. То есть наличие крыши не так важно для определения, что перед нами автомобиль, как, например, наличие колес. Наличие крыши скажет нам, что перед нами скорее автомобиль, чем котик или кружка, но не скажет точно, это автомобиль или нет. «Вес» наличия крыши будет меньше «веса» наличия колес. А если мы будем сравнивать автомобиль и телегу, то по наличию четырех колес можно и перепутать. Хорошо, что наличие мотора исправит ситуацию. Когда мы сложим все баллы, показывающие важность наличия данного пункта, мы определим, что баллов «автомобиль» больше, чем баллов «телега» или баллов «самолет». Вот так и определяется важность какого-либо параметра. Аналогично, для определения, что это котик важно наличие ушек, глаз, лап, усов, хвоста и так далее.

Суть синаптических весов от этого не меняется. В сети в 200 слоев и в сети в 1 слой – суть остается той же. Поэтому рассмотрим простой наглядный пример.

Рассмотрим обычный 13-ти сегментный цифровой индикатор.

Задача – определить цифру по горящим сегментам.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Каждый сегмент будем считать рецептором.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Если сегмент горит, то его значение равно 1, если не горит, то 0.

Теперь, говоря научным языком, приступим к обучению нейронной сети, то есть подбору коэффициентов. Собственно говоря, все обучение и сводится к подбору коэффициентов различными способами.

Составим таблицу где сторонами будут номер сегмента 1-13 и цифра 1-9.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

В нашем примере нужно заполнить таблицу коэффициентами таким образом, чтобы при построчном суммировании перемножений коэффициентов и значений сегментов (1 – горит, 0 – не горит) максимальная сумма была бы в строке, соответствующей горящей цифре.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

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

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Зададим первоначальные веса.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Когда горят все сегменты, то максимальная сумма равна 13 и соответствует цифре «8».

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Отключим сегмент 13. Это соответствует цифре «0».

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Видим, что максимальная сумма равна 12, но одновременно в двух строках – цифры «8» и «0». Нужно скорректировать коэффициенты таким образом, чтобы сумма 12 горящих сегментов цифры «0» превышала бы сумму 13 горящих сегментов цифры «8». В нашем случае коэффициент должен быть просто больше 13/12, например, 1.1.

Теперь видим, что если горят сегменты цифры «0», то сумма в строке цифры «0» максимальна.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

Таким образом получаем конечную совокупность весов.

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

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

что такое веса в нейросети. Смотреть фото что такое веса в нейросети. Смотреть картинку что такое веса в нейросети. Картинка про что такое веса в нейросети. Фото что такое веса в нейросети

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *