Когда я впервые решил написать нейросеть, то думал, что это займет неделю разборов матриц и дифференциалов. На деле простую сеть можно собрать за 9 строк на Python. Она не решит задачу распознавания лиц, но отлично показывает главную механику того, как работают все современные трансформеры. Сейчас покажу на практике, как написать простую нейросеть, и объясню каждый шаг без воды.
Почему стоит написать нейросеть самому
Когда я запускал свой первый код с обучением, у меня в голове щелкнуло. Перестали быть магией вещи типа весов, смещений и обратного распространения ошибки. Разбор нейросети похож на разбор механизма часов: когда видишь каждую шестеренку, понимаешь, зачем нужна каждая деталь.
Простая нейросеть - это, по сути, набор математических операций. Если ты умеешь умножать матрицы и знаешь, что такое сигмоида, ты уже можешь написать свою сеть. Ничего сложнее этого не понадобится.
Ставим numpy и пишем сигмоиду
Перед началом работы нужна библиотека NumPy. Она позволяет выполнять матричные операции, без которых нейросеть не построишь. Открой терминал и выполни команду:
pip install numpyТеперь импортируем библиотеку и напишем функцию активации. Сигмоида превращает любое число в значение от 0 до 1. Благодаря этому выход нейрона можно интерпретировать как вероятность или уровень уверенности.
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))Функция простая, но именно она вносит нелинейность в модель. Без нее все слои свелись бы к одному линейному преобразованию, и сеть не смогла бы выучить даже XOR.
Готовим данные и инициализируем веса
Возьмем классическую задачу: предсказание результата по трем входным параметрам. Например, таблицу истинности для логической функции. Входы - это массив из трех чисел, выход - одно число.
training_inputs = np.array([[0,0,1],
[1,1,1],
[1,0,1],
[0,1,1]])
training_outputs = np.array([[0,1,1,0]]).TВеса инициализируем случайно. Чтобы результат был воспроизводимым, зададим seed:
np.random.seed(1)
synaptic_weights = 2 * np.random.random((3,1)) - 1Сначала веса никак не связаны с данными, это просто случайные числа от -1 до 1. Дальше начинается магия обучения.
Обучаем сеть: прямой проход и обратное распространение
Обучение состоит из двух фаз. Первая фаза - прямое распространение. Мы умножаем входные данные на веса и пропускаем результат через сигмоиду. Получаем предсказание.
output = sigmoid(np.dot(training_inputs, synaptic_weights))Вторая фаза - обратное распространение ошибки. Считаем разницу между предсказанием и целевым значением, затем корректируем веса на величину, пропорциональную этой ошибке. Так нейрон постепенно настраивается.
error = training_outputs - output
adjustment = np.dot(training_inputs.T, error * (output * (1 - output)))
synaptic_weights += adjustmentФормула output * (1 - output) - это производная сигмоиды. Она показывает, как сильно изменится выход при изменении весов. Повторяем этот процесс много раз, например, 10000 итераций.
Проверяем результат
После обучения попробуем предсказать ситуацию, которой не было в обучающей выборке, например [1,0,0]. Если сеть обучена правильно, она выдает значение, близкое к 1. Вот как это выглядит в консоли:
Considering new situation [1, 0, 0] -> ?: [ 0.99993704]Сеть уже обучена. Она поняла закономерность, даже когда пример был не из набора. Точный ответ 1, потому что в обучающих данных комбинации с первым входом равным 1 давали на выходе 1.
От простого перцептрона к реальным задачам
На этом примере видно главное: нейросеть - это просто оптимизация параметров. Но в жизни редко встречаются задачи с тремя входами и одним выходом. Тексты, изображения, видео - это миллионы параметров. Чтобы обрабатывать их, нужны модели с сотнями миллиардов весов, обученные на огромных данных.
Грубо говоря, написать простую нейросеть полезно для понимания, но для реальной работы использовать ее никто не будет. Нужны готовые архитектуры, уже обученные и работающие. И тут встает вопрос доступа к ним.
Я писал свою первую сеть и думал, что сейчас буду разбираться с CUDA, видеокартами и серверами. Потом понял, что проще использовать готовые API от крупных лабораторий. Но в России с этим часто проблемы: то карта не проходит, то регион заблокирован. В обсуждениях на Reddit эта проблема всплывает постоянно. Мой способ решения - сервис 3GPT от 3SELLER.
Когда простой нейросети мало: подключаем флагманские модели
3GPT - это платформа, которая дает доступ из России к самым свежим версиям ChatGPT, Claude и другим моделям. Никаких иностранных карт и виртуальных номеров. Платишь российской картой через СБП или криптой - и получаешь доступ к Chat GPT 6 Astra, Claude Fable 5, Claude Opus 5.5 и даже к генерации изображений и видео.
За 149 рублей в месяц вы получаете не одну модель, а целый роутер по нейросетям. Можно переключаться между флагманами в одном чате. Если нужен серьезный анализ текста - выбираешь Claude Opus, если хочешь сгенерировать картинку - Nano Banana справится мгновенно. Все работает через удобный интерфейс, доступный прямо из браузера.
Но самое интересное для тех, кто только начал изучать нейросети - это готовые ИИ агенты.
ИИ агенты от 3SELLERВнутри агентов лежат готовые сценарии под конкретные задачи: написать пост, составить код, сделать аналитику. Ты выбираешь агента, начинаешь общение, и внутри агента можно менять модель. Очень удобно, когда нет времени писать промпты с нуля.
Так что мой совет: сначала напиши свою нейросеть на Python, пойми, как она работает, а затем переходи на 3GPT, чтобы использовать все возможности современных моделей без боли с оплатой и блокировками.
Получить доступ ко всем флагманским нейросетям из России можно на официальном сайте 3GPT - 3seller.com/3gpt. Пополнить баланс - обычной российской картой, через СБП или криптой. Никаких сложных настроек, просто регистрируешься и начинаешь пользоваться.
Начни с установки numpy и первого запуска кода - через 15 минут у тебя будет своя нейросеть. Когда захочешь перейти к современным моделям, 3GPT уже ждет тебя.