ML-модели и их виды

Модели машинного обучения — это фундамент, на котором разрабатывают современные AI-сервисы. Они позволяют на основе данных принимать решения, делать прогнозы и решать задачи, с которыми человек справляется интуитивно.
В предыдущих уроках мы обсудили основы машинного обучения, процесс работы с данными и построение моделей, определились во многих терминах. Теперь пришло время разобраться, какие модели существуют, как они работают и какие задачи могут решать. Мы рассмотрим архитектуры, которые лежат в основе наиболее передовых моделей с многомиллионными параметрами.
Машинное обучение — необходимый инструмент для решения задач, с которыми сталкивается современный бизнес. Модели, их архитектуры и параметры — это не просто абстракция. Это основные критерии, которые определяют, как эффективно и масштабируемо решаются реальные бизнес-задачи: от предсказания пользовательского поведения до автоматизации процессов.
Почему это важно
Каждая модель ориентирована на решение конкретного набора задач. Простые модели регрессии могут использоваться для прогнозирования числовых значений (например, продаж), а более сложные модели применяются для обработки изображений или текста. Знание, какая модель подходит для какой задачи, определяет требования к инфраструктуре и архитектуре всего решения.
Начнём с понятий «модель» и «алгоритм».

Модели и алгоритмы

Модель и алгоритм в машинном обучении взаимосвязаны, но не одинаковы.
  • Модель лучше представлять как конечный результат применения машинного обучения на данных. Формально это математическая функция, которая может принимать на вход новые данные и делать на их основе прогнозирование и многое другое. Модель включает в себя настройки (параметры), которые были получены в процессе обучения. Эти параметры определяют, как модель интерпретирует входные данные. Модель — это то, что будет развёрнуто в продакшн-среде и с чем будут взаимодействовать другие компоненты будущего решения.
  • Алгоритм машинного обучения — то, благодаря чему модель будет учиться выполнять более точное прогнозирование.

Виды моделей машинного обучения

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

1. Обучение с учителем

✏️ Обучение с учителем (Supervised Learning) — это метод, при котором модель обучается на размеченных данных. Каждому входному набору данных соответствует правильный выход или «метка» (целевой признак). Модель должна научиться предсказывать правильные метки для новых данных на основе того, что она выучила из обучающего набора.
Как это работает?
  1. Модель получает набор данных, где каждый элемент состоит из входных характеристик (например, признаки объекта) и известного результата (метки).
  2. Модель анализирует эти данные и настраивает свои внутренние параметры так, чтобы минимизировать разницу между предсказанными и реальными результатами.
Примеры таких алгоритмов
  • Классификация — определение, является ли электронное письмо спамом или нет (метка — «спам» или «не спам»).
  • Регрессия — прогнозирование цены дома на основе его характеристик (метка — «цена»).
Кейс
Представьте, что вы обучаете модель распознавать фотографии с изображением кошек. Вы предоставляете модели набор фотографий, каждая из которых размечена меткой «кошка» или «не кошка». Модель учится распознавать, какие особенности изображений указывают на присутствие кошки, и пытается предсказать метку для новых, не виденных ранее фотографий.

Данные

В машинном обучении изображения перед тем, как попасть в модель, представляются в виде числовых массивов. Каждый пиксель изображения имеет значение, которое описывает его яркость или интенсивность цвета. В случае цветных изображений (например, RGB), каждый пиксель представлен тремя значениями, одно для каждого цветового канала: красного (Red), зелёного (Green) и синего (Blue).
Перед подачей датасета в модель (например, в нейронную сеть) проходит несколько этапов обработки:
  1. Нормализация. Значения пикселей преобразуются в диапазон [0, 1] (например, делением каждого значения на 255, так как максимальная яркость пикселя равна 255).
  2. Масштабирование. Все изображения приводятся к одному размеру (например, 224x224 пикселя) для консистентности на входе модели.
