Тогда напишите полностью, пожалуйста.
приходится много приводить
Код:
//Управляющий цикл обучения
for (int i = 0; i < HCount; i++)
{
int index = i;
SActivation(index);
RActivation(index);
// Узнаем ошибся перцептрон или нет, если ошибся отправляем на обучение
Reaction r = GetError(index, NecessaryReactions[index]);
if (r.E == true)
{
LearnedStimulAR(index, r.Error);
Error++; // Число ошибок, если в конце итерации =0, то выскакиваем из обучения.
}
}
private Reaction GetError(int argStimulNumber, sbyte[] need)
{
for (int i = 0; i < RCount; i++)
{
int output = (RField[i] > 0) ? 1 : -1;
if (output != need[i])
{
r.E = true;
r.Error[i] = need[i];
}
}
return r;
}
void LearnedStimulAR(int argStimulNumber, float[] rError)
{
for (int j = 0; j < RCount; j++)
{
for (int i = 0; i < ACount; i++)
{
if (AField[i] > 0)
{
WeightAR[i][j] = WeightAR[i][j] + rError[j];
}
}
}
}
-- Чт ноя 06, 2025 02:08:07 --Первая обучающая выборка: [[1, 1, 0, 0, 0], [1, 0, 1, 0, 0]]. Таргеты [0, 1]
Первая тестовая выборка: [[1, 0, 0, 1, 0], [1, 0, 0, 0, 1]]. Таргеты [0, 1]
Вторая обучающая выборка: [[1, 1, 0, 0, 0], [1, 0, 1, 0, 0]]. Таргеты [0, 1]
Вторая тестовая выборка: [[1, 0, 0, 1, 0], [1, 0, 0, 0, 1]]. Таргеты [1, 0]
Уже лучше. Давайте разберемся с первой. Тут видимо нужно улучшить ограничение
Обучающая выборка L с метками Lm классово-покрывает тестовую выборку T с метками Tm относительно меры сходства J, если для каждого класса c и для каждого тестового примера t ∈ T с меткой c существует хотя бы один обучающий пример l ∈ L с той же меткой c такой, что J(l, t) > 0.
я понимал под этим, что для разных классов, должен существовать хотя бы один различающийся по координате признак который пересекается. Например,
обучающая выборка: [[0, 1, 1, 0, 0, 0], [1, 1, 0, 1, 0, 0]]. Таргеты [0, 1]
тестовая выборка: [[1, 1, 0, 0, 1, 0], [0, 1, 0, 0, 0, 1]]. Таргеты [0, 1]
у вас же первый признак совпадает всегда, и тогда J(l, t) = 0
-- Чт ноя 06, 2025 02:12:07 --Про вторую выборку, я уже сказал, что это малоосмысленный пример, Если только не добавить такого пафоса, что один экспериментатор работал с первым набором, а второй экспериментатор со вторым .. и вывод видимо который вы хотите показать ,что у одного перцептрон будет работать без переобучения, а для второго с переобучением. Но вы не знаете у которого )
-- Чт ноя 06, 2025 02:22:01 --Если я правильно понимаю, ваш пример как раз нарушает это
Цитата:
не должно существовать никакой подпоследовательности стимулов, содержащей по меньшей мере по одному стимулу каждого класса, которая приводила бы к одинаковому коэффициенту смещения для каждого А-элемента в множестве А-элементов, реагирующих на эту подпоследовательность.
Второе условие нуждается в пояснении. Коэффициентом смещения для А-элемента Ф. Розенблатт называл отношение

числа стимулов в обучающей выборке, которые относятся к одному классу, и возбуждают данный А — элемент, к числу стимулов, относящихся к другому классу, но также возбуждающие этот же А-элемент. Нарушение второго условия делает отношение

постоянным для А-элементов, реагирующих на стимулы из такой определённой подпоследовательности появления стимулов на входах перцептрона.
-- Чт ноя 06, 2025 02:32:35 --Вообще иметь по одному примеру в обучающей выборке для класса это как минимум странно.