Ответ вслух Junior Векторы и матрицы обновлено

Где линейная алгебра в нейросети

Вопрос

Расскажите, где в обычной нейросети и в ML вообще встречаются векторы и матрицы. Почему эти операции так хорошо ускоряются на GPU?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Объект с признаками в ML это вектор, батч из B объектов это матрица B×d. Полносвязный слой делает y = xW + b: если на входе 128 признаков, а на выходе 64, то W имеет размер 128×64, и весь батч проходит через слой одним умножением матриц.

Что должно прозвучать в ответе

  • Объект или эмбеддинг это вектор, батч это матрица

  • Полносвязный слой это умножение на матрицу весов плюс сдвиг: y = Wx + b

  • Близость векторов через скалярное произведение и косинус (поиск, attention)

  • Умножение матриц это много независимых скалярных произведений, отсюда параллелизм

  • Знает про размеры: батч × признаки на признаки × выходы

Что могут спросить следом

  • Какой размер у матрицы весов слоя со 128 входами и 64 выходами?
  • Почему батч обрабатывают одной матрицей, а не по объекту в цикле?

Разбор

Объект с признаками в ML это вектор, батч из B объектов это матрица B×d. Полносвязный слой делает y = xW + b: если на входе 128 признаков, а на выходе 64, то W имеет размер 128×64, и весь батч проходит через слой одним умножением матриц. Эмбеддинги слов и картинок тоже векторы, их близость меряют скалярным произведением или косинусом: так работают поиск похожих и attention, где Q·Kᵀ даёт матрицу попарных скалярных произведений. Умножение матриц раскладывается на тысячи независимых скалярных произведений, их удобно считать параллельно, а GPU и тензорные ядра сделаны ровно для этого. Поэтому батч обрабатывают целиком: одно большое умножение быстрее тысячи маленьких.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме