Нейронные сети Упрощенный

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

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

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

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

Цель этапа обучения — найти наилучшие веса для каждого слоя и узла. А пока имейте это в виду, пока мы вводим некоторые определения.

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

При обучении нейронной сети алгоритм делит обучающий набор данных на подмножества, каждое из которых называется пакетом. По завершении полного цикла алгоритм запускается заново, и каждый цикл обучения называется эпохой. Когда обновление весов также настраивается, мы можем либо обновлять после каждой эпохи, либо обновлять после каждого экземпляра данных, либо мы можем комбинировать эти два метода, обновляя после пакетов. Скорость обучения — это переменная, определяющая, насколько быстро сеть будет адаптироваться к обучению. После ответа на два вопроса о том, как часто и насколько мы должны изменять веса, пришло время узнать, как мы узнаем, должны ли мы увеличить или уменьшить значение веса. Как вы можете догадаться, процесс оценки происходит после прохождения количества экземпляров, необходимого для проверки значений ошибок, назначенных пользователем, значения ошибок представляют собой суммирование неверных выходных данных. Это называется функцией потерь. Фаза обучения пытается минимизировать функцию потерь, а потери уменьшаются, тогда алгоритм работает хорошо, и единственная проблема, которая всплывает на поверхность, заключается в том, когда должна закончиться фаза обучения. Другими словами, сколько эпох нужно? Ссылки на переоснащение слишком много тренируют раньше, затем целью обучения является поиск наилучшего набора весов сети, сначала веса будут случайными, а затем с каждым n экземпляром веса будут обновляться, чтобы минимизировать потери.

Последний гиперпараметр, который мы введем, — это функция оптимизатора. Функция оптимизатора отвечает за уменьшение значения потерь. Там, где некоторые оптимизаторы быстрее и лучше других, стохастический градиентный спуск является примером хорошего оптимизатора. Термин «стохастический» относится к обновлению весов для каждого обрабатываемого экземпляра, оптимизатор Адама представляет собой улучшенную версию градиентного спуска. В котором авторы добавили импульс, чтобы не застрять в низком значении потерь, но не самом низком, которого мы можем достичь. проще говоря, ADAM дает тягу, достаточную для прохождения локального минимума и недостаточно большую, чтобы не пропустить глобальный минимум. Поскольку уровень потерь в реальной жизни не является прямой линией в некоторых областях, кривая потерь содержит несколько пробелов, эти пробелы не являются самой низкой точкой кривой потерь, однако градиентный спуск предполагает, что этот разрыв является самой низкой точкой. Наоборот, после увеличения частоты ошибок на небольшую величину кривая потерь продолжает снижаться. Например, локальный минимум составляет 6% потерь, а глобальный минимум — 2%, нормальный градиентный спуск предполагает, что частота ошибок 6% — это лучшее, чего мы можем достичь, поэтому оптимизатор сохранит эти комбинации весов. ADAM обеспечивает толчок для поиска какой-либо комбинации весов, которая могла бы еще больше улучшить производительность. В этом примере ADAM может достичь уровня ошибок 2%, что является глобальным минимумом.

Кроме того, оптимизатор Adam может рассматривать как комбинацию RMSprop и Stochastic Gradient Descent с импульсом, где он использует преимущество импульса, используя скользящее среднее значение градиента вместо самого градиента, как SGD с импульсом, и использует квадраты градиентов для масштабирования. скорость обучения, как у RMSprop. Для получения дополнительной информации об Адаме см.

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

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