Читаем Нейросети. Обработка естественного языка полностью

max_sequence_length = max([len(seq) for seq in sequences])

padded_sequences = tf.keras.preprocessing.sequence.pad_sequences(sequences, maxlen=max_sequence_length)

# Преобразуем метки в массив numpy

labels = np.array(labels)

# Создаем модель CNN

model = tf.keras.Sequential([

tf.keras.layers.Embedding(input_dim=1000, output_dim=16, input_length=max_sequence_length),

tf.keras.layers.Conv1D(128, 3, activation='relu'), # Уменьшили размер ядра до 3

tf.keras.layers.GlobalMaxPooling1D,

tf.keras.layers.Dense(1, activation='sigmoid')

])

# Компилируем модель

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# Обучаем модель

history = model.fit(padded_sequences, labels, epochs=10, verbose=1)

# Оцениваем модель на тестовых данных

test_texts = ["Это лучшая книга.", "Не стоит тратить деньги.", "Мне понравился фильм.", "Ужасное качество товара."]

test_labels = [1, 0, 1, 0] # Метки для тестовых данных

test_sequences = tokenizer.texts_to_sequences(test_texts)

padded_test_sequences = tf.keras.preprocessing.sequence.pad_sequences(test_sequences, maxlen=max_sequence_length)

test_labels = np.array(test_labels)

test_loss, test_accuracy = model.evaluate(padded_test_sequences, test_labels)

print(f"Точность на тестовых данных: {test_accuracy:.4f}")

# Визуализация результатов

plt.figure(figsize=(12, 4))

plt.subplot(1, 2, 1)

plt.plot(history.history['accuracy'], label='Точность на обучении')

plt.xlabel('Эпохи')

plt.ylabel('Точность')

plt.legend

plt.subplot(1, 2, 2)

plt.plot(history.history['loss'], label='Потери на обучении')

plt.xlabel('Эпохи')

plt.ylabel('Потери')

plt.legend

plt.show

На графиках, полученных после выполнения предоставленного кода, вы увидите результаты обучения и оценку модели. Давайте разберем подробнее:

1. График точности на обучении (Точность на обучении): Этот график показывает, как точность модели изменяется в течение эпох обучения. Точность на обучении измеряет, как хорошо модель предсказывает данные обучения. Вы ожидаете, что точность будет увеличиваться с каждой эпохой. Если точность растет, это может указывать на то, что модель успешно изучает данные.

2. График потерь на обучении (Потери на обучении): Этот график отражает, как уменьшается потеря модели на обучении с течением эпох. Потери представляют собой меру того, насколько сильно предсказания модели отличаются от фактических меток. Цель – минимизировать потери. Уменьшение потерь также указывает на успешное обучение модели.

На практике хорошо обученная модель будет иметь следующие характеристики:

– Точность на обучении растет и стабилизируется на определенном уровне.

– Потери на обучении уменьшаются и стабилизируются на низком уровне.

Если точность на тестовых данных также высока, это означает, что модель успешно обобщает знания на новые, ранее не виденные данные.

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



Кроме того, существуют более сложные архитектуры, которые комбинируют RNN и CNN, чтобы использовать преимущества обоих типов сетей. Например, архитектура под названием Transformer, изначально разработанная для машинного перевода, стала основой для многих современных моделей в NLP, таких как BERT и GPT.

Архитектура Transformer представляет собой мощный прорыв в области обработки естественного языка (NLP) и обработки последовательностей в целом. Она представляет собой нейронную сеть, спроектированную специально для работы с последовательностями, и она имеет ряд ключевых особенностей:

1. Механизм внимания: Одной из ключевых особенностей Transformer является механизм внимания. Внимание позволяет модели фокусироваться на разных частях входных данных в зависимости от их важности. Это улучшает способность модели обрабатывать длинные последовательности и улавливать долгосрочные зависимости в данных.

2. Свёрточные и полносвязные слои: Transformer включает в себя свёрточные слои, которые работают с каждой позицией в последовательности независимо. Это позволяет модели извлекать локальные признаки из текста. Также в архитектуре есть полносвязные слои, которые обрабатывают информацию с учётом взаимодействия всех позиций в последовательности.

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

4. Многоголовое внимание: Transformer также использует многоголовое внимание (multi-head attention), что позволяет модели фокусироваться на разных аспектах входных данных одновременно. Это способствует изучению различных типов зависимостей в данных.

5.Позиционное кодирование: Поскольку Transformer не имеет встроенной информации о позиции слова в последовательности (как у RNN), используется позиционное кодирование. Это позволяет модели учитывать позицию каждого элемента в последовательности.

Перейти на страницу:

Похожие книги

Основы объектно-ориентированного программирования
Основы объектно-ориентированного программирования

Фундаментальный учебник по основам объектно-ориентированного программирования и инженерии программ. В книге подробно излагаются основные понятия объектной технологии – классы, объекты, управление памятью, типизация, наследование, универсализация. Большое внимание уделяется проектированию по контракту и обработке исключений, как механизмам, обеспечивающим корректность и устойчивость программных систем.В книге Бертрана Мейера рассматриваются основы объектно-ориентированного программирования. Изложение начинается с рассмотрения критериев качества программных систем и обоснования того, как объектная технология разработки может обеспечить требуемое качество. Основные понятия объектной технологии и соответствующая нотация появляются как результат тщательного анализа и обсуждений. Подробно рассматривается понятие класса - центральное понятие объектной технологии. Рассматривается абстрактный тип данных, лежащий в основе класса, совмещение классом роли типа данных и модуля и другие аспекты построения класса. Столь же подробно рассматриваются объекты и проблемы управления памятью. Большая часть книги уделена отношениям между классами – наследованию, универсализации и их роли в построении программных систем. Важную часть книги составляет введение понятия контракта, описание технологии проектирования по контракту, как механизма, обеспечивающего корректность создаваемых программ. Не обойдены вниманием и другие важные темы объектного программирования – скрытие информации, статическая типизация, динамическое связывание и обработка исключений. Глубина охвата рассматриваемых тем делает книгу Бертрана Мейера незаменимой для понимания основ объектного программирования.

Бертран Мейер

Прочая компьютерная литература / Книги по IT
SAP R/3 Системное администрирование
SAP R/3 Системное администрирование

Эта книга полностью обновлена и тщательно пересмотрена. Она является необходимым пособием для руководителей информационных служб, технических консультантов и системных администраторов R/3, которые хотят иметь полное представление об администрировании Basis.Знания, полученные "из первых рук" от различных специалистов SAP Global Support, работавших над реализацией более 20000 систем R/3, служат основой этой книги, которая научит выполнять все критически важные задачи системного администрирования с оптимальной эффективностью. Она учит быстро принимать правильные решения в сложных ситуациях, используя рекомендации экспертов и ценные рекомендации из реального мира, которые делают это уникальное пособие необходимым для повседневного использования.Кроме всего прочего, эта книга является ценным источником, помогающим подготовиться к экзамену СТС (Certified Technical Consultant) no R/3 Release 4.6C и Enterprise.В руководстве рассмотрены:# Настройка системной инфраструктуры.# Администрирование клиента.# Пользователи и полномочия.# Фоновая обработка.# Архивирование данных.# Администрирование спула.# Обслуживание инстанций.# Системный мониторинг.И многое другое.

Лиане Вилл , Сигрид Хагеман

Прочая компьютерная литература / Книги по IT