Ответы пользователя по тегу Нейронные сети
  • C++ Где изучать нейросети?

    origami1024
    @origami1024
    went out for a night walk
    1. Насчет c++ советую забыть про это и делать сети на python. Python - самый распространенный язык среди data scientists и вообще в теме с нейросетями. Кроме того, Python - язык намного легче в изучении, на это можно вообще не тратить время, поймете походу. Можно будет почти полностью забыть о программировании после изучения нескольких больших нейрофреймворков, и полностью погрузится в имплементацию именно нейростей.

    2. Насчет изучения сетей - можно много где начать, но если хотите конкурировать с профессионалами, посоветую самого главного авторитета в области - Джофри Хинтона.
    Первой краткосрочной целью предлагаю взять изучение его вклада в область.
    Первой долгосрочной целью предлагаю взять прочтение всех его статей в оригинале и написание критики на эти работы.
    Кроме того из первостепенных целей - история развития области в целом - от одного персептрона к глубоким сетям, с реализацией решения значимых задач, которые эти промежуточные сети позволили решить, и выработка понимания, в чем был прорыв.
    Ответ написан
    Комментировать
  • Как обучать нейронную сеть по одной картинке за раз?

    origami1024
    @origami1024
    went out for a night walk
    Обучение и происходит по одной картинке.
    То есть если размер партии = 1 картинка, то после просмотра 1 картинки полученные ошибки сразу запускают в backprop, чтобы изменить весы сети.
    Если размер партии 10, то картинки просматриваются, но ошибка суммируется отдельно, и отдается в backprop только в конце. То есть твоя сеть смотрит 10 картинок не обучаясь, но потом суммарная ошибка применяется.
    Главная причина, почему второй вариант применяется чаще - потому что рассчитывать backprop на сотне миллионов весов это затратная операция и при batch=10 ты сокращаешь время в 10 раз. При этом кол-во выученой инфы сокращается незначительно.
    Ответ написан
    Комментировать
  • Как с этим разобраться?

    origami1024
    @origami1024
    went out for a night walk
    но какой тип данных и вид записи должен быть у этого файла

    Нужно записать/загрузить только значения весов между нейронами - результат обучения.
    Ну и сам код твоей программы содержит все глобальные параметры сети: как располагаются и ведут себя нейроны, сколько их и тп.

    А как потом обращаться к этим результатам(не пробегом же по всему файлу каждый раз, если там больше 3000 строк)

    Все весы и другие параметры должны находиться в оперативке, и читаться и перезаписываться каждую итерацию обучения.
    Вот, например, репликация обученной Alexnet (прорывная модель сети из 2012),
    https://github.com/BVLC/caffe/tree/master/models/b...
    233мб.
    В Alexnet 62 миллиона параметров, 650 тыс нейронов, и чтобы ее обучить столько же эпох как в оригинальной статье, нужно потратить 5-6 дней на двух GTX 580 3GB видеокартах (Хотя современный рекорд на более быстром оборудовании и оптимизированном коде - 24 минуты).

    И как должна вести себя сеть, если ввелись данные, которых не было при обучении?

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