Как я могу решить проблемы несоответствия размеров или отображения веса в нейронной сети Кохонена с помощью Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу решить проблемы несоответствия размеров или отображения веса в нейронной сети Кохонена с помощью Python?

Сообщение Anonymous »

Я реализую самоорганизующуюся карту Кохонена (SOM) на Python. Моя цель — обучить SOM масштабированным входным данным (X_scaled) и итеративно обновлять веса в течение нескольких эпох. Однако я столкнулся с двумя основными проблемами:
  • Несоответствие размеров: я не уверен, что размеры входных данных X_scale< /code> (5000 образцов, 17 функций) правильно совпадают с весами весовой матрицы (2x17).
  • Отображение веса внутри цикла: I я не уверен, отображаются ли веса внутри цикл обучения — наиболее эффективный способ отслеживать их прогресс.
Я инициализировал матрицу весов случайными значениями, и цикл обучения обновляет веса на основе победитель. Я ожидал, что SOM будет тренироваться правильно, а веса будут обновляться в каждой эпохе. Однако я не уверен, что матрица весов правильно согласована с входными данными, и я не уверен, является ли отображение весов в течение каждой эпохи наиболее эффективным подходом.
Вот код Я работаю с:
import numpy as np

class Kohonen:
def __init__(self, weights):
self.weights = weights

def win(self, sample):
distances = np.sum((sample - self.weights)**2, axis=1)
return np.argmin(distances)

def update(self, sample, k, alpha):
self.weights[k] += alpha * (sample - self.weights[k])

# Initialize weights for the neural network
weights = np.random.normal(size=(2, 17), loc=0, scale=1)

# Create the Kohonen model
kohonen = Kohonen(weights)

# Number of epochs and learning rate
epochs = 260
alpha = 0.1

# Input data (ensure dimensions are consistent)
X_scaled = np.random.random((5000, 17)) # Replace with actual data

# Training loop
for epoch in range(epochs):
print(f"Epoch: {epoch}")
for sample in X_scaled:
winner = kohonen.win(sample)
kohonen.update(sample, winner, alpha)
print(kohonen.weights) # Display weights after each epoch`


Подробнее здесь: https://stackoverflow.com/questions/792 ... onen-neura
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»