Форум программистов, компьютерный форум, киберфорум
Наши страницы
Искусственный интеллект
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
gregoro
6 / 6 / 1
Регистрация: 13.01.2015
Сообщений: 84
Завершенные тесты: 2
1

Нейросети-книги

18.09.2016, 23:12. Просмотров 2587. Ответов 26
Метки нет (Все метки)

Доброй ночи, форумчане. Подскажите позязя книгу по нейросетям с примерами Прочитал одну книгу, часть понял, часть не понял и именно в создании нейронки, а не ее теории. Желательно на c#.
Спасибо за внимание

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.09.2016, 23:12
Ответы с готовыми решениями:

Mnist-нейросети
Помогите разобраться в mnist-нейросети, как ее применить? Не получается

Практические задания, нейросети
Привет. Выбрала для себя две книги: Рассела С. "ИИ: современный подход" и Люгера Дж. Ф. По каким...

Оптимальное прореживание нейросети
Помогите, пожалуйста. Не могу понять одной вещи. Я не понимаю, когда именно использовать этот...

Скорость нейросети и её обучения
Начинаю разбираться с нейросетями и возник вопрос, если кто сможет подскажите. Нейросеть должна...

Локальный минимум при обучении нейросети
Как понять, что при обучении функция ошибки попала в локальный минимум? Ошибка начинает...

26
VTsaregorodtsev
609 / 567 / 85
Регистрация: 19.02.2010
Сообщений: 2,074
28.09.2016, 22:21 21
Цитата Сообщение от сахатый Посмотреть сообщение
MNISTу за сколько времени Ваша нейросетка до <3% ошибки на тесте натренировывается?
От меньше минуты (персептрон с одним скрытым слоем из 50 нейронов и нелинейными функциями у нейронов выходного слоя) до нескольких минут (персептрон с парой-тройкой сотен скрытых нейронов, но без нелинейностей на выходном слое - постановка нелинейностей на выход сильно улучшает точность, поэтому с нелинейностью и при 50 нейронах можно вылезти ниже 3% ошибки на тесте, а без них - нужно размер этой сети увеличивать).

Свёрточная нейросетка LeNe5 (из известной статьи ЛеКуна с соавторами 1998г) - тоже несколько минут, не помню сколько точно.

Время указано как время процессора (по диспетчеру задач), астрономическое будет в 2 или в 4 раза меньше (в зависимости от того, на сколько ядер распараллелятся расчёты). Для процессора, не для видюхи.
Сетки обучаются по 50 эпох, а не до достижения некоторого уровня точности на тесте (свёрточная при этом к 1% ошибки на тесте приблизится (можно добавить генерацию нелинейных искажений образов - станет лучше, но и большего времени потребует)).

Ну и время указано для кода, способного работать на достаточно древних процессорах и/или Атомах. Т.е. без SSE4 и AVX-инструкций.

Просто у меня не только абсолютно вся математика векторизована - но и многопоточное распараллеливание идёт без синхронизации потоков средствами операционки, и ещё одна фишка используется (она в итоге и позволила векторизовать вычисления нелинейных функций).
0
сахатый
36 / 16 / 4
Регистрация: 12.10.2015
Сообщений: 94
Завершенные тесты: 2
29.09.2016, 12:59 22
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
От меньше минуты (персептрон с одним скрытым слоем из 50 нейронов и нелинейными функциями у нейронов выходного слоя) до нескольких минут
Пфффф… звучит совершенно невероятно, это более чем на 2 порядка быстрее, чем как у всех, только на модных видяхах такое возможно, либо у Вас какой то другой алгоритм, что в сотню раз меньше операций делает, другого объяснения нет. Тут даже просто прогнать в одну сторону 60 тысяч векторов по 784 через 50 взвешенных сумм будет дольше, даже идеальное CPU распараллеливание ускорит пропорционально количеству ядер проца…

