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

 
» » Введение в теорию обучения нейронных сетей

Введение в теорию обучения нейронных сетей

Автор: Mike(admin) от 5-01-2020, 08:55

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


Введение в теорию обучения нейронных сетей

На первый взгляд, обучение нейронной сети кажется довольно простым процессом. Когда мы работаем с простой сетью (такой как однослойный персептрон, показанный ниже), математика, необходимая для обучения, конечно, не является подавляющей, сама сеть может быть реализована в относительно короткой программе, написанной на языках, таких как C или Python, и процесс обучения не требует чрезмерного количества вычислительного времени.


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


Введение в теорию обучения нейронных сетей

Однако, как вы, вероятно, уже знаете или уже догадались, существует довольно много теории, связанной с обучением искусственных нейронных сетей – выполните поиск по фразе «neural network training» в Google Scholar, и вы получите хороший образец исследований, которые были проведены в этой области. Но наша цель на данный момент состоит в том, чтобы понять одну основополагающую концепцию, а именно минимизацию ошибок.


Нейронная сеть может выполнять классификацию, потому что она автоматически находит и реализует (посредством обучения) математические отношения между входными данными и выходными значениями. В математической терминологии мы используем слово «функция», чтобы идентифицировать отношение ввода-вывода, и мы часто выражаем функции символически как f(x), например, f(x) = sin(x). Таким образом, x представляет входные данные, а f(x) устанавливается равным процедуре, которую мы используем, когда хотим, чтобы функция работала на входе и производила вывод.


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


Введение в теорию обучения нейронных сетей

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


Когда сеть впервые начинает обучение, случайным значениям присваиваются веса, и, следовательно, f(x) сети – мы будем называть это fNN(x) – совсем не соответствует реальным отношениям, fREAL(x), между входом и выходом. Во время обучения сеть генерирует полезные корректировки значений веса, просматривая информацию об ошибках, возвращаемую из выходных данных, и fNN(x) постепенно становится все более и более совместимым с fREAL(x), что-то вроде точного отражения, которое медленно проявляется в виде конденсата. (Примечание. В этом случае символ x не представляет одну переменную, как будто размерность входного слоя сети равна единице. Он представляет входные данные в общем виде. Например, x может быть вектором из 50 элементов).


Теперь рассмотрим теорию минимизации ошибки с помощью «чаши ошибок». Давайте предположим, что мы работаем с нейронной сетью, в которой есть два взвешенных соединения, ведущих к одному выходному узлу. Если мы обучаем сеть, мы знаем правильное выходное значение, и, следовательно, мы можем вычислить ошибку, создаваемую этим выходным узлом. Кроме того, мы можем визуализировать ошибку, используя трехмерный график: два входа соответствуют оси x и оси y, а ошибка соответствует оси z.


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


чаша ошибок

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


Эта визуальная аналогия возвращает нас к понятию приближения функции: спуск к минимальной ошибке происходит по мере изменения весов, и изменения весов также делают fNN(x) постепенно похожей на fREAL(x). Подводя итог, можно сказать, что обучение заставляет сеть изменять свои веса таким образом, чтобы минимизировать функцию ошибки и чтобы математические операции всей сети приближались к математическим отношениям между входом и выходом.




© digitrode.ru


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



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


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

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

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