Машинное обучение, после тренировки как именно он получает прогноз? opencv

Итак, после того, как у вас есть обученный алгоритм машинного обучения с вашими слоями, узлами и весами, как именно он получает прогноз для входного вектора? Я использую MultiLayer Perceptron (нейронные сети).

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

Я запутался при использовании opencv для этого, потому что в guide он говорит, когда вы используете функцию предсказать:

Если вы используете функцию активации по умолчанию cvANN_MLP :: SIGMOID_SYM со значениями параметров по умолчанию fparam1 = 0 и fparam2 = 0, то используется функция y = 1.7159 * tanh (2/3 * x), поэтому выходные данные будут в диапазоне от [- 1.7159, 1.7159] вместо [0,1].

Однако при обучении в документации также указано, что SIGMOID_SYM использует функцию активации: f(x)= beta*(1-e^{-alpha x})/(1+e^{-alpha x} ) Где альфа и бета - переменные, определяемые пользователем.

Итак, я не совсем понимаю, что это значит. Где в игру вступает функция tanh? Кто-нибудь может прояснить это, пожалуйста? Спасибо за уделенное время!

Документация, в которой это находится, находится здесь: ссылка на tanh находится под описания функций прогнозировать. Ссылка на функцию активации находится на S-образном графике в верхней части страницы.

Поскольку это общий вопрос, а не конкретный код, я не публиковал с ним никакого кода.


person Community    schedule 01.04.2015    source источник


Ответы (1)


Я бы посоветовал вам прочитать о соответствующем алгоритме, который вы используете или планируете использовать. Честно говоря, не существует единого определенного алгоритма для решения проблемы, но вы можете изучить, какие функции у вас есть и что вам нужно.

То, как алгоритм выполняет прогнозирование, полностью зависит от выбора алгоритма. Машина опорных векторов (SVM) выполняет прогнозирование путем подгонки гиперплоскостей к пространству признаков и использования некоторой метрики, такой как расстояние, для обучения, а затем изученная модель используется для прогнозирования. KNN, напротив, использует простое измерение ближайшего соседа для прогнозирования.

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

person kcc__    schedule 02.04.2015