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

    Maksim_64
    @Maksim_64
    Data Analyst
    Если скорость не важна не надо миллионы в сутки обрабатывать то вот этот проект https://pypi.org/project/deepface/

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

    Если их надо миллионы в день процессировать то тогда надо напрямую с нейронкой работать и запускать на GPU RetinaFace будет хорошим выбором.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Собственно и сам вопрос, как быть?

    Например читать, научные статьи прям на эту тему.
    https://arxiv.org/abs/2204.02980v3
    справа в верхнем, доступные форматы документа. Если с английским тяжело, дай условному чату GPT подходящую часть. Пусть переведет.
    Ответ написан
    Комментировать
  • Что прочитать или как разобраться(грубо говоря с чего начать)?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ищи все что связанно с transformers (архитектура deep learning).

    Взаимосвязь между словами это их тема и именно она позволила создать LLM, это именно, тогда был прорыв.

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

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

    В общем это ответ на оба вопроса. Гугли читай статьи изучай и пробуй transformers.
    Ответ написан
    4 комментария
  • Является ли использование разных функций активации на выходном слое нейросети плохой идеей?

    Maksim_64
    @Maksim_64
    Data Analyst
    является ли использование разных функций активации на выходном слое нейросети плохой идеей?
    Не часто используется, по сути на выходном слое у тебя будет более одного вектора, обычно они разных типов получаются, соответсвенно для каждой тебе нужно будет, своя функция потери. И общая оценка будет подразумевать оценку каждой функции потери. И ее влияния на общую систему, возможно придется вводить дополнительные веса для функций потерь. В общем рекомендую разделить архитектуру.

    ДОПОЛНЕНИЕ к ответу
    У нас по всей видимости недопонимание наблюдается.
    1. Разные функции активации у скрытых слоев и выходного слоя дело обычное. Функция активации для выходного слоя определятся задачей которую ты решаешь, например хочу интерпретировать выходной вектор как вероятности ну и там сигмоид или софт max, или еще что то. В то время как например RELU была в скрытых. Это очень обычно и очень нормально. Когда ты говоришь о выходном слое ты спрашиваешь себя что и в каком виде мне будет выдавать.

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

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Уже отвечал на этот вопрос, пока ничего лучше не вышло.
    Ответ написан
  • По неподтверждённой информации, в нейросети Яндекса YALM-4 около 1.4 миллиардов параметров. В GPT-3 - 130 миллиардов. Насколько этот разрыв радикален?

    Maksim_64
    @Maksim_64
    Data Analyst
    Окей я не слежу за LLM от яндекса. https://github.com/yandex/YaLM-100B этому 2 года и там 100B или здесь
    https://huggingface.co/yandex тоже самое. YALM-4 вообще не слышал, и уж точно не поверю, что яндекс использует сегодня модель с 1.4B параметров.
    Ответ написан
    1 комментарий
  • Можно ли сравнить два изображения между собой на похожесть?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Определить для себя что ты понимаешь под похожестью. В комментарии верное подмечено.
    2. Закодировать изображения в тензорное представления.
    3. Сравнивать дистанции между двумя тензорами евклидова дистанция, cosine similarity и т.д.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Статьи не смотрел. Производную ты посчитал верно.
    66acd9cb2b432300911281.png
    На графике ошибка. Нету в этой точке такого значения производной. Градиентный спуск это про оптимизации нахождение минимумов или максимумов. Если использовать формулу аппроксимации, f(x0)' = (f(x0) - f(x0-h)) / h, где h - это маленький шаг, то в зависимости от того на сколько он мал, мы будем стремится к значению -2.01.
    По этому откуда там -7 я понятия не имею.
    Ответ написан
    Комментировать
  • Какие могут быть возможные причины изменения ответа LLM на один и тот же запрос?

    Maksim_64
    @Maksim_64
    Data Analyst
    Дообучение - не происходит. Кроме новых релизов. Никакого лайф дообучения не существует.

    LLM - должен имитировать интеллект, по этому он перефразирует один и тот же по смыслу ответ.

    В тех случаях, когда LLM дает по смыслу другой ответ , то она это может делать по ряду причин:
    1. Ранг источника на котором она формирует ответ, изменился понизился

    2. Она может хранить историю этот пользователь уже задавал этот вопрос и потом задает его снова и снова, "значит ответ не устраивает".

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

    Дообучение - это очень дорого.
    Ответ написан
  • Какую нейросеть можно использовать для позиционирования стикера на макете упаковки товара?

    Maksim_64
    @Maksim_64
    Data Analyst
    Безнадежные вводные.
    1. Никто не будет делать и предоставлять в открытом доступе нейронные сети столь узкой направленности. Это не имеет ни какого коммерческого смысла.

    2. Здесь речь идет о профессиональном софте работы с изображениями который поддерживает скриптинг (для автоматизации процесса).

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Хороший вопрос. Есть правило никогда не использовать метод fit на тестовом сете. Иными словами будьто нормализация, скалинг, стандартизация или другие трансформации, ты никогда не находишь никакие параметры в тестовом наборе - это грубая ошибка. А всегда используешь только тренировочный набор. По этому все свои mean, std и прочее ты берешь только из тренировочного набора.

    В scikit-learn есть трансформаторы, к примеру StandardScaler так вот у него есть методы fit, transform и fit_transform. Так вот для тестового дата сета ты используешь только transform и никогда fit или fit_transform. Что означает применить трансформацию к тестовому сету с параметрами посчитанными на тренировочном сете.

    С нейронными сетями абсолютно тоже самое без каких либо исключений.
    Ответ написан
  • Почему в моем коде cpu быстрее gpu?

    Maksim_64
    @Maksim_64
    Data Analyst
    GPU не всегда быстрее CPU.

    1. Если будет много вызовов к памяти с небольшими объемами данных, CPU будет быстрее.
    2. Если операция не может исполнятся параллельно то эффективность GPU падает.

    В первом примере, у тебя даже тренировки модели нет, ты ее загружаешь., то есть основное место где gpu сильно быстрее cpu это операции с тензорами во время тренировки модели, его нет. Во втором примере есть тренировка модели, (операции с тензорами), то там GPU должен быть быстрее.
    Ответ написан
    Комментировать
  • Существует ли нейросеть для краткого пересказа книг?

    Maksim_64
    @Maksim_64
    Data Analyst
    Bard может читать, документы которые лежат на гугл диске и составлять заключение о прочитанном. Вся инфа которую ты ему дашь может быть использована гуглом. То есть ни какой "конфиденциальной" информации, ну и там возможно еще какие то ограничения, что бы все это дело не превращалось в бизнес. Но функционал такой имеется, и для себя заключение по какой нибудь книге вполне сгодится. Так надо определенное расширение установить и будет работать.
    Ответ написан
    Комментировать
  • Нормально ли keras тдёт на windows?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну смотри, tensorflow - это операции с тензорами. Keras - это просто интерфейс для нейронок. Так вот tensorflow версии > 2.10 не поддерживает Windows GPU. То есть на сегодняшних версиях ты не сможешь использовать GPU для операций с тензорами.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну ищи примеры и от них отталкивайся. Если нетворк будет состоять из одного скрытого слоя, то обратное распространение ошибки (backpropagation) не сложно. А вот если из нескольких то подсчет градиента будет происходить при помощи chain rule - это сложно реализовать.

    Слой из параметров функция активации и выходная размерность.
    Внутри слоя activation_fumction(dot(A,W) + b). где A - это входная матрица, W это изначально случайно инициализированная матрица весов с количеством рядов равных количеству колонок в матрице А и количеством колонок равных (output_size) параметр у слоя, размерность. то есть например A(10,3) то W должно быть (3,m) где m это то что ты укажешь в параметре выходная размерность каждого слоя. Та размерность которую ты получаешь на выходе после каждого слоя (10,m) в данном случае, b- вектор, с подходящей размерностью просто выполнить по элементное сложение, так же инициализируется случайно. Ну и dot - математическое умножение матриц.

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

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну случайность здесь совершенно не проблема. Многие процессы которые включают в себя и случайную и не случайную составляющую успешно моделируются в том числе и нейронными сетями.

    Можно ли сделать нейросеть которая всегда будет предсказывать рост и падение с точностью больше 50 процентов. Нет нельзя.

    Можно ли сделать нейросеть которая в течении какого то промежутка времени будет предсказывать рост и падение свыше 50 процентов. Да можно при чем можно сильно больше 50 процентов.

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

    Ну и потом можно угадывать чаще 50 процентов рост и падение. Но быть в сильном убытке. Ты не учитываешь, что рост и падение не равномерные. В неудачные дни ты можешь терять значительно больше.
    Ответ написан
    4 комментария
  • Как присвоить мусорным описаниям книг дефолтную рубрику в датасете?

    Maksim_64
    @Maksim_64
    Data Analyst
    Не очень мне понятно в чем проблема.

    1. То есть ты собираешься построить классификатор, на вход описание на выход, рубрика (Препроцессинг ты еще не делал, то есть пока там текст обычный). И вот все эти рубрики (target) заполнены кроме одной. А как оно у тебя хранится. Есть массив или pandas фрейм и там есть колонка рубрика с категориями, все заполнены а одна категория нет, на ее месте что пропущенные значения? Ну сделай замену всех пропущенных на свою дефолтную категорию. Там разные значения? Ну сделай проверку если значение принадлежит сету категорий (в которые ты можешь классифицировать), то оставляешь категорию не тронутой, если нет значит заменяешь на дефолтную.

    2. глянь вот это https://medium.com/analytics-vidhya/labeling-an-un... (открывается с впн)

    3. сделай кластерный анализ и потом каждому кластеру присвой свою категорию.

    4. Надо помнить, что иногда бывают случаи что даже в big tech присваивают labels ручками. Да посмотри объявления все они нанимают просто людей видео смотреть (например) и затем его в определенную категорию классифицировать и т.д. То есть при подготовке тренировочных датасетов в качестве "разметчика" категорий принимают участие люди.

    Имей ввиду, в ML нельзя задать детерменистическое поведение. Твоя функция активации на последнем слое переведет полученные значения в интервал от (0,1) при чем не 0 не 1 в него не войдут Ну и эти цифры будут использоваться как вероятности при классификации. У тебя будет вектор длинной количество категорий который складывается в 1 (100%). то есть например втрое значение 0.3 это 2 категория 30%. Ну и соответсвенно, он будет выбирать максимальное значение брать его индекс и это и будет категория. Но там никогда не будет значения со 100% или 0%. То есть те катеогории которые нельзя классифицировать он будет иногда ошибаться и классифицировать.
    Ответ написан
  • Где учить нейросети python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Пока что посмотрел про линейные и полиноминальные регрессии
    слово регрессия может упоминаться в контексте вида задач машинного обучения, чьей главной особенностью является непрерывность зависимой переменной. Задачи регрессии можно решать как средствами классического ML так и нейронными сетями. Так и в контексте алгоритмов. полиномиальная регрессия, простая регрессия, авторегрессия и т.д. Так вот скорее всего судя по твоему вопросу, не с какими нейронными сетями ты не знакомился, а просто посмотрел какие то алгоритмы классического ML.

    Где и как изучать, это долгий путь. Что бы понимать принцип нейронных сетей. Нужна Линейная алгебра и Одномерное и Многомерное исчисление (Multivariable Calculus). Что бы понимать что происходит, ты должен уметь дифференцировать и знать что такое оптимизация функции. Этому нельзя научится прочитав статью.
    Либо ищи книги материалы по Линейной Алгебре и Одномерному и Многомерному Исчислению (Дифференцирование Интегрирование функции (одной, многих переменных)) на русском. Либо если знаешь английский (что я бы назвал обязательным требованием для IT любого направления уровня специалист). На khan academy есть курсы которые восполнят требования со стороны математики (Algebra1, Algebra 2,Precalculus, Calculus AB, Caluclus BC, Multivariable Calculus, Linear Algebra). Если с этим материалом будет все комфортно, то дальше покупаешь книгу по deep learning. И не испытываешь не каких проблем по пониманию материала. Во время обучения натаскиваешь чистый python, что бы мог читать чужой код, и не испытывать проблем при работе с библиотеками. И подучиваешь необходимы библиотеки из ML стека.
    Ответ написан
    3 комментария
  • Можно ли обучить нейросеть на книгах?

    Maksim_64
    @Maksim_64
    Data Analyst
    Можно при чем во всех случаях. Если пишешь с нуля обучать можно на чем угодно, в том числе закодировать тексты в векторную форму и обучать, но это очень сложная задача, и книг по какой то специфике будет недостаточно, а самое главное это безумно дорого. По этому можно использовать уже предтренирванную языковую модель и тюнить ее для создания текстов в контексте специфических знаний (книг в определенном стиле). Это направление для решения задачи.
    Ответ написан
    Комментировать
  • Появились уже нейросети для анализа или создания электронных схем?

    Maksim_64
    @Maksim_64
    Data Analyst
    А здесь дело не в сложности. Когда, компании предоставляют интерфейсы для пользования языковыми моделями, это в первую очередь пиар, быть на слуху, с потенциалом на длинной дистанции начать монетизировать все это дело. Им нужна большая аудитория, и они ее получают.

    Сколько аудитории будет, у подобной нейронной сети, ответ не много. По этому если такие решения существуют, они не open source, потому что в этом нет никакого смысла.
    Ответ написан
    Комментировать