Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

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

Искусственный интеллект+2
Анонимный вопрос
  ·   · 22,6 K
Data Scientist (Computer Vision)  · 22 июн 2019  ·
deep_nn

Для того, чтобы нейросеть работала, ее нужно обучить на датасете.

Обучение нейросети состоит из двух основных этапов, которые повторяются много раз: попытка модели выдать результат (оно же прямое распространение, или forward propagation), и корректировка работы модели, наложение штрафа (оно же обратное распространение, backward propagation). Если модель уже обучена, для ее работы требуется только первый этап, который будет выполняться на новых данных, для которых мы хотим получить результат.

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

Итак, как работает прямое распространение?

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

Как работает обратное распространение ошибки?

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

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

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

1. А в каком виде хранится результат обучения нейросети? таблица? json? текст? 2. Возможно ли нейросеть... Читать дальше
Сервис онлайн-образования  · 13 мар 2020  · practicum.yandex.ru
Нейросеть — сложная штука, и в коротком ответе её работу получится осветить только поверхностно. В профессии «Специалист по Data Science» мы подбираемся к этому понятию только через 2 месяца после начала обучения и разбираемся... Читать далее
Выбрать профессию в Яндекс Практикуме и попробовать себя в новой ролиПерейти на praktikum.yandex.ru
СТО, Мастер  · 18 февр 2023
Нейронные сети - это математические модели, которые используются для анализа и обработки данных. Они состоят из большого числа простых элементов, называемых нейронами, которые обрабатывают и передают информацию между... Читать далее
2 эксперта согласны
Не знаете, что дарить на день рождения? Подарите...  · 9 нояб 2018
Если говорить простыми словами, то нейросеть - это программа, которая работает аналогично нашему мозгу. В человеческом мозге все сигналы передаются нейронами, а процесс обучения представляет собой повторную активацию уже... Читать далее
Нейросеть - не программа, а программная инженерия, это не одно и тоже. Это как математика и математический анализ... Читать дальше
Фортепьяно, ИТ, экономика  · 9 янв 2020
Если говорить по сути, то не нужно слушать этих идиотов, которые кодеры, но мнят себя программерами лвл 100+. На самом деле это трепла языками, втюхиватели, кое-какеры и т.д. Нейросеть - программа, либо совокупность программ с... Читать далее
Если описать по простому, то в целом примерно следующим образом: создается некоторая функция, формирующая реакцию на существующие входные сигналы. Например, формула, оценивающая заданной состояние шахматной доски как величина... Читать далее