Когда модель машинного обучения обрабатывает изображение, оно преобразуется в числовой формат — тензор. Таким образом, изображение, которое вы видите как визуальный объект, становится многомерным массивом чисел.
Как выглядит числовое представление на практике
Допустим, у вас есть изображение размером 3x3 пикселя. Каждому пикселю соответствует интенсивность цвета. Тогда это изображение можно представить так:

JAVASCRIPT

[[[0.5, 0.8, 0.6], [0.1, 0.3, 0.9], [0.4, 0.2, 0.7]],
 [[0.2, 0.1, 0.5], [0.8, 0.5, 0.6], [0.9, 0.7, 0.2]],
 [[0.3, 0.4, 0.1], [0.5, 0.6, 0.7], [0.8, 0.9, 0.2]]]
  
Здесь каждый подмассив из трёх чисел — это значения цветовых каналов (RGB) для одного пикселя. Модель будет обучаться на таких массивах данных, чтобы уметь различать изображения с меткой «кошка» и «не кошка».
Изображение № 1 Изображение представлено массивом, где каждый элемент массива соответствует интенсивности пикселей (например, [0.5, 0.8, 0.6, …]). Эти значения нормализованы (обычно в диапазоне от 0 до 1) для более эффективного обучения моделей. К массиву добавляется метка «кошка» (целевой признак), чтобы обучить модель распознавать, что на изображении есть кошка.
Изображение № 2 Это другое изображение, где массив чисел может выглядеть как [0.1, 0.2, 0.3, …], а метка для этого изображения будет «не кошка», так как на изображении кошки нет.
Для обучения модели (например, с помощью TensorFlow или PyTorch) такие массивы изображений и соответствующие метки подаются в модель в виде тензоров.
На этапе подготовки изображений к обучению используются несколько ключевых библиотек:
  • Pandas — для работы с метаданными изображений, если датасет состоит из файлов с метками, которые хранятся в табличной форме. Pandas предоставляет гибкие методы для обработки таких таблиц: фильтрации данных, обработки пропущенных значений или группировки по категориям.
  • OpenCV или Pillow — библиотеки для обработки изображений. Эти инструменты могут использоваться для ресайза, нормализации и преобразования изображений в форматы, которые будут подаваться в модель. Изображения могут быть приведены к одному размеру (например, 224x224 пикселя) для подачи на вход нейронной сети.
  • NumPy — используется для работы с массивами пикселей изображений. После обработки изображения представляются как массивы данных (тензоры), которые потом могут быть использованы для обучения модели.

Модели и инструменты для машинного обучения

TensorFlow/Keras — это один из наиболее популярных фреймворков для создания и обучения нейронных сетей. Он позволяет создавать сложные архитектуры, например, свёрточные нейронные сети (CNN), которые особенно эффективны для обработки изображений. TensorFlow поддерживает работу с GPU, что значительно ускоряет обучение моделей.
Пример
С помощью Keras можно легко создать модель CNN для распознавания изображений:

PYTHON

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# Инициализация модели последовательного типа
model = Sequential([
    
    # Первый свёрточный слой (Conv2D), применяет 32 фильтра 3x3, ReLU для активации
    Conv2D(32, (3, 3), activation='relu', input_shape=(224, 224, 3)),
    
    # Пулинговый слой (MaxPooling2D) для уменьшения размерности изображения, выборка максимальных значений в области 2x2
    MaxPooling2D(pool_size=(2, 2)),
    
    # Преобразование 2D данных в одномерный вектор для передачи в полносвязный слой
    Flatten(),
    
    # Полносвязный слой с 128 нейронами и функцией активации ReLU
    Dense(128, activation='relu'),
    
    # Выходной слой с одним нейроном для классификации (кошка/не кошка), сигмоидальная активация для бинарной классификации
    Dense(1, activation='sigmoid')
])

