Comments 32
У меня уже получилось аппроксимировать окружность, там просто в сеть добавится еще один вход y, плюс еще один скрытый слой. Позже напишу статью об этом.
Но преимущество ReLU в том, что это очень простая функция. И имеет очень простую производную. Соответственно скорость вычислений существенно возрастает. Поэтому ReLU можно использовать там, где не важна высокая точность, а важно скорость работы нейронной сети.
Нифига подобного. Преимущество ReLU в том, что для нее не надо подгонять входные и выходные данные под диапозон [0;1] или [-1;1] с нормированием. Что в реальной жизни на реальных данных далеко не всегда возможно.(Далеко не для всех данных известны максимумы и минимумы, без чего нормализация будет неточной).
А теперь по функции. Вы решаете проблему, у которой уже есть решения намного более простые и эффективные чем нейронные сети — вывод функции по точкам 100% ей принадлежащим. Для этого нейросети не нужны! А нужны они в реальной жизни, когда к данным примешан случайный шум. И простые алгоритмы аппроксимации показывают себя намного хуже. Хотите, чтобы ваша демка была про нейросети — реализуйте добавление случайного шума хотя бы +-5% ко всем входным f(x).
Ну и, как правильно указали выше, гораздо интереснее будет выведение нейросетей для замнутых или самопересекающихся кривых, где нейросети пишутся намного быстрее и лучше аналогов.
Про relu, такого не знал, спасибо. Я никакую проблему не решал. Этот пример учебный, и сделал для того что бы лучше понять, как работают/обучаются нейросети. Может еще кому-нибудь этот пример и статья пригодится. Начал с самого простого, и до примерами с шумом еще доберусь.
То есть, вы предлагаете скачать левый бинарник? И исходники доступны только после покупки, так что проверить и скомпилировать самостоятельно для проверки не выйдет.
Запускать исполняемые файлы из недоверенных источников любой здравомыслящий человек не будет.
В статье никакой описательной части по существу моделей, алгоритмов и принципов работы нет. Просто полотно с красивыми картинками.
Получается, вся суть в том, чтобы продать кота в мешке?
Ну если вы переживаете из-за вирусов в исполняемом файле, то уверяю вас, там их нет.
Ну насчет исходников, мое право делать с ними все что захочу. Тем более подчеркиваю что эта статья не рекламнаю, тут про их продажу ничего нет. Есть лишь в видео и на моем сайте.
«Выходит, что универсальная теорема аппроксимации действительно верна».
Нельзя так говорить. Вы лишь проверили пару примеров (и то, это на самом деле не проверка). Нельзя на основе этого утверждать о верности теоремы.
LeakRelu
CRelu
и еще какие нить функции активации было бы интересно посмотреть
троллейбус.jpg
Взять нейронную сеть и начать с её помощью решать задачу, для которой она заведомо не очень хороша? Ну… Может, как учебная задачка и сойдёт, но я бы не стал.
(double x) => { return 1; }
Даёт 100%-ную точность приближения, как показывают тесты.
Ну что умник, сам догадаешься почему, или подсказка через сутки? :)
Сможешь привести пример кода, который продемонстрирует, что свойства не те?
А знаешь почему не сможешь? Потому что не целые числа в компьютере представляются в виде чисел с плавающей точкой, а они, так уж исторически сложилось, могут представлять только рациональные числа.
Будь добрее к людям, и менее язвителен.
Выходит, что универсальная теорема аппроксимации действительно верна
А разве ее не доказал Цыбенко еще в 1989 году?
В целом, пока пока статья смотрится бледновато — особенных глубин понимания не продемонстрировано. Настоятельно рекомендую посмотреть на курсере курс Machine Learning стэнфордского университета, хотя бы первые 4 недели курса. Там буквально на пальцах разжевывается суть задачи приближения функции и то, как она связана с нейронной сетью. В частности, там вы узнаете, почему добавление весового нейрона улучшает сходимость, в чем прелесть нормирования входных данных, и как можно строить нелинейные приближения, используя линейную функцию активации
ИМХО — правильный путь от половины до четверти пути, там где ты на основе подсказок и намёков понять что именно нужно делать чтобы это увидеть/провеить делать самому, потом снова читать чтобы нахвататься новых идей подсказок и готовых решений для следующей самостоятельно работы.
В статье этот вопрос не раскрыт напрочь. То есть для любой выбранной одинокой точки в сеть скармливается только f(x), без x. И не понятно сколько раз вводится.
Аппроксимация математических функций нейронной сетью