Изучив доступные материалы по нейросетям, легко заметить, что они делятся на два типа.
Первая группа — это академические статьи, где подробно рассматриваются математические основы работы нейросетей. Однако большое количество формул и строгих выкладок делает их трудными для восприятия неподготовленным читателем. Вторая группа — более простые и наглядные публикации, где через метафоры и примеры описываются общие принципы работы нейросетей и больших языковых моделей. Но они редко позволяют «заглянуть под капот» и понять, как именно устроены механизмы внутри.
Эта ситуация подтолкнула автора к идее: при помощи ChatGPT, Википедии и ряда других источников постепенно, шаг за шагом, разобрать ключевые математические формулы и принципы работы нейросетей. Результатом станет пошаговый «гайд», который проведёт читателя от самых простых понятий школьной математики к пониманию основ современных нейросетей, а в перспективе — к их программированию.
Автор не претендует на абсолютную полноту и строгость изложения. Все материалы будут сопровождаться ссылками на исходные публикации, а конструктивная критика и обратная связь будут искренне приветствоваться.
Гайд построен в виде коротких глав. В начале каждой главы даётся необходимая теоретическая база (в форме, доступной для читателя со школьным уровнем математики), а в заключении эта база используется для пояснения конкретного аспекта работы нейронных сетей.
Базовые понятия функций в математике
Математическая функция на уровне школьной математики объясняется следующим образом – это способ преобразовать одно число – аргумент функции, в другое число – значение функции, по определённому правилу.
Пример простой функции:
здесь аргумент обозначен символом «», а сама функция записывается как «
» – т.е. буквально «зависимость игрек от икс».
Функция из примера пресдтавляет собой строгое правило, по которому аргумент необходимо умножить на два и прибавить к полученному результату четыре. Графическое представление функции представлено на рисунке.

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

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

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

Количество аргументов можно увеличивать сколько угодно и математически такие функции будут существовать также спокойно, как функции одной или двух переменных. Однако представить их в окружающем нас мире или изобразить на графике уже будет трудно, так как окружающее нас пространство имеет только три измерения.
Когда в формулах производится однотипное суммирование – в нашем случае , то для сокращения записи используют математический знак суммирования следующего вида:
где i – это индекс, который в нашем случае последовательно изменяется от 1 до 2.
Когда имеется задача описать однотипное суммирование, не привязываясь к конкретному количеству слагаемых, то подпись «» просто не указывают.
Математические функции работают не только с числами, но и с множеством других математических объектов – например, с другими математическими функциями. В этом случае их называют «сложными функциями». Пример сложной функции можно построить следующим образом:
здесь функция «берет» синус от числового значения функции двух переменных. Фактически, функция
зависит от аргументов
, но через «посредника» – функцию
.
В заключение выделим ключевой признак функции:
- одному объекту на входе в математической функции всегда будет соответствовать строго определенный другой один объект на выходе.
Зачем нужны функции?
Ответ простой – функции позволяют описывать окружающий нас мир. Например, функцией можно с высокой точностью описать движение планет или распространение звука в пространстве.
Однако такие природные явления, как погода, рост человеческого организма или социальные явления слишком сложны, чтобы описать их функциями. В таких случаях наука использует не только функции, но и более общие конструкции: уравнения с одной или несколькими переменными, случайные процессы, теории хаоса и т. д.
Таким образом, функции – это «универсальный язык» для описания природы, но нередко в дополнение к ним нужен «расширенный словарь» математики.
Как функции связаны с нейронными сетями?
Во-первых, нейронные сети построены на основе специальных математических функций, которые называют искусственными нейронами [1]. Такое название они получили из-за схожего поведения с нейронами человеческого мозга. Математическая формула классического искусственного нейрона представляет собой следующую функцию:
где может иметь самые разные формы (чаще всего –это нелинейные функции) и называется передаточной функцией нейрона (или функцией активации). Из формулы видно, что внутренняя функция
является линейной функцией многих переменных - это важная особенность, которая в дальнейшем поможет удобно работать с большими количествами нейронов при вычислениях в нейронных сетях.
В научной статье, положившей начало бурному развитию искусственного интеллекта, описывающей как устроены первые нейронные сети семейства ChatGPT (сети с архитектурой типа «трансформер») [2], была использована следующая передаточная функция, которая получила название ReLU:
где слово «max» означает правило, при котором в качестве значения функции будет выводится наибольшее число из пары 0 и u. Другими словам, функция возвращает либо 0, если значение аргумента , либо само значение u, если значение аргумента
.

Как работают математические функции искусственных нейронов, в том числе, функции активации, и почему они похожи на работу нейронов человеческого мозга, будет описано в следующей главе. А теперь, благодаря примерам, приведенным выше, можно, как минимум, понять их вид – это сложные, чаще всего, нелинейные математические функции многих переменных.
Важно отметить, что даже такая сложная нейронная сеть, как ChatGPT, широко использует искусственные нейроны из приведенных выше примеров – в так называемых нейронных сетях прямого распространения (feed forward neural networks - FFN) [2, 3]. Отличие будет только в функции активации – т.к. там используются уже более сложные функции, а не ReLU.
В заключение также хочется отметить, что нейронные сети могут сами описывать любые непрерывные функции, если их правильным образом построить и обучить. Ключевая особенность нейронных сетей состоит в том, что они дают приблизительное, а не точное описание функций. При этом, чем больше в нейронной сети нейронов, тем более точным будет это приближение. В математике приближённое представление одного объекта с помощью другого, более простого, называют аппроксимацией.
kotov666
И это Часть 1?!