Линейная комбинация (Linear Combination)

Что такое Линейная комбинация (Linear Combination)?

Линейная комбинация — это сумма набора величин (например, векторов, сигналов), каждая из которых умножена на соответствующий скалярный коэффициент; в контексте нейронных сетей и машинного обучения линейные комбинации лежат в основе преобразований данных на каждом слое сети.

Основная часть

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

Аналогия из бытового мира

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

Исторический контекст

Идея линейных преобразований и комбинаций восходит к линейной алгебре, фундамент которой закладывался ещё в XIX веке (работы Карла Фридриха Гаусса, Артура Кэли и др.). В контексте машинного обучения линейные комбинации стали ключевым элементом с появлением перцептрона — первой модели искусственного нейрона, предложенной Фрэнком Розенблаттом в 1958 году. Перцептрон вычислял взвешенную сумму входов и применял к ней пороговую функцию, что по сути и есть линейная комбинация с последующей нелинейной трансформацией.

Смежные понятия и различия

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

Примеры использования

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

Популярные реализации/примеры

  • В библиотеке PyTorch линейная комбинация реализуется через модуль nn.Linear, который выполняет операцию $y = xA^T + b$, где $x$ — вход, $A$ — матрица весов, $b$ — вектор смещений (bias).
  • В TensorFlow/Keras аналогичную функцию выполняет слой Dense, выполняющий линейное преобразование с последующим применением функции активации.

Авторизация