Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial Internet of Things >> Встроенный

Обучение базового перцептрона на Python: пошаговое руководство

Обучение базового перцептрона на Python

Это руководство проводит вас через полностью прокомментированную Python-реализацию, автоматически обучающую веса однослойного перцептрона. Код готов к копированию, запуску и адаптации под ваши данные.

Изучите серию AAC о перцептроне

Для более глубокого контекста или перехода к продвинутым темам проверьте остальные статьи:

  1. Как выполнять классификацию с нейронной сетью: что такое перцептрон?
  2. Как использовать простой пример перцептрона для классификации данных
  3. Как обучать базовый перцептрон
  4. Понимание простого обучения нейронных сетей
  5. Введение в теорию обучения для нейронных сетей
  6. Понимание скорости обучения в нейронных сетях
  7. Продвинутое машинное обучение с многослойным перцептроном
  8. Сигмоидная функция активации: активация в многослойных перцептронах
  9. Как обучать многослойный перцептрон
  10. Понимание формул обучения и обратного распространения для многослойных перцептронов
  11. Архитектура нейронной сети для Python-реализации
  12. Как создать многослойный перцептрон на Python
  13. Обработка сигналов с нейронными сетями: валидация в дизайне нейронных сетей
  14. Обучающие наборы данных для нейронных сетей: как обучать и валидировать Python нейронную сеть

Классификация с однослойным перцептроном

Мы начинаем с классической задачи бинарной классификации в 3D-пространстве. Архитектура сети — один скрытый слой с тремя входными узлами и одним выходным узлом, использующим функцию активации unit-step.

Обучение базового перцептрона на Python: пошаговое руководство

Выходной узел применяет следующую unit-step функцию:

\[f(x)=\begin{cases}0 & x < 0\\1 & x \ge 0\end{cases}\]

Для иллюстрации обучения мы расширяем архитектуру для автоматической настройки весов через простой обучающий цикл:

Обучение базового перцептрона на Python: пошаговое руководство

Python-реализация

Следующий скрипт читает обучающие данные из Excel-файла, инициализирует веса случайно и итеративно обновляет их с использованием правила обучения перцептрона.

 import pandas
import numpy as np
# Размерность входного пространства (x, y, z)
input_dim = 3
# Скорость обучения контролирует величину корректировки весов
learning_rate = 0.01
# Случайные начальные веса; можно задать фиксированные для воспроизводимости
Weights = np.random.rand(input_dim)
# Weights = np.array([0.5, 0.5, 0.5])
# Загрузка датасета: лист с колонками для каждого признака и колонкой 'output'
Training_Data = pandas.read_excel("3D_data.xlsx")
# Разделение ожидаемых выходов от матрицы признаков
Expected_Output = Training_Data.output
Training_Data = Training_Data.drop(["output"], axis=1)
# Конвертация в NumPy массив для векторизованных операций
Training_Data = np.asarray(Training_Data)
training_count = len(Training_Data[:, 0])
# Обучение за несколько эпох
for epoch in range(5):
    for datum in range(training_count):
        # Взвешенная сумма входов
        Output_Sum = np.sum(np.multiply(Training_Data[datum, :], Weights))
        # Применение unit-step активации
        Output_Value = 0 if Output_Sum < 0 else 1
        # Вычисление ошибки между ожидаемым и фактическим выходом
        error = Expected_Output[datum] - Output_Value
        # Обновление каждого веса согласно обучающему правилу
        for n in range(input_dim):
            Weights[n] += learning_rate * error * Training_Data[datum, n]
print(f"w_0 = {Weights[0]:.3f}")
print(f"w_1 = {Weights[1]:.3f}")
print(f"w_2 = {Weights[2]:.3f}")

Ключевые концепции объяснены

Настройка сети и организация данных

Сеть имеет три входных узла для соответствия 3D-координатам. Скорость обучения 0.01 — стандартная отправная точка; вы можете скорректировать её после экспериментов. Веса инициализируются случайно для избежания симметрии, но вы можете установить их в фиксированное значение для детерминированного поведения.

Обучающие данные читаются из Excel-файла, разделяются на входы и ожидаемые выходы, затем конвертируются в NumPy массив для эффективных вычислений.

Вычисление выходных значений

Каждая эпоха итерируется по всем обучающим сэмплам. Для каждого сэмпла вычисляется взвешенная сумма входов. Функция unit-step затем отображает эту сумму в бинарный выход: 0 если сумма отрицательна, 1 иначе.

Обновление весов

Когда предсказанный выход отличается от ожидаемого, правило обучения перцептрона корректирует каждый вес пропорционально значению входа, ошибке и скорости обучения:

\[w_{new} = w + (\alpha \times \delta \times input)\]

где \(\delta = \text{output}_{expected} - \text{output}_{calculated}\) и \(\alpha\) — скорость обучения.

Заключение

Вы увидели полную, аннотированную реализацию однослойного перцептрона на Python. Код служит твёрдой основой для экспериментов с разными датасетами, скоростями обучения или даже расширения сети до множественных выходов в будущих проектах.

Встроенный

  1. Системы обнаружения вторжений (IDS): защита сети с умными алертами
  2. Как стать автоэлектриком: обучение, обязанности и карьерные перспективы
  3. Укрепление промышленных IoT устройств для предотвращения кибератак
  4. Создание автономной ИИ-модели для обнаружения стадий диабетической ретинопатии с Edge Impulse
  5. CEVA представляет NeuPro‑S:.next‑gen AI процессор для edge‑выводов глубоких нейросетей
  6. Raspberry Pi и HDC2010: полное руководство по настройке I2C датчика температуры и влажности
  7. Узнайте свой ключ безопасности сети: простые шаги для поиска и защиты Wi‑Fi
  8. 5 основных стратегий сетевой безопасности для малого бизнеса
  9. Оценка безопасности сети цеха: готовы ли вы?
  10. Подготовка рабочей силы завтрашнего дня к Industry 4.0: стратегии обучения для цифровой фабрики