# Компиляция модели: используем Adam как оптимизатор и бинарную кросс-энтропию для функции потерь, метрика - точность
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# Вывод структуры модели
model.summary() 
Пояснение функций этой модели:
  • Conv2D — свёрточный слой с 32 фильтрами размера 3x3 и активацией ReLU. Это первый слой, который извлекает важные признаки из изображений — края или текстуры.
  • MaxPooling2D — слой пулинга, который уменьшает размерность данных, сохраняя при этом наиболее важные признаки.
  • Flatten — преобразует двумерные данные в одномерный вектор, чтобы их можно было использовать для дальнейших полносвязных слоёв.
  • Dense — полносвязные слои: первый — со 128 нейронами для обучения более сложных зависимостей, второй — выходной слой с одним нейроном для задач бинарной классификации (кошка/не кошка).
  • sigmoid — функция активации выходного слоя, которая возвращает вероятность от 0 до 1 для классификации.

2. Обучение без учителя

✏️ Обучение без учителя (Unsupervised Learning) — это метод, при котором модель обучается на неразмеченных данных. В этом случае у модели нет правильных ответов или меток для данных и задача модели — самостоятельно выявить скрытые структуры или паттерны в этих данных.
Как это работает?
  1. Модель получает только входные данные, без известных меток или результатов.
  2. Модель анализирует данные и пытается найти в них закономерности — группы (кластеры), связи между признаками или важные характеристики данных.
Примеры таких алгоритмов обучения
  • Кластеризация — разделение клиентов на группы по схожим покупательским предпочтениям.
  • Понижение размерности — сокращение числа признаков в наборе данных при сохранении его ключевой информации.
Кейс
У вас есть набор изображений, но вы не знаете, что на них изображено. Можно использовать алгоритм кластеризации, чтобы автоматически разделить изображения на группы, где каждая содержит похожие изображения (например, все фотографии с мопсами оказываются в первой группе, а с лабрадорами — во второй). Модель не знает, что такое порода собаки, но находит паттерны, которые позволяют разделить изображения на осмысленные группы.

3. Обучение с подкреплением

✏️ Обучение с подкреплением (Reinforcement Learning, RL) — это метод машинного обучения, в котором агент взаимодействует с окружающей средой для выполнения определённой задачи, обучаясь на основе обратной связи в виде вознаграждений или наказаний.
В отличие от обучения с учителем здесь нет заранее известных меток или правильных ответов для каждого действия. Вместо этого агент настраивает свою стратегию, чтобы максимизировать долгосрочные вознаграждения.
Как это работает?
  • Агент (Agent) — это сервис или алгоритм, который принимает решения о том, какое действие предпринять в каждом состоянии среды. Агент может быть программой, роботом или любым другим интеллектуальным объектом, который учится на основе взаимодействия с миром.
  • Среда (Environment) — это внешний мир или ситуация, в которой действует агент. Она предоставляет агенту информацию о текущем состоянии и выдаёт вознаграждения на основе действий агента.
  • Состояние (State) — текущее описание среды, в которой находится агент. Оно включает всю доступную информацию о мире, с которой агент может работать для принятия решений.
  • Действие (Action) — выбор агента, который влияет на состояние среды. На каждом шаге агент выбирает действие на основе своей стратегии.
  • Вознаграждение (Reward) — обратная связь от среды после того, как агент совершает действие. Вознаграждение может быть положительным (если действие привело к желаемому результату) или отрицательным (если действие оказалось неудачным). Цель агента — максимизировать совокупное вознаграждение.
  • Политика (Policy) — стратегия или правило, по которому агент выбирает действия на основе состояния среды. Политика может быть статичной или динамически изменяющейся в зависимости от опыта агента. Необязательный элемент.
  • Функция ценности (Value Function) — это оценка ожидаемого вознаграждения для каждого состояния. Она помогает агенту предсказывать, насколько выгодно попадание в определённое состояние. Необязательный элемент.
