Почему классификация нейронных сетей Matlab возвращает десятичные значения

У меня есть входной набор данных (матрица 25x1575), который нормализован к значениям от 0 до 1. У меня также есть двоичная отформатированная выходная матрица (9x1575), например 0 0 0 0 0 0 0 0 1, 1 0 0 1 1 1 0 0 1...

Я импортировал оба файла в matlab nntool, и он автоматически создал сеть с 25 входными и 9 выходными узлами, как я хотел.

После того, как я обучил эту сеть с использованием обратной связи обратного хода, я протестировал модель в ее обучающих данных, и каждый выходной узел возвращает десятичное значение, например (-0.1978 0,45913 0,127248 0,25072 0,45199 0,59368 0,38359 0,31435 1,0604).

Почему он не возвращает дискретные значения, такие как 1 0 0 1 1 1 0 0 1? Есть ли что-то, что я должен установить в nntool, чтобы получить такие значения?

1 ответ

Решение

В зависимости от природы нейронов, выход может быть любым. Наиболее популярными нейронами являются линейная сигмоидальная кривая (диапазон [0, 1]) и гиперболический тангенс (диапазон [-1, 1]). Первый может выводить любое значение. Последние два c приближают пошаговую функцию (т.е. двоичное поведение), но конечный пользователь (вы) должен определить значение отсечения для этого перевода.

Вы не сказали, какие нейроны используете, но вам определенно следует прочитать больше о том, как реализованы нейронные сети и как они работают. Вы можете начать с этого видео, а затем прочитать " Искусственные нейронные сети для начинающих " С. Гершенсона.

ОБНОВЛЕНИЕ Вы говорите, что используете нейро-сигмовидные нейроны, и удивляетесь, почему вы не получаете значения, очень близкие к -1 или 1.

Выходной сигнал нейрона является гиперболическим тангенсом суммы всех его входов. Возможно любое значение от -1 до 1. То, что определяет "крутизну" выхода (другими словами: пропорцию промежуточных значений), является выходными значениями предшествующих нейронов и их весами. Они зависят от выходных данных их предыдущих нейронов и их весов и т. Д. И т. Д. И т. Д. Алгоритм обучения должен найти набор весов, который минимизирует предопределенную функцию оценки при заданном входном значении. В типичной установке функция оценки - это функция, которая сравнивает выходные данные нейронной сети с набором желаемых результатов и возвращает одно число, которое указывает, насколько различаются фактические и требуемые результаты.

Перед использованием NN вы должны сделать домашнее задание. Как минимум, вы должны решить, какова ваша цель, как вы интерпретируете выходные данные NN и как вы измеряете производительность NN и как вы обновляете весовые коэффициенты.

Другие вопросы по тегам