Сознавайтесь, в чем Ваш секрет?
0
warhast
20 / 20 / 4
Регистрация: 02.02.2014
Сообщений: 79
29.09.2016, 13:03 23
Ключевое в этом "секрете" - 3% - до такой точности на mnist-е можно за несколько секунд сетку на 50 весов натренировать без особых оптимизаций, если параметры задать подходящие.
0
VTsaregorodtsev
609 / 567 / 85
Регистрация: 19.02.2010
Сообщений: 2,074
29.09.2016, 19:41 24
Цитата Сообщение от сахатый Посмотреть сообщение
это более чем на 2 порядка быстрее, чем как у всех
Не "у всех" - а у разных тяп-ляп-поделок. Нейробиблиотека Torch, например, отстаёт раза в 3 (и то, наверное, всё-таки потому, что у разработчиков в приоритете версия для видеокарты, а версию для процессора они делают по остаточному принципу - лишь бы она была).

Кто владеет английским - можете почитать буржуинскую лекцию, там разобран пример, где разница была не на 2 и даже не на 3 порядка больше. Не для нейросетей, правда, но тоже на очень простенькой задаче перемножения матриц.
http://stellar.mit.edu/S/course/6/fa...ro_and_MxM.pdf
И всё равно финальный учебный Сишный код (даже при гипотезе, что компилятор потом отработал максимально эффективно) там не дотянул по скорости почти в 3 раза до функции перемножения матриц из ИНДУСТРИАЛЬНОЙ математической библиотеки BLAS.


Цитата Сообщение от сахатый Посмотреть сообщение
Сознавайтесь, в чем Ваш секрет?
Написал же в предыдущем посте. Если не понимаете тех моих слов - прокачивайте разнообразные универсальные скиллы по программированию быстрых расчётных программ (в т.ч. и работа с профилировщиком, и знание системы команд процессора вплоть до числа тактов на команду, и переход от ЯВУ к инлайн-ассемблеру в нужных местах,...), а в процессе этого изучения и остальное может быть поймёте.

В общем, когда у Вас интеловские справочники за номерами 248966, 319433, 325383, и мануалы от Агнера Фога будут настольными книгами - тогда и отставания на два порядка у Ваших программ не будет. А ширпотребные учебники по каким-то ЯВУ - не помогут (если только не бросите программировать математику вручную и не станете взамен использовать BLAS или MKL - но и в этом случае нужны будут правильные проектные решения, чтобы данные организовывались-лежали так, как нужно для их максимально эффективной обработки).



Цитата Сообщение от warhast Посмотреть сообщение
Ключевое в этом "секрете" - 3%
Я же явно написал - нейросетки учились по 50 эпох, а не до момента достижения какого-то уровня тестовой ошибки.
0
29.09.2016, 19:41
сахатый
36 / 16 / 4
Регистрация: 12.10.2015
Сообщений: 94
Завершенные тесты: 2
14.11.2016, 17:52 25
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Не "у всех" - а у разных тяп-ляп-поделок. Нейробиблиотека Torch, например, отстаёт раза в 3 (и то, наверное, всё-таки потому, что у разработчиков в приоритете версия для видеокарты, а версию для процессора они делают по остаточному принципу - лишь бы она была).
Кто владеет английским - можете почитать буржуинскую лекцию, там разобран пример, где разница была не на 2 и даже не на 3 порядка больше. Не для нейросетей, правда, но тоже на очень простенькой задаче перемножения матриц.
http://stellar.mit.edu/S/course/6/fa...ro_and_MxM.pdf
И всё равно финальный учебный Сишный код (даже при гипотезе, что компилятор потом отработал максимально эффективно) там не дотянул по скорости почти в 3 раза до функции перемножения матриц из ИНДУСТРИАЛЬНОЙ математической библиотеки BLAS.
Пардон за большой лаг, возникли проблемы, был сильно занят(((

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

Предлагаю доказать свои громкие слова тривиальной консольной EXE-хой, где простой парсер csv и Ваш оптимизированный персептрон, обычный без каких либо секретов, только что бы в 100 раз быстрее был. Принимает csv датасет в стандартном формате, выдает структуру весов обученной в к примеру 50 эпох, сети. Сама архитектура, лернинг рейт, функция активации и тд не параметризируется, пускай один скрый слой например в 50 нейронов и гиперболический тангенс функция активации, количество входов и ответов берется с датасета.

Если на произвольном датасете Ваша сетка будет выдавать аналогичное качество как например у AForge при данной конфигурации, но будет хотя бы раз в 30 быстрее, Вы не только удивите всех коллег, уже не на словах, но и сразу заказ получите, наверно не только от меня)))

