В каждой отрасли есть свой жаргон, и машинное обучение (ML) не исключение. Вот краткий контрольный список ключевых терминов, с которыми должны быть знакомы все начинающие разработчики машинного обучения при построении моделей.

Типы слоев и моделей

Глубокое обучение (DL) в машинном обучении - это современный уровень техники. Все модели DL сегодня основаны на нейронных сетях. Нейронные сети состоят из слоев нейронов (также известных как тензоры), которые хранят состояние чего-либо (например, значения пикселей) и связаны с нейронами в последующие уровни, которые хранят состояние объектов более высокого уровня (например, группы пикселей). Между этими слоями находятся веса, которые регулируются во время обучения и в конечном итоге используются для составления прогнозов.

Ниже приведены распространенные типы слоев нейронной сети, с которыми необходимо ознакомиться:

  • Входной слой: первый уровень нейронной сети, представляющий входные данные (например, данные изображения).
  • Выходной слой: последний уровень нейронной сети, который содержит результат модели для заданного входа (например, классификация изображений).
  • Скрытые слои: слои, которые находятся между входом и выходом нейронной сети, для выполнения преобразований. данные.
  • Плотный (также известный как полностью связанный слой): слой, все его выходы подключены ко всем входам следующего слоя.
  • Свертка: фундамент для построения Сверточных нейронных сетей (CNN).
  • Рекуррент: обеспечивает возможность зацикливания, когда входные данные уровня включают как данные для анализа, так и выходные данные из предыдущего вычисления, выполненного на этом слое. Рекуррентные слои составляют основу Рекуррентной нейронной сети (РНС).
  • Остаточный блок: остаточные нейронные сети (ResNets) группируют два или более слоя как остаточные блоки, чтобы избежать проблемы исчезающего градиента.

Практики машинного обучения используют разные типы слоев для разной архитектуры нейронных сетей. Общие примеры нейронных сетей включают VGG16, ResNet50, InceptionV3 и MobileNetV2. Обратите внимание, что многие из этих моделей предоставляются Keras Applications и доступны через компоненты в PerceptiLabs, что позволяет быстро создавать модели с использованием трансферного обучения.

Основы

Слои и взаимосвязи модели образуют внутренние или обучаемые параметры, которые настраиваются во время тренировки. Ключевые параметры включают:

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

Во время обучения базовый механизм машинного обучения оптимизирует модель, корректируя ее веса и смещения. Для этого используются следующие алгоритмы:

  • Оптимизатор: обновляет модель, чтобы помочь ей изучать сложные шаблоны данных. Общие алгоритмы включают: ADAM, Стохастический градиентный спуск (SGD), Adagrad и RMSprop.
  • Функция активации: математическая функция, которая добавляет нелинейности выходному сигналу нейрона. Примеры включают: сигмоид, ReLU и Tanh.
  • Функция потерь (также известная как функция ошибок): измеряет, приводят ли корректировки оптимизатора для одной обучающей выборки к повышению производительности (т. е. показывает, насколько хорошо модель делает прогнозы с учетом набор весов и значений смещения). Общие функции потерь включают кросс-энтропию, квадратичную и игра в кости.
  • Функция затрат: проверяет, приводят ли корректировки оптимизатором по всем обучающим выборкам к повышению производительности модели.

Обучение обычно включает разбиение данных на три набора:

  • Обучающие данные: используются для оптимизации весов и смещений модели путем предоставления достоверных данных (например, изображений с соответствующими метками, которые заведомо верны).
  • Проверочные данные: используются для проверки точности модели во время обучения.
  • Тестовые данные: используются для проверки производительности окончательной обученной модели на данных, которых она раньше не видела.

Важно избегать недостаточной подгонки во время обучения (т. Е. Обучения модели, которая слишком проста для точного изучения данных), а также чрезмерной подгонки подгонка (т. е. обучение модели, которая слишком сложна для точного прогнозирования на новых, невидимых данных). Специалисты по машинному обучению могут настроить ряд контролируемых пользователем параметров, называемых гиперпараметрами, чтобы разработать модель как можно лучше:

  • Размер пакета: количество обучающих выборок для обучения, прежде чем оптимизатор обновит параметры модели.
  • Эпохи: количество проходов по всему набору обучающих данных (включая все пакеты).
  • Loss: используемый алгоритм функции потерь.
  • Скорость обучения: насколько нужно изменить параметры модели на основе ошибки, рассчитанной после их обновления.
  • Оптимизатор: используемый алгоритм оптимизатора.
  • Перемешать: случайным образом изменяет порядок обучающих данных, чтобы сделать модель более надежной.
  • Dropout: уловка регуляризации для уменьшения переобучения путем игнорирования случайно выбранных выходных данных слоя. Каждое обновление слоя затем эффективно выполняется в другом представлении этого слоя.

Этот контрольный список, конечно же, не является исчерпывающим - мы могли бы легко написать целый набор книг об основах! Однако эти ключевые элементы - хорошее начало.

Тем, кто хочет поэкспериментировать с этими основами в Perceptilabs, обязательно ознакомьтесь с документацией PerceptiLabs и нашим руководством по началу работы.