Ответы пользователя по тегу Нейронные сети
  • Начало работы с нейронными сетями?

    @rPman
    Нейронные сети - это просто алгоритмы, самая ресурсоемкая часть в процессе но не самая главная.

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

    Вторая проблема нейронных сетей - они не дешевые, точнее собственно процесс обучения, для интересных а не простых академических задач типа 2+2=4, требует вычислительные ресурсы, причем много от слова много денег.

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

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

    Да уже готовая нейросеть способна решать сложнейшие задачи очень эффективно и быстро, но проблема в самом процессе обучения сети - это требует невероятно большого количества вычислительных ресурсов. Использовать процессор (и уж тем более виртуальную машину той же javascript, которая в разы медленней) для этого не целесообразно, слишком долго будете искать решение. Поэтому при выборе инструментария (языка программирования и библиотеки) заранее сверяйтесь с совместимостью с вашим железом.

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

    p.s. гугл например состряпал лично для себя тензорный процессор, который для задач именно обучения нейросетей, а точнее для использования в библиотеке tensorflow, работает на порядок быстрее (энергоэффективнее) чем видеокарта,.. т.е. логично обучаться заранее на тех библиотеках, чтобы в будущем минимизировать свои затраты. Правда гугл не собирается продавать свои мегажелезки на сторону, но позволяет использовать их в облаке (все еще за очень дорого, если сравнивать с себестоимостью, но все же дешевле чем использование GPU, лично это не проверял но слышал)
    Ответ написан
    Комментировать
  • Как при помощи нейронной сети разделить график на части?

    @rPman
    Есть интересный пакет библиотек и графический интерфейс Weka, в котором собрано огромное количество алгоритмов по работе с данными, поиску закономерностей и прочее прочее.

    Ваша задача зовется Классификация. гуглите исходя из этого, и нейронные сети в этом только один из вариантов, и не самый эффективный.

    p.s. 99% работы - принятие решения о форме подачи данных и их подготовка (конвертация) на вход в алгоритм. Т.е. вы можете пытаться рисовать график на растре и подсовывать этот растр нейронной сети (и платить просто бесконечные деньги на обучение), или вы можете придумать функцию, через которую прогоните свои данные, чтобы сделать их более представительными или скрывающую недостатки (например экстремумы в бесконечность),..
    Ответ написан
  • Как создать простую нейронную сеть на TF, которая сможет управлять игрой через захват экрана?

    @rPman
    Судя по вопросам, боюсь вы поставили себе пока непосильную задачу.

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

    Затем вы должны очень хорошо закодировать (отдельными алгоритмами, собственно opencv для этого хорошо подходит) чтобы распознать объекты на экране (глупо для этого пользоваться нейронкой, точнее это ДОРОГО), в итоге у вас будет информация об игровом мире в вашем представлении, удобном для использования в вашей программе. И только потом начинайте думать, как использовать полученную информацию, стоит ли вообще все заводить на нейронные сети.

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

    geometry dash это обычный платформер, если я правильно понимаю там вообще одно действие - прыжок? Эта игра не требует нейронки от слова совсем, все действия рассчитываются простым анализом игрового мира (движения врагов рассчитываются за 3-4 кадра в коротком варианте либо заранее вы сами определяете что вот этот враг двигается по таким правилам) а дальше поиск по 'лабиринту' перебором или поиском в глубину.
    Ответ написан
    Комментировать
  • Как убрать повторение голоса при распознования лица?

    @rPman
    Сохраняйте в массиве (по ключу - произнесенное имя) время последнего распознавания, и каждый раз при обнаружении, сравнивайте его с текущим, если разница меньше некоторой константы, не произносите.
    Ответ написан
    Комментировать
  • Как при асинхронной обработке с помощью нейросетей не подтягивать каждый раз веса?

    @rPman
    Смотрю примеры на github там все выглядит не так как у вас:
    https://github.com/pjreddie/darknet/blob/master/ex...

    там же прямо в примере показана однократная загрузка нейросети и конфигов а затем последовательно подставляются картинки
    Ответ написан
  • Как создать фотографии несуществующих подъездов?

    @rPman
    1. строите модели имеющихся подъездов, к тому же они типовые, их понадобится не много
    2. размечаете фотографии, указывая к какой модели подъезда он подходит и где и под каким углом стояла камера (при наличии модели достаточно указать углы помещения), дополнительно помечаете ярко выделенные элементы (типа стоящий велосипед), при должном старании можете пометить где стены а где пол и потолок.
    3. простым инструментом преобразуете фотографии в текстуры соответственно данным о камерах, точно видел в пакетах построения модели на основе фотографий такой инструмент, но не скажу в каком именно, смотрел несколько free пакетов.

    Все это можно частично автоматизировать, и вообще все делать в одном программном пакете, но писать свои скрипты автоматизации все равно придется.

    Главное в итоге вы должны иметь на руках набор текстур стен, полов, потолков и выделенных объектов, с которыми вы в простом 3D-редакторе сможете играть как вам душе угодно.

    Если нет задачи построения полноценного окружения, а просто фотографии, то задача не выглядит не решаемой.
    Ответ написан
    Комментировать
  • Существует ли сервис для сегментации изображения?

    @rPman
    Боюсь вы рановато хотите такой сервис, лет на 10-20.

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

    @rPman
    Майнить на платежных терминалах - это неявная кража электроэнергии у арендодателя.

    Средний доход от майнинга криптовалют уже давно гуляет вокруг 3х себестоимости электроэнергии (а точнее зависит от текущей стоимости спотовых инстансов amazon). Т.е. доход есть но он мизерный.

    Железо в платежных терминалах очень и очень слабое, видеокарты нет, процессор целерон или атом, выдаст абстрактные пару попугаев, когда как десктопное железо с видеокартой выдаст пару сотен.
    Но самое главное, терминалы не предназначены для продолжительной нагрузки, они будут греться, перегреваться и ломаться.
    Ответ написан
    Комментировать
  • Как строить нейронную сеть?

    @rPman
    Есть первое приближение, сложность задачи практически линейно влияет на количество нейронов, но вот как именно оценить численно эту сложность - зависит от задачи.
    Есть предположение, что каждый последующий слой (для deep learning) это фактически отдельная задача преобразования данных в другую форму, выделение критериев, внутренняя классификация и т.п., а количество нейронов в слое - это сложность именно этого преобразования.
    Если зависимость между входами и выходами имеет сложную форму (не просто если-то), то каждый лишний слой - определяет именно эту зависимость, но все они работают сразу для всех условий в зависимостях...

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

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

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

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

    @rPman
    Сам по себе текст в чистом виде на вход нейронных сетей не подходит, вам нужны критерии, количество которых не меняется от теста к тесту и значение которых нормализовано (находится в пределах, обычно делают 0..1 или даже -1.. +1), критерии по значениям (тупо перечисления enum) могут быть как один критерий с фиксированными значениями (плохой вариант, подходит для критериев которые можно сравнить) так и может быть векторами, значения которых 0 и один из элементов 1. К итогам работы нейросети те же требования (с перечислениями это обычно вектор вероятностей)

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

    Это если велосипед изобретать. по существующим решениям подсказать не могу, пока еще сам этим не занимался.
    Ответ написан
    Комментировать