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

    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 комментариев
  • ValueError: operands could not be broadcast together with shapes (720,406) (400,) (720,406) в stable diffusion?

    Maksim_64
    @Maksim_64
    Data Analyst
    Сама по себе ошибка, довольно известная, и происходит она на уровне numpy. При работе с массивами данных, есть такой важный термин, как broadcasting - это то как numpy осуществляет арифметические операции с массивами разной размерности.
    Например
    import numpy as np
    arr1 = np.ones(9).reshape(3,3)
    arr2 = np.ones(8).reshape(2,4)
    arr1 + arr2
    Выдаст по смыслу такую же ошибку, как у вас, размерности разные и он не в состоянии произвести оперцию.
    А вот в этом примере
    import numpy as np
    arr1 = np.ones(27).reshape(3,3,3)
    arr2 = np.ones(9).reshape(3,3)
    arr1 + arr2
    Не смотря на то что размерности разные у нас двумерный массив складывается с трехмерным, ошибки не будет все сработает.
    Потому что согласно правилам broadcatsting'a, данная арифметическая операция возможна.

    Так и у вас, numpy не в состоянии выполнить broadcasting. Как поправить, по скольку вы напрямую не работаете с массивами, а используете интерфейс stable diffusion, то все ответы надо искать там. Либо вы передаете массив с данными, не в той размерности, либо что то в параметрах stable diffusion не то. Ищите рабочий пример и повторяйте. Так поправьте здесь что то или там что то, здесь сказать не возможно. Что из себя представляет проблема я обрисовал.
    Ответ написан
    9 комментариев
  • Рекуррентная нейросеть для прогнозирования на keras?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну в целом в плане решейпинга, все не правильно. Посмотри размерности своего labels. Это должен быть одномерный массив, длинной соответствующий количеству рядов в массиве features (ты его назвал training data). Потом а на чем ты тренируешься 15 рядов 11 колонок, я про training_data. Это абсурд. Этот код не поправить. Тебе нужен туториал и по нему адаптируюй под свои данные.

    Например вот там google colab c предсказаниями акций с использованием kears.Sequential, ну и комментарии кое какие имеются.

    Также на медиуме есть туториалы с объяснениями (на английском). В общем гугли keras sequential stock prices example и разбирайся по примерам. Это мертвый код, весь решейпинг переписывать надо. Плюс там надо будет тестовые данные хитро готовить, двигать и подавать в модель в цикле. В общем тебе нужен пример.
    Ответ написан
    7 комментариев
  • Как верифицировать российский номер телефона для доступа к GPU в Kaggle?

    Maksim_64
    @Maksim_64
    Data Analyst
    1. Формально, colab побыстрее, но при определенных действиях kaggle куда проще в использовании.
    2. Проблем с российскими номерами нет. (верифицируют без проблем)
    3. Подобные проблемы случаются иногда, он и просто google может не верифицировать только купленный номер.
    4. Поменять номер, писать в поддержку, будь уверен что ты пишешь в поддержку правильно, я не припомню, что бы их поддержка не отвечала, например в этом году у меня был верифицированный номер (но он стал не активным и я меня на новый, проблем не возникло.
    Ответ написан
    Комментировать
  • Какой нейронной сетью (или другим инструментом) можно проанализировать текст чтобы понять настроение клиента?

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

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

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Как читать, тут не важно что ты обучаешь, обучения нет обычный шум разного уровня, с увеличением количества шагов у тебя постепенно (обычно не линейно) должна снижаться ошибка (минимизироваться функция потери). Ничего подобного на графиках нет. Просто случайный шум да и все. Обучения НЕ ПРОИСХОДИТ.
    Ответ написан
    Комментировать
  • Fine-tuning опенсорсного LLM новому языку?

    Maksim_64
    @Maksim_64
    Data Analyst
    Приблизительно все ваши вопросы, не связаны с реальностью.

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

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

    3. https://github.com/Hannibal046/Awesome-LLM чего из open source там нет?
    Ответ написан
    7 комментариев