Как настроить функцию ошибок MATLAB Neural Network - PullRequest
1 голос
/ 21 августа 2011

Я хочу реализовать эту функцию в качестве функции ошибки для обучения нейронной сети:

function err = MyErrorFunction(T,O)
  d = T - O;
  err = -d*( exp(-d) - 1 );
end

, где T - целевое значение, а O - выход нейронной сети для входа.

Алгоритм обучения не имеет значения (очевидно, что функция ошибки для trainlm не настраивается, поэтому я могу использовать trainscg).

Я нашел эту статью , в которой предлагается использовать файл template_performance.m для определения новой функции производительности. Я говорю, что мне нужно просто скопировать этот файл и настроить его так, как я хочу.

Но, как я понял, `template_performance.m` - это шаблон для функции ** performance **, а не для функции ** error **:` template_performance.m` получает значения ошибок и выводит значение производительности, например, может суммируйте квадрат ошибок и выведите их (SSE).

По-видимому, template_performance.m устарело начиная с MATLAB 2010.

Итак, как я могу изменить способ вычисления / оценки ошибки / производительности при обучении нейронной сети?

Ответы [ 2 ]

2 голосов
/ 06 июня 2013

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

В итоге мне пришлось взламывать основные файлы функции производительности, которую я не планировал использовать (SSE). Под каталогом Matlab MATLAB\R2012b\toolbox\nnet\nnet\nnperformance вы можете найти их. Я изменил функцию apply.m (в папке SSE +) с некоторыми направленными весами, основанными на изменении t, t-1. Но затем я столкнулся с проблемой обучения алгоритмов, отправляющих параметры в apply() другим способом и форматом, чем perform(). В итоге я не использовал perform() и написал свой собственный код для этого. Господи ... Всего беспорядка.

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

1 голос
/ 21 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...