Спринт 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: Полносвязные сети → Урок 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: Полносвязные сети → Урок 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: Полносвязные сети → Урок 9/14
Кратко:
- Работа с изображениями в Python с использованием библиотеки OpenCV и NumPy.
- Изображения представлены в виде двумерного массива чисел.
- Пример загрузки картинки и преобразования ее в NumPy-массив.
- Примеры работы с массивом, включая задачи по анализу и обработке изображений.
Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 10/14
Кратко:
- Цветные изображения состоят из трёх каналов: красного, зелёного и синего.
- Трёхмерные массивы в NumPy устроены аналогично двумерным.
- В трёхмерном массиве первая координата - номер строки, вторая - номер столбца, третья - номер канала.
- В каждом пикселе массива хранятся три числа: яркость красного, зелёного и синего каналов.
Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 11/14
Кратко:
- Многоклассовая классификация - это классификация объектов, принадлежащих одному из нескольких классов.
- В логистической регрессии для многоклассовой классификации используется полносвязная сеть с тремя нейронами в выходном слое.
- Функция потерь вычисляется аналогично бинарной кросс-энтропии, но с использованием вероятностей, полученных сигмоидами.
- Вероятности вычисляются с использованием функции активации SoftMax, которая возвращает вероятности, сумма которых равна единице.
- В многоклассовой классификации инициализация последнего слоя меняется с sigmoid на softmax.
- Функция потерь минимизируется методом градиентного спуска, который требует производной по всем параметрам сети.
Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 12/14
Кратко:
- Задача многоклассовой классификации изображений для агрегатора магазинов одежды.
- Требуется классификатор на 10 классов, каждый класс соответствует определенной категории товаров.
- Цель: создать классификатор, который позволит определить категорию товара на сайте агрегатора.
- Датасет состоит из 10 классов с описанием товаров.
- Описание товаров может содержать некорректную информацию, поэтому работа с изображениями более эффективна.
- На входе модель получает чёрно-белую фотографию товара.
Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 13/14
Кратко:
- Обучение моделей на сервере требует ожидания своей очереди.
- Рекомендуется не откладывать задачи на потом, чтобы избежать увеличения очереди.
- Настройте обучение так, чтобы информация о прогрессе была доступна для быстрого исправления ошибок.
- Перед отправкой кода на сервер, проверьте его на своем компьютере.
- Создайте три функции для загрузки обучающей и тестовой выборки, а также для создания модели.
- Яркость изображений из обучающей выборки приведите к диапазону от 0 до 1.
- Создайте модель для нейронной сети и верните ее командой return.
- Убедитесь, что в этой части кода нет долгих операций, иначе предварительную проверку код не пройдет.
- Обучите и верните модель командой return.
- Функция train_model получает на вход модель, обучающую и тестовую выборку, аргументы для метода fit().
Спринт 19/25 → Тема 3/6: Полносвязные сети → Урок 14/14
Кратко:
- Умение обучать нейронные сети в Keras
- Строить полносвязные сети из нескольких слоёв
- Классификация изображений полносвязными сетями
- Шпаргалка и конспект темы для напоминания
- В следующей теме - свёрточные слои и классификация более сложных изображений
Заключение
Теперь вы умеете:
- Обучать нейронные сети в Keras;
- Строить полносвязные сети из нескольких слоёв;
- Классифицировать изображения полносвязными сетями.
Заберите с собой
Чтобы ничего не забыть, скачайте шпаргалку и конспект темы.
В следующей теме вы познакомитесь со свёрточными слоями и обучите нейронную сеть для классификации более сложных изображений.