Линейная алгебра для AI
Вектор признаков
После чтения ты должен видеть вектор не как абстрактную стрелку, а как договоренность о том, какие численные признаки объекта модель получает на вход.
1. Вектор как запись объекта
Возьмем квартиру. Человек описывает ее словами: площадь 42 м2, две комнаты, 700 метров до метро. Модель не работает с такими словами напрямую. Ей нужен численный объект. Поэтому мы задаем схему: x = [площадь, комнаты, расстояние до метро]. Тогда квартира превращается в x = [42, 2, 0.7].
Важно, что порядок компонент - часть смысла. [42, 2, 0.7] и [2, 42, 0.7] содержат похожий набор чисел, но для модели это разные входы. Во втором случае модель подумает, что площадь равна 2, а комнат 42. Ошибка не математическая, а смысловая: нарушен контракт данных.
2. Размерность - это количество признаков
Если в векторе три компоненты, его размерность равна 3. Это не обязательно физическое трехмерное пространство. Это признаковое пространство: каждая ось отвечает за один признак. В примере оси такие: площадь, комнаты, расстояние.
Когда признаков становится 100, 768 или 4096, картинку уже нельзя нарисовать глазами. Но правила остаются теми же. Эмбеддинг слова в transformer-модели может иметь сотни или тысячи компонент. Каждая компонента сама по себе обычно плохо интерпретируется, но весь вектор хранит полезное представление объекта.
3. Почему масштаб признаков важен
Площадь в нашем примере измеряется десятками, комнаты - единицами, расстояние - дробными числами. Если модель использует расстояния или скалярные произведения, разные масштабы начинают влиять на вычисления. Признак с большими числами может доминировать просто из-за единиц измерения.
Поэтому в ML часто нормализуют признаки: приводят их к сопоставимым масштабам. Это не меняет смысл объекта, но меняет координаты, в которых модель работает с объектом.
4. Что значит 'модель видит вектор'
Когда мы говорим 'модель видит квартиру', это сокращение. На самом деле модель получает массив чисел. Дальше она применяет к нему операции линейной алгебры: скалярные произведения, матричные умножения, нормы, проекции.
В нейросети первый линейный слой тоже берет вектор или матрицу векторов и умножает на матрицу весов. Поэтому понимание входного вектора - первый шаг к пониманию того, что происходит внутри модели.
Связь с AI
Так модель получает квартиру, слово, пользователя или картинку на вход.
Типичные ошибки
- Смотреть на числа без схемы признаков.
- Путать порядок компонент: [площадь, комнаты] и [комнаты, площадь] - разные входы.
- Думать, что размерность всегда можно представить как обычное 2D/3D пространство.
- Игнорировать масштаб признаков и единицы измерения.
Практика
Есть пользователь: возраст 34, 12 покупок за месяц, средний чек 1800. Схема [возраст, покупки, средний чек]. Запиши вектор.
x = [34, 12, 1800].
Почему [12, 34, 1800] не является тем же самым входом при той же схеме?
Потому что модель прочитает 12 как возраст, а 34 как число покупок. Смысл компонент задается позицией.
Какой shape будет у матрицы, если у нас 1000 квартир и каждая описана 3 признаками?
X.shape = (1000, 3), если строки - квартиры, а столбцы - признаки.
Проверка
Объяснить, почему [42, 2, 0.7] и [2, 42, 0.7] - разные данные.