← Назад к вопросам
Что является основным строительным блоком нейронных сетей?
1.0 Junior🔥 231 комментариев
#Тестирование
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Основной строительный блок нейронных сетей
Нейрон (или искусственный нейрон) — это основной строительный блок нейронных сетей. Он моделирует поведение биологического нейрона и выполняет простые математические операции.
Строение искусственного нейрона
Искусственный нейрон состоит из следующих компонентов:
- Входы (inputs) — значения данных, подаваемые в нейрон
- Веса (weights) — коэффициенты, которые определяют важность каждого входа
- Смещение (bias) — добавочный параметр для сдвига функции активации
- Функция активации (activation function) — нелинейная функция для введения нелинейности
- Выход (output) — результат вычисления нейрона
Математическая модель
Нейрон вычисляет значение по формуле:
y = activation(w₁*x₁ + w₂*x₂ + ... + wₙ*xₙ + b)
Где:
- x₁, x₂, ..., xₙ — входные значения
- w₁, w₂, ..., wₙ — веса
- b — смещение
- activation() — функция активации
Пример реализации на Python
import numpy as np
class Neuron:
def __init__(self, input_size):
self.weights = np.random.randn(input_size) * 0.01
self.bias = np.zeros((1, 1))
def forward(self, x):
# x: (batch_size, input_size)
z = np.dot(x, self.weights) + self.bias
# ReLU активация
output = np.maximum(0, z)
return output
Типы функций активации
# ReLU (Rectified Linear Unit)
def relu(x):
return np.maximum(0, x)
# Sigmoid
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# Tanh
def tanh(x):
return np.tanh(x)
# Softmax (для многоклассовой классификации)
def softmax(x):
return np.exp(x) / np.sum(np.exp(x), axis=1, keepdims=True)
Многослойная нейронная сеть
Нейроны объединяются в слои для создания более мощных моделей:
class SimpleNN:
def __init__(self, layer_sizes):
self.layers = []
for i in range(len(layer_sizes) - 1):
layer_neurons = [Neuron(layer_sizes[i]) for _ in range(layer_sizes[i+1])]
self.layers.append(layer_neurons)
def forward(self, x):
for layer in self.layers:
outputs = []
for neuron in layer:
outputs.append(neuron.forward(x))
x = np.column_stack(outputs)
return x
Ключевые концепции
- Обучение (training) происходит путём корректировки весов через алгоритм обратного распространения ошибки (backpropagation)
- Градиент показывает направление изменения весов для минимизации ошибки
- Функция потерь (loss function) измеряет ошибку между предсказанием и истинным значением
Нейроны работают вместе в слоях и сетях, позволяя моделировать сложные нелинейные отношения в данных.