Что такое нейронная сеть?
Нейронная сеть — это, по сути, алгоритм машинного обучения, упакованный в программу. За ней стоят обычные математические функции, только с огромным количеством параметров.
Чтобы сеть работала, ей нужны еще так называемые веса — это значения этих параметров, которые подбираются в процессе обучения.
Где она «живет»?
Нейронная сеть может храниться и работать как в облаке (на удаленных серверах), так и локально — прямо на вашем компьютере.
Крупные модели требуют мощного серверного железа, поэтому, когда мы задаем вопрос ChatGPT, наш запрос улетает в облако. А вот небольшие модели с открытыми весами — например, DeepSeek — можно спокойно запустить локально.
Как создать свою нейросеть?
Для создания нейросети разработчики обычно используют библиотеки TensorFlow или PyTorch. В них можно взять готовую архитектуру —последовательность слоев, через которые проходят данные, — или собрать что-то свое из отдельных блоков. Для решения большинства задач проще взять уже готовую архитектуру и дообучить нейросеть на новых данных.
А чтобы обучить сеть, нужен датасет — большое количество размеченных данных. Например, если мы хотим, чтобы нейросеть находила на фото котиков, нам потребуется много фотографий, на которых особым образом отмечено, в какой именно части кадра находится котик. А если нам нужна нейронка, которая будет искать дефекты в трубах, то нужны фотографии различных дефектов.

Фото трубы с дефектами

Нейросеть нашла дефекты
Как происходит обучение
Процесс обучения выглядит так: размеченные данные из датасета подаются на вход нейронной сети, проходят через все ее слои, и на выходе получается предсказание сети. Это предсказание сравнивается с правильными ответами из датасета — вычисляется ошибка. Чем ошибка меньше, тем лучше.
Чтобы уменьшить ошибку, необходимо вычислить, как каждый вес сети повлиял на итоговый результат. Затем с помощью метода, который называется градиентный спуск, веса обновляются. Эти шаги повторяются снова и снова, пока не сработает заданный критерий остановки (например, ошибка не станет достаточно маленькой).
Обучение нейронной сети производится на видеокартах, поскольку они намного быстрее могут параллельно выполнять простые арифметические операции.
Интересные проекты
Я занимаюсь различными проектами в сфере робототехники. Например, один из последних — робототехнический комплекс для покраски кораблей. Он состоит из стрелкового подъемника на гусеничном шасси и робота манипулятора с покрасочным оборудованием.
С помощью сенсорной системы комплекса определяется поверхность, которую нужно покрасить и при покраске выдерживается требуемое расстояние до нее. Этот проект был одним из самых интересных и сложных за последнее время.
Еще один проект — создание нейросети для робототехнической гусеничной платформы. Нейросеть умеет определять человека и даже указывает, с какой вероятностью объект является человеком. После чего следит за ним.

Нейросеть нашла Артема

Нейросеть нашла коллегу и внимательно за ней следит
Советы начинающим
Чтобы самому создавать нейросети, понадобятся знания в линейной алгебре, математическом анализе и теории вероятностей.
Также нужно уметь программировать на Python, понимать суть процесса обучения и знать, как избежать переобучения (это когда сеть запоминает примеры из датасета наизусть, но не умеет обобщать).
Тем, кто хочет изучать нейросети, Артем советует экспериментировать с моделями, которые могут работать локально, — например, с YOLO. Это популярная модель для обнаружения объектов на изображениях. Попробуйте дообучить такую модель на своих данных. После такого опыта будет проще разобраться с другими моделями и принципами их работы.