Примеры алгоритмов обучения с подкреплением
  • Q-Learning — алгоритм, в котором агент строит Q-таблицу для оценки полезности каждого действия в каждом состоянии. Постепенно агент улучшает свои оценки, учась максимизировать долгосрочные вознаграждения.
  • Deep Q-Networks (DQN) — это улучшение Q-Learning, где агент использует нейронную сеть для обучения в сложных средах с большим количеством состояний, таких как игры или сложные задачи робототехники.
Кейс
Робот учится перемещаться по лабиринту. Агент (робот) получает информацию о своём текущем положении (состояние), выбирает направление движения (действие) и получает вознаграждение в зависимости от того, насколько удачно он приблизился к цели.
Например, за продвижение в правильном направлении робот получает положительное вознаграждение (+1), а если сталкивается с препятствием или идёт в неверном направлении, то получает отрицательное вознаграждение (-1). Эти вознаграждения — обратная связь, которая позволяет агенту постепенно улучшать свои решения.
По мере обучения робот начинает адаптировать свои действия, минимизируя ошибки и ускоряя достижение цели. Этот процесс называется максимизацией кумулятивного вознаграждения, где робот учится не только избегать штрафов, но и выбирать оптимальные действия для достижения наилучшего результата в долгосрочной перспективе.
Реализация Q-Learning
Рассмотрим простой пример реализации Q-Learning с помощью библиотеки NumPy для задачи перемещения робота по лабиринту. Мы создадим Q-таблицу, которая поможет агенту принимать решения на основе опыта взаимодействия с миром.

PYTHON

import numpy as np

# Параметры Q-Learning
alpha = 0.1  # Скорость обучения
gamma = 0.9  # Коэффициент дисконтирования
epsilon = 0.1  # Параметр для ε-greedy стратегии (исследование)

# Определение среды (простой лабиринт 4x4)
grid_size = 4
reward_matrix = np.zeros((grid_size, grid_size))
reward_matrix[grid_size-1, grid_size-1] = 1  # Целевая точка с вознаграждением

# Инициализация Q-таблицы (состояния x действия)
q_table = np.zeros((grid_size * grid_size, 4))  # 4 действия: вверх, вниз, влево, вправо

# Вспомогательные функции для конвертации состояния и действий
def state_to_position(state):
    return state // grid_size, state % grid_size

def position_to_state(position):
    return position[0] * grid_size + position[1]

def is_terminal_state(state):
    return reward_matrix[state_to_position(state)] == 1

def get_available_actions(state):
    actions = []
    row, col = state_to_position(state)
    if row > 0: actions.append(0)  # вверх
    if row < grid_size - 1: actions.append(1)  # вниз
    if col > 0: actions.append(2)  # влево
    if col < grid_size - 1: actions.append(3)  # вправо
    return actions

def take_action(state, action):
    row, col = state_to_position(state)
    if action == 0 and row > 0: row -= 1  # вверх
    elif action == 1 и row < grid_size - 1: row += 1  # вниз
    elif action == 2 and col > 0: col -= 1  # влево
    elif action == 3 and col < grid_size - 1: col += 1  # вправо
    new_state = position_to_state((row, col))
    return new_state, reward_matrix[(row, col)]

# Цикл Q-Learning
episodes = 1000
for episode in range(episodes):
    state = np.random.randint(0, grid_size * grid_size)  # Случайное начальное состояние
    while not is_terminal_state(state):
        # Выбор действия (ε-greedy стратегия)
        if np.random.uniform(0, 1) < epsilon:
            action = np.random.choice(get_available_actions(state))  # Исследование
        else:
            action = np.argmax(q_table[state, :])  # Эксплуатация

        # Выполнение действия
        new_state, reward = take_action(state, action)

        # Обновление Q-значения
        best_future_q = np.max(q_table[new_state, :])
        q_table[state, action] = q_table[state, action] + alpha * (reward + gamma * best_future_q - q_table[state, action])

        state = new_state  # Переход к новому состоянию

