AI
July 23, 2023
Классификация апельсинов и яблок по весу и диаметру
Давайте рассмотрим правильный пример обучения функции сигмоиды на базе двух типов входных данных и целевого класса. Предположим, у нас есть данные о фруктах, и мы хотим классифицировать их как "яблоки" или "апельсины" на основе двух признаков: "диаметр" и "вес".
Вот как может выглядеть пример кода для обучения нейронной сети с использованием функции сигмоиды и двух типов входных данных:
import numpy as np
# Входные данные
X = np.array([[0.5, 0.2], # Яблоко
[0.3, 0.4], # Яблоко
[0.6, 0.9], # Апельсин
[0.1, 0.8]]) # Апельсин
# Целевой класс
Y = np.array([0, 0, 1, 1]) # 0 - Яблоко, 1 - Апельсин
# Функция сигмоиды
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# Инициализация весов
weights = np.random.rand(2)
# Обучение модели
epochs = 1000
learning_rate = 0.1
for epoch in range(epochs):
# Прямое распространение
output = sigmoid(np.dot(X, weights))
# Вычисление ошибки
error = Y - output
# Обновление весов с использованием градиентного спуска
weights += learning_rate * np.dot(X.T, error * output * (1 - output))
# Проверка модели на новых данных
new_data = np.array([[0.8, 0.1], # Яблоко
[0.2, 0.7]]) # Апельсин
predictions = np.round(sigmoid(np.dot(new_data, weights)))
print(predictions)
В этом примере у нас есть два типа входных данных (диаметр и вес фруктов) и соответствующий им целевой класс (яблоко или апельсин). Мы определяем функцию сигмоиды, инициализируем веса и обучаем модель на предоставленных данных.
После обучения мы можем проверить модель на новых данных (new_data) и получить предсказания.