Матрица весов (Weight Matrix)
Матрица весов — это структурированный набор числовых параметров в нейронной сети, определяющий силу связей между нейронами смежных слоёв и влияющий на преобразование входных данных в выходные.
Представьте себе оркестр, где каждый музыкант (нейрон) играет свою партию. Матрица весов — это дирижёрская партитура, в которой прописаны «громкости» (веса) для каждого инструмента при исполнении определённых аккордов (входных сигналов). От того, как расставлены акценты в партитуре, зависит общее звучание произведения — так и от значений в матрице весов зависит итоговый результат работы нейросети.
Историческая справка
Исторически понятие весов восходит к первым моделям искусственных нейронов, таким как перцептрон Фрэнка Розенблатта (1958 г.). Уже тогда было понятно: чтобы модель могла «учиться», нужно варьировать силу связей между элементами. Поначалу матрицы весов настраивались вручную или по простейшим правилам, но с развитием алгоритмов обратного распространения ошибки (backpropagation, популяризировано в 1986 г. Дэвидом Румельхартом, Джеффри Хинтоном и Рональдом Уильямсом) стало возможным эффективно обучать большие матрицы на сложных задачах.
Отличия от других матриц
Важно отличать матрицу весов от:
- матрицы смежности в графах (описывает наличие связей, а не их силу);
- матрицы признаков (содержит исходные данные, а не параметры модели);
- матрицы активаций (хранит выходные значения нейронов, а не параметры связей).
В контексте ML матрица весов — это именно обучаемые параметры модели, а не данные или структурное описание.
Примеры использования
- В полносвязном слое (dense layer) нейронной сети матрица весов имеет размерность
[количество нейронов в предыдущем слое, количество нейронов в текущем слое]. При прямом проходе вход умножается на эту матрицу. - В свёрточных слоях (CNN) веса хранятся в виде ядер свёртки (фильтров), которые можно рассматривать как набор малых матриц, скользящих по входному изображению.
- В рекуррентных сетях (RNN) матрицы весов отвечают за переход между состояниями: например, матрица
W_{hh}описывает, как предыдущее скрытое состояние влияет на текущее. - В трансформерах (Transformer) матрицы весов используются в механизмах внимания (attention): например, матрицы запросов (
W_Q), ключей (W_K) и значений (W_V) преобразуют входные эмбеддинги для вычисления весов внимания.
Популярные реализации
В библиотеках TensorFlow и PyTorch веса слоёв хранятся как тензоры (например, nn.Linear в PyTorch автоматически инициализирует матрицу весов), а их обновление происходит в процессе оптимизации (SGD, Adam и т. п.).