# Вывод итоговой Q-таблицы
import pandas as pd
q_table_df = pd.DataFrame(q_table, columns=["Вверх", "Вниз", "Влево", "Вправо"])
print(q_table_df) 
Как это работает?
  • Q-таблица содержит оценки для каждого действия в каждом состоянии. В процессе обучения эти оценки обновляются, основываясь на вознаграждении, полученном за выполнение действий.
  • Эпсилон-жадная стратегия (ε-greedy) используется, чтобы агент мог как исследовать новые действия, так и использовать накопленный опыт для выбора наилучшего действия.
  • В конце обучения Q-таблица содержит оптимальные действия для каждого состояния, что позволяет агенту быстрее достигать цели.
Обучение с подкреплением особенно эффективно для задач, где агент должен принимать последовательные решения в условиях неопределённости. Этот подход применяется, например, в робототехнике.

Структура моделей машинного обучения

Наверняка вы уже применяли в работе или просто пробовали YandexGPT от Яндекса или ChatGPT от OpenAI. Это AI-ассистенты, которые способны вести осмысленные диалоги, отвечать на вопросы и помогать в самых разных задачах. Но задумывались ли вы, как эти сервисы работают под капотом? В основе таких решений лежит класс моделей LLM.
✏️ LLM (Large Language Models) — это общий термин, который охватывает целый класс больших языковых моделей, обладающих миллиардами параметров и выполняющих задачи, связанные с обработкой текста. Они могут генерировать связные тексты, переводить языки, анализировать текстовые данные и писать код.
Сюда входят не только GPT, но и BERT, T5, RoBERTa и многие другие. Все они могут считаться LLM, если имеют значительное количество параметров и обучены на больших объёмах текстовых данных.
✏️ GPT — это конкретная реализация LLM.
GPT (Generative Pre-trained Transformer) использует архитектуру трансформера, которая позволяет модели эффективно обучаться и обрабатывать длинные последовательности текста. “Pre-trained” означает, что модель предварительно обучена на большом корпусе текстов, а затем может быть дообучена для выполнения специфических задач.
GPT-3 от OpenAI имеет около 175 миллионов параметров. По неофициальным данным исследователей, у новейшей модели GPT-4 приблизительно 500 миллионов параметров.

Нейросети

Прежде чем пойдём дальше и изучим архитектуру на примере GPT, обсудим нейросети.
Нейросети — это те же модели, которые мы упомянули ранее, но только с особенной структурой. Если представить графически, то это многослойная структура, состоящая из нейронов (функций), напоминающих биологические нейронные связи в человеческом мозге. Поэтому они и называются нейросети.
Структура нейросети позволяет моделировать нелинейные зависимости в данных. В отличие от других моделей машинного обучения, таких как линейная регрессия или деревья решений, которые имеют фиксированную и предсказуемую архитектуру, нейросети могут применяться в самых разных задачах благодаря своей глубине (количеству слоёв).

Архитектура нейронных сетей

Итак, GPT — это конкретная реализация LLM модели. Различие в том, что LLM — это конкретный тип нейросети, ориентированный на работу с текстом. Давайте посмотрим, что у GPT внутри и как она работает.
GPT реализована на архитектуре трансформер (transformer).
Трансформер (transformer) — это нейросетевая архитектура, которая состоит из нескольких компонентов:
1. Позиционное кодирование (Positional Encoding)
Поскольку трансформер обрабатывает все элементы параллельно, ему нужно знать порядок этих элементов. Позиционное кодирование добавляет информацию о том, где каждое слово или элемент находится в последовательности, чтобы модель могла учитывать порядок слов.
2. Кодировщик (Encoder)
Это компонент, который обрабатывает входные данные (например, текст или изображение). Он состоит из нескольких слоёв, каждый из которых выполняет свои задачи:
  • Эмбендинг «Внимание» (Self-Attention). Этот механизм помогает модели понять, как каждое слово или элемент связан с другими в той же последовательности. Например, он помогает понять, что «она» в предложении относится к «Алисе», а «он» — к «Андрею».
  • Обработка данных (Feed-Forward Network). После «внимания» данные дополнительно обрабатываются, чтобы выявить ключевые признаки.
