цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Что такое скорость обучения нейронной сети

Что такое скорость обучения нейронной сети

Автор: Mike(admin) от 15-01-2020, 06:05

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


Как вы уже догадались, скорость обучения влияет на быстроту обучения вашей нейронной сети. Но это еще не все.


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


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


Что такое скорость обучения нейронной сети

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


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


Что такое скорость обучения нейронной сети

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


правило обучения для обновления весов

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


Что такое скорость обучения нейронной сети

Поскольку δ умножается на скорость обучения, прежде чем модификация применяется к весу, мы можем уменьшить размер скачков, выбрав α<1. Цель состоит в том, чтобы использовать скорость обучения для обеспечения умеренно быстрой и последовательной конвергенции. Вид обучения, который мы хотим, может выглядеть примерно так:


Что такое скорость обучения нейронной сети

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


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


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


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


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




© digitrode.ru


Теги: нейронная сеть, искусственный интеллект, машинное обучение



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий