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