Класс Neuron может быть реализован следующим образом:
“`python
class Neuron:
def __init__(self, inputs):
self.inputs = inputs
self.weights = [1] * (len(inputs) – 1)
self.bias = inputs[-1] # последний параметр является смещением
def weighted_sum(self):
sum = 0
for i in range(len(self.weights)):
sum += self.inputs[i] * self.weights[i]
weighted_sum = sum + self.bias
return weighted_sum
def step_activation(self, threshold=0):
weighted_sum = self.weighted_sum()
if weighted_sum >= threshold:
return 1
else:
return 0
def sigmoid_activation(self):
weighted_sum = self.weighted_sum()
output = 1 / (1 + math.exp(-weighted_sum))
return output
“`
В этом классе `__init__` инициализирует нейрон с входными параметрами (`inputs`). Веса (`weights`) задаются как 1 для каждого входа, за исключением последнего, который является смещением (`bias`).
Метод `weighted_sum` вычисляет взвешенную сумму, перемножая каждый вход на соответствующий вес и добавляя смещение.
Метод `step_activation` использует ступенчатую функцию активации, где порог `threshold` по умолчанию равен 0. Если взвешенная сумма превышает порог, возвращается 1, иначе возвращается 0.
Метод `sigmoid_activation` использует сигмоидальную функцию активации. Он вычисляет взвешенную сумму и применяет ее к формуле сигмоиды для получения активационного значения в диапазоне от 0 до 1.
Этот класс реализует требуемые функции для модели нейрона, принимающего от одного до 10 входных параметров и выполняющего матричное умножение с использованием циклов.