Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Топ:
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Интересное:
Влияние предпринимательской среды на эффективное функционирование предприятия: Предпринимательская среда – это совокупность внешних и внутренних факторов, оказывающих влияние на функционирование фирмы...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Дисциплины:
2020-05-07 | 120 |
5.00
из
|
Заказать работу |
|
|
Настройка модели нейронной сети
В 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. Большинство из них используют общий конструктор аргументов:
# Создадим слой с сигмоидой:
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 принимает три важных аргумента:
Далее посмотрим несколько конфигурации модели для обучения:
# Сконфигурируем модель для регрессии со среднеквадратичной ошибкой.
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 — График значении функции кросс-энтропии при обучении
|
|
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!