3. Декодер (Decoder)
Компонент, который отвечает за создание выходных данных (например, перевода или ответа) и также состоит из нескольких слоёв как кодировщик, но с одной особенностью.
  • Внимание к кодировщику (Encoder-Decoder Attention). Декодер анализирует результаты работы кодировщика, чтобы понять, какие части входных данных важны для создания правильного ответа.
4. Механизм внимания (Attention Mechanism)
Этот механизм — ключевая особенность архитектуры трансформера, которая позволяет модели фокусироваться на разных частях данных одновременно. Модель использует несколько «точек» внимания, чтобы одновременно учитывать разные аспекты контекста, например, кто выполняет действие и какое это действие.
Слой кодировщика «Внимание» и компонент «Механизм внимания» — не одно и то же, хоть они и схожи по функциям.
Нейросетевая архитектура — отдельный уровень математической абстракции. Необязательно знать все уровни абстракции этой архитектуры, важно просто понимать их особенность при разработке AI-решений и сервисов.

Задание 1

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

Задание 2

Представьте, что вы работаете с большим набором данных, который не содержит меток или правильных ответов. Ваша задача — разделить данные на несколько групп, где каждый элемент внутри группы максимально похож на другие элементы этой группы.
Какой метод машинного обучения подойдёт для решения этой задачи?
Обучение с учителем требует наличия размеченных данных, где каждому входу соответствует метка или правильный ответ. В данном случае метки отсутствуют, поэтому этот метод не подходит.
Обучение без учителя как раз предназначено для работы с неразмеченными данными. Модель выявляет скрытые структуры в данных, такие как кластеры, и самостоятельно группирует объекты без заранее известных меток.
Обучение с подкреплением применяется в задачах, где модель (агент) взаимодействует с окружающей средой и учится на основе обратной связи в виде вознаграждений или наказаний. В данном случае задача заключается в делении данных на группы, что лучше всего решается обучением без учителя.

Задание 3

Какие из следующих факторов делают LLM (Large Language Models) мощными инструментами в обработке текста и выполнении различных задач? Выберите все правильные ответы.
Большое количество слоёв и нейронов в архитектуре LLM делает их более мощными и гибкими, что позволяет эффективно обрабатывать текст и решать сложные задачи.
LLM обучаются на огромных и универсальных наборах данных, которые охватывают разнообразные задачи. Это позволяет моделям решать широкий спектр задач, не ограничиваясь специализированными задачами.
Одна из главных причин, по которой LLM эффективны, — их обучение на больших объёмах текстовых данных. Это позволяет моделям понимать контекст, синтаксис и семантику текста на более глубоком уровне.
Трансформерная архитектура с механизмом внимания позволяет LLM эффективно обрабатывать длинные текстовые последовательности, что делает их мощными для задач, требующих анализа сложного контекста.
LLM обладают огромным количеством параметров, но это количество не фиксировано для всех задач. Модель может адаптироваться к конкретной задаче, и её эффективность зависит от количества обучаемых параметров.
Модели LLM, такие как GPT-3 и GPT-4, содержат миллиарды параметров, что помогает им решать широкий спектр задач: от генерации текста до перевода и анализа данных.

Задание 4

