Строим первую нейронную сеть

Строим первую нейронную сеть #

Восстановление зависимостей #

Размеченная обучающая выборка состоит из объектов, для которых мы знаем:

  • некоторые признаки
  • метку объекта

Хорошей практикой является разделение датасета на три поддатасета:

  • train (используется непосредственно для обучения модели)
  • valid (используется для подстраивания параметров обучения нашей модели)
  • test (используется для проверки окончательного результата)

Компоненты нейронной сети #

  • Архитектура нейронной сети
  • Функции потерь (способ определения результата работы создаваемой сети; минимум этой функции соответствует оптимально настроенной сети)
  • Метод оптимизации (говорит о том, как именно нужно изменить настройки сети для минимизации функции потерь)
  • Метрики (показывают насколько успешно сеть решает поставленную задачу; например: точность; в отличии от функции потерь могут быть не дифференцируемыми)

Результирующая зависимость - сумма сигмоидных функций с соответствующими параметрами.

Функция потерь #

Для задач восстановления скрытых зависимостей зачастую в качестве функции потерь используют функцию среднего квадрата ошибки (MSE, mean squared error):

MSE=(1/N)*sum_N_i=1(y_av_i - y_i)^2

где:

  • y_av_i - результат работы сети
  • y_i - целевые значения

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

Алгоритмы настройки нейронной сети #

Градиентный спуск #

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

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

Градиентный спуск находит минимум функции, но не гарантирует нахождения оптимального минимума.

Ограничения, накладываемые на функцию потерь:

  • должна быть дифференцируемой (если в некотором множестве точек производная не определена, ее можно доопределить)
  • производная функции потерь не должна быть равна нулю в большинстве точек

Правило цепочки (правило производной сложной функции) #

Граф вычисления - порядок вычисления сложной функции.

пересмотреть