Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 1/14

Кратко:
  • Тема статьи: полносвязные нейронные сети и обучение.
  • Цель: разобраться в устройстве полносвязных нейронных сетей и обучении.
  • Основные понятия: полносвязные нейронные сети, библиотека Keras.
  • Дополнительные навыки: классификация изображений полносвязными сетями.
  • Продолжительность обучения: 12 уроков по 10-15 минут

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 2/14

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

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 3/14

Кратко:
  • Keras - это интерфейс для работы с TensorFlow, созданной командой Google Brain.
  • Линейная регрессия - это тоже нейронная сеть, но лишь с одним нейроном.
  • В начале темы вы будете работать с данными из прошлых курсов.
  • В sklearn код выглядел бы так: # подключение sklearn from sklearn.linear_model import LinearRegression # создание модель model = LinearRegression() # обучить модель model.fit(features, target) В Keras этот же код такой: # подключение Keras from tensorflow import keras # создание модели model = keras.models.Sequential() # параметры нейронной сети model.add(keras.layers.Dense(units=1, input_dim=features.shape[1])) # как обучается нейронная сеть model.compile(loss='mean_squared_error', optimizer='sgd') # обучить модель model.fit(features, target)

КЗ.19/25.3/6.3/14.Задача 1

КЗ.19/25.3/6.3/14.Задача 2

КЗ.19/25.3/6.3/14.Задача 3

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 4/14

Кратко:
  • Линейная и логистическая регрессии - это нейронные сети с одним нейроном.
  • Разница между линейной и логистической регрессиями проявляется при наличии нескольких классов объектов.
  • Логистическая регрессия включает сигмоидную функцию, которая возвращает число в диапазоне от 0 до 1.
  • Функция потерь зависит от типа нейронной сети и задачи.
  • Для бинарной классификации подходит метрика Binary Cross-Entropy (BCE).
  • Функция ВСЕ используется для вычисления ошибки и оптимизации параметров сети.
  • Вероятность правильного ответа (p) зависит от значения целевого признака.
  • Если p приблизительно равно единице, то ошибка маленькая.
  • Если p≈0, то ошибка большая

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 5/14

Кратко:
  • Для получения логистической регрессии, нужно изменить код линейной регрессии в Keras.
  • К полносвязному слою примените функцию активации 'sigmoid'.
  • Поменяйте функцию потерь MSE на binary_crossentropy.
  • Модель должна быть скомпилирована с использованием оптимизатора 'sgd'.

КЗ.19/25.3/6.5/14.Задача 1

КЗ.19/25.3/6.5/14.Задача 2

КЗ.19/25.3/6.5/14.Задача 3

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 6/14

Кратко:
  • Полносвязные нейронные сети состоят из слоев нейронов, связанных между собой.
  • Скрытые слои - это все слои, кроме входного и выходного.
  • После каждого нейрона, кроме последнего, есть функция активации.
  • Для получения значения z нужно просуммировать произведения значений входов на веса.
  • Чтобы получить сигмоиду, нужно просуммировать значения входов на веса и сигмоиду.
  • Сигмоида позволяет сделать сеть сложнее и сделать ее более сложной.

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 7/14

Кратко:
  • Обучение нейронных сетей происходит с помощью градиентного спуска и минимизации функции потерь.
  • Многослойные сети могут быть обучены с помощью сайта TensorFlow Playground.
  • Затухание сигнала возникает из-за сигмоидной функции активации, которая преобразует большие значения в маленькие.
  • Для устранения затухания сигнала можно использовать функцию активации ReLU, которая пропускает положительные значения без изменений.
  • Успешное обучение сети требует выбора функции активации, количества скрытых слоев, нейронов и шага градиентного спуска

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 8/14

Полносвязные нейронные сети в Keras

Полносвязные слои в Keras создаются вызовом метода Dense(). Что нужно сделать, чтобы построить многослойную полносвязную сеть? Несколько раз добавить полносвязный слой! Чем больше слоёв, тем сложнее модель.

