Ответы пользователя по тегу Нейронные сети
  • Книги для изучения нейронных сетей на 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, потому что в этом нет никакого смысла.
    Ответ написан
    Комментировать
  • Как точность нейронной сети зависит от функции активации?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну "формулировка" вашего вопроса, говорит о том, что надо начать с архитектуры нейронных сетей.

    Узел (Node) | Персептрон | Нейрон | Unit - все это одно и тоже, вычислительная единица которая имеет входные данные, функцию активации, выходные данные.

    функция активации - определяет каким образом взвешенная сумма (weighted sum) ввода трансформирована в вывод из нейрона.

    Слои Layers Input Layer, Hidden Layer, Output Layer.

    Нейронные сети используют одну и туже функцию активации внутри слоя. Часто внутри Hidden Layers используется одна функция активации, а в Output Layer другая в зависимости от типа задачи например мы хотим интерпретировать выходной слой как вероятности, что бы они были от 0 до 1 и суммировались в 1. И наша функция активации в Hidden будет RELU, а в Output Layer Sigmoid например. Потому что каким таким чудом RELU нам даст числа которые могут быть интерпретированы как вероятности? Нормализация не решит наших проблем RELU не может быть использована в задачах классификации в OUTPUT LAYER в HIDDEN на здоровье самая популярная.

    Я к чему это все, вы в своем вопросе упускаете этот момент, что это обычное дело иметь разные функции активации для Hidden и Output Layer's.

    Для Hidden Layer вот эти три функции самые популярные.

    1. Rectified Linear Activation (ReLU)
    2. Logistic (Sigmoid)
    3. Hyperbolic Tangent (Tanh)

    Для Output Layer вот эти функции самые популярные.
    1. Linear
    2. Logistic (Sigmoid)
    3. Softmax

    Подробнее про Output Layer линейная функция активации, она не для мебели в списке, а это как нейронные сети решают задачи регрессии, то есть например для регрессии например Hidden Layer - RELU + Output Layer - Линейная функция, это абсолютно нормальная конфигурация.

    Для классификации там или softmax или logistic в Output Layer. В зависимости от количества классов и т.д.

    Про количество нейронов да и количество слоев мы имеем.

    Size - количество нейронов в модели
    Width - количество нейронов внутри слоя
    Depth - Количество слоев в модели.

    Сколько нейронов использовать внутри слоя? Ответ мы не знаем, это дизайн ты экспериментируешь, нету на этот счет теории. Сколько слоев? больше одного не считая входного, если объекты нельзя разделить в пространстве прямой линией (Linearly separable). Дальше этого у нас нет теории сколько слоев иметь, эксперимент и еще раз эксперимент. Так обычно нейронные сети имеют 2+ hidden layers.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Есть ощущение, что вы ожидаете очень сложного ответа, а ответ очень прост. Нет никакой математики в этой задаче, так же нету в этой задаче и архитектуры нейронных сетей. Есть лишь только работа с API, что оно предоставляет, таковы и возможности. Если бы мне нужно было решать такую задачу, я бы открывал статьи на medium (открывается с vpn) и естественно смотрел бы в стороны платных статей и от них бы отталкивался, потому что там множество пошаговых гайдов высокого качества для создания чат-ботов на базе GPT ( предполагаю вы свободно владеете английским).
    Ответ написан
    2 комментария
  • Какой тип нейросетей или машинного обучения выбрать для обучения торгового робота?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. У вас звучит слово находить, машинное обучение (нейронные сети это один из классов алгоритмов машинного обучения, а не что то отдельное) ничего не находит, оно предсказывает. Если цель предсказания непрерывная переменная, например цена акции то это задача регрессии, если цель дискретная например рынок пойдет вверх или рынок пойдет вниз то это задача классификации.

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

    3. Отсюда вывод вы слабо себе представляете то о чем спрашиваете, так или иначе, то о чем вы спрашиваете это работа с временной последовательностью, вот прочтите https://qna.habr.com/q/1295634
    Ответ написан
    4 комментария
  • Какая конфигурация нейронной сети лучше для временной последовательности?

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

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

    Ну и не много не в тему вопроса, при работе с ts я бы вообще не использовал нейронные сети. Нейронные сети не являются интерпретируемыми моделями. Что это значит? Например у меня есть параметры на вход и один из них ну скажем пускай будет средняя скользящая за неделю, так вот я никогда не смогу сформулировать взаимоотношения между отдельно взятым предиктором в данном случае (средней скользящей) и целью пусть будет цена акции. По этому я бы смотрел в сторону GAM (General Additive Models). Все regressive модели их много это подсеты GAM, когда речь идет о ts то появляется приставка auto. Так вот там можно сформулировать взаимоотношения между отдельным предиктором и целью, а на длинной дистанции это очень важно. GAM это класс моделей а не отдельно взятый алгоритм.
    Ответ написан
    8 комментариев