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

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

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

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

Базовые понятия функций в математике

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

Пример простой функции:

y(x)=2x+4

здесь аргумент обозначен символом «x», а сама функция записывается как «y(x)» – т.е. буквально «зависимость игрек от икс».

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

Рисунок 1 – Графическое представление функции
Рисунок 1 – Графическое представление функции y(x) = 2x + 4

Очень часто в математике вместо цифр используют буквы. Это помогает описывать математические объекты в обобщенном виде. Например, функцию из примера выше можно обобщить следующим образом:

y(x)=kx+b

где k, b – это буквенные коэффициенты. Конкретная функция получается путем подставления конкретных чисел вместо буквенных коэффициентов.

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

Рисунок 2 – Графическое представление нескольких представителей семейства функций
Рисунок 2 – Графическое представление нескольких представителей семейства функций y (x) = kx + b

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

y(x)=sin⁡x
Рисунок 3 – Графическое представление функции
Рисунок 3 – Графическое представление функции y(x) = sin(x)

Также важно знать, что функции могут зависеть не только от одного, а от нескольких аргументов (аргументы еще называют переменными), например:

Z(x_1,x_2 )  =k_1·x_1+k_2·x_2+b

Графически функция Z(x_1, x_2) будет выглядеть как плоскость в трехмерном пространстве. Ее наклон и положение в пространстве определяются значениями коэффициентов k_1, k_2, b. Данная функция, как не трудно понять, тоже является линейной.

Рисунок 1.3 – Графическое представление одной из функций семейства
Рисунок 1.3 – Графическое представление одной из функций семейства Z(x_1,x_2) = k_1*x_1 + k_2*x_2 + b

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

Когда в формулах производится однотипное суммирование – в нашем случае k_1x_1 + k_2x_2, то для сокращения записи используют математический знак суммирования следующего вида:

k_{1} \cdot x_{1} + k_{2} \cdot x_{2} = \sum_{i=1}^{2} k_{i} \cdot x_{i}

где i – это индекс, который в нашем случае последовательно изменяется от 1 до 2.

Когда имеется задача описать однотипное суммирование, не привязываясь к конкретному количеству слагаемых, то подпись «i=1...2» просто не указывают.

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

F(Z(x_{1}, x_{2})) = \sin(Z(x_{1}, x_{2})) = \sin\left( \sum_{i=1}^{2} k_{i} \cdot x_{i} + b \right)

здесь функция F «берет» синус от числового значения функции двух переменных. Фактически, функция F зависит от аргументов x_{1}, x_{2}, но через «посредника» – функцию Z(x_{1}, x_{2}).

В заключение выделим ключевой признак функции:

- одному объекту на входе в математической функции всегда будет соответствовать строго определенный другой один объект на выходе.

Зачем нужны функции?

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

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

Таким образом, функции – это «универсальный язык» для описания природы, но нередко в дополнение к ним нужен «расширенный словарь» математики.

Как функции связаны с нейронными сетями?

Во-первых, нейронные сети построены на основе специальных математических функций, которые называют искусственными нейронами [1]. Такое название они получили из-за схожего поведения с нейронами человеческого мозга. Математическая формула классического искусственного нейрона представляет собой следующую функцию:

F = \varphi(u(x_{i})) = \varphi\left( \sum k_{i} \cdot x_{i} + b \right)

где \varphiможет иметь самые разные формы (чаще всего –это нелинейные функции) и называется передаточной функцией нейрона (или функцией активации). Из формулы видно, что внутренняя функция u(x_i)является линейной функцией многих переменных - это важная особенность, которая в дальнейшем поможет удобно работать с большими количествами нейронов при вычислениях в нейронных сетях.

В научной статье, положившей начало бурному развитию искусственного интеллекта, описывающей как устроены первые нейронные сети семейства ChatGPT (сети с архитектурой типа «трансформер») [2], была использована следующая передаточная функция, которая получила название ReLU:

\varphi(u) = \max(0, u)

где слово «max» означает правило, при котором в качестве значения функции будет выводится наибольшее число из пары 0 и u. Другими словам, функция возвращает либо 0, если значение аргумента u \leq 0, либо само значение u, если значение аргумента u > 0.

Рисунок 5 - График функции ReLU
Рисунок 5 - График функции ReLU

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

Важно отметить, что даже такая сложная нейронная сеть, как ChatGPT, широко использует искусственные нейроны из приведенных выше примеров – в так называемых нейронных сетях прямого распространения (feed forward neural networks - FFN) [2, 3]. Отличие будет только в функции активации – т.к. там используются уже более сложные функции, а не ReLU.

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

Комментарии (1)


  1. kotov666
    07.10.2025 13:16

    И это Часть 1?!