Ну наверно не стоит говорить что сломать С++ бинарник особенно если код в исходнике был не читаемый, очень сложно, сами знаете, так что риска расшарить код нет.
0
VTsaregorodtsev
609 / 567 / 85
Регистрация: 19.02.2010
Сообщений: 2,074
16.11.2016, 22:12 26
Вот ссылка на тесты (не мои - но для аргументации вполне сойдёт) буржуинских либ годовой давности - https://web.archive.org/web/20160321...z/blog/254747/
Правда, на хабре эта страница потом была убита - поэтому даю её ссылку на её оставшуюся копию в веб-архиве.

Там на МНИСТ лидирующая по скорости библиотека учит на CPU персептрон из двух скрытых слоёв (округлённо по 400 и 200 нейронов в первом и втором скрытом слоях соответственно) за 19мин. Проводилось 150 эпох обучения. Сами пересчитаете на 50 эпох и на сетку из одного скрытого слоя на 50 нейронов? Поделить 19 на 3 (в 3 раза меньшее число эпох) и затем на 8 (400/50, для простоты забудем про второй скрытый слой) - сколько будет?

Да и у других либ поделить их 50-60 мин на указанные делители - сколько будет?

Не верите - качайте-ставьте Торч и тестируйте сами. Но что-то судя по хабровским комментариям - вопросов те результаты (скорость) ни у кого не вызвали
Мой код - ещё быстрее Торча как на многослойных персептронах, так и на свёрточных нейросетках.
Что будет у AForge - не знаю, никогда ей не интересовался. И, видимо, правильно сделал
0
сахатый
36 / 16 / 4
Регистрация: 12.10.2015
Сообщений: 94
Завершенные тесты: 2
20.11.2016, 14:22 27
Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
Вот ссылка на тесты (не мои - но для аргументации вполне сойдёт) буржуинских либ годовой давности - https://web.archive.org/web/20160321...z/blog/254747/
Правда, на хабре эта страница потом была убита - поэтому даю её ссылку на её оставшуюся копию в веб-архиве.
Там на МНИСТ лидирующая по скорости библиотека учит на CPU персептрон из двух скрытых слоёв (округлённо по 400 и 200 нейронов в первом и втором скрытом слоях соответственно) за 19мин. Проводилось 150 эпох обучения. Сами пересчитаете на 50 эпох и на сетку из одного скрытого слоя на 50 нейронов? Поделить 19 на 3 (в 3 раза меньшее число эпох) и затем на 8 (400/50, для простоты забудем про второй скрытый слой) - сколько будет?
Да и у других либ поделить их 50-60 мин на указанные делители - сколько будет?
Не верите - качайте-ставьте Торч и тестируйте сами. Но что-то судя по хабровским комментариям - вопросов те результаты (скорость) ни у кого не вызвали
Мой код - ещё быстрее Торча как на многослойных персептронах, так и на свёрточных нейросетках.
Что будет у AForge - не знаю, никогда ей не интересовался. И, видимо, правильно сделал
ясно, спасибо
0
20.11.2016, 14:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2016, 14:22

Как создаются нейросети для чат ботов?
Хочу узнать как создаются нейросети для чат-ботов. неужеле нужна какая-то супер математика?

Что мешает смоделировать мозг человека посредством искусственной нейросети?
Если это возможно, хотелось бы завести отдельную тему, где любители научно-популярной литературы на...

Описать структуру Bibliotec, содержащую следующие поля: автор книги, инвентарный номер книги, название книги
Описать структуру BIBLIOTEC содержащий следующие поля: автор книги , инвентарный номер книги ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru