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

    @rPman
    Заполни этим потоком сознание chatgpt, добавив в конце что ты хочешь чтобы он с этим сделал.

    Создание промптов к современным ИИ (а они вполне себе близкие по идеологии, что dall-e/stable diffusion что chatgpt) - целое искусство, и не удивлюсь что скоро появятся учебники по нему, в два слова так не объяснишь, настоятельно рекомендую полистать существующие статьи и провести самостоятельные эксперименты, по больше, появится смутное понимание на интуитивном уровне как это работает.
    Ответ написан
  • ChatGPT создаёт новый код или только дублирует существующий из примеров? Он понизит зарплаты фронтендерам-джунам?

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

    p.s. попробуйте попросить ИИ загадать число, цвет и совершить "в уме" некие действия с ним, не сообщая загаданное
    он не сразу вас поймет но научить его этому можно

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

    но это ограничение api а не логики на серверах openai
    Ответ написан
    Комментировать
  • Как интерпретировать выход НС (бинарная классификация с одним выходным нейроном)?

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

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

    @rPman
    это называется deep fake, первый же результат из гугла (инструкцию не проверял)
    Ответ написан
    1 комментарий
  • Правильно ли я понимаю одно из преимуществ сверточной нейронной сети над обычной для классификации изображений?

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

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

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

    @rPman
    у тебя 'мобильное приложение' на чем запускается?

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

    например через мобильный браузер.

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

    @rPman
    можно но может хуже работать, все зависит от данных и задачи, наверное экспериментально только понять можно будет
    Ответ написан
    Комментировать
  • Как создать классификатор с разными типами фич?

    @rPman
    нейронные сети понимают только числа, да еще и нормированные на интервале
    boolean это два значения 0 и 1 (условно можно выбрать любые другие значения, это без разницы)
    а вот строки это вопрос вида признака - если это значение из справочника то если их можно как то отсортировать по признаку (например большой, средний, маленький) то их можно заменить на одно значение на интервале (в моем примере 1,0.5,0), но если нет то это вектор значений 0 или 1 с единичкой только в нужном элементе (кстати ничто не мешает использовать сложные комбинации, когда одна строка устанавливает значение сразу в нескольких элементах в векторе, например если строка составная - 'синий кролик' нужно установить 1 в элементы соответственно цвету синий, типу животное и кролику (может еще какие), плюс можно давать разные значения как вес значимости признака, например кролик это не только животное но и немного еда и чуть чуть развлечение)

    Да 0 для нейронной сети очень удобное значение отсутствия признака (кстати ничто не мешает для перевернуть значения и сделать 1 - признаком отсутствия а 0 - присутствия, нейронная сеть все переварит, правда могут быть алгоритмы ее оптимизации которые этого не поймут)
    Ответ написан
    Комментировать
  • Нейронная сеть выдает не верные значения. Как можно исправить?

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

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

    В третьих, данные должны быть правильно поданы, они должны быть нормированы, быть на интервале (обычно 0-1 или к примеру -1..+1), отличный пример - для торговых объемов, подавай на вход 1/(1+v), это число будет гарантированно будет на интервале (0..1], так же старайся избегать дискретных значений и графиков с острыми вершинами (первая производная - бесконечность)...

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

    В пятых, очень рекомендую внимательно подумать над функцией ошибки. Так в классическом виде функция ошибки - это сумма квадратов разницы между целевыми и вычисленными выходами, но ведь можно определить ее как к примеру размер депозита, его ты хочешь максимизировать, так что переверни 1/(a+x), при использовании текущей нейронной сети, если ты будешь торговать по своей стратегии, на каком то интервале (этот интервал должен быть привязан к моменту времени получения входных данных сети, т.е. считаем сеть для момента времени T, и симулируем торговлю за время [T-x..T] или лучше [T..T+x], т.е. в будущем, ты же доход будешь получать на основе будущих сделок после принятия решения на основе текущих значений.

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

    @rPman
    пот первое же нагугленное исследование использования 8-битных и 16-битных весов на nvidia gpu
    5 Conclusions
    We have demonstrated DNN training with 8-bit floating point numbers (F P 8) that achieves 2 − 4×
    speedup without compromise in accuracy
    . The key insight is that reduced-precision additions (used
    in partial product accumulations and weight updates) can result in swamping errors causing accuracy
    degradation during training. To minimize this error, we propose two new techniques, chunk-based
    accumulation and floating point stochastic rounding, that enable a reduction of bit-precision for
    additions down to 16 bits – as well as implement them in hardware. Across a wide spectrum of
    popular DNN benchmarks and datasets, this mixed precision F P 8 training technique achieves the
    same accuracy levels as the F P 32 baseline. Future work aims to further optimize data formats and
    computations in order to increase margins as well as study additional benchmarks and datasets.


    еще есть огромные нейронные сети, требующие неадекватно большие объемы оперативной памяти, что очень дорого, когда речь идет о нейроннх сетях
    Например, те же проекты OpenAI, напомню чтобы запустить тот сберовский ruDALL-e понадобится видеокарта больше 6Gb RAM (можно и с таким но потребуются телодвижения и сильно больше времени), если я верно понял тут используются 16-битные веса, а если переделать на 8-битные, требования к памяти можно еще сильнее понизить.

    есть еще разработки по использованию 1битных весов (ума не приложу как это работает), гугл выдает кучу статей
    Ответ написан
  • Реально ли использовать океан как нейросеть? Где почитать?

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

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

    что то типа этого
    Ответ написан
    1 комментарий
  • Как получить число на выходе нейронной сети, если функции активации приводят значения внутри сети к [0;1]?

    @rPman
    x*200-100

    как ты собираешься работать с нейронными сетями если простейшие линейные операции над числами даже не понимаешь? как ты к примеру приводишь входные числа к -1..+1?
    Ответ написан
  • Можно ли научить нейросеть определить, есть ли в последовательности из 10 чисел 3 подряд убывающих?

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

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

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

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

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

    Чем больше будет пар картинок (включая все комбинации всех имеющихся) тем больше шансов что сеть 'поймет' что именно определяет похожесть.

    Про RGB, а характер изменений, в пределах которых нужно считать изображения похожими цвет участвует? если нет то почему бы от него вообще не избавиться? Или наоборот, отдавай сразу в одну сеть все три канала, она разберется. Еще можно заменить RGB на HSL (оно ближе к человеческому восприятию и его пониманию похожести).

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

    p.s. попробуй вариант сети, когда один выход является оценкой похожести... с точки зрения реализации нет никакой разницы, но для сети это может быть проще чем искать два бинарных выхода
    Ответ написан
  • LSTM прогнозирование на 1 шаг, как спрогнозировать на N шагов?

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

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

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

    @rPman
    Начать нужно с данных, собираете данные, преумножаете их автогенерируемым мусором (глюки камеры например или частичное перекрытие), поворотами и прочим.

    Затем берете готовые библиотеки по работе с изображениями

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

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

    Без относительно к задаче не думаю что вы сможете найти четкое определение. Нужно фиксироваться на задаче и исследовать.

    Количество скрытых нейронов влияет на сложность/стоимость обучения (экспонента)

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

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

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

    99% работы разработки нейронных сетей - это работа с данными и приведение их к виду, удобному для нейронной сети. Чем 'лучше' эта работа будет сделана тем меньше ресурсов (времени и денег) будет потрачено на обучение.

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

    Недостатки
    Слишком много варьируемых параметров сети; непонятно, для какой задачи и вычислительной мощности какие нужны настройки. Так, к варьируемым параметрам можно отнести: количество слоёв, размерность ядра свёртки для каждого из слоёв, количество ядер для каждого из слоёв, шаг сдвига ядра при обработке слоя, необходимость слоёв субдискретизации, степень уменьшения ими размерности, функция по уменьшению размерности (выбор максимума, среднего и т. п.), передаточная функция нейронов, наличие и параметры выходной полносвязной нейросети на выходе свёрточной. Все эти параметры существенно влияют на результат, но выбираются исследователями эмпирически. Существует несколько выверенных и прекрасно работающих конфигураций сетей, но не хватает рекомендаций, по которым нужно строить сеть для новой задачи.
    Ответ написан
    Комментировать
  • Какие есть возможные варианты решения для определения пользователя через вебкамеру?

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

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

    Проект по вашей ссылке выше по мне так идеален под сформулированную задачу, тормозит скорее всего неправильно сконфигурированное железо (нет драйверов на видеокарту) либо вообще нет GPU
    The ResNet architecture is recommended for computers with even more powerful GPUs.
    Ответ написан