КЗ.19/25.3/6.8/14.Задача 1

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 9/14

Кратко:
  • Работа с изображениями в Python с использованием библиотеки OpenCV и NumPy.
  • Изображения представлены в виде двумерного массива чисел.
  • Пример загрузки картинки и преобразования ее в NumPy-массив.
  • Примеры работы с массивом, включая задачи по анализу и обработке изображений.

КЗ.19/25.3/6.9/14.Задача 1

КЗ.19/25.3/6.9/14.Задача 2

КЗ.19/25.3/6.9/14.Задача 3

КЗ.19/25.3/6.9/14.Задача 4

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 10/14

Кратко:
  • Цветные изображения состоят из трёх каналов: красного, зелёного и синего.
  • Трёхмерные массивы в NumPy устроены аналогично двумерным.
  • В трёхмерном массиве первая координата - номер строки, вторая - номер столбца, третья - номер канала.
  • В каждом пикселе массива хранятся три числа: яркость красного, зелёного и синего каналов.

КЗ.19/25.3/6.10/14.Задача 1

КЗ.19/25.3/6.10/14.Задача 2

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 11/14

Кратко:
  • Многоклассовая классификация - это классификация объектов, принадлежащих одному из нескольких классов.
  • В логистической регрессии для многоклассовой классификации используется полносвязная сеть с тремя нейронами в выходном слое.
  • Функция потерь вычисляется аналогично бинарной кросс-энтропии, но с использованием вероятностей, полученных сигмоидами.
  • Вероятности вычисляются с использованием функции активации SoftMax, которая возвращает вероятности, сумма которых равна единице.
  • В многоклассовой классификации инициализация последнего слоя меняется с sigmoid на softmax.
  • Функция потерь минимизируется методом градиентного спуска, который требует производной по всем параметрам сети.

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 12/14

Кратко:
  • Задача многоклассовой классификации изображений для агрегатора магазинов одежды.
  • Требуется классификатор на 10 классов, каждый класс соответствует определенной категории товаров.
  • Цель: создать классификатор, который позволит определить категорию товара на сайте агрегатора.
  • Датасет состоит из 10 классов с описанием товаров.
  • Описание товаров может содержать некорректную информацию, поэтому работа с изображениями более эффективна.
  • На входе модель получает чёрно-белую фотографию товара.

КЗ.19/25.3/6.12/14.Задача 1

КЗ.19/25.3/6.12/14.Задача 2

КЗ.19/25.3/6.12/14.Задача 3

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 13/14

Кратко:
  • Обучение моделей на сервере требует ожидания своей очереди.
  • Рекомендуется не откладывать задачи на потом, чтобы избежать увеличения очереди.
  • Настройте обучение так, чтобы информация о прогрессе была доступна для быстрого исправления ошибок.
  • Перед отправкой кода на сервер, проверьте его на своем компьютере.
  • Создайте три функции для загрузки обучающей и тестовой выборки, а также для создания модели.
  • Яркость изображений из обучающей выборки приведите к диапазону от 0 до 1.
  • Создайте модель для нейронной сети и верните ее командой return.
  • Убедитесь, что в этой части кода нет долгих операций, иначе предварительную проверку код не пройдет.
  • Обучите и верните модель командой return.
  • Функция train_model получает на вход модель, обучающую и тестовую выборку, аргументы для метода fit().

Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 14/14

Кратко:
  • Умение обучать нейронные сети в Keras
  • Строить полносвязные сети из нескольких слоёв
  • Классификация изображений полносвязными сетями
  • Шпаргалка и конспект темы для напоминания
  • В следующей теме - свёрточные слои и классификация более сложных изображений
Заключение

Теперь вы умеете:

  • Обучать нейронные сети в Keras;
  • Строить полносвязные сети из нескольких слоёв;
  • Классифицировать изображения полносвязными сетями.

Заберите с собой

Чтобы ничего не забыть, скачайте шпаргалку и конспект темы.

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