Open source
Python
C++
Machine learning
Artificial Intelligence
Comments 17
+1
Примеры показывают как создать сеть, создать обучающую выборку и как включить обучение.
Какую задачу захотите решить, для того сеть и будет. На MNIST учат сеть распознавать числа на картинках, а можно с помощью нейронки решать другие задачи.
+3
Не используя BLAS для матричных умножений (для CPU выбор досточно обширен — OpenBLAS, BLIS, ATLAS, ACML, MKL, или что-то более высокоуровневое, типа Eigen), вы мгновенно теряете в производительности, причем достаточно много. Если мне не изменяет память, на процессорах семейства Haswell, 18 ядер, MNIST на плоских полносвязанных сетках тренируется за несколько десятков секунд до ~98% (с учетом того, что бейзлайн в 90% с логистической регрессией достигается за секунды).
А в целом, тот стиль архитектуры, который вы используете (в частности, выделение понятия нейрона в отдельный класс), был популярен лет 15 назад. Сейчас используют векторизированные представления/вычисления.
0
Хотел реализовать сеть без внешних зависимостей.
Буду переписывать архитектуру, переходить к матричному подходу.
-1
Нейронные сети «замечательны», «прекрасны» и…!!! Так думают примерно все, кто не понимает их технологию. А когда вникнешь — это обыденность.
Прочитав статью, я сначала не понял чему посвящён проект. Но, встретив упоминание MNIST, всё стало ясно (не кластеризация, не аппроксимация, а просто распознавание буковок-циферок-картинок). Очень рад что вы выбрали сигмойду (есть ещё тангенсойда и прочие -ойды). И все они из рубрики «логистическая регрессия». А есть что-то ещё?! — Есть! Но среди «специалистов по ИИ» принято «крысить» информацию и заниматься лишь «хиханьками-хаханьками» над теми, кто ещё «не в теме». Я не стану отступать от этого «уже сложившегося» «прекрасного» правила, но от себя скажу, что достаточно найти один полный и толковый курс по «машин лёрнингу» (да-да, так щас модно называть ИИ), чтобы сначала долго материть тех, кто наводит на эту тему туман, давая лишь кусочки информации, из которых очень тяжело собрать целостную картину, а затем просто оставить эту тему как пройденный этап, инструмент, имеющий свою область применимости, но никак не магическое средство «от всего», как это преподносится, ой, да где только это не преподносится…
0

Если не сложно, то можете дать ссылку на толковый курс или книгу? Желательно на русском.

+2
Николенко, Кадурин, Архангельская «Глубокое обучение» — очень внятно и исчерпывающе все базовые знания о НС
-1
Но среди «специалистов по ИИ» принято «крысить» информацию и заниматься лишь «хиханьками-хаханьками» над теми, кто ещё «не в теме».

Это точно. Вы прям мой опыт общения с ними описали.
0
Поиграться — это запустить готовый тест. А у вас test — пустой файл.
Не получилось поиграться…
+2
Нет желания переписать на матрицы, и посмотреть, как сильно возрастет скорость работы? :-)
Приведу ссылку на свой комментарий к похожей статье, он актуален и для этой: habr.com/ru/post/440162/#comment_19765270
Но тут автор уже до OpenMP дошел :-)
0
Да, честно, я осознал устаревший вариант своей архитектуры. Буду переписывать на матрицы.
0

Начальные веса выбираются случайно? Приведенная точность указана для обучающей выборки или выполнялась валидация для данных, которые нейросеть еще «не видела» (unseen data)?

+1
Начальные веса выбираются случайно.
Речь идёт об unseen data. В настройках сети я могу указать, размер контрольной выборки.
-2
используем оптимизацию Адама
С оптимизацией Адама ...

Первый раз вижу, чтобы фраза "adaptive moment estimation" переводилась как "оптимизация Адама".

0
Интересный велосипед.

По глазам резануло что у вас есть отдельно обучение и оптимизация. По моему обычно оптимизации никто не выделяет, просто есть алгоритмы разные, и SGD один из них (кстати SGD это не обычный градиентный спуск как у вас сказано в Wiki, а стохастический).

Интересно было бы услышать насколько эффективна смена алгоритма оптимизации в процессе обучения и особенно про мутации. Как-то эти подходы сильно отличаются от классики которую дают во всех учебниках.
0
1) Это не просто велосипед, это велосипед с квадратными колёсами.
2) В статье которую я прочёл, Адам шёл как улучшенная версия SGD, потому и оптимизация Адама.
3) Адам заметно ускоряет процесс обучения, перепрыгивая локальные минимумы. SGD очень медленный. Нестеров обучает быстрее чем SGD, но застревает в локальных минимумах.
Only those users with full accounts are able to leave comments., please.