2013-02-27 4 views
3

У меня есть нейронная сеть, в которой мне нужно оценить среднюю гиперплоскость, которая указывает среднюю ошибку по всем примерам обучения. Примеры обучения присутствуют сразу. Например, если у меня есть одна переменная, то мне нужно найти строку, которая обозначает среднее значение функции. Для моего приложения точное среднее не требуется, эвристика также будет действовать.Оценка средней гиперплоскости ошибки для нейронной сети

Средний выход каждого выходного нейрона по всем примерам обучения. где:

t_j' = sum_i_1_to_N (t_i_j)/N    

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

Avg Error = 1/2 * sum_i_1_to_N (sum_j_1_C (t_j' - t_i_j))^2) 

Это эвристическое, но Я хочу знать, как он также будет поддерживать постоянный Avg Error для определенного набора тренировок.

Действительно ли это так? Есть ли лучший способ найти среднее (вид) нейронной сети для фиксированного набора тренировок?

ответ

0

Не зная больше о вашей проблеме, я бы сказал нет.

Средн ошибка = 1/2 * sum_i_1_to_N (sum_j_1_C (T_j»- t_i_j))^2)

Вышеприведенные выглядит больше как стандартное отклонение, чем в среднем. Это не будет сказать вам много, подумайте:

Error = sum_i_1_to_N (sum_j_1_C (ABS(c_j' - t_i_j)))

(где c_j правильный выход на J)

Теперь вы смотрите на вычислительном дешевый номер, который служит той же цели числовое значение (вы можете разделить все числа на N, чтобы получить фактическое значение, но почему вы беспокоитесь?). СРК будет выглядеть следующим образом:

ErrorRMS = sum_i_1_to_N (sum_j_1_C (ABS(e_j' - t_i_j)^2))

ли вы хотите RMS или в среднем будет зависеть от вашей проблемы, но чаще всего, это не имеет большого значения (наборы с более низкими RMS будет , как правило, так или иначе, так что вы в основном развивается то же самое).

Отметьте, что Error и ErrorRMS Это не средние значения или среднеквадратические значения, но они имеют одинаковое значение, и их дешевле получить.

Это в сторону, если у вас есть нейронная сеть с несколькими выходами, работающая на нескольких этапах (тем самым вы создаете гиперплоскость ошибки, о которой вы говорите), тогда я бы в первую очередь предложил структурировать проблему немного по-другому.

Единственная причина, по которой у вас должна быть нейронная сеть с более чем 1 выходом, - это то, что выходы могут быть поняты только в связи друг с другом. В противном случае вам следует провести обучение N нейронных сетей, а не 1 нейронную сеть с выводами N. Это было сказано, если вы не можете создать одну ошибку для описания всех выходов сети за один шаг, возможно, вам следует разделить ее на несколько сетей?Затем вы можете просто взять RMS или прямое среднее количество ошибок над образцами, на которых тестируется сеть.

Имеет ли это смысл?

Смежные вопросы