Какую задачу решает позиционное кодирование в архитектуре Transformer? Выберите один правильный ответ.
Позиционное кодирование не связано с объёмом данных, на которых обучается модель. Оно добавляется, чтобы учитывать порядок элементов в последовательности, а обучение модели на больших наборах данных связано с её общими возможностями обрабатывать больше информации и извлекать закономерности.
Хотя механизм внимания действительно помогает учитывать зависимость между словами в предложении, позиционное кодирование добавляется для того, чтобы модель знала, в каком порядке идут слова. Таким образом, зависимость между словами может быть правильно обработана.
Поскольку трансформеры обрабатывают все элементы параллельно, позиционное кодирование добавляет информацию о порядке слов, что позволяет модели учитывать последовательность элементов. Это важный аспект для работы с текстом, где порядок слов имеет значение для смысла предложения.
Позиционное кодирование не влияет на количество слоёв в модели. Оно связано с тем, чтобы предоставить информацию о порядке элементов в последовательности, а количество слоёв определяется архитектурой модели и её сложностью.

Задание 5

Какие из следующих задач являются примерами задачи классификации? Выберите все правильные ответы. 
Прогнозирование цены акций относится к задаче регрессии, так как результатом является непрерывное числовое значение, а не предсказание одной из категорий. В регрессии модель обучается предсказывать конкретные числовые значения на основе входных данных.
Определение, является ли письмо спамом, — это задача бинарной классификации. Модель предсказывает принадлежность к одной из двух категорий: «спам» или «не спам», что является классическим примером задачи классификации.
Определение сегментов клиентов относится к кластеризации, которая является методом обучения без учителя. В такой задаче модель самостоятельно находит группы клиентов с похожим поведением, не имея заранее определённых меток для этих групп.
Распознавание объектов на изображении, где результатом является принадлежность изображения к одной из категорий (например, кот, собака, птица), является примером многоклассовой классификации. Модель должна выбрать одну категорию из нескольких возможных.
Обучение робота перемещаться по комнате — пример задачи обучения с подкреплением, где агент учится через взаимодействие с окружающей средой, получая вознаграждения или наказания за свои действия. Это не классификация.
Определение тональности отзыва — это задача классификации, где модель определяет одну из нескольких категорий (положительный, нейтральный, отрицательный). Это пример многоклассовой классификации, где результатом является одна из заранее определённых категорий.

Задание 6

Соотнесите компоненты архитектуры трансформера и их функции. Некоторые компоненты могут иметь несколько функций, и к каждому компоненту может относиться более одного ответа.
Добавляет информацию о последовательности элементов для учёта порядка
Позиционное кодирование
Позиционное кодирование добавляет информацию о порядке элементов, чтобы модель могла учитывать последовательность.
Передаёт выходные данные в декодер и обрабатывает входные данные, формируя эмбендинги для каждого элемента
Кодировщик
Кодировщик обрабатывает входные данные, формируя эмбендинги и передавая результаты декодеру.
Вычисляет взвешенные связи между элементами данных
Механизм внимания (Self-Attention)
Механизм внимания вычисляет взвешенные связи между элементами данных, помогая определить, на чём нужно сосредоточиться.
Выделяет ключевые признаки из выходных данных кодировщика. Преобразует полученные данные для генерации финального предсказания
Декодер
Декодер выделяет ключевые признаки из выходных данных кодировщика и преобразует их для создания финального предсказания.

Дополнительные материалы

  • Полезная статья для углубления знаний по нейросетевым структурам
  • Электронный учебник от ШАД

Итоги

  • Модели машинного обучения — это фундамент, на котором разрабатывают современные AI-сервисы. Они позволяют на основе данных принимать решения, делать прогнозы и решать сложные задачи, с которыми человек справляется интуитивно.
  • Обучение с учителем используется, когда есть размеченные данные и нужно обучить модель предсказывать метки для новых данных.
  • Обучение без учителя применяется, когда данных без меток много и нужно, чтобы модель самостоятельно находила в них паттерны.
  • Обучение с подкреплением используется, когда модель (агент) должна взаимодействовать с окружающей средой и учиться на основе обратной связи в виде вознаграждений или наказаний. Этот метод особенно полезен в задачах, где решения принимаются последовательно (например, управление роботами, автономные системы или игры). Агент учится на опыте, адаптируя свои действия для максимизации долгосрочного вознаграждения, постепенно улучшая свою стратегию.