Линейная трансформация (Linear Transformation)
Математическая операция, применяемая в нейронных сетях и машинном обучении для преобразования входных данных посредством умножения на матрицу весов и добавления вектора смещений; лежит в основе работы многих слоёв нейросетей.
В контексте ИИ и ML линейная трансформация играет ключевую роль в обработке и преобразовании данных на разных этапах работы модели. Суть её заключается в том, что каждый входной вектор (например, признаки объекта или выходные данные предыдущего слоя) преобразуется в новый вектор по формуле:
$y = Wx + b$,
где:
- $x$ — входной вектор;
- $W$ — матрица весов (параметры модели, которые оптимизируются в процессе обучения);
- $b$ — вектор смещений (также обучаемый параметр);
- $y$ — выходной вектор после трансформации.
Представьте, что вы готовите коктейль по рецепту. Входной вектор $x$ — это набор ингредиентов (сок, сироп, лёд), матрица весов $W$ — пропорции и способы их смешивания (например, 2 части сока на 1 часть сиропа), а вектор смещений $b$ — добавление щепотки соли или капли ванильного экстракта для финального штриха. В результате вы получаете новый «вектор» — готовый коктейль $y$ с изменённым вкусом и текстурой.
Исторический контекст
Линейные преобразования — фундаментальный инструмент линейной алгебры, который давно используется в математике и физике. В контексте машинного обучения и нейросетей они стали неотъемлемой частью архитектуры с момента появления перцептронов (1950–1960‑е годы). Фрэнк Розенблатт, создатель перцептрона, использовал линейные преобразования для обработки входных данных и вычисления выходных значений. С развитием глубоких нейронных сетей линейные слои (fully connected layers, dense layers) остались базовым строительным блоком, хотя их часто комбинируют с нелинейными функциями активации для повышения выразительной мощности моделей.
Смежные понятия
Важно отличать линейную трансформацию от нелинейной трансформации (например, применения функций активации вроде ReLU, sigmoid). Линейная трансформация сама по себе не добавляет нелинейности — она лишь «перемешивает» входные данные линейным образом. Именно сочетание линейных слоёв с нелинейными функциями активации позволяет нейросетям аппроксимировать сложные зависимости.
Примеры использования
- Полносвязные слои (Dense layers) в нейронных сетях: каждый нейрон в таком слое выполняет линейную трансформацию входных данных, после чего применяется функция активации.
- Свёрточные слои (Convolutional layers): хотя свёртка — это не совсем линейная трансформация в классическом понимании, она также основана на линейных операциях (умножение на ядро свёртки).
- Преобразование признаков (Feature transformation): в предобработке данных линейные трансформации (например, PCA — метод главных компонент) используются для снижения размерности и выделения наиболее информативных признаков.
- Модели линейной регрессии: в простейшем случае линейная трансформация — это вся модель (без дополнительных нелинейных слоёв).
Популярные реализации
- в библиотеках TensorFlow и PyTorch линейные слои реализуются через классы
tf.keras.layers.Denseиtorch.nn.Linearсоответственно; - в sklearn линейная регрессия реализована через класс
sklearn.linear_model.LinearRegression.
