Настройка модели нейронной сети — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

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

Настройка модели нейронной сети

2020-05-07 141
Настройка модели нейронной сети 0.00 из 5.00 0 оценок
Заказать работу

В Keras, вы собираем слои (layers) для построения моделей (models). Модель это (обычно) граф слоев. Наиболее распространенным видом модели является стек слоев: модель tf.keras.Sequential. Построим простую полносвязную сеть (т.е. многослойный перцептрон):
from tensorflow.keras import layers

model = tf.keras.Sequential()

# Добавим к модели полносвязный слой с 64 узлами:

model.add(layers.Dense(64, activation='relu'))

# Добавим другой слой:

model.add(layers.Dense(64, activation='relu'))

# Добавим слой softmax с 10 выходами:

model.add(layers.Dense(10, activation='softmax'))

Настройте слои. Доступно много разновидностей слоев tf.keras.layers. Большинство из них используют общий конструктор аргументов:

  • activation: Установка функции активации для слоя. В этом параметре указывается имя встроенной функции или вызываемый объект. У параметра нет значения по умолчанию.
  • kernel_initializer и bias_initializer: Схемы инициализации создающие веса слоя (ядро и сдвиг). В этом параметре может быть имя или вызываемый объект. По умолчанию используется инициализатор "Glorot uniform".
  • kernel_regularizer и bias_regularizer: Схемы регуляризации добавляемые к весам слоя (ядро и сдвиг), такие как L1 или L2 регуляризации. По умолчанию регуляризация не устанавливается.
    Следующие примеры экземпляров слоев `tf.keras.layers.Dense` используют аргументы конструктора:

# Создадим слой с сигмоидой:

layers.Dense(64, activation='sigmoid')

# Или:

layers.Dense(64, activation=tf.keras.activations.sigmoid)

# Линейный слой с регуляризацией L1 с коэфициентом 0.01 примененной к матрице ядра:

layers.Dense(64, kernel_regularizer=tf.keras.regularizers.l1(0.01))

# Линейный слой с регуляризацией L2 с коэффициентом 0.01 примененной к вектору сдвига:

layers.Dense(64, bias_regularizer=tf.keras.regularizers.l2(0.01))

# Линейный слой с ядром инициализированным случайной ортогональной матрицей:

layers.Dense(64, kernel_initializer='orthogonal')

# Линейный слой с вектором сдвига инициализированным значениями 2.0:

layers.Dense(64, bias_initializer=tf.keras.initializers.Constant(2.0))

Обучение и оценка

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

После того как модель сконструирована, настройте процесс ее обучения вызовом метода compile:

model = tf.keras.Sequential([

# Добавляем полносвязный слой с 64 узлами к модели:

layers.Dense(64, activation='relu', input_shape=(32,)),

# Добавляем другой:

layers.Dense(64, activation='relu'),

# Добавляем слой softmax с 10 выходами:

layers.Dense(10, activation='softmax')])

model.compile(optimizer=tf.keras.optimizers.Adam(0.01),

         loss='categorical_crossentropy',

          metrics=['accuracy'])
tf.keras.Model.compile принимает три важных аргумента:

  • optimizer: Этот объект определяет процедуру обучения. Передайте в него экземпляры оптимизатора из модуля tf.keras.optimizers, такие как tf.keras.optimizers.Adam или tf.keras.optimizers.SGD. Если вы просто хотите использовать параметры по умолчанию, вы также можете указать оптимизаторы ключевыми словами, такими как 'adam' или 'sgd'.
  • loss: Это функция которая минимизируется в процессе обучения. Среди распространенных вариантов среднеквадратичная ошибка (mse), categorical_crossentropy, binary_crossentropy. Функции потерь указываются по имени или передачей вызываемого объекта из модуля tf.keras.losses.
  • metrics: Используются для мониторинга обучения. Это строковые имена или вызываемые объекты из модуля tf.keras.metrics.
  • Кроме того, чтобы быть уверенным, что модель обучается и оценивается eagerly, проверьте что вы передали компилятору параметр run_eagerly=True

Далее посмотрим несколько конфигурации модели для обучения:


# Сконфигурируем модель для регрессии со среднеквадратичной ошибкой.

model.compile(optimizer=tf.keras.optimizers.Adam(0.01),

         loss='mse',  # mean squared error

         metrics=['mae']) # mean absolute error

 

# Сконфигурируем модель для категориальной классификации.

model.compile(optimizer=tf.keras.optimizers.RMSprop(0.01),

         loss=tf.keras.losses.CategoricalCrossentropy(),

         metrics=[tf.keras.metrics.CategoricalAccuracy()])

 

 Архитектура автоэнкодера с одним скрытым слоем

Изначально в качестве исходной архитектуры была выбрана Vanilla, изображенная на рисунке 3.2.

Рисунок 3.2 — Архитектура автоэнкодера Vanilla

Такой автоэнкодер является сетью из трех слоев, то есть нейронной сетью с одним скрытым слоем. Вход и выход совпадают, следовательно, восстановить входные данные, используя, например, оптимизатор adam и функцию ошибки кросс-энтропии.

, где  и  — размеры слоя;  — значения сигнала в точке ;  — значение сигнала, восстановленного автоэнкодером, в точке .

В такой архитектуре мы заменяем классические функции активации с ReLU на Leaky ReLU, так как у нейронной сети присутствуют отрицательные веса:

Программная модель автоэнкодера изображена на рисунке 2.5.

Рисунок 3.3 — Программная модель архитектуры Vanilla

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

Рисунок 3.4 — График значении функции кросс-энтропии при обучении


Поделиться с друзьями:

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

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

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

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.