Классификация математически эквивалентна аппроксимации, только аппроксимируемая функция принимает ограниченное число значений. На практике, опять-таки, это и есть аппроксимации, только с другими требованиями к точности и с другим видом функции (что важно в других методах, но для персептрона не очень).
Нечёткая классификация окончательно уравнивает их, и по количеству необходимых данных, и по требованиям к точности.
Кроме этого, чисто из опыта и логики, классификатору для чёткого различения классов нужно как минимум N^n примеров (где N — число классов, n — длина входного вектора). То есть в нашем случае 65к вместо 4к.
Для задачи аппроксимации это в разы меньше, потому что аппроксимация по определению приближённая.
В данном случае разница в физическом смысле. Считать зависимость температуры от близости к источнику аппроксимируемой функцией намного логичнее, чем постулировать каждый градус температуры отдельным классом.
Я умею решать задачи и выбираю под них подходящий инструмент, вместо «универсального решателя». Персептроны любого толка, кстати, являются универсальными решателями, именно поэтому они вымерли: они всё решают одинаково плохо.
Я решил, что это аппроксимация, во-первых, потому, что любая задача, решаемая персептроном, сводится к аппроксимации. А во-вторых потому, что для решения этого как классификации обучающее множество должно быть сильно больше (минимум на порядок).
На втором графике слева есть шкала от -3 до +2. Видимо, это то, что вы и имеете ввиду.
Если выбирать ответ математическим округлением, то
на обучающей выборке
2012 правильных ответов из 2048
на тестовой выборке
2959 правильных ответов из 4096
Мне подход живо напомнил Вавилонскую библиотеку =)
А при упоминании лет, необходимых для перебора этих считанных пикселей с грустью вспомнил, что такая библиотека в 10 в степени 600 000 раз больше наблюдаемой Вселенной.
Впрочем, это не мешает ей храниться в интернете.
То есть вы по крайней мере признали, что вы дурак в том, что выбрали для этой задачи персептрон Розеблатта, а не более подходящий инструмент. Прогресс.
Я уже привёл график. Если в цифрах, то
На обучающей выборке
отклонение < 0.0001: 1021 из 2048,
отклонение < 0.01: 1931 из 2048
На тестовой выборке
отклонение < 0.0001: 1901 из 4096,
отклонение < 0.01: 3853 из 4096
Сложно сравнить с вашей, потому что у вас бинарная сеть, а у меня аналоговая.
Очевидно, надо бы решить, какое отклонение считать ошибкой.
Да. Потому что вы зачем-то решаете это как задачу классификации, хотя это типичная задача аппроксимации функции. Вот такой.
Сама по себе функция неприятная, персептрон любит более гладкие. Но всё же с любыми вариациями (типа вставки плато, как в ваших следующих экзерсисах) вполне разгрызаемая даже персептроном, не говоря уж о чём-то более приличном.
Кстати, если вам интересно, вот разница между выходом сети и эталоном в той же нотации. Не то чтобы это что-то аргументировало, но лично мне просто доставляет эстетическое удовольствие.
Там просто одно слово на всех. Но именно поэтому обычно таки уточняют степень — bachelor thesis, master thesis, phd thesis. Cтранно, что в статье этого не сделано.
Вы как маленький. Если вам говорят, что что-то возможно, это обычно так и есть. Вот если говорят, что невозможно — да, обычно глупость.
Я не поленился. MLP, 300 нейронов в скрытом слое, обратное распространение ошибки.
Меня хватило на 500 эпох. Ошибка убывает убийственно медленно, и по хорошему надо ещё столько же. Но а) этот результат уже колоссально лучше вашего б) все мы знаем, какой у этой сети глобальный минимум и я не вижу ни одной причины, чтобы она его рано или поздно не достигла. А вы?
Нечёткая классификация окончательно уравнивает их, и по количеству необходимых данных, и по требованиям к точности.
Для задачи аппроксимации это в разы меньше, потому что аппроксимация по определению приближённая.
Вариант для питона лежит здесь: code.google.com/p/neurolab/
Остальное оставлю без комментариев.
Я решил, что это аппроксимация, во-первых, потому, что любая задача, решаемая персептроном, сводится к аппроксимации. А во-вторых потому, что для решения этого как классификации обучающее множество должно быть сильно больше (минимум на порядок).
Если выбирать ответ математическим округлением, то
на обучающей выборке
2012 правильных ответов из 2048
на тестовой выборке
2959 правильных ответов из 4096
Чтоб было веселее: тепловая карта ошибки
А при упоминании лет, необходимых для перебора этих считанных пикселей с грустью вспомнил, что такая библиотека в 10 в степени 600 000 раз больше наблюдаемой Вселенной.
Впрочем, это не мешает ей храниться в интернете.
На обучающей выборке
отклонение < 0.0001: 1021 из 2048,
отклонение < 0.01: 1931 из 2048
На тестовой выборке
отклонение < 0.0001: 1901 из 4096,
отклонение < 0.01: 3853 из 4096
Сложно сравнить с вашей, потому что у вас бинарная сеть, а у меня аналоговая.
Очевидно, надо бы решить, какое отклонение считать ошибкой.
Сама по себе функция неприятная, персептрон любит более гладкие. Но всё же с любыми вариациями (типа вставки плато, как в ваших следующих экзерсисах) вполне разгрызаемая даже персептроном, не говоря уж о чём-то более приличном.
Кстати, если вам интересно, вот разница между выходом сети и эталоном в той же нотации. Не то чтобы это что-то аргументировало, но лично мне просто доставляет эстетическое удовольствие.
Я не поленился. MLP, 300 нейронов в скрытом слое, обратное распространение ошибки.
Меня хватило на 500 эпох. Ошибка убывает убийственно медленно, и по хорошему надо ещё столько же. Но а) этот результат уже колоссально лучше вашего б) все мы знаем, какой у этой сети глобальный минимум и я не вижу ни одной причины, чтобы она его рано или поздно не достигла. А вы?
Динамика ошибки:
Epoch: 1; Error: 452711.998797;
Epoch: 2; Error: 76372483.8623;
Epoch: 3; Error: 8175804.78125;
Epoch: 4; Error: 21976242.8711;
Epoch: 5; Error: 4553489.62552;
…
Epoch: 496; Error: 1774.94830712;
Epoch: 497; Error: 1770.09887042;
Epoch: 498; Error: 1765.39419996;
Epoch: 499; Error: 1760.83450457;
Epoch: 500; Error: 1755.34308093;
График ошибки:
График выхода:
Расхождение сумм — без малого 37. Единица на десять тысяч.