Нейронно-структурированное обучение: обучение со структурированными сигналами

МЕНЮ


Искусственный интеллект
Поиск
Регистрация на сайте
Помощь проекту

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


2020-10-10 10:09

Нейронное структурированное обучение (NSL) - это новая парадигма обучения для обучения нейронных сетей путем использования структурированных сигналов в дополнение к входам функций. Структура может быть явной, представленной графом, или неявной, вызванной состязательным возмущением.

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

NSL обобщает Neural Graph Learning, а также Adversarial Learning. Инфраструктура NSL в TensorFlow предоставляет следующие простые в использовании API и инструменты для разработки моделей со структурированными сигналами:

API-интерфейсы Keras для обучения с графами (явная структура) и состязательными возмущениями (неявная структура).
Операции и функции TF для обеспечения обучения со структурой при использовании низкоуровневых API TensorFlow
Инструменты для построения графиков и построения входных данных графиков для обучения

Включение структурированных сигналов выполняется только во время обучения. Таким образом, производительность рабочего процесса обслуживания/вывода остается неизменной. Более подробную информацию о нейронном структурированном обучении можно найти в нашем описании структуры. Для начала, пожалуйста, ознакомьтесь с нашим руководством по установке, и для практического введения в NSL, ознакомьтесь с нашими учебниками.

import tensorflow as tf
import neural_structured_learning as nsl

# Prepare data.
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

# Create a base model -- sequential, functional, or subclass.
model = tf.keras.Sequential([
    tf.keras.Input((28, 28), name='feature'),
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(128, activation=tf.nn.relu),
    tf.keras.layers.Dense(10, activation=tf.nn.softmax)
])

# Wrap the model with adversarial regularization.
adv_config = nsl.configs.make_adv_reg_config(multiplier=0.2, adv_step_size=0.05)
adv_model = nsl.keras.AdversarialRegularization(model, adv_config=adv_config)

# Compile, train, and evaluate.
adv_model.compile(optimizer='adam',
                  loss='sparse_categorical_crossentropy',
                  metrics=['accuracy'])
adv_model.fit({'feature': x_train, 'label': y_train}, batch_size=32, epochs=5)
adv_model.evaluate({'feature': x_test, 'label': y_test})


Источник: www.tensorflow.org

Комментарии: