Узел «Нейронная сеть» позволяет строить нейросеть типа MLP (multilayer perceptron, многослойный перцептрон), в которой входной сигнал преобразуется в выходной, проходя последовательно через скрытые слои.
Искусственная нейронная сеть представляет собой сложную дифференцируемую функцию, которая в процессе обучения способна выявлять сложные зависимости между входными и выходными данными и выполнять обобщение.
Архитектура нейронной сети
Нейрон – базовый элемент для построения искусственной нейронной сети (далее просто нейронной сети). Представляет собой вычислительный элемент, который имеет несколько входов и один выход. Каждый вход имеет некоторый вес, на который умножается поступившее на данный вход значение. Далее в нейроне происходит суммирование взвешенных входных данных, и полученная сумма преобразуется с помощью функции активации в значение, которое и будет являться выходом нейрона.
В многослойных сетях нейроны сгруппированы в слои, причем каждый нейрон предыдущего слоя связан со всеми нейронами следующего слоя, а внутри слоев связь между нейронами отсутствует.
Первый слой сети называется входным: его нейроны принимают элементы вектора признаков и передают их нейронам следующего слоя без какой-либо обработки.
Далее располагаются один или несколько скрытых слоев (число скрытых слоев и количество нейронов в них задается параметром Количество нейронов в скрытом слое, подробнее в таблице с описанием параметров ниже). Каждый нейрон в скрытом слое преобразует значения из предыдущего слоя с взвешенным линейным суммированием функцией активации, которая порождает более информативные признаковые описания, преобразую данные нелинейным образом (функция активации для скрытых слоев задается параметром Функция активации).
Последний слой – выходной, получает значения из последнего скрытого слоя и преобразует их в выходные значения сети исходя из решаемой задачи.
Обучение нейронной сети
Обучение нейронной сети является итерационным процессом (задается параметром Количество итераций), которое заключается в нахождении параметров модели (весов и смещений). На каждой итерации происходит два прохода сети:
- Настройка нейронной сети начинается с Прямого распространения. Данные (задается параметром Количество наблюдений для одной итерации) подаются на вход сети, через все слои распространяются в направлении выходов, в ходе чего случайным образом генерируются значения весовых коэффициентов и смещений модели. Таким образом, формируются выходные значения. Далее фактические выходные значения оцениваются относительно ожидаемых выходных значений (целевых значений, target) с помощью функции потерь (задается параметрами Метрика для ранней остановки (регрессия) или Метрика для ранней остановки (классификация) в зависимости от решаемой задачи).
- Обратное распространение ошибки (Backward propagation) направлено на минимизацию функции потерь путем корректировки параметров нейронной сети (весов и смещений нейронов). Скорректировать эти параметры позволяют методы оптимизации на основе градиентного спуска (задается параметром Метод оптимизации).
Процесс оптимизации будет выполняться до тех пор, пока не будет достигнут критерий остановки (задается параметрами Ранняя остановка, Погрешность оптимизации и Количество итераций).
Список параметров узла
Список параметров узла представлен в таблице ниже.
Параметр | Возможные значения и ограничения | Описание |
---|---|---|
Название | Ручной ввод | Название узла, которое будет отображаться в интерфейсе |
Описание | Ручной ввод | Описание узла |
Количество нейронов в скрытом слое | Для изменения количества нейронов и слоев необходимо:
| Данный параметр задает количество скрытых слоев и нейронов в скрытых слоях |
Функция активации | Раскрывающийся список со следующими значениями:
| Данный параметр задает функцию активации для скрытых слоев. Предусмотрены следующие функции:
|
Метод оптимизации | Раскрывающийся список со следующими значениями:
| Данный параметр задает метод оптимизации, который будет использоваться для обновления весов нейронов скрытых слоев нейронной сети. Предусмотрены следующие методы:
Примечание Метод SGD стоит использовать на небольших сбалансированных наборах данных, в которых достаточно равномерно представлены элементы каждого класса. В случае несбалансированности исходной выборки, стохастический градиент не производит качественного распознавания редких значений признаков, также низкая скорость сходимости проявляется на большом объеме данных. Метод adam довольно хорошо работает с большими наборами данных с точки зрения как времени обучения, так и валидационной оценки. Однако для небольших наборов данных метод lbfgs может сходиться быстрее и работать лучше. |
L2 регуляризация | Ручной ввод | Данный параметр задает значение L2-регуляризации |
Правило определения скорости обучения | Раскрывающийся список со следующими значениями:
| Данный параметр задает правило определения скорости обучения для обновления веса. Предусмотрены следующие варианты:
Примечание Данный параметр можно задать только в случае выбранного метода оптимизации sgd. |
Начальная скорость обучения | Ручной ввод | Данный параметр задает начальную скорость обучения, которая управляет размером шага при обновлении весов. Примечание Данный параметр можно задать только в случае выбранного метода оптимизации sgd или adam. |
Показатель степени для изменения скорости обучения | Ручной ввод | Данный параметр задает показатель степени для изменения скорости обучения, который используется для обновления скорости обучения, когда для параметра Правило определения скорости обучения указано значение invscalling. Примечание Данный параметр можно задать только в случае выбранного метода оптимизации sgd. |
Перемешивание наблюдений | Чекбокс | Выбор данного чекбокса указывает на необходимость перемешать наблюдения в каждой итерации. Примечание Данный параметр можно задать только в случае выбранного метода оптимизации sgd или adam. |
Seed | Ручной ввод числового значения | Начальное числовое значение для генератора случайных чисел. |
Максимальное количество итераций (эпох) | Ручной ввод | Данный параметр задает максимальное количество итераций. Оптимизатор выполняет итерации до сходимости (определяемой значением параметра Погрешность оптимизации) или до указанного количества итераций. |
Количество наблюдений для одной итерации | Ручной ввод | Данный параметр задает количество наблюдений для одной итерации |
Ранняя остановка | Чекбокс | Выбор данного чекбокса указывает на необходимость ранней остановки алгоритма, если валидационная оценка не улучшается на значение, указанное в параметре Погрешность оптимизации, в течение указанного в параметре Количество итераций без существенного улучшения значения. Примечание Ранняя остановка эффективна только в случае выбранного метода оптимизации sgd или adam. |
Метрика для ранней остановки (регрессия) | Раскрывающийся список со следующими значениями:
| Данный параметр задает метрику для ранней остановки (задача регрессии). Предусмотрены следующие метрики:
|
Метрика для ранней остановки (классификация) | Раскрывающийся список со следующими значениями:
| Данный параметр задает метрику для ранней остановки (задача классификации). Предусмотрены следующие метрики:
|
Размер валидационной выборки для ранней остановки (%) | Ручной ввод | Данный параметр задает долю обучающих данных, которые нужно отложить в качестве валидационного набора для ранней остановки. Используется только в случае выбора чекбокса Ранняя остановка. |
Количество итераций без существенного улучшения | Ручной ввод | Данный параметр задает количество итераций без существенного улучшения Примечание Данный параметр можно задать только в случае выбранного метода оптимизации sgd или adam. |
Погрешность оптимизации | Ручной ввод | Данный параметр задает допустимую погрешность для оптимизации. В случае, если потери не улучшаются на указанное значение в течение указанного в параметре Количество итераций без существенного улучшения числа, то считается, что сходимость достигнута, и обучение останавливается. |
Инерция | Ручной ввод | Данный параметр задает инерцию для обновления градиентного спуска Примечание Данный параметр можно задать только в случае выбранного метода оптимизации sgd |
Использовать инерцию Нестерова | Чекбокс | Выбор данного чекбокса указывает на необходимость использовать инерцию Нестерова Примечание Данный параметр можно задать только в случае выбранного метода оптимизации sgd и значения Инерции > 0 |
Beta 1 | Ручной ввод | Данный параметр задает скорость экспоненциального убывания для оценок вектора первого момента при методе оптимизации adam |
Beta 2 | Ручной ввод | Данный параметр задает скорость экспоненциального убывания для оценок вектора второго момента при методе оптимизации adam |
Epsilon | Ручной ввод | Данный параметр задает значение числовой устойчивости при методе оптимизации adam |
Стандартизация | Раскрывающийся список со следующими значениями:
| Данный параметр отвечает за выбор метода стандартизации числовых переменных. Предусмотрены следующие методы:
|
Максимальное количество вызовов целевой функции | Ручной ввод целочисленного значения больше 0 | Данный параметр задает максимальное количество вызовов функции потерь. Т.е. алгоритм выполняет итерации до сходимости (параметр Погрешность оптимизации), если количество итераций достигает значения параметра Максимальное количество итераций или заданного значения параметра вызова функции потерь. Примечание Данный параметр можно задать только в случае выбранного метода оптимизации lbfgs |
Результаты выполнения узла
Узел «Нейронная сеть» имеет разные результаты в зависимости от решаемой задачи.