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) и получить предсказания.