Как изучать нейронные сети

Я недавно начал изучать нейронные сети. Сейчас пытаюсь написать свою нейронку без использования сторонних библиотек. Смог научить ее отличать тройку от четверки, но вот распознавать другие цифры как-то не получилось ее научить, где-то в моем коде проблемма.

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


Ответы (2 шт):

Автор решения: passant
  1. слышал, что есть библиотеки типо pytorch у которых уже готовый код. - ну, это как бы не секрет. Это даже в Википедии прочитать можно.

  2. стоит ли учиться писать нейросети самому если есть готовые решения, - дорога определяется целью, а не наоборот. Ваши цели нам не известны. Это как спросить "надо-ли мне учить устройство автомобиля, если есть уже готовые".

  3. даст ли мне это что-то? - даст. Настоящее понимание того, как работают нейросети. Надо это вам или нет - см.п.2.

→ Ссылка
Автор решения: CrazyElf

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

А детали реализации нейросетей можно изучить позже, когда вам не будет хватать знаний о том, как это всё работает. Но в той или иной степени понимать внутреннее их устройство вам всё-равно придётся, чтобы знать, например, какие слои добавлять в нейросеть, сколько нейронов (хотя бы примерно) должно быть в каком слое, какой оптимизатор использовать и т.д. и т.п. Конечно, есть и готовые конфигурации нейросетей, наиболее подходящие для каких-то конкретных задач, но как только вы начнёте в них что-то менять, нужно будет иметь хотя бы небольшое понимание, какой слой зачем нужен и как его лучше сконфигурировать под вашу задачу.

Писать же свою реализацию нейросетей в наше время, когда есть много готовых хороших библиотек можно разве что из большого энтузиазма. Практического смысла в этом нет - все нужные возможности уже реализованы в нескольких библиотеках, там есть всё, что нужно для практической работы с нейросетями. И более того - эти библиотеки очень сильно оптимизированы, они способны работать на CPU, на GPU, используют многопоточность и оптимизированные вычисления матриц. Самописная библиотека скорее всего будет работать гораздо медленнее и будет гораздо хуже масштабироваться.

→ Ссылка