Базовая алгебра и функции: Освежаем знания

Этот курс поможет быстро структурировать имеющиеся знания по элементарной алгебре и функциям. Он обеспечит необходимый легкий старт перед погружением в более сложную математику для машинного обучения.

1. Основы алгебры: выражения, уравнения и неравенства

Основы алгебры: выражения, уравнения и неравенства

Алгебра начинается с абстракции. Мы заменяем конкретные числа символами, чтобы описать общие правила, закономерности и алгоритмы. В машинном обучении (Machine Learning) модели не знают заранее, какие именно пиксели изображения или слова текста поступят на вход. Поэтому вся внутренняя логика нейронных сетей и алгоритмов строится на универсальных алгебраических конструкциях.

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

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

Рассмотрим выражение . Здесь и — переменные, и — коэффициенты, а — константа. Если мы подставим конкретные значения, например, и , то сможем вычислить итоговое значение: .

Представьте, что вы разрабатываете алгоритм для предсказания стоимости квартиры. У вас есть базовые параметры: площадь в квадратных метрах () и расстояние до центра в километрах (). Алгебраическое выражение для оценки стоимости может выглядеть так: .

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

Уравнения: поиск баланса

Если соединить два выражения знаком равенства, получится уравнение. Решить уравнение — значит найти такие значения переменных, при которых левая часть становится в точности равна правой. Эти значения называются корнями уравнения.

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

Самый простой тип — линейные уравнения. В них переменные находятся только в первой степени (нет квадратов, кубов или корней). Общий вид линейного уравнения с одной переменной записывается так: , где — переменная, а и — известные числа.

Процесс решения сводится к изоляции переменной на одной стороне от знака равенства. Возьмем уравнение .

  • Прибавим к обеим частям: .
  • Разделим обе части на : .
  • Квадратные уравнения

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

    Стандартная форма квадратного уравнения:

    Где: * — неизвестная переменная. * , , — известные коэффициенты, причём .

    Для нахождения корней используется формула через дискриминант:

    Где: * — корни уравнения (их может быть два, один или ни одного действительного). * , , — коэффициенты из стандартной формы. * Выражение под корнем () называется дискриминантом.

    Допустим, у нас есть уравнение . Здесь , , . Сначала найдем дискриминант: . Теперь подставим его в формулу корней: . Получаем два корня: и .

    Сравнение математических конструкций

    Чтобы лучше структурировать эти понятия, рассмотрим их ключевые отличия.

    | Конструкция | Назначение | Пример | Роль в машинном обучении | | :--- | :--- | :--- | :--- | | Выражение | Описание вычислений | | Подсчет прогноза модели (взвешенная сумма) | | Уравнение | Поиск точного значения | | Нахождение точки, где градиент (ошибка) равен нулю | | Неравенство | Установка границ и условий | | Функции активации (пропускать сигнал или нет) |

    Системы уравнений: пересечение условий

    Часто в задачах присутствует не одна неизвестная, а несколько, и для их нахождения одного уравнения недостаточно. В таких случаях используются системы уравнений — набор из двух или более уравнений, которые должны выполняться одновременно.

    Классический пример системы из двух линейных уравнений с двумя переменными: 1) 2)

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

    Существует несколько методов решения систем: * Метод подстановки: выражаем одну переменную через другую из первого уравнения и подставляем во второе. * Метод сложения: складываем или вычитаем уравнения друг из друга, чтобы исключить одну из переменных.

    Применим метод сложения к нашей системе. Если мы сложим левые и правые части обоих уравнений, переменная исчезнет, так как . Получаем: . Итого: , откуда . Теперь подставим найденный в любое из исходных уравнений, например, во второе: . Отсюда . Решение системы: , .

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

    Неравенства и ограничения

    Неравенства работают по тем же правилам, что и уравнения, но вместо знака равенства используют знаки сравнения: больше (), меньше (), больше или равно (), меньше или равно ().

    Главное правило, которое нужно помнить при работе с неравенствами: при умножении или делении обеих частей неравенства на отрицательное число, знак неравенства меняется на противоположный.

    Рассмотрим пример: .

  • Вычтем из обеих частей: .
  • Разделим на . Поскольку мы делим на отрицательное число, знак меняется на : .
  • В машинном обучении неравенства критически важны. Например, популярная функция активации ReLU (Rectified Linear Unit) работает на основе простого неравенства: если входящий сигнал , функция передает его дальше без изменений. Если , функция выдает ноль. Это позволяет нейронным сетям отсекать ненужную информацию и решать сложные нелинейные задачи.

    Модуль числа (Абсолютная величина)

    Еще одно важное понятие базовой алгебры — модуль числа, или его абсолютная величина. Модуль показывает расстояние от числа до нуля на координатной прямой, поэтому он всегда положителен или равен нулю. Обозначается двумя вертикальными линиями: .

    Если , то . Если , то .

    В алгоритмах машинного обучения модуль используется для измерения ошибок. Если модель предсказала цену дома в тысяч долларов, а реальная цена тысяч, ошибка равна тысяч. Если для другого дома предсказание тысяч при реальности в тысяч, ошибка равна тысяч. Чтобы алгоритм не решил, что средняя ошибка равна нулю (), используется модуль: . На этом принципе построена метрика Mean Absolute Error (MAE).

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

    2. Введение в функции: определения, графики и базовые свойства

    Введение в функции: определения, графики и базовые свойства

    В предыдущей статье мы разобрали алгебраические выражения и уравнения. Уравнения помогают найти конкретное неизвестное значение — точку баланса. Однако в реальном мире величины редко бывают статичными. Они постоянно меняются и, что более важно, зависят друг от друга. Стоимость недвижимости зависит от её площади, вероятность клика по рекламе — от возраста пользователя, а качество распознавания речи — от уровня фонового шума.

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

    Функция — это строгое правило, по которому каждому допустимому значению на входе ставится в соответствие ровно одно значение на выходе.

    > Функцию можно представить как фабричный конвейер или механизм. Вы загружаете в него сырьё (входные данные), механизм обрабатывает его по заложенному алгоритму (правилу) и выдаёт готовый продукт (результат). > > Иэн Стюарт, математик и популяризатор науки

    В математической нотации это записывается так: .

    Разберем каждый элемент этой записи: * — это имя функции, само правило преобразования. * — аргумент функции (или независимая переменная). Это то, что мы подаем на вход. * — значение функции (или зависимая переменная). Это результат, который мы получаем на выходе.

    Рассмотрим простое правило: «умножить входное число на два и прибавить три». Математически это запишется как . Если мы подадим на вход число , то функция вычислит результат: .

    В программировании и анализе данных эта математическая концепция реализуется напрямую. Вот как выглядела бы функция предсказания базовой стоимости квартиры на языке Python:

    Графики функций: визуализация зависимостей

    Формулы отлично подходят для точных вычислений, но человеческому мозгу сложно считывать закономерности из строк с числами. Чтобы увидеть, как именно меняется функция, используют графики.

    График строится в декартовой системе координат, которая состоит из двух пересекающихся под прямым углом осей:

  • Горизонтальная ось (Ось X, абсцисса) — здесь откладываются все возможные значения аргумента (входа).
  • Вертикальная ось (Ось Y, ордината) — здесь откладываются соответствующие значения функции (выхода).
  • Чтобы построить график, мы берем несколько значений , вычисляем для них , отмечаем полученные точки на плоскости и соединяем их линией.

    Возьмем функцию возведения в квадрат: . Если , то . Если , то . Если , то . Соединив эти точки, мы получим плавную U-образную кривую — параболу. В машинном обучении такая парабола часто визуализирует функцию потерь (Loss Function), которая показывает величину ошибки модели. Цель алгоритма обучения — спуститься на самое дно этой параболы, где ошибка минимальна (равна нулю).

    Ключевые свойства функций

    Чтобы алгоритмы могли эффективно работать с функциями, необходимо понимать их базовые свойства и ограничения.

    * Область определения — это набор всех допустимых значений, которые можно подать на вход функции. Например, если наша функция вычисляет квадратный корень , её областью определения будут только положительные числа и ноль, так как корень из отрицательного числа не имеет действительного значения. * Область значений — это все возможные результаты, которые функция может выдать. Для функции областью значений будут все числа больше или равные нулю, потому что квадрат любого действительного числа не может быть отрицательным. * Монотонность — свойство функции постоянно возрастать или постоянно убывать на определенном участке. Если при увеличении значение всегда становится больше, функция монотонно возрастает. Это критически важное свойство для алгоритмов оптимизации: если алгоритм видит, что ошибка монотонно убывает при изменении параметров, он понимает, что движется в верном направлении.

    Линейность и нелинейность

    В контексте машинного обучения водораздел между простыми алгоритмами и глубокими нейронными сетями проходит по границе линейности.

    | Характеристика | Линейные функции | Нелинейные функции | | :--- | :--- | :--- | | График | Идеально прямая линия | Кривая (парабола, волна, излом) | | Скорость изменения | Постоянная на всем протяжении | Меняется в зависимости от точки | | Применение в ML | Простые задачи, базовая регрессия | Сложные задачи, глубокое обучение | | Пример | | |

    Линейная функция всегда растет или падает с одинаковой скоростью. Если один килограмм яблок стоит 100 рублей, то два будут стоить 200, а десять — 1000. График такой зависимости — прямая линия.

    Однако реальный мир редко бывает линейным. Представьте зависимость роста человека от его возраста. От 0 до 18 лет рост активно увеличивается, но после 20 лет он останавливается. Если мы попытаемся описать это линейной функцией, то модель предскажет, что в 50 лет рост человека составит 4 метра. Нелинейные функции позволяют графику «изгибаться», выходить на плато или менять направление, что делает их идеальными для описания сложных жизненных процессов.

    Композиция функций: матрешка вычислений

    Функции можно вкладывать друг в друга. Результат работы одной функции становится входным параметром для другой. Этот процесс называется композицией функций и обозначается как .

    В композиции крайне важен порядок действий. Продемонстрируем это на примере с числами. Пусть — функция, которая применяет скидку 10% к цене товара. Пусть — функция, которая добавляет фиксированную стоимость доставки в 500 рублей.

    Допустим, исходная цена товара рублей. Посмотрим, как изменится итог от порядка применения функций:

  • Сначала скидка, потом доставка: .
  • Вычисляем внутреннюю часть: . Теперь внешнюю: рублей.

  • Сначала доставка, потом скидка: .
  • Вычисляем внутреннюю часть: . Теперь внешнюю: рублей.

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

    3. Линейные и квадратичные функции

    Линейные и квадратичные функции

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

    Анатомия прямой линии

    Линейная функция — это простейшая форма зависимости между двумя переменными, при которой изменение одной величины приводит к пропорциональному изменению другой. Графиком такой функции всегда является идеально прямая линия.

    В классической алгебре базовая линейная функция записывается следующим образом:

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

    В терминологии машинного обучения эти параметры имеют свои устоявшиеся названия. Коэффициент называется весом (weight), поскольку он определяет, насколько сильно входной признак влияет на итоговый результат. Свободный член называется смещением (bias), так как он сдвигает базовую точку отсчета.

    Представим алгоритм расчета стоимости поездки в такси. Базовая подача машины стоит 150 руб., а каждая минута в пути обходится в 20 руб. Входным параметром здесь выступает время поездки в минутах. Уравнение примет вид: . Если поездка длится 15 минут, итоговая стоимость составит руб.

    Подобная логика легко переносится в программный код. Вот как выглядит реализация этой линейной зависимости на языке Python:

    Изменяя вес и смещение, мы можем описывать совершенно разные процессы. Если вес положительный, линия идет вверх (доход растет со временем). Если вес отрицательный, линия идет вниз (уровень заряда батареи падает). Если вес равен нулю, линия становится строго горизонтальной — результат не зависит от входных данных.

    Квадратичные функции: появление кривизны

    Линейные модели прекрасно справляются с простыми задачами, но реальный мир полон нелинейных зависимостей. Когда в уравнении появляется переменная во второй степени (в квадрате), функция становится квадратичной.

    Стандартный вид квадратичной функции выглядит так:

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

    Графиком квадратичной функции является парабола — плавная симметричная U-образная кривая.

    > Парабола — это идеальная математическая чаша. В зависимости от коэффициентов она может быть узкой, как бокал для шампанского, или широкой, как суповая тарелка, но она всегда имеет одну самую низкую или самую высокую точку — свой абсолютный предел. > > Стивен Строгац, математик

    Поведение параболы строго подчиняется правилам, заданным её коэффициентами:

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

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

    Координату вершины по горизонтальной оси можно найти по строгой алгебраической формуле:

    Где: * — координата вершины по оси аргументов; * — коэффициент при из исходного уравнения; * — старший коэффициент при .

    Допустим, у нас есть функция прибыли компании в зависимости от цены товара: . Здесь (ветви вниз, значит ищем максимум прибыли), а . Подставим значения в формулу вершины: . Это означает, что максимальная прибыль будет достигнута при цене товара в 30 руб.

    Тандем функций в машинном обучении

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

    Для оценки качества моделей часто используется метрика среднеквадратичной ошибки (Mean Squared Error, MSE). Суть метода заключается в том, что мы вычисляем разницу между реальным значением и предсказанием модели, а затем возводим эту разницу в квадрат.

    Возведение ошибки в квадрат выполняет три критически важные задачи: * Уничтожает отрицательные знаки (ошибка в -5 руб. и +5 руб. становится одинаковым штрафом в 25). * Сильнее «наказывает» модель за крупные промахи (ошибка в 10 единиц дает штраф 100, а ошибка в 2 единицы — всего 4). * Превращает график ошибки в идеальную параболу ветвями вверх.

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

    Сравнение линейных и квадратичных моделей

    Чтобы закрепить понимание, сопоставим ключевые характеристики обоих типов функций.

    | Характеристика | Линейная функция | Квадратичная функция | | :--- | :--- | :--- | | Базовое уравнение | | | | Форма графика | Прямая линия | Парабола (U-образная кривая) | | Скорость изменения | Постоянная (всегда одинаковая) | Переменная (ускоряется или замедляется) | | Ключевая точка | Пересечение с осью Y (смещение) | Вершина (минимум или максимум) | | Роль в ML | Формирование базовых предсказаний | Расчет функции потерь (ошибки) |

    Освоив механику прямых линий и парабол, вы получаете математический словарь, необходимый для понимания того, как алгоритмы настраивают свои параметры. В следующих этапах мы расширим этот инструментарий на многомерные пространства, где прямые превратятся в плоскости, а параболы — в сложные многомерные чаши.

    4. Экспоненты и логарифмы: ключевые функции для анализа данных

    Экспоненты и логарифмы: ключевые функции для анализа данных

    Линейные и квадратичные зависимости отлично описывают равномерные процессы и базовые ошибки предсказаний. Однако реальные данные часто ведут себя гораздо сложнее: они могут взрывообразно расти или, наоборот, стремительно затухать. Для моделирования таких явлений в математике и машинном обучении используются два мощных инструмента, которые неразрывно связаны друг с другом.

    Экспоненциальный рост и число Эйлера

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

    Базовая форма записи выглядит так:

    Где: * — итоговое значение функции; * — основание степени (положительное число, не равное единице); * — показатель степени (независимая переменная).

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

    В высшей математике и машинном обучении чаще всего используется специфическое основание — число Эйлера, обозначаемое латинской буквой . Это иррациональная константа, приблизительно равная . Функция обладает уникальным свойством: скорость её роста в любой точке в точности равна её значению в этой же точке.

    > Самая могущественная сила во Вселенной — это сложные проценты. > > Альберт Эйнштейн (приписывается)

    В алгоритмах искусственного интеллекта экспонента с основанием встречается повсеместно. Например, она лежит в основе функции активации Sigmoid (сигмоида), которая сжимает любые входные значения в диапазон от 0 до 1, превращая их в вероятности:

    Где: * — выходное значение от 0 до 1 (вероятность); * — число Эйлера (база натурального логарифма); * — входное значение (результат работы предыдущих слоев нейросети).

    Логарифмы: обратная сторона экспоненты

    Если экспонента отвечает на вопрос «каким будет результат, если возвести число в определенную степень?», то логарифмическая функция решает обратную задачу. Она спрашивает: «в какую степень нужно возвести основание, чтобы получить заданное число?».

    Математически это записывается так:

    Где: * — искомая степень (результат функции); * — основание логарифма; * — аргумент функции (число, которое мы хотим получить).

    Например, , потому что двойку нужно возвести в третью степень, чтобы получить восьмерку ().

    В анализе данных особую роль играет натуральный логарифм, основанием которого служит число Эйлера . Он обозначается как . Именно натуральный логарифм является математическим «противоядием» для экспоненциального роста .

    Логарифмирование часто применяется для нормализации данных. Представьте, что вы анализируете доходы населения. Большинство людей зарабатывают средние суммы, но есть небольшая группа миллиардеров, чьи доходы искажают общую картину. Применение логарифма «сжимает» огромные числа, делая распределение более симметричным и удобным для алгоритмов машинного обучения.

    Магия логарифмических свойств

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

    Рассмотрим три ключевых правила:

  • Логарифм произведения:
  • Логарифм частного:
  • Логарифм степени:
  • В машинном обучении модели часто вычисляют совместную вероятность множества независимых событий. Вероятности — это числа от 0 до 1. Если перемножить тысячи таких чисел (например, ), результат быстро станет настолько маленьким, что компьютер округлит его до нуля из-за ограничений памяти. Это явление называется underflow (арифметическое недополнение).

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

    Логарифмические функции потерь

    В предыдущих темах мы обсуждали среднеквадратичную ошибку (MSE), которая отлично работает для задач регрессии — предсказания непрерывных чисел. Однако для задач классификации, где модель должна отличить кошку от собаки или спам от важного письма, параболическая функция потерь оказывается неэффективной. Здесь на сцену выходит кросс-энтропия (Cross-Entropy Loss или Log Loss).

    Суть кросс-энтропии заключается в жестком штрафовании модели за уверенность в неправильном ответе. Формула ошибки для одного предсказания опирается на логарифм:

    Где: * — значение ошибки (потери); * — истинная метка класса (1 или 0); * — предсказанная моделью вероятность того, что объект относится к классу 1 (число от 0 до 1); * — натуральный логарифм.

    Если истинный класс объекта равен 1 (), вторая часть формулы обнуляется, и ошибка вычисляется как . Если модель предсказывает вероятность (очень уверена в правильном ответе), логарифм от 0.99 близок к нулю, и штраф минимален. Но если модель ошибается и выдает , логарифм от 0.01 уходит далеко в минус. Знак минуса перед формулой превращает это в огромный положительный штраф.

    Именно асимптотическая природа логарифма (его стремление к бесконечности при приближении аргумента к нулю) заставляет нейронные сети быстро корректировать свои веса, если они делают уверенные, но ошибочные прогнозы.

    Сравнение экспоненты и логарифма

    Чтобы лучше понять взаимосвязь этих двух концепций, сопоставим их основные характеристики.

    | Характеристика | Экспоненциальная функция () | Логарифмическая функция () | | :--- | :--- | :--- | | Область определения (допустимые ) | Любые числа (от до ) | Только строго положительные числа () | | Область значений (результат) | Только строго положительные числа | Любые числа (от до ) | | Скорость изменения | Растет всё быстрее и быстрее | Растет всё медленнее и медленнее | | Роль в машинном обучении | Преобразование чисел в вероятности (Softmax, Sigmoid) | Расчет функции потерь (Log Loss), масштабирование признаков |

    Практическая реализация в коде

    В современных библиотеках для анализа данных работа с этими функциями оптимизирована до предела. Рассмотрим пример на языке Python с использованием библиотеки numpy, которая является стандартом де-факто для математических вычислений.

    В этом примере разница между минимальным и максимальным доходом составляла более 80 раз. После логарифмирования разрыв сократился до менее чем 1.5 раз. Алгоритму машинного обучения будет гораздо проще выявить закономерности в таких сбалансированных данных, не отвлекаясь на экстремальные выбросы.

    Понимание того, как экспоненты разгоняют значения, а логарифмы их усмиряют, дает ключ к управлению потоками данных внутри сложных аналитических систем. Эти функции выступают своеобразными коробками передач, позволяя алгоритмам плавно переключаться между микроскопическими вероятностями и гигантскими числами.

    5. Системы уравнений и подготовка к линейной алгебре

    Системы уравнений и подготовка к линейной алгебре

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

    Чтобы алгоритм мог сделать точный прогноз, ему необходимо учитывать все эти факторы одновременно, подбирая для каждого из них правильный вес. Математически процесс поиска таких весов сводится к работе с системами уравнений.

    Что такое система линейных уравнений

    Система уравнений — это набор из двух и более уравнений, для которых необходимо найти общее решение. Общим решением называется такой набор значений неизвестных переменных, при подстановке которого каждое уравнение в системе превращается в верное математическое равенство.

    Базовая система из двух линейных уравнений записывается с помощью фигурной скобки:

    Где: * и — неизвестные переменные (в контексте машинного обучения это веса, которые модель должна выучить); * Числа перед переменными (1, 2, 3, -1) — коэффициенты (входные данные или признаки); * Числа после знака равенства (8, 3) — свободные члены (целевые значения, которые мы хотим предсказать).

    Цель решения такой системы — найти конкретные числа для и , которые удовлетворяют обоим условиям одновременно.

    Аналитические методы решения

    В базовой алгебре существуют два основных способа решения простых систем вручную. Понимание того, как они работают, помогает осознать логику преобразования данных внутри алгоритмов.

  • Метод подстановки. Мы выражаем одну переменную через другую в первом уравнении и подставляем полученное выражение во второе. Это сводит задачу к простому уравнению с одной неизвестной.
  • Метод алгебраического сложения. Мы умножаем уравнения на такие числа, чтобы при их сложении одна из переменных взаимно уничтожилась (коэффициенты при ней стали противоположными числами).
  • Рассмотрим метод сложения на нашем примере. Умножим второе уравнение на 2:

    Теперь сложим левые и правые части уравнений. Переменная исчезнет ():

    Подставим найденный в первое уравнение:

    Решение найдено: , . Модель успешно подобрала идеальные веса для наших данных.

    Геометрический смысл систем уравнений

    Каждое линейное уравнение с двумя переменными можно визуализировать как прямую линию на двумерном графике. Следовательно, решение системы из двух уравнений — это поиск точки пересечения двух прямых.

    В зависимости от того, как расположены прямые, система может вести себя по-разному. Это критически важно для понимания качества данных в машинном обучении.

    | Соотношение прямых | Количество решений | Алгебраический признак | Значение для анализа данных | | :--- | :--- | :--- | :--- | | Пересекаются | Одно уникальное решение | Коэффициенты уравнений не пропорциональны | Идеальная ситуация. Данные содержат четкую закономерность, модель находит однозначные веса. | | Параллельны | Нет решений | Коэффициенты пропорциональны, а свободные члены — нет | Противоречивые данные. Одинаковые входные признаки ведут к разным результатам (шум или ошибка в датасете). | | Совпадают | Бесконечно много решений | Все коэффициенты и свободные члены пропорциональны | Избыточные данные (мультиколлинеарность). Признаки дублируют друг друга, алгоритм не может выбрать один правильный ответ. |

    > В машинном обучении качество данных всегда важнее сложности алгоритма. Если ваша система уравнений (ваши данные) содержит сплошные противоречия или дубликаты, никакая математика не сможет извлечь из них полезный сигнал.

    От школьной алгебры к машинному обучению: Переопределенные системы

    В классической алгебре количество уравнений обычно совпадает с количеством неизвестных. Две переменные — два уравнения. Это идеальный мир, где существует точный ответ.

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

    Мы получаем систему из 10 000 уравнений с двумя неизвестными. Такие системы называются переопределенными.

    Геометрически это означает, что на плоскости нарисовано 10 000 прямых. Шанс, что все они пересекутся ровно в одной математической точке, равен абсолютному нулю. Из-за погрешностей в данных и индивидуальных особенностей квартир прямые образуют хаотичное облако пересечений.

    Здесь базовая алгебра сдается и говорит: «Решений нет». Но алгоритмы машинного обучения не останавливаются. Вместо поиска идеального решения, они ищут оптимальное — такую точку (набор весов), которая находится максимально близко ко всем прямым одновременно. Именно для этого применяются функции потерь (например, MSE) и алгоритмы оптимизации, которые мы обсуждали в предыдущих темах.

    Матрицы: мост к линейной алгебре

    Решать системы из двух или трех уравнений вручную несложно. Но современные нейронные сети, такие как архитектуры GPT, содержат миллиарды параметров (неизвестных переменных) и обучаются на триллионах примеров (уравнений).

    Записывать такие объемы данных в виде классических систем со скобками невозможно. Математикам потребовалась новая абстракция, которая позволяет упаковать миллионы чисел в один компактный объект. Этим объектом стала матрица — прямоугольная таблица чисел.

    Любую систему линейных уравнений можно переписать в матричном виде:

    Где: * — матрица коэффициентов (наши входные данные, признаки объектов); * — вектор-столбец неизвестных (веса, которые ищет модель); * — вектор-столбец свободных членов (целевые значения, правильные ответы).

    Для нашей первой системы из начала статьи это выглядит так:

    Переход к матричной записи — это не просто смена оформления. Это смена парадигмы. Компьютерные процессоры (особенно видеокарты - GPU) спроектированы так, чтобы мгновенно умножать и складывать огромные матрицы целиком, а не вычислять уравнения по одному.

    Рассмотрим, как эта же система решается в Python с использованием библиотеки numpy, которая лежит в основе большинства фреймворков машинного обучения:

    Всего одна строка кода np.linalg.solve заменяет рутинные вычисления. Под капотом этой функции работают мощные алгоритмы линейной алгебры.

    На этом мы завершаем обзор базовой алгебры и функций. Мы вспомнили, как работают переменные, изучили поведение линейных, квадратичных, экспоненциальных и логарифмических функций, а также поняли, как они объединяются в системы уравнений для описания сложных закономерностей.

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