Очередной тред про хипстерские технологии, которые не работают.
Я ничего не понимаю, что делать? Вкатывальщики импортят slesarplow as sp по туториалам (хотя сейчас актуальнее keras и pytorch) Толковые качают из репозитория awesome-XXXX на гитхабе проект какого-то китайца, меняют фамилию и получают $10M инвестиций как стартап. Умные смотрят prerequisites на https://see.stanford.edu/Course/CS229 и http://cs231n.stanford.edu/
Какая математика используется? В основном линейная алгебра, теорвер, матстат, базовый матан и matrix calculus.
Почему python? Исторически сложилось
Что почитать для вкатывания? http://www.deeplearningbook.org/ Николенко "Глубокое обучение" - на русском, есть примеры, но меньше охват материала
Где набрать первый самостоятельный опыт? https://www.kaggle.com/ | http://mltrainings.ru/ Стоит отметить, что спортивный deep learning отличается от работы примерно так же, как олимпиадное программирование от настоящего. За полпроцента точности в бизнесе борятся редко, а в случае проблем нанимают больше макак для разметки датасетов. На кагле ты будешь вилкой чистить свой датасет, чтобы на 0,1% обогнать конкурента.
Где посмотреть последние статьи? http://www.arxiv-sanity.com/ https://paperswithcode.com/ Количество статей зашкваливающее, поэтому все читают только свою узкую тему и хайповые статьи, упоминаемые в блогах, твиттере, ютубе и телеграме, топы NIPS и прочий хайп. Есть блоги, где кратко пересказывают статьи, даже на русском
Где ещё можно поговорить про анализ данных? http://ods.ai/
Нужно ли покупать видеокарту/дорогой пека? Если хочешь просто пощупать нейроночки или сделать курсовую, то можно обойтись облаком. На март 2020 Google Colab дает бесплатно аналог GPU среднего ценового уровня (что-то между 1050 и 1080) на несколько часов с возможностью продления. Иначе выгоднее вложиться в GPU https://timdettmers.com/2019/04/03/which-gpu-for-deep-learning/ Заодно в майнкрафт на топовых настройках погоняешь
Когда уже изобретут AI и он нас всех поработит? На текущем железе - никогда, тред не об этом
Список дедовских книг для серьёзных людей: Trevor Hastie et al. "The Elements of Statistical Learning" Vladimir N. Vapnik "The Nature of Statistical Learning Theory" Christopher M. Bishop "Pattern Recognition and Machine Learning" Взять можно тут: http://libgen.io/
Напоминание ньюфагам: немодифицированные персептроны и прочий мусор середины прошлого века действительно не работают на серьёзных задачах.
>>1635981 В простейшем случае есть один тензор - типа данные, есть второй тензор - типа внимание. В случае self attention ты получаешь их из предыдущего слоя. Типа
danniye = Dense(input) attention = Dense(input)
Далее умножаешь почленно output = danniye * sigmoid(attention). Сигмоид имеет значение от 0 до 1, таким образом ты как бы накладываешь бинарную маску на danniye, какие-то данные пропуская, а какие-то обнуляя. Это называется attention gate
В более сложном случае у тебя есть аж 3 тензора, Q (это тот, который danniye), а еще K и V (ключ и значения - типа ассоциативная память) и формула сложнее
softmax(Q K' / sqrt(n)) V
Но суть примерно та же - ты из входного запроса какую-то информацию фильтруешь, какую-то пропускаешь.
Прелесть всей этой хуйни в том, что это что-то типа сверток, но если свертки жестко связывают нейрон следующего слоя с локальной областью предыдущего, то аттеншен позволяет иметь гибкие связи хоть с другим концом слоя. Это больше отвечает естественным языкам, которым пространственная инвариантность сверток не особо нужна.
>>1635855 Йоба-эмбеддинги я и сам строить умею. Это символьные строки, латиница, притом неочищенные - как извлекли, так и подаём, может быть вообще ложное срабатывание и абракадабра. На объектах есть разметка, что похоже, что непохоже. Так что я свожу каждую строку в вектор (через lstm), дальше из этого набора векторов строю один (через self-attention). Но, может, есть более разумные способы работать с неупорядоченными множествами?
>>1634712 → Ага, я в принципе все понял, кроме "порядка размера буквы", что ты под этим имел ввиду? Алсо, таки получилось вместе с BERT запустить обучение, не стал заморачиваться и сделал через dense слой все, оно даже учится. Думаю features с inception можно еще склеить с текстом попробовать. Обучается все это не очень быстро, кстати.
Вечер в хату, котаны. Есть датасет, но я его вам пока не дам. Овер 17к картинок. Все отобранные вручную за пол года. Есть pix2pixHD, прикрутил к ней аугментацию- поворот на +-30 градусов, смена гаммы, контраст, все дела. Есть palit 1080 (да, уже соснул). Треню в разрешении 512 на 1024, все вроде норм, все красиво, только осталось тренировать 40 дней. на самом деле я уже запускал тест на меньших выборках 256 на 256 и за пару дней там все было норм. Кароче, вопрос к знатокам- как это все дело вывести в онлайн на сервер под cpu или, если есть возможность- на свой комп для обработки, а ля бот для телеграма или что-то подобное? В онлайн взаимодействии клиент-сервер я почти ноль, могу написать на php хелло ворлд и поиграть с шрифтами в html/css. Нужно сделать что-то типа вот этого deepnudeonline.com Модель можно экспортировать в onnx.
>>1636993 > прикрутил к ней аугментацию- поворот на +-30 градусов, смена гаммы, контраст, все дела Ты неправильно делаешь аугментацию, 20% картинки это черный фон. Нужно кропать после поворота. А чтобы при повороте на такой большой угол не пришлось кропать так много, проще разбить картинку на несколько поменьше с перекрытием. После обучения отмасштабируешь
>Кароче, вопрос к знатокам- как это все дело вывести в онлайн на сервер под cpu или, если есть возможность- на свой комп для обработки, а ля бот для телеграма или что-то подобное? Это тебе в веб-программистам нужно, потому что вызвать predict у нейронки не отличается ничем от любого другого процессинга на сервере Простейший подход это https://blog.keras.io/building-a-simple-keras-deep-learning-rest-api.html Дальше пишешь простейший фронтэнд на жс, который берет картинку и делает запрос к этому бэкенду
Минус подобной хуйни в том, что сервер подвиснет на время обработки, и его очень легко завалить кучей запросов. Правильно реализовать очередь. Делается это тоже элементарно в принципе и должен быть похожий репозиторий на гитхабе, но мне лень его тебе искать. Ищи по запросу типа "flask deep learning", или как-то так
>>1637057 спасибо за советы, возможно стоит так и сделать с перекрытием, но сама идея была делать именно 1024 на 512. Почему-то мне кажется, что черные фоны по углам не так сильно повлияют на итоговый результат, просто будет отсеивать их нейронка. Да и это картинка после 2 дней обучения, когда мне еще 40 делать по хорошему- 200 с lr стандартным и потом еще 300 поколений на уменьшение. Хочу сделать качественно, зачем и прукручивал аугментацию, да еще с рандомным масштабированием. На меньшем масштабе если отбирать только примеры "анфас" оно не давало артефактов ни разу, после прохождения 6 дней обучения и без аугментации, так что я почти уверен, что это дело просто в недообученности.
>>1637078 >спасибо за советы, возможно стоит так и сделать с перекрытием, но сама идея была делать именно 1024 на 512. Подумай, как работает свертка. У тебя выходной пиксель зависит от квадрата на входе, размер этого квадрата называется receptive field. Больше он ни от чего не зависит. Поэтому ты спокойно можешь кропнуть (не отмасштабировать, а просто порезать) картинку 1024х512 на 2 картинки 512х512 и так обучать обрезанные сиськи. Точно так же ты можешь взять обученную сеть 1024х512 и скормить ей картинку 10240х10240. В массиве весов сверточного слоя нет его размера, поэтому масшабировать можно как угодно, и смысла в конкретном размере картинке нет при условии, что у тебя кроп, а не ресайз)
На самом деле большие картинки чуть выгоднее, потому что у них меньше относительный процент границ. Границы штука хуевая, потому что если у нейрона receptive field выходит за границы картинки, там в пределах этого поля будут нули, что плохо. То есть кайма размером с размер receptive field у тебя работает хуево, на мелких размерах относительная площадь такой каймы больше. Поэтому есть два варианта, либо терпеть эти нули (padding=same), либо обрезать картинку (padding=valid), что слегка уменьшает объем пропускаемых в единицу времени пикселей.
>На меньшем масштабе если отбирать только примеры "анфас" оно не давало артефактов ни разу Потому что когда ты делаешь ресайз, у тебя в receptive field влизает больше информации. То есть на 256х256 выходной нейрон видит только сиську, а на 1024х512 уже только сосок, если ты архитектуру не менял. Потому что черные хуйни от поворта, будучи мелкими на 256, становятся большими на 512.
>Хочу сделать качественно Ну и делай качественно. Качественно - это правдивое распределение на входе, без разных левых мод. Черные квадраты фидить 20% времени - это не самый хороший подход.
>>1637100 Еще раз спасибо за ответы, я просто совсем слаб в программировании, и только слегка поднаторел в запуске различных pix2pix на винде, будь она неладна. да, ты прав, возможно стоит переключиться на 512 на 512, включить кроп просто. Я думал, что сеть будет улавливать разницу во входящем разрешении и будет лучше обучаться, если будет помнить, что у тушки грудь сверху и трусы снизу, но это, видимо, не так. (пока разрешение не 1024 на 1024- сним это бы прокатило, но у меня оно не лезет в 8 гб.) Сразу спрошу глупый вопрос- в той примерной картинке 10240 на 10240 - она ведь должна быть не ресайзнутой, а, например, коллажем из картинок того-же масштаба, с которым работала нейросеть? Просто уже пробовал одну модель так запускать, и она не работала с неизвестным ей масштабом? >(padding=same), либо обрезать картинку (padding=valid) вот эту терминологию я не понимать. Да, плохо что есть примеры с обрезанными краями, ну пусть один из слоев нейронки занимается тем, что все черные обрезанные края отсеивает. Не думаю, что это сильно нагрузит архитектуру сетки. >1024х512 уже только сосок, если ты архитектуру не менял. Вот именно, что менял (точнее я ничего не менял, я просто пользуюсь p2pHD от нвидии, ничего кроме критичных ошибок ШИндоус внутри не исправляю + ну только + аугментацию врезал, всегда можно заккоментить), это я не первую модель меньшего масштаба запускаю, а все по новой. В меньшей модели (моделях, их было много) были только картинки из, например, верхней части + лицо, или только в полный рост. Ну и про фидить нули- да, я всосал, но счастливые часов не замечают, мне в кайф, что я вообще это запустил. Не бей ногами сильно, я чувствую превосходство, когда со мной разговаривает кто-то опытнее меня. Просто делаю как могу, пусть за меня работает ПК, я уже и так выжат от перебора картинок. Как представлю, что мне их все еще предстоит грамотно порезать, оставив только нужное... Я думал, что может существует софт типа вырезалки лиц по шаблону из deepfake, только для тела, и все что было найдено- это раскрытая архитектура deepnude, которая делает то же самое с помощью каскада из двух или трех нейронок с размеченными буквально вручную телом и сосками, но на такой трудовой подвиг я не готов и мне не хватит програмистских скилов.
>>1637134 >Я думал, что сеть будет улавливать разницу во входящем разрешении и будет лучше обучаться, если будет помнить, что у тушки грудь сверху и трусы снизу, А при чем здесь кроп? Ты же при кропе не переворачиваешь картинку, верх всегда остается верхом. Посчитай этой хуйней https://fomoro.com/research/article/receptive-field-calculator какой у тебя receptive field выходного пикселя, будешь примерно представлять, от какой области изображения зависит выходной нейрон. Скорее всего этот самый нейрон просто не видит нужную область изображения, чтобы одновременно и сиська и пизда попала в его поле зрения.
>Сразу спрошу глупый вопрос- в той примерной картинке 10240 на 10240 - она ведь должна быть не ресайзнутой, а, например, коллажем из картинок того-же масштаба, с которым работала нейросеть Да, я про это и писал. На генеративных GAN'ах это вообще охуенно работает и часто дает ебические глюки
>Не бей ногами сильно, я чувствую превосходство, когда со мной разговаривает кто-то опытнее меня. Я просто разговариваю. Ты молодец.
>которая делает то же самое с помощью каскада из двух или трех нейронок с размеченными буквально вручную телом и сосками Да, в этом больше смысла. Потому что каждый нейрон в pix2pix довольно слепой, он видит только небольшую область от входной картинки. Соответственно нужно за все слои умудриться классифицировать, что перед тобой - сиська или пизда, и дальше нарисовать что-то, и все это анализируя область что-то типа 64х64 пикселя. Если же помогает сегментатор, который делит картинку на области с разными критериями, все становится сильно проще.
>>1636294 > Ну нужно рассчитать какое поле на входе имеет нейрон, в пикселях и это поле должно быть таким чтобы покрывать букву с запасом Хм, а как это можно сделать? Для меня то, что происходит на верхних уровнях Inception практически тайна.
Тогда в массиве (o1-o2) дельта будет изменена только в тех нейронах, в receptive field которых попал этот белый пиксель. Несложно понять, что число таких нейронов в 4 раза больше, чем receptive field.
В классифицирующих нейронках это не так актуально, потому в конце у тебя есть fully connected слой, который связывает все изображение воедино, то есть классификатор видит все пространство целиком. А вот сегментирующих, супер-резолюшенах, экстракторах фич и прочих вариантах вида картинка=>картинка, которые масштабируемы, размер поля очень важен, потому что все, что за пределами поля зрения, нейрон (пиксель) тупо не видит.
>>1637154 да, есть такое, можно в p2p включить третью картинку с размеченными данным от 0 до 255, но я не знаю, где ее взять- можно взять разницу между картинками. но. не придется ли мне потом каждую картинку, которую я беру для "теста", тоже размечать? Поэтому чето не хочется. >>1637176 я такие слова вижу впервые. Поробую вкурить. это ndf ngf? Все равно еще раз спасибо, мечешь бисер перед свином.
>>1637200 >но я не знаю, где ее взять Обучить сегментирующую нейронку, какой-нибудь unet простенький с небольшим числом фильтров на наружных слоях, и с большим внутри. Почему так - потому что наружные слои будут работать просто как даунскейл и апскейл, а вот внутренние уже будут более-менее размыто сегментировать. Нужно вручную разметить хотя бы разноцветными кружочками пизду, пупок и сиськи и дальше скриптом это конвертнуть в маску для сегментации. В идеале - прямо всю анатомию обвести. Это с моей стороны пиздеж в пустоту, потому что вряд ли ты будешь размечать так 17К картинок. Твой подход вполне может сработать, просто GAN будет вынуждена сегментировать сама.
>>1635685 (OP) Машобоёбы, расскажите, пожалуйста, как в CNN определяется первый линейный слой? Там размерность идёт как выход_с_cвёрточного_слоя х у Вот эти x, y как определяются?
>>1637703 Сверточные слои без активации тоже линейные, если что, ты видимо хотел сказать полносвязный. В 2D сетке в последнем сверточном слое есть 3 числа - его пространственные размеры (условные пиксели) и число каналов у каждого пикселя. После flatten все эти числа превращаются в один большой вектор размером "длина х ширина х число каналов". Далее у полносвязаного слоя есть параметр его размерность на выходе. Тогда рамер матрицы будет (длина х ширина х число каналов, размерность), итого длина х ширина х число каналов х размерность. Обычно это дохуя и такие слои самые тормозные в модели
>>1637714 Спасибо. Вот есть кусок кода: nn.Conv2d(256, 256, kernel_size=(5, 5)), nn.ReLU(), nn.BatchNorm2d(256), nn.Dropout(0.3), nn.Flatten(256), nn.Linear(256, 64), Линейный слой получается должен быть (256х256х3, 64) ?
И вопрос вдогонку: что делать если идёт мультиклассовая классификация изображений, причём каждое может одновременно относиться к разным классам? Т.е. есть столбцы для каждого из классов, если изображение к нему относится, там единица, вплоть до всех единиц в "классовых" столбцах. Можно ли все эти столбцы засунуть в Y_train? Или всё это надо преобразовывать ручками или через PCA?
>>1637719 >Линейный слой получается должен быть (256х256х3, 64) Нет. nn.Conv2d(256, 256, kernel_size=(5, 5)) - здесь первый 256 это каналов на входе, а второй - число каналов на выходе. Размер слоя тебе неизвестен, потому что свертке похуй на размеры. Ты можешь в этот слой скормить картинку 10х10, а можешь 10000х10000, он проглотит и не подавится.
Размер соответствующих фич в данном слое будет зависеть размера твоего input_layer'a, а не от параметров сверточного слоя, которому похуй.
Например, если у тебя на входе 1000x1000x256 (не 3, потому что ты написал nn.Conv2d(256, 256, kernel_size=(5, 5))), то на выходе у тебя будет слой размером что-то типа (1000-floor(5/2))x(1000-floor(5/2))=998x998x256. Соответственно и размер линейного слоя у тебя должен быть 998х998х256=254977024, а размер матрицы будет 254977024x64x4=65274118144=65 Гбайт. Кек. В случае многослойной нейронки с постоянным даунскейлом от слоя к слою, такого пиздеца конечно не будет.
Так как считать это вручную бред, то это делают программным образом. Ну или берут keras, в котором ты не считаешь вручную эти размеры, а он за тебя это делает
>И вопрос вдогонку: что делать если идёт мультиклассовая классификация изображений, причём каждое может одновременно относиться к разным классам? Универсальный ответ, и такой вопрос был недавно, использовать не softmax, который суммируется в единицу по всем классам, а sigmoid, у которого каждый класс независим и может выдавать от 0 до 1. Но это хуевый ответ. Все сильно зависит от того, какая у тебя структура этих самых классов. Если у тебя есть собаки и коты, и они бывают рыжими и белыми, то проще сделать 4 класса, рыжих собак, рыжих котов, белых собак и белых котов и так далее. Если же у тебя прямо дохуя тегов, то можно вместо последнего линейного слоя завести их несколько, и в каждом свой softmax классификатор, в котором пересечения классов нет. То есть по сути у тебя будет фичеэкстрактор, а поверх уже отдельные классификаторы - котов и собак с одной стороны, и по цвету шерсти с другой. Все индивидуально, зависит от задачи и требует экспериментов.
>>1635685 (OP) Аноны, помогите пожалуйста советом. Изучаю ML около полугода, решил выполнить реальную задачу. Суть в том, что есть собранный датасет с физической активностью людей(есть дата и некий коэффициент активности(т.е. данные достаточно простые)). Нужно на примере одного человека построить функцию, которая при поступлении новых данных (при этом ранее обучившись на старых) могла сказать пользователю, достаточно ли он позанимался сегодня или нет. Я планирую использовать логистическую регрессию. Опытные аноны, подскажите пожалуйста, какой бы вы метод использовали для решения подобной задачи?
>>1637927 Хм, а что такое learned positional encoding, насколько я знаю позиционный энкодинг нужен потому, что модель и понятия не имеет о последовательностях. Но в имплементации я увидел какую-то хуйню, они создают рандомный тензор через pytorch с размерами (1, 5000, 256), и берут пропущенный через линейный слой тензор и складывают их, пропуская через дропаут, в чем прикол? Алсо, что в тензорфлоу является аналогом nn.Embedding()?
>>1637758 >Так как считать это вручную бред, то это делают программным образом. Ну или берут keras, в котором ты не считаешь вручную эти размеры, а он за тебя это делает Спасибо. Но помучаю ещё вопросами: если свёрточный слой идёт первым, и у нас цветные изображения, то слой будет выглядеть как nn.Conv2d(3, 32, kernel_size=(5, 5)) ? Это эквивалентно керасовскому Conv2D(filters=32, kernel_size=(3, 3), padding='SAME', input_shape=(img_size, img_size, 3) ? > если у тебя на входе 1000x1000x256 Нет на входе у меня 3 канала, просто из дальше будет больше, и картнки 28х28. Т.е. судя по твоему посту будет 78х78х3 = 18252 ? А размер матрицы 4672512?
>>1638552 А вот этот вот размер 78х78х3 полносвязного слоя дальше как сокращать? Во-первых, соблюдать ли такое же измерение AxBxC? Во-вторых, как резко его уменьшать? Можно ли сразу до 64 узлов?
>>1635685 (OP) Поясните физический смысл параметров трансформера плиз Почему в голове именно три матрицы, зачем их нужно несколько, зачем residuals, почему это простакать надо шесть раз в енкодере, зачем ещё дополнительный аттеншен в декодере нужен тогда?
>>1638438 Более-менее со всем разобрался, хотя инициализация рандомом для меня все еще остается загадкой. Переписал почти все, осталось понять, как результаты вытащить с сети. > Алсо, что в тензорфлоу является аналогом nn.Embedding()? И с этим тоже разобрался, embedding_lookup
>>1638948 То есть если картинки идут 80х80 и я 4 раза применю maxpooling, то у меня будет уже размерность 5х5. Сюда количество каналов, правильно? Т.е. будет их 256, мне понадобится полносвязный слой из 5х5х256 = 6400 узлов?
>>1638952 >То есть если картинки идут 80х80 и я 4 раза применю maxpooling, то у меня будет уже размерность 5х5. Только если у тебя свертки между этими пулингами имеют padding "same". Вообще возьми keras, ipython и просто печатай model.summary() для разных вариантов, поймешь, как оно что работает. Или ты думаешь я это узнал каким-то иным образом в свое время?
>>1638718 >Поясните физический смысл параметров трансформера плиз Любая архитектура нейронки вводит некоторое предположение о датасете. Язык - изобретение человеков, поэтому скорее всего идеальная языковая модель будет каким-то образом повторять мозг. Но мы не знаем, как работает мозг, поэтому большей частью это эксперименты. Можно предположить, о чем думали авторы трансформера, хотя скорее всего они думали совсем не так, как я.
>Почему в голове именно три матрицы Стандартный процесс - сначала упростить работающее решение по-максимуму, чтобы оставить суть, потом усложнить его. Возьмем LSTM, в котором была решена проблема забывчивости RNN с помощью механизма гейтов, когда стейт не тупо прибавлялся ко входу, а что-то из стейта выкидывалось, что-то сохранялось. Потом LSTM максимально упростим - выкинем кучу формул (получили GRU), а потом рекуррентность. Так ты получишь простейший attention gate, который выглядит как input нелинейность(W input), а вся нейронка - это настеканые таким образом слои, с residual связями. Упростить дальше уже сложно. Дальше делаем одно усложнение - фикцированные веса нейронки заменяем на переменные input нелинейность((W1input) * (W2input)) Все, остается добавить масштабный коэффициент. Это работает эффективнее, чем attention gate, вот и используют >зачем residuals Это решает проблему vanishing gradients, без этого у тебя пока не обучится самый глубокий слой, менее глубокий обучаться не будет, что вызывает экспоненциальный взрыв времени обучения. Эта хуйня уже в учебниках должна быть, а ты вместо изучения сеток попроще лезешь изучать BERT >почему это простакать надо шесть раз в енкодере Потому что это попробовали 5 и 7, было не так оптимально. Сетка моделирует человеческий язык, а у коры головного мозга шесть слоев, то есть шесть довольно волшебное число. Когда была эра мелких нейронок, больше 3-х слоев не юзали, сейчас все обычно крутится вокруг 12 слоев, 6 что-то энкодит, 6 что-то декодит. Это все нумерология без научной ценности, но что-то в этом есть. >зачем ещё дополнительный аттеншен в декодере нужен тогда А ты полносвязные слои хочешь ебашить что ли?
>>1638965 >Вообще возьми keras У меня pytorch, в который надо готовую модель из кераса перевести, попутно уточнив некоторые детали. Слабоумие и отвага.
>>1638967 Какая разница, формулы-то везде одни и те же. Ты можешь эту готовую модель в керасе распечатать через print (model.summary()) и тупо переписать захардкоженные размеры
>>1638977 >в чем проблема В размере полносвязного слоя. Очевидно же. Вот тут, например, есть большая керасомодель: https://www.kaggle.com/shawon10/plant-pathology-eda-and-deep-cnn/notebook Мне не понятно, какого размера будет полносвязный слой, и вообще, нужен ли он там, потому что если считать, что ядро 3х3 срезает по 1 пикселю, а 5х5 по 2, то учитывая количество свёрточных слоёв, там вообще отрицательные значения долы быть при использовании на картинке 80х80.
>>1638976 Так керас за тебя и посчитает, максимум тебе придется помнить, что число входных слоев пайторча равны числу выходных слоев предыдущего слоя, да иногда числа поперемножать >учитывая количество свёрточных слоёв, там вообще отрицательные значения долы быть при использовании на картинке 80х80. Да, и такая ошибка часто бывает
Реквестирую годный учебник\и по матану и линалу для сабжа. Нужно чтоб в учебнике были и детальные пояснения для даунов и задачи по темам. Пример идеального учебника - "Introduction to Probability" от J. Blitzstein
>>1639103 Ты разобрался уже, но напишу. Входные данные неверные, бывают NHWC бывает NCHW (N - размер батча, H, W - длина и ширина, C - число каналов) У тензорфлоу (и кераса) по дефолту NHWC, а пайторча видимо NCHW, поэтому при переписывании кода втупую у тебя эта ошибка
>>1639654 Не совсем так В моём арсенале: 1.5 года дроча на бизнес процессы, графана и кликвью 1 год дроча на статистику, табличные данные и воркфлоу загрузить-препроцесс-линейная модель-валидейт-репорт. Ну и до этого по мелочи в айти катался, в эмбеддед, 2 года
А захотелось в какую-то гос структуру пойти - в ахуе, даже не понял где вакансии, хоть и нагуглил .gov сайты со списком всех вакансий.
Такое чувство, что государство работает с third party айти конторами, у себя никого не держит
>>1639563 Ну блин, задачка сан франциско крайм классификейшн - очевидный кейс Проанализировать обращения Эффективность патрулирований Какие нарушения чаще всего, где сделать упор Где впустую работают люди Да и вообще оценить процессы - наверняка там полный распиздос
Да, это влажные фантазии! Но то что вакансий нет - надо разобраться
>>1639662 > Ну блин, задачка сан франциско крайм классификейшн - очевидный кейс > Проанализировать обращения Ага, получишь 97% нигр как причину преступности, пойдешь с этой статистикой к начальству и сядешь за расизм. СЖВ скрепы это швитое, нитрожь!
Кто-нибудь, объясните, зачем в керасе придумали архиуёбищную идею неявной передачи маски в модели? Неужели сложно было добавить её явно для рекуррентных сетей как аргумент __call__ и дополнительный входной вектор, а не пытаться угадать по входным данным и прокинуть её неявно, причём на это далеко не все слои способны?
>>1639749 А, я таки сильно затупил, теперь понял тот код. Да, в таком виде это имеет смысл, к каждому батчу применяется один и тот же набор рандомно сгенерированных значений. Не заметил цифру 1 в начале, лел.
А что будет если вместо деревьев в random forest обучать бустинги? Ну т.е. просто обучать отдельные бустинги на подвыборках, а потом их смешивать? Качество не должно возрасти?
Извиняюсь за, возможно, нубский вопрос, но тут вот что. В классическом SVM решается задача условной оптимизации с отступом, выраженным через скалярное произведение. Получается пикрил, с которым уже удобно работать численно. У меня не получилось его вывести самому, поэтому не понял, можно ли сюда подставить ядро или с ядрами другой функционал будет?
>>1640697 Ну в общем-то я подумал и решил, что это все будет куда сподручнее сделать в NumPy или в том же торче и нужные значения записать в tfrecord, чем сидеть и думать над такими операциями. Думаю только, что размер датасета увеличится и обучение станет куда менее гибким
Напомните ещё раз про обучение, валидацию и тестирование на pytorch. При обучении мы пишем: model.train() for images, labels in train_dataloader: outputs = model(images) loss = criterion(outputs, labels.squeeze(-1)) loss.backward()
При валидации и тестировании тоже циклы нужны? Или просто model.eval() test_output = model(test_images) ?
>>1640790 Чет идея была не очень, да и способ кодировки хуевый на самом деле, в случае японского даже с кодировкой по символу получаются таблицы из одной единицы и 3000 нулями
>>1640722 С ядрами там двойственная задача такая же, только вместо скалярного произведения <x,y> там K(x, y). Для вывода двойственной задачи нужно записать ККТ для прямой задачи
Эй, пердолики. Какого это осознавать, что вы всего лишь паразиты от мира искуственного интеллекта? Что вы ковыряетесь в примитивной технологии 50-летней давности, для которой только недавно появились вычислительные мощности, и которая никакого отношения не имеет к ИИ? Что вы фактически ковыряете свои нейроночки(давайте называть вещи своими именами - перцептроны) по рандому в надежде на чуть лучший результат, тогда как нормальный прогер-бэкэндер реализует сложнейший алгоритм, ну и получает за это на порядок больше. Что ваши нейроночки не способны ни на что кроме распознавания картиночек, звуков, генерирования смешных паст со случайным набором слов, и аппроксимации дискретных функций. Что они бесконечно далеко от нормального ИИ - когнитивных вычислений, семантических сетей, совершения умозаключений, естественного языка.
>>1641296 > Что ваши нейроночки не способны ни на что кроме распознавания картиночек, звуков, генерирования смешных паст со случайным набором слов, и аппроксимации дискретных функций А ещё сложнейшие оптимизационные задачи, где без черного ящика не обойтись и благодаря которым компании повышают прибыль на миллионы долларов. А так конечно нихуя.
>>1641301 В чем сложность задачи, если ты над ней не размышляешь строго? Ты ковыряешь нейроночку из каких-то случайных эмпирических соображений до тех пор, пока она не начнет выдавать лучшие результаты, что не гарантировано. Про миллионные прибыли - это да. Миллионы можно заработать, продавая лохам землю на Лун. Прибыль - не показатель сложности задачи, решенной для ее получения.
>>1641309 То есть статистику дата-саентист не знает? Что может доказать или опровергнуть одиничный пример? Ты хочешь сказать, что каждая рядовая дата-саентист-макака проводит подробный математически строгий анализ того, что она делает, и находит подобные оптимизации?
В данном конкретном случае есть четырехколесное ведро, в него нужно вставить пихло, пихло должно быть дешевым и иметь требуемое количество лошадей и динамику что бы ведра купили.
Ведро нужно продать завтра.
На полноценное изучение математической модели свежеизобретенного пихла и вынработке оптимальной методики управления уйдет столько ресурсов и человекочасов что пихло с ведром выйдет золотым и через год.
Машинное обучение позволяет, нихуя не делая и зная лишь примерно безопасные пределы пердящего выххлопными двигла, на стенде подрочить месяцок и получить готовую прошивку. LOLIMOT Же позволяет обеспечивать постпродажную адаптацию так, что счастливый владелец буден наваливать и горя не знать, пока у него ведро по кругу сыпаться не начнет.
>>1641316 > . LOLIMOT Шизло, нейрофаззи алгоритмы это такой же машобчик. Что у тебя в наплечной параше вместо мозгов, армяне в нарды играют, или что, что ты один класс алгоритмов машоба противопоставляешь всему машобу как явлению? Выпей таблетки, маня, да открой для себя no free lunch theorem.
>>1641296 Ну ты, например, паразит этого треда, который даже 0,1% не умеет того, что умею я. Соответственно все твои теоретизирования о "когнитивных вычислений, семантических сетей, совершения умозаключений, естественного языка" не стоят вообще нихуя, говнофилософ. Примерно как первоклассник, который не понимает, почему взрослые не могут напечатать денег, чтобы конфеты были у всех.
Кто-нибудь GAN'ами занимался? У них круг задач ограничивается изображениями или он шире? Алсо, я правильно понимаю, что они очень ресурсозатратны и на некрожелезе такие сети не заработают?
>>1641968 >У них круг задач ограничивается изображениями или он шире? Почти любую нейронку можно превратить в GAN, потому что по сути это ты заменяешь захардкоженный лосс на нейронку и тренируешь параллельно свою сетку и свой лосс. Просто не всегда есть в этом смысл, есть же вещи попроще, например VAE, при этом VAE страдают от недостатка высоких частот, но зато проще тренируются и не всегда это проблема.
>Алсо, я правильно понимаю, что они очень ресурсозатратны и на некрожелезе такие сети не заработают? Да не особо. Главная их проблема в том, что их тренировка это шаманизм
А много кто в дс работает дата саентистом? Посоветуйте, что нужно чтобы на джуна вкатиться, сейчас курс Воронцова из шада смотрю, там около 24-25 лекций, я на четвертой сейчас. Параллельно тупые задачки в sklearn делаю. Что делать дальше? И какие вообще сферы есть, я так понимаю это 1. банки, тряска экономических черных ящиков? 2. cv, все, что с изображениями и зрением связано А что ещё?
>>1642005 >Почти любую нейронку можно превратить в GAN Не любую, а только если у неё непрерывные выходные данные, чтобы через них градиент прокинуть можно было. Например, в задачи генерации текста их не всунуть.
>>1642694 > Анон, это же дипфейк? Везде в связи с эпидемией власти людям финансовую помощь выделяют, а у пыньки мысли только как бы ещё побольше навариться на пиздеце. Вот уж реально, "кому война, кому мать родна"...
>>1642745 а которых цепочка тоже не замыкается. Аноним 25/03/20 Срд 21:28:02 №1642792 >>1642780 → Так я сам как-бы уже месяц как написал заявление об увольнении, но не подаю его из-за того что хикка и боюсь подойти и сообщить начальнику что хочу уволиться. >>1642782 → Ну, как-бы, я-то работать пошел исключительно из интереса посмотреть как он
Есть несколько задач для ML, буду описывать каждую отдельно, так как друг с другом они не связаны.
Питон я не знаю, но программированием занимался очень долго. На руках топовый домашний комп с Windows 10. Перезагружаться в Убунту очень не хочется, но могу, если выбора не будет. Как я понимаю, часть Питоновского кода в принципе не работает под Виндой.
Первая задача Есть один сет с изображениями. Для каждого изображения создана png-маска такого же разрешения, что изображение, там magenta-пикселями залиты нужные области с объектами (допустим, я ищу котов). То есть есть картинка 0001.png и рядом (или в другой папке, не важно) 0001.mask.png. Как мне натренировать сеть искать похожие объекты на других картинках? Допустим, дата-сет на 1000 картинок. Задача крайне тривиальная, просто скиньте любую статью, где решается эта проблема (поиск похожих паттернов / распознание объектов). Я находил на Швабре примеры, но там в какую-то ебанину всё скатывается постоянно.
Вторая задача Есть сет с изображениями. Для каждого изображения совершенно другая программа построила набор фич. Ну от балды скажем 20 фич, каждая в пределах от 0 до 1. Допустим, рядом с каждым файлом 0001.png лежит 0001.tsv, где фичи перечислены через табуляцию. Каждое изображение категоризируется в три корзины: 0 (нет), 1 (да) и 2 (в зависимости от интерпретации человека либо да либо нет).
Третью корзину я, допустим, выкину из сета. (Как вариант: буду учить две сети, в одной спорный сет пойдёт в 0, в другой — в 1). Мне нужно категоризировать все изображения, но кроме самой картинки я хочу подать на вход эти 20 фичей (я осознаю, что для, допустим, нейронки нет разницы между одним числом и другим числом). Опять же, тривиальнейшая задача, но раньше я никогда не решал ML-проблемы. И снова: просто скиньте статью. Крайне желательно, чтобы там также подавались отдельные ручные фичи.
Есть третья задача, но её я опишу завтра, она сложнее
>>1642787 Да я уже понял, ток странно, что его так реализовали, а не дефолтными способами. Алсо, есть ли какие-либо способы работы с трансформером в режиме предсказания кроме как энкодить картинку и по символу, пока трансформер не предскажет конец строки использовать декодер?
Здравствуйте, мне нужно убрать вспышку с фотографии. Подскажите, пожалуйста, сайт с нейросетью, где можно было бы загрузить фото и чтобы нейросеть мне вспышку убрала?
Анон выручай Немного не по теме, но на дваче вроде как нет похожего треда КОРОЧЕ у меня есть RGBD изображения и все заебись Мне нужно построить по ним облако точек ВОПРОС нужно ли юзать для этого цветосоставляющую компоненту или хватит только глубины? Если буду с таким вопросом послан нахуй из треда - будет справедливо
>>1642849 >Первая задача https://medium.com/@arthur_ouaknine/review-of-deep-learning-algorithms-for-image-semantic-segmentation-509a600f7b57 >Вторая задача Почитай тупо туториалы по нейросетям и документацию используемой библиотеки. У тебя каждый объект распознавания состоит из пары: картинка + вектор признаков. Так что тебе нужно построить сеть, которая обрабатывает картинку, обрабатывает вектор, склеивает результат и дальше ещё работает с ним. Статей по этому нет - научной ценности задача не представляет по причине тривиальности.
>>1643824 > склеивает результат Само собой это тривиальная вещь, только я не представляю что я подаю на вход конечного алгоритма обучения: папку с файлами или я сначала обрабатываю каждый файл с помощью той же библиотеки, получая из него вектор (набор пикселей), а потом уже получившийся промежуточный результат отправляю на конечный алгоритм. Если второе, то задача действительно привиальна. Однако если там в конце метод learnFromImages(string[] filenames, int[] results) то задача сразу прекращает быть такой уж тривиальной
>>1642849 >Задача крайне тривиальная Вот на этом этапе представляется такой кабанчик из десятых, который за пару баксов хотел чтобы ему склонировали фейсбук, задача-то тривиальная. Это не тривиальная задача, особенно когда у тебя в данных есть перекос, то есть одних классов мало, других много. Ну и еще нужно отличать image segmentation (то есть классификацию отдельных пикселей) и object detection (то есть поиск прямоугольников). Для сегментации проще всего взять unet.
>>1644282 Может. Но я брал с каггла другую работающую нейроку (инфа 146%), правда под мнистовские изображения 28х28, и она в данном случае подобную же ошибку выдавала (но с другими цифрами). Хотя с мнистом она работает сразу, из коробки.
>>1643646 >>1643645 Антоны, есть у кого-нибудь какие-нибудь идеи, почему так может происходить? Необученная нейронка выдает разные результаты, а вот обученная выдает то же самое значение, которое я подаю на декодер.
Котаны, а как посчитать этот ваш пресловутый receptive field в pix2pixHD? Я как бы не нахожу тех параметров, которые нужно вводить в калькуляторе, который сюда кидали- ни в переменных, ни в коде. Там в параметрах есть только ngf ndf по дефолту 64. Моей карточки хватает поднять значения ndf ngf до 90, если уменьшить размер обрабатываемого изображения с 512 на 256. Мне тут недавно один хороший человек подсказывал, что можно так уменьшить размер с 1024 на 512 на 512 на 512 например, но хочется также увеличить мощность сетки. Предположим, что детали изображения могут уместиться в квадрате 256 на 256. Можно ли еще спросить про ndf и ngf параметры и про работу pix2pix- верно ли я понимаю, что в моем случае дискриминатор учится искать объект на изображении, а генератор- меняет "подсвеченные" дискриминатором пиксели на нужные, точнее активирует некоторые нейроны, которые ответственны за обработку найденных фрагментов изображения. Короче, первый вопрос такой- не стоит ли мне попытаться разделить сетку на две части- одну генерирующую маску, а вторую- разукрашивающую эту маску? Я уже писал, что так сделали авторы deep nude, но они делали это долго на unsupervised обучении. А у меня тут есть база с парными картинками как бы. Может реально бахнуть маску разницы картинок и не дурить голову, пытаясь впихнуть в одну сетку сразу две функции? И код от deepnude уже есть чтобы запускать сразу обе сетки из p2pHD в один клик, и есть опция для подключения тех размеченных областей, как советовал человек тут. По идее на такой выборке будет достаточно просто сделать маску разницы. Если очень захочу, могу разметить картинки сверху и снизу на две разные части одежды, но даже это мне кажется излишним. Вот еще вопрос в свете всего этого: Про ndf ngf- с увеличением этих параметров размер файла генератора и дискриминатора увеличивается в какой-то прогрессии, ну с 64 до 90 файл генератора вырос 700 мб до 1400. Это потому, что увеличилось число нейронов на первом слое? И как это влияет на receptive field, роста которого я добиваюсь? И это из-за того, что в данной нейронной сети (архитектуре) pix2pixHD увеличение количества нейронов на первом слое как-то повлияло на количество нейронов на других слоях? Верно ли я понимаю, что слои могут взять на себя роль распознавания или генерации какой-либо одной функции. которой их обучают? Объясню -на первом слое сетка видит часть круга, потом видит колесо, потом часть капота, потом весь авто, и за каждое понятие отвечает один слой? (Возможно, что большое число нейронов на одном слое может взять много функций сразу? Это уже вопрос кривой архитектуры сети, наверное). И чтобы изменить количество слоев в p2pHD нужно уже будет кодить? В одном из вариантов кода pix2pix hd 1024 я видел в коде явно добавленные слои, а вот в коде от nvidia не нахожу файла с явным указанием их или их параметров. Это наталкивает на мысль, что количество слоев может все же зависит от каких-то заданных в начале тренировки параметров, но я не знаю каких. С меня как всегда. Могу расписать чего-нибудь про свои попытки и бесконечно растущий датасет.
>>1644741 Ну, короче, я затестил и оригинальное решение на pytorch и оно тоже не работает, возвращая одинаковые результаты, заебись. В итоге вообще нет никаких пруфов, что трансформер тут окажется лучше LSTM
>>1644975 Чтобы быстро накидать код, запустить и сразу посмотреть результат (с картинками и графиками, если надо), по результатам дописать ещё код/поправить уже написанный, снова запустить...
>>1645323 Ну что, "круто". Хуяришь такой 40 часов в неделю на заводе галере, потом ещё 20 часов в неделю в каком-то сраном шаде слушаешь лекции, делаешь практику, сдаёшь экзамены, в том числе вступительные и выпускные, , рвёшь жопу если материал не понял или чего-то не знаешь. И так 2 года, чтобы джуном устроиться в тот же яндекс на какие-нибудь 80к.
Какому-нибудь студенту такое может и зайдёт. А вот уже работающему - нет. И да, при наличии технического или физ-мат. образования азы машоба схватываются месяца за 4 вместе с практикой если знаешь что и как изучать и ого спросить. Вся жопа упирается в ОПЫТ и завышенные требования работодателей.
>>1645689 Приходят два еврея к раввину. Один спрашивает: — Скажи, ребе, белый — это цвет? — Да, белый — это цвет. — А черный — это цвет? — Да, черный — это тоже цвет. — Слышишь, Хаим? Я же говорил, что продал тебе цветной телевизор!
>>1645735 Хочу сказать, что вопрос чётче формулировать надо. В чём задача-то? Другая нейронка нужна? Тогда какие данные для обучения есть в наличии? Формально-то и грейскейл цветное изображение, а если тебе это не нравится - ну, покажи, как надо, а если не можешь - извиняй, ничего лучше предложить не можем. И нужно ли вообще нейронку привлекать - наверняка же есть сервисы для раскрашивания чёрно-белых изображений? Или задача какая-то другая?
>>1645405 >И да, при наличии технического или физ-мат. образования азы машоба схватываются месяца за 4 вместе с практикой Когда кто-то подобное пиздит, нужно указывать свой опыт, потому что за 4 месяца ты разве что хуйцы аппроксимировать начнешь
>>1646186 Это, конечно, круто, но вапрос в следующем: полная свёрточная сеть даёт "Calculated padded input size per channel: (1 x 1). Kernel size: (5 x 5). Kernel size can't be greater than actual input size", урезанная даёт size mismatch, m1: [150 x 256], m2: [6400 x 64] Я правильно понимаю, что в первом случае сетка "переработала" перед полносвязным слоем, а во втором "недоработала"?
Поясните. BERT можно использовать вообще без установки пистона, чисто через браузер? Использовать - это в частности, обращаться к нему через stdin / stdout?
Антоны, что в керасе является аналогом слима из первой версии? Как я могу взять inception модель и сделать из неё фичер экстрактор? Я чёт гайды пока только по обучению последнего слоя вижу
Можно ли как-то настроить jupyter notebook так, чтобы он всю мощность компа использовал? А то, когда я учиться ставлю, могу еще параллельно ютубчик в hd смотреть. Неприятно.
>>1648714 Хотя, очевидно, плюсом-то оно будет. Вопрос мой скорее в том, насколько это будет плюсом, может вообще хватит поверхностного понимания что такое производная фнп и как ее находить и тому подобное, любая абстракция и расширение сверху будет уже юзлесс.
Анончики, подскажите такую штуку. Есть задача - классифицировать текст с помощью нейронной сети (текст будет в пределах 10 предложений). Вопрос - какие есть готовые, то есть обученные модели для этого дела? Может, у Кераса что-то есть?
Антоны, чет попытался я взять и скрестить эту реализацию со своей https://github.com/Kyubyong/transformer Ну и в итоге на тесте модель выдает одинаковый результат для всех картинок. Что я уже только не пробовал, пробовал пропускать сплющенный выход со слоя CNN через линейный слой и подавать, не помогало, пробовал и просто сплющить выходы и подать туда, опять же, не помогло. Причем обучается все это нормально, правда долго.
>>1649413 Попробую еще взять готовую имплементацию под керас и впихнуть туда сверточную сетку, надеюсь, что хотя бы она сработает и будет выдавать адекватный результат.
>>1650318 Поэтому на главной будут рестораны, из которых заказывают те, кто чаще всего заказывают в Маке. Например, Бургер кинг. Читай что такое: I-коллаборация и U-коллаборация (item/user collaboration)
>>1649678 Использую torchvision.trasnform для приведения в изображеий в нужный вид, нормализую, получаю тензоры tensor([[[-1.2617, -1.2274, -1.1932, ..., -1.5185, -1.5185, -1.5357]... Потом применяю train_test_split и TensorDataset Пишет: 'numpy.int32' object is not callable Што? У меня же уже тензоры.
Помогите заставить Keras работать с GPU в Jupyter Notebook под Windows 10. Делал всё по этому гайду. https://github.com/antoniosehk/keras-tensorflow-windows-installation Дошёл до создания виртуального окружения в терминале юпитера, создал, активировал его. Но в самом ноутбуке команда tf.test.is_gpu_available показывает что нет никакой GPU. GTX 1070 если чтоу.
>>1650478 >>1650593 >>1650686 >>1650912 У меня получилось. Создал виртуальное окружение, в нём захерачил отдельный юпитер ноутбук и всё заработало. Но! Теперь возникла проблема с нехваткой оперативной памяти.
Операция требует аллоцировать чуть меньше 5гб памяти и не может. В предыдущей ячейке операция требовала 13.5гб памяти, всё прошло успешно, график использования памяти в диспетчере ушёл в сотню и после вернулся обратно. Так какого хуя не может выделить 5гб, если свободно больше?
>>1650110 Это не то, тут все замораживают для обучения, но да я вроде разобрался и даже запустил обучение. Надеюсь, что в этот раз все не зафейлится, как в прошлые, когда нейронка выдавала один ответ на все.
Надеюсь на помощь могучего ума Анона. Я -- чувак, вкатывающийся в етот ваш data science. И сейчас у меня возник вопрос методологического характера.
Я не планирую -- по крайней мере, сознательно -- становится хардкорным датасайнтистом. Для меня это скорее вспомогательный инструмент на будущее, который, однако, точно будет использоваться. Я дошел до момента выбора между двумя путями:
1) Интенсивный путь -- углубляться дальше внутрь методов machine learning. Вот передо мной открыта хардкорная библия "The Elements of Statistical Learning Data Mining, Inference, and Prediction"
2) Экстенсивный -- начать по-максимому использовать все, что узнал на практике, какими бы куцыми эти знания не были, с изучением всей сопутствующей экосистемы
>>1651397 Может стоит изучать именно те инструменты и методы, которые тебе понадобятся? Если не планируешь, что это будет основной твоей деятельностью, то зачем сильно глубоко углублятся? Важно знать какие методы есть, где они работают, где они не работают, как их можно внедрить в твоей деятельности.
Я тут немного подохуел, когда на джуна дата инженера попросили в тестовом задании запилить сравнение различных моделей для предсказания качества вина в vine dataset. Это то ладно, говно вопрос. Но затем попросили обернуть в докер и прикрутить Rest API.
>>1646328 Если найдешь обертку без питона. А еще можешь взять с питоном, но отдельно её оформить в виде демона или чего там тебе хочется (посмотри bert as service)
Есть нормальные книги/курсы по CV? Из классики пытался в Szeliski, но это больше похоже не на учебник, а на поверхностный обзор вышедших в нулевых статей на тему, со ссылками вместо детальных объяснений. Еще круче, если бы это сопровождалось практическими заданиями.
>>1651769 > data analyst Больше с аналитикой и визуализацией данных работает. >data engineer Работает больше с обработкой данных, очисткой и их хранением. >machine learning engineer Работа с моделями, машобчиком, БОЛЬШЕ СЛОЁВ. > researcher Преимущественно исследования в области информатики и математики, новые подходы и модели. >data scientist, Хуй знает. Предположу, что общее название вышеперечисленных или человек-универсал, понемногу всё вышеприведённое умеющий.
Сап, нейронасы. Вопрос по питону. Нужно определять на потоке с камеры вот такие (пикрел) точки лица, без каких-либо дополнительных трекеров/рисунков фломастером на лице. Но при этом затрачивать минимально ресурсов компьютера. Пока остановился на dlib с готовой натренированной моделью. Готовые решения в опенцв как я помню по фпсам не устраивали Есть ещё какие варианты?
>>1651769 >data scientist Универсал, хорошо знающий как программирование так и математику. Работает на высокооплачиваемой работе в FAANG. >data analyst Червь-пидор без навыков, который хотел хоть как-то вкатиться в датасаенс. > data engineer Кодомакака, не умеющая ничего кроме программирования. Обслуживает датасаентистов. >machine learning engineer То же что и data scientis, но с упором на результат и конечный продукт. >researcher Трясун черных ящиков, работающий за миску риса. В случае удачной встряски ящика публикует пейпер.
Первую и вторую культуру определил Тимоти Гауэрс, отнеся себя ко второй, в статье Two cultures in mathematics (найдешь сам). Эта статья сама по себе является отсылкой к статье Ч.П. Сноу The Two Cultures (там речь шла о технарях и гуманитариях).
В статье Гауэрса четкого определения не приводится, я придумал следующее упрощение: conceptual theory building vs concerete problem solving. Но это не совсем точно. И. М. Гельфанд говорил что надо решать задачи, а не строить теории. Серр тоже предпочитал задачи теориям, см. его переписку с Гротендиком. Можно сказать, что в концептуальной математике принято улучшать доказательства, например доказательство Хопфа обобщенной формулы Эйлера-Пуанкаре не использовало гомологических методов и было очень громоздким, позже её передоказали. Еще один аспект улучшение языка. Кардано решал кубические уравнения геометрическими построениями, современный символьный язык алгебры получил распространение поздеее, у коссистов (см. History of Algebra Ван-дер-Вардена). Уравнения Максвелла на языке дифференциальных форм выглядят гораздо проще, тогда их всего два, а не 8 (см. Болибрух, Казарян). Язык производных функторов позволяет высказывать утверждения, которые пользуясь спектральными последовательностями, записать невозможно. Вместе с тем всегда можно перейти к явным вычислениям со спектралками. Ещё можно сказать о строгости. В комбинаторике, классическом анализе, можно получать крупные результаты пользуясь нестрогими методами, например Эйлер, Рамануджан, Пуанкаре, итальянская школа алгебраической геометрии. Бескоординатый язык концептуальнее даже в физической ситуации, потому что не надо доказывать независимость от координат. Интеграл Лебега лучше интеграла Римана, потому что пр-во интегрируемых решений полно и значит не нужно доказывать существование решений. Мы хотим иметь простые доказательства. Это достигается за счёт сложных определений.
Первая культура это core mathematics, вторая это периферия. В комбинаторике можно получать результаты, будучи убощиком в MIT, как Мэтт Деймон в фильме The Talented Mr. Ripley. Комбинаторика практически не используется в остальной математике и сама не использует ничего из других областей. Core math можно определить как все вещи, необходимые для утверждения и доказательства важных математических результатов, например Теоремы о модулярности (Великой Теоремы Ферма), Теоремы Атьи-Зингера, Гипотез Вейля, Теоремы об изоморфизме норменного вычета, Теоремы Квиллена-Суслина и т.д.
>>1652438 > Core math можно определить как все вещи, необходимые для утверждения и доказательства важных математических результатов, например Теоремы о модулярности (Великой Теоремы Ферма А ничего что теорема Ферма для общего случая не доказана? И три века попыток ее доказать привели только к выводу что ее вообще хуй докажешь в рамках одного театра Ходжа. А значит, без мочидзукиной теории там вообще нечего делать.
Сап. Есть у кого-нибудь материал по сверточным сетям? Может книга какая-нибудь? Везде, где искал, как-то поверхностно рассказывается, почти без математики. Хотелось бы подробно узнать про их обучение.
>>1653221 Эта книга у меня есть. Там есть момент, который вообще непонятен: как взять производную по весу в промежуточном слое, если этот вес есть во всех нейронах этого слоя?
Всегда подозревал, что ваш пистон есть сойбойская хуитка, но сегодня убедился в этом окончательно. К сожалению, нужную для одного дела вещь нашел только для пистона. Ну ок, бывает. Выходной датасет представляет собой таблицу, кроме числовых данных есть текстовые описания. Предположительно, все данные относятся к нескольким классам, но их количество неизвестно и не факт что это можно интерпретировать как кластеры. Короче, задача типичная для датамайнинга и unsupervised обучения, датасет небольшой, но пополняется в динамике, вновь прибывшие наблюдения нужно либо отнести к предыдущим классам, либо они могут образовать новый класс. Я как обычно думал использовать SOM, но оказалось что в sklearn его просто нет. И вообще походу нет кроме каких-то васянских поделок. Вы там в своих пистонах ебнутые, чи шо? Это ж классика! Это везде должно быть!
Проблема: не хватает оперативы под обработку данных. Хочу сократить количество данных для обработки. Вопрос: есть ли функции которые способны уменьшить объем выборки сохранив при этом точность? Или все нужно писать ручками самому? p.s. мб ссылочки какие-то есть?
>>1653859 >Не умеет обрабатывать новые точки. SOM тоже. То, что он тренируется мелкими порциями не значит, что он хорошо дотренировывается. Если у тебя изначально было одно распредление и ты долго на нем тренировал, а потом появился новый класс, и ты наедешься, что SOM магическим образом его распознает - не, нихуя, должно повезти.
>>1654219 Новые точки, не соответствующие имеющемуся распределению, все равно будут проецироваться на какой-то наиболее подходящий для них best matching unit на имеющейся карте.
>>1654357 >Какой же пиздатый чел Чтобы пройти собеседование @ Надо ходить на собеседование Ага, только ты со своим кагглом никому нахуй не сдался. Даже на джунов порой требуют кучу всего.
>>1654385 В этом вся и проблема - будучи уже каким-никаким самодостаточным человеком с определённым доходом идти стажёром за копейки - сомнительная перспектива. А если у тебя кредиты/семья на шее (и такие есть) - это пиздец. В общем, горизонтальные лифты в России работают так себе.
>>1654385 > 27+? условимся что вопрос от студента Зумера вкатывальщики никому не нужны. Если внешка 8+/10 - вкатывайся в вебкам и всякую гей проституцию. Если ниже 8/10 - в доставку яндекс.еда.
>>1654559 >27+ >Зумера /0 >вкатывальщики никому не нужны. У тебя какое-то кастовое общество получается. > в доставку яндекс.еда >вкатывайся в вебкам и всякую гей проституцию Ещё жирнее.
>>1654565 Я про студентов. 27+ не зумер, конечно. > У тебя какое-то кастовое общество получается. Бескастовых обществ никогда нигде не было и сейчас нет. Разница только в наличии социальных лифтов между кастами, где-то с этим попроще, где-то совсем пизда. > Ещё жирнее. Предполагается, что при наличии мозгов такой вопрос обычно не возникает.
>>1654570 >одно золото на каггле Есть тут именно работающие датасатанистами? Задачи каггла хоть как-то вашу работу напоминают? Инб4 задачи с наградой в десятки и сотни тысяч баксов.
>>1654571 >Бескастовых обществ никогда нигде не было и сейчас нет. Тем не менее, именно бескастовое (или стремление к нему) обеспечивает прогресс. Европейцы колонизировали Индию, а не наоборот. >при наличии мозгов такой вопрос обычно не возникает. Всё упирается в текущие возможности. Останься Ломоносов в своём захолустье, ему бы его ум не помог.
А кто платит за железо на фрилансе? Нужно закладывать в часовую ставку стоимость того же sagemaker (кто чем пользуется?)? Или отдельной статьей договариваться?
Натренировал для диплома модель, которая генерирует текст. И встала задача сделать сайт типа talktotransformer.com. Какой стек технологий можете порекомендовать? Плюс, модель моя большая и отжирает под 3 гига видеопамяти. Есть вариант запустить все это без финансовых расходов?
>>1654997 Мне кажется недостаточным то, что я просто собрал данные и скормил их готовой сетке из библиотеки, покрутив некоторые параметры и потратив неделю на тренировку. Конечно, работы было много и на тех этапах, но мне хотелось бы на защите продемонстрировать работу. А ни у кого из потока нет ноута с достаточно мощной видюхой.
>>1655002 Диплом - это научная работа. Результатом научной работы является не код, не работающий сайт, а отчёт, в котором описана задача, решение, ход работ, проведённые исследования, результаты и выводы. Хотя, может, ты специализируешься не на ML, а на разработке ПО почему этому в вузах обучают, а не в ПТУ, не понимаю, и сетка - это побочное?
>>1655003 > Результатом научной работы является не код, не работающий сайт, а отчёт, в котором описана задача, решение, ход работ, проведённые исследования, результаты и выводы С такой точки зрения, у меня все получается хорошо. Меня просто беспокоит, что мне скажут, что я взял готовенькое и скормил свои данные. Из тех кто как я пишет нейросеть, один предсказывает исход спортивных событий, а другой с AlphaZero что-то мутит
>>1655010 Если у тебя цель диплома найти новую архитектуру сетки то, да скажут. Если ты использовал готовую архитектуру чутка изменил ее и обучил для своей задачи, то все нормально.
>>1655010 По идее,задача диплома - не в этом. Диплом - это выпускная квалификационная работы, т.е. нужно продемонстрировать свою квалификацию - умение провести исследование. Реальные научные задачи решать не нужно, это после получения ВО. Тут есть своя жопа с "диплом бакалавра - это ВКР, а у магистра диссертация, к которой уже предъявляют требования по публикациям".
>>1655057 Спасибо, подбодрил. Тогда попрошу анонов помочь затестить мою сетку. Она пишет новости. От вас заголовок новости, а я вкину сгенерированную новость. Типа Путин подписал указ об увеличении МРОТ до 100 тысяч рублей И моя сетка раскроет эту тему в формате полноценной новости. Можете и любую дичь придумать, но лучше всего отработает на адекватных заголовках
>>1655072 Вот тебе 3 варианта с одинаковыми параметрами: власти румынии отказались делиться с другими странами , чтобы они уважали мир и стабильность , говорится в заявлении министерства финансов страны . " граждане румынии , проживающие в румынии , не могут знать , где они живут , и они не могут понять , кто живет , и что они живут . они не могут понять , что они живут , и они не могут знать , какие они живут " , — говорится в сообщении
премьерминистр румынии виорика данчилэ в четверг во время выступления на конференции по безопасности в румынии отказалась делиться с <unk> <unk> и обещаниями , чтобы они уважали мир и свободу страны . данчилэ выступила с речью , посвященной <unk> и <unk> , которая пройдет в пятницу в варшаве . она призвала не допустить , чтобы страна имела право знать , не допустить , чтобы эти страны не имели права знать , что они должны делать , чтобы те не <unk> , а не <unk> , и не только в других странах , но и в мире . данчилэ также заявила , что не видит , что страна не может быть вынуждена защищать свои национальные интересы , в том числе в европе . она также отметила , что страна " никогда не откажется от своих прав , а не в мире " .
румынский премьерминистр виорика данчилэ отказалась делиться с другими игроками в европе , пишет <unk> . в своем обращении в <unk> <unk> <unk> <unk> , который не знает , что происходит , пишет <unk> , как это было в последнее время .
И Виорика Данчилэ действительно была премьером Румынии, как я прогуглил
>>1655091 > " граждане румынии , проживающие в румынии , не могут знать , где они живут , и они не могут понять , кто живет , и что они живут . они не могут понять , что они живут , и они не могут знать , какие они живут " , — говорится в сообщении Глубокомысленно...
>>1655094 На Румынию было мало новостей. Вот я попробовал это: владимир жириновский избил геннадия зюганова
лидер лдпр владимир жириновский после встречи с президентом рф владимиром путиным ударил главу кпрф геннадия зюганова . об этом политик рассказал в интервью риа новости . по его словам , зюганов получил сотрясение мозга и перелом .
лидер лдпр владимир жириновский избил лидера кпрф геннадия зюганова , который был госпитализирован в реанимацию , сообщила риа новости депутат государственной думы , лидер партии " родина " . ранее зюганов заявлял , что жириновский госпитализирован в реанимацию с инфарктом . " в больницу поступил мэр москвы сергей александрович зюганов . он был госпитализирован . он был госпитализирован . его состояние стабильное , поэтому , к сожалению , ему не требуется " , — сказала риа новости председатель партии юлия тимошенко . по ее словам , зюганов не исключает , что он будет госпитализирован в реанимацию .
председатель лдпр владимир жириновский избил <unk> главу кпрф геннадия зюганова , который ранее выступал с инициативой о запрете на въезд в страну , сообщил риа новости в среду лидер кпрф геннадий зюганов . зюганов ранее заявил , что принял решение исключить из списка кпрф кандидатуру зюганова , который ранее был лидером кпрф . в свою очередь , зюганов заявил , что решение о запрете на въезд в страну было принято в конце декабря . " зюганов обратился за разъяснениями , и он был избит , и с его заявлением о запрете на въезд в страну он был отстранен от работы . это безобразие " , — сказал зюганов . он добавил , что " не может не сказать , что он в этот момент , не зная того , что он не работал , может быть , это это было " .
ок, уговорили. Тренировать голых баб на черных квадратах- гиблое дело. Буду пилить детектор сисек-писек, пусть потом вырезает квадраты из двух изображений, они у меня спаренные. Потои уже буду думать как детектить одежду- вручную или еще одну сетку напишу. NudeNet (уже готовые детектор сисиек-писек) выдает ошибку, типа не поддерживается метод в виндоус, лол, которая требует даунгрейдить keras. Попробую последний раз сделать этот детектор в виртуалке сейчас.
>>1655361 Расскажи(те) нюфагу, как строится сеть из твоей статьи? У самых простых сетей просто один слой за другим идут, а тут несколько таких конструкций параллельно запускаются?
>>1655689 На картинке вижу обычный self-attention, только с выёбистым способом вычисления k, q, v. Похоже, что они ещё решили брать внимание не по всему предложению, а только по некоторому ограниченному окну. Единственное, что мне непонятно - что такое downsampling.
Прохожу тему линейной регрессии. И я не понимаю что я должен увидеть на этом графике, что говорит о том что тестовая и тренированная часть совпадают. Типо чем больше совпадение, тем ближе к прямой линии должен быть результат?
>>1656037 Я бы так не сказал, что полно, все хотят от года работы лол, эта вакансия незакрытой уже два года висит как минимум, я к ним ходил, меня не взяли
Привет, анон, есть вопрос Я прогер, но в нейроночках не силен Хочу узнать насколько адекватна задача, степень ее сложности и куда смотреть, если все норм Нужно оценить степень похожести двух предложений То есть «я хочу послушать музыку» и «сейчас буду слушать музыку» или «я подвергся насилию» и «меня избили»
Я правильно понимаю, рекуррентная нейросеть это просто свёрточная нейросеть, к которой последовательно добавляют новые нейроны (возможно, с удалением старых) с сохранением весов?
>>1656335 Одни и те же нейроны пропускают через себя последовательность, запоминая что-то через скрытое состояние, у лстм/гру еще и с помощью ячейки долговременной памяти.
>>1635685 (OP) Анон, выручай. Как будет выглядеть градиент в векторном виде для логистической регрессии с классами -1 и 1? Я вывел выражение, но у меня ничего не обучается. Для классов 0 и 1 вывод в интрнете я нашёл, а для такого случая ничего найти не могу.
>>1635685 (OP) Господа, такой вопрос: тренирую сеть классифицировать алфавит языка жестов.
Хочу натренировать на русский алфавит. Существует много датасетов под американский алфавит. Хочу их тоже использовать, для улучшения точности на русском алфавите. Как это лучше сделать?
Допустими, я возьму какую-нибудь архитектуру, удалю последний слой, заморожу n слоев, а что дальше делать?
Анон, есть задача по nlp - классификация текстов. Какие подходы могут быть использованы для решения это задачи? У меня пока такие: bag of words, word2vec, fasttext, lstm. Что ещё можно использовать?
Кто-нибудь использовал на практике catboost? Не было ли у вас проблемы, что эта штука обучается только на первых 10 000 строк? Там в коде эти 10000 строк даже видны. Я обращался к пацанам из Яндекса, мне сказали, что это лимит на чанк. То есть сжирается весь файл, но по 10k строк. Но в коде видно, что там прям лимит, первые 10k и конец файла
>>1656695 Если шо, то tfrecord файл я создаю с помощью этого кода https://pastebin.com/rUiY2wMd Может кто-нибудь посмотреть и сказать, почему оно не работает?
Я вообще думал сделать без слоя классификации. Просто из архитектуры удалить последний слой и ничего своего не добавлять. Обучить так, а потом прикрутить классификацию с русскими буквами и уже крутить на русском датасете.
Есть такая задача: обучить ML играть в мою же игру, которую я же и написал. Это нужно не для ML, а для расчётов баланса внутри игры. Например: есть три расы A1, A2 и A3. Если ML с расой A1 выигрывает у ML на A2 & A3, то A1 сильнее других рас, её надо понёрфить. Так вот, единственные два вопроса: как добиться того, чтобы ML (наверное это будет desicion forest) играл в долгую, а не пытался увеличить баллы целевую функцию в близкую. Вот пример. Два игрока бьют друг друга. У обоих 100 HP. У них два хода: ударить сейчас (-10 HP) и копить силу 5 шагов, чтобы ударить (-0 HP сейчас и следующие 5 шагов, а потом ударить на -100 HP и ваншотнуть). То есть если агент будет применять скилл №2, то первые 5 раз у него ничего не будет кроме какого-нибудь нарастающего баффа. И только в шестой раз нарастающий балл спадёт и произойдёт удар. Допустим, я не хочу читерить с обучением, вводить бикамералку и говорить обучающей сети, что бафф на нарастающий удар это само по себе очень хорошо. Допустим, я хочу, чтобы агент выяснил это сам.
Возможно кто-то предложит мне смотреть в сторону starcraft ai, где решали как раз задачу обучения агентов (но там не для баланса, баланс рас выяснился как следствие)
>>1657368 Обычно для того чтобы спровоцировать агента на "исследование" распределение на множестве стратегий делается зависимым от частоты выбора каждой стратегии в прошлом, таким образом что редковыбираемая стратегия получает некоторый бонус, но вообще с отложенными выигрышами нужно настраивать как именно этот бонус даётся и в целом то чем ты занимаешься называется reinforcement learning, а там нет решений из коробки, надо дрочиться. Почитай книгу Сарто по реинфорсмент лёрнингу, там разобраны основные рецепты.
>>1657069 Каждой свой класс. Лучше всего обучается, когда размер датасета для каждого класса примерно одинаковый либо соответствует распределению в реальном мире. Ты же создашь большой перекос в распределении и получишь говно. >>1657073 А обучать ты как будешь, лол
>>1657368 Сначала твои игроки научатся рашить, потом кто-то либо случайно поймет, что долгая стратегия выгоднее, либо у тебя неправильный баланс и раш всегда лучше
Можно ли нейросеть обучить выводить вектор нормали плоскости лица человека? Допустим, я в DAZ наделаю моделек, из них датасет с векторами, а потом пущу обучаться свёрточную нейросеть. Не слишком ли сложная вычислительная задача, чтобы это было очень аккуратно?
>>1657863 А зачем? С этой задачей алгоритмы комп. зрения справляются достаточно точно. Для них, правда, нужны координаты глаз и носа на изображении. Вот эти точки ты можешь нейронкой искать.
>>1657388 > reinforcement learning Оказывается, AlphaStar именно так и обучался. https://habr.com/ru/post/437486/ > Поведение AlphaStar генерируется нейронной сетью глубокого обучения, которая получает через интерфейс сырые данные (список юнитов и их свойств) и дает на выходе последовательность инструкций, которые являются действиями в игре. Если говорить точнее, архитектура нейронной сети применяет подход «transformer torso to the units, combined with a deep LSTM core, an auto-regressive policy head with a pointer network, and a centralised value baseline»
>>1658377 >Оказывается, AlphaStar именно так и обучался. Ты ведь даже не понимаешь, о чём говоришь, да? Reinforcement learning - класс задач, AlphaStar - один из предложенных способов решения конкретной задачи из этого класса.
>>1658646 > AlphaStar - один из предложенных способов решения конкретной задачи из этого класса Альфастар это бот для игры в старкрафт 2 от компании deepmind.
Я вот тут выбираю подходящий эмбеддинх, чтобы мог во фразы. Нашел некий sent2vec, типа "надстройки" над CBOW из fasttext, читаю по диагонали пейпер про него, и что же там пишут - типа в настоящее время разработки в области NLP идут в двух направлениях, deep и shallow модели. Диблернинх это всякие сойбойские архитектуры с аттеншенами и "стак море лейерс", которые на гугловских кластерах еле дышат, а shallow это например всякие скипграмы и CBOW Миколова и их дальнейшее развитие. Так вот, конкретно для эмбеддинга фраз все эти ваши лстм рнн итп не превосходят простые shallow модели, а то и проебывают им, есть ссылки на исследования. Как так-то? Может быть, дело в том, что язык вообще очень простая хуйня, и простейшего трясения матрицами достаточно для его моделирования, потому все эти тысячи слоев не добавляют ничего к точности? А в целом низкая точность NLP из-за непонимания сути языка и т.о неадекватных датасетов?
>>1658113 Я хотел эти точки потом преобразовывать в соответствии с вектором, чтобы получить данные о лице, а не сам вектор получить. Какая же тогда точность будет? Я так не смогу сделать распознавалку лиц.
Может есть ещё какие-то способы для сравнения лиц?
>>1658941 Распознавание лиц это технология электронного ГУЛАГа, с такими вопросами сразу нахуй. Это даже хуже, чем в треде по химии спрашивать как бомбу сделать или дурь сварить.
Аноны, есть такая задача на сравнение картинок. Я рисую круг как на пике несколько раз (в другом варианте это расположение различных простых элементов и линий на картинке). Отдаю картинки машине. Потом я и другие аноны рисуем такие круги и машина должна сказать, нарисовал новый круг я или не я. К какому классу относится такая задача, какой общий алгоритм действий, какой софт лучше использовать для ее решения и сколько примерно кругов мне надо нарисовать изначально (либо от чего зависит нужное количество кругов)? Сам в МЛ лезть не хочу, поэтому надо понять, как составить тз.
>>1659175 Кстати да, получается почерк так тоже можно распознавать. Но у меня другая задача. Если без подробностей, то это стиль работы с интерфейсами и нет, не для слежки. Видимо, все это очень граничит друг с другом и по сути стороны одной медали. Повторюсь, задача не в отнесения новых данных к одной из множества групп (людей в твоем примере), а в отнесении новых данных к одной заранее известной группе. Задачи похожи, но немного другие акценты в моем случае, на мой взгляд.
>>1658931 >Как так-то? Ну так, что и то и то скорее всего просто работает хуёво. Оно и понятно, cам прикинь чего больше: уникальный фраз или уникальных слов, очевидные проблемы с резепрентативностью. Есть и более практическое объяснение: всем на этот sent2vec плевать, а авторы не в гугле всё-таки работают, настроили трансформеры как умели, ничего и не получилось.
>>1659152 Я бы вначале проверил сможешь ли ты индентичный кружок нарисовать спустя неделю. Потому что мне кажется, что нет. А так надо научиться извлечкать признаки из картинки окружности, например, координаты центра, радиус, насколько это окружность, с какой точки и в какую сторону рисовалось. А там уже любую модель пытаться обучить
>>1658935 Смотря сколько их и насколько они разные. То есть если их немного, то есть же дохуя методов поиска выбросов, не? Алсо помню видос от одс по соревнованию, где тоже с медицинским снимками работали. Там духота была
>>1659427 Спасибо за ответ. То есть, нужно получить максимум данных (скажем так, цифр) из картинки самому, а потом с этими данными уже работает нейросеть? Мне казалось, что поиск похожих изображений (например, светофоров) происходит как-то иначе.
Еще немного подробностей о задаче: изначально у меня как раз есть эти точки, их типы (например, цвета) и координаты. Я хотел их наносить на изображение (на белый фон) и отдавать машине.
> Еще немного подробностей о задаче: изначально у меня как раз есть эти точки, их типы (например, цвета) и координаты. Я хотел их наносить на изображение (на белый фон) и отдавать машине.
Ну если наоборот у тебя точки есть, то необязательно тебе их рисовать и отдавать нейронке, можно сразу на их основе какие-то признаки сгенерить и запилить модель или какую-нибудь метрику придумать для сравнения. Надо просто пробовать разные способы, смотреть что лучше получается
>>1659445 Ты сам умеешь все это делать? Если да, оставь какой-нибудь контакт (почта, тг, дискорд), я бы взял у тебя платную консультацию, когда подойду к этой задаче.
>>1659453 Не, у меня нет такой квалификации, чтобы консультации давать. Просто пишу как бы я делал. Ты в принципе можешь прямо сейчас посмотреть и позапускать нотебуки на кэгле по digit recognition https://www.kaggle.com/c/digit-recognizer/notebooks разница с твоей задачей будет, что у тебя вместо 10 два выхода - вероятность, что твой круг и что не твой
>>1657836 Таки может кто-нибудь посмотрит? Я все вроде сделал правильно, взял готовую рабочую модель трансформера, прицепил CNN Может тут и есть ошибка? Плохо знаком с керасом и поэтому что-то не так сделал? и удалил эмбеддинг из энкодера.
Начал обучать свой детектор объектов на основе моделей тензорфлоу. За час на небольшом пиздец мелком датасете обучил, вроде нормально работает. Но с видео проблема. Когда объект движется оно вместо одного объекта обнаруживает вместо него 2-3 с почти тем же боксами. Как фиксить?
Сап. Не могу понять, что конкретно получается на выходе у skip-gram модели? Везде, где искал, как-то по-разному пишут. Расскажите, кто знает, пожалуйста. С меня как всегда.
Анон, обучаю сетку, а мне на разных эпохах выдаёт: invalid literal for int() with base 10: 'target' Что за херня? Из-за чего? Target вроде везде числовой.
>>1661487 ты вообще ничего не сказал. Ни что за язык ни что за пакет. Керас у тебя там или чистый тензорфлоу. Так мы ничего не скажем. Но я думаю, что у тебя в твои данные для обучения попала заголовочная строка таблицы, где есть строка target
Здравствуйте еще раз. Есть вопросы. Сделал выборку для обучения pix2pixHD. Решил делать только одну анатомическую часть- просто грудь средних размеров. Не совсем аккуратно обученный YOLO детектор, который я запускал только для теста вначале выдал 11000 результатов по среднему размеру груди (не плоски и не огромные- их я отмечал отдельно вроде как) из выборки в 33000, но если я его подтяну, он найдет чуть больше. Из этой выборки я взял 6000, которые не были совсем пустыми по разнице и не самые "зеленые", где генератору нужно было бы угадывать все изображение. Пока что результат такой, это буквально первые 50к итераций этой ночью. Lr дефолтный 0.0002, почитал статей, испугался кривыущих трехмерных графиков и включил дропаут (ранее не включал). Батч 1, разрешение 256. Вот параметры дефолтные p2pHD n_blocks_global: 9 n_blocks_local: 3 n_clusters: 10 n_downsample_E: 4 - это генератор n_downsample_global: 4 - это тоже генератор? n_layers_D: 3 - дискриминатор, ок n_local_enhancers: 1 - что это? ngf ndf 64. Что можно и нужно изменить в процессе обучения и в параметрах сетки? Что я пытался делать ранее на менее аккуратных выборках- можно увеличить количество слоев n_downsample_global до 5, если сделать ngf и ndf 32- больше памяти не хватает, но особых изменений в лучшую сторону я не видел, скорее наоборот- сгенерированная картинка становилась более размытой. Можно также увеличить n_layers_D: 3 до 5 например- возможно что дискриминатор дошел до предела своих возможностей и это поможет таки прорисовать соски на груди? Можно при тех же дефолтных параметрах сделать ngf ndf 90, но я не знаю как это влияет на итог. Можно уменьшить Lr до 0.00015 или 0.0001 (собственно сейчас я это сделал и жду)- ранее когда сетка начинала обучаться медленнее результаты прорисовки деталей улучшались. Пока что обучение не схлопнулость до нулей, как оно любит делать. (epoch: 6, iters: 4410, time: 0.691) G_GAN: 2.072 G_GAN_Feat: 11.270 G_VGG: 6.509 D_real: 0.012 D_fake: 0.011 (epoch: 6, iters: 4510, time: 0.692) G_GAN: 2.045 G_GAN_Feat: 6.935 G_VGG: 4.047 D_real: 0.023 D_fake: 0.018 (epoch: 6, iters: 4610, time: 0.692) G_GAN: 2.309 G_GAN_Feat: 9.387 G_VGG: 4.705 D_real: 0.056 D_fake: 0.017 (epoch: 6, iters: 4710, time: 0.691) G_GAN: 1.914 G_GAN_Feat: 9.022 G_VGG: 4.087 D_real: 0.005 D_fake: 0.012 (epoch: 6, iters: 4810, time: 0.693) G_GAN: 1.770 G_GAN_Feat: 10.887 G_VGG: 5.132 D_real: 0.008 D_fake: 0.020 (epoch: 6, iters: 4910, time: 0.692) G_GAN: 2.166 G_GAN_Feat: 9.647 G_VGG: 4.933 D_real: 0.007 D_fake: 0.008 (epoch: 6, iters: 5010, time: 0.691) G_GAN: 1.870 G_GAN_Feat: 8.349 G_VGG: 3.217 D_real: 0.013 D_fake: 0.018 (epoch: 6, iters: 5110, time: 0.694) G_GAN: 2.335 G_GAN_Feat: 7.818 G_VGG: 4.237 D_real: 0.010 D_fake: 0.019 (epoch: 6, iters: 5210, time: 0.689) G_GAN: 1.669 G_GAN_Feat: 7.253 G_VGG: 3.981 D_real: 0.005 D_fake: 0.040 Графики, если их сгладить, -плавные нисходящие, вроде все хорошо и продолжает обучаться. И, может стоит, как советовал мне ранее анон, перейти с p2pHD на сетку, например, с Unet128 или 64 генераторами, или resnet9block? пробовал ранее resnet9 и на совсем маленьких примерах, где девушка стояла в полный рост на разрешении 256 на 256 детализация была очень хорошей. Я вроде как понимаю, что это зависит от поля зрения модели, но мне хочется делать все это на разрешении приемлимо- хотя бы 256 на 256 на грудь, а не на полный рост. И их архитектура вроде как заточена на "медицинскую" разметку по цветам, а не на "сложную генерацию", но я могу ошибаться. И мне кажется, что p2pHD должен хорошо справиться и сам, ведь в примерах работы он отрисовывал у автомобилей и мелкие детали типа фар и стекол, а не рисовал весь автомобиль как кусок однородного железа, как в моих примерах. Да, там на входе были размечены границы авто и еще много разных объектов для отрисовки, именно поэтому я надеюсь, что сетка должна справиться с моей маленькой задачей. Можно и у меня их разметить объект без излишней детализации, правда я еще так не делал и я не совсем уверен, что разбиение на карту instances с одним единственным объектом, который совпадает с зеленой маской, по которой сейчас идет обучение, чем-то поможет. Ну и время обучения там с их ресурсами было большое, побольше чем у меня- далеко не день. И аугментацию я уже прилепил к p2pHD, очень не хочется опять ее запиливать на другом коде. В голову лезет всякий бред типа - выходную картинку с размытыми контурами еще раз загнать как A и прогнать AtoB в этой же сети. Я также пытался изменять архитектуру сети, чтобы увеличить поле зрения сетки- ну собственно увеличивал количество слоев, но там упирался в потолок объема памяти, а изменения кода вручную выдавали совсем нерабочие результаты. Собственно главные вопросы- куда копать, что делать разумнее всего сейчас? Менять параметры, и если да, то какие? Или просто ждать обучения? Или прыгнуть на другие архитектуры или с девятиэтажкиили запиливать свою сетку с рандомом и аугментацией? А, и еще вопросик- почему гамма так плохо передается?- Это похоже на "болезнь" p2p алгоритма- на всех картинках всех имплементаций все детали тоже меняют цвет слегка. Не особо важно, но может что-то можно сделать.
Ну и о хорошем- я для своей выборки научился массово а автоматическом режиме выравнивать изображения с помощью фотошопа и двух скриптов на питоне, даже те что первоначально не совпадали на несколько пикселей или больше и были выбракованы. О двач, дай советов мудрых, спасибо.
>>1661549 Я не понимаю что ты залил зелёным. Там реально купальники были? Что ты требуешь от сети? Где обучающая выборка было->стало? Я так понимаю, нужно брать все известные пары с данбуру, где есть альтернативные варианты одного и того же изображения: с купальником и без. А на чем у тебя обучается?
>>1661553 да, всё так, пары с данбуры и еще много откуда. Я сделал между картинками разницу и залепил ее сверху как маску, чтобы сетке не нужно было сначала учиться отделять купальники от всего остального, чтобы ей было проще лол - зеленый- значит генерируем, остальное- не трогаем. Это у меня такое примитивное понимание процесса, я могу быть неправ. Оригиналы есть тоже, и результат близок к тому, что на картинках, если использовать их как A, но время обучения дольше.
>>1661496 Спасибо. Пистон 3.7, торч 1.4 Использую модель с того гайда с применением торчтекста: https://mlexplained.com/2018/02/08/a-comprehensive-tutorial-to-torchtext/ Данные - набор текстов и столбец с метками (для обучения/валидации). Стоит задача классификации, решается через lstm. Обучение запускается и на разных этапах выдаёт ошибку: invalid literal for int() with base 10: 'target' Один раз модель почти обучилась, на на 97% опять ошибка. Алсо, данные чистятся, потом записываются в csv, потом обпыть читаются неэффективно, но альтернативу уже нашёл
>>1662236 Смысл такой: твой код пытается распарсить строку в число. При этом этой строй является строка "target". Думай откуда у тебя в данных иногда берётся строка "target". Похоже на то, что ты так назвал колонку, и код после пересохранения пытается скушать файл, в котором первым значением идёт название колонки "target".
У тебя есть возможность переименовать название колонки? "Tar123" "Tartar" или как-то так. И посмотреть что получится
Есть ли положительный эффект от обучения сначала на большом батче с пакетной нормализацией, а затем, к концу обучения- переходить на батчи меньших размеров (с одновременным уменьшением Learning rate), чтобы находить минимумы функций для конкретных случаев?
>>1664083 Так, спасибо. У меня обучается батчами, соответсвенно каждый батч на выход даёт тензор. Я правильно понимаю, что для начала ти тенщоры надо обхёжинить в один, а потом как-то перейти к классам, коих 2?
Почему сигмоида используется после использования модели? И почему если её использовать в модели последним слоем то получается какая-то хрень в -10 степени?
>>1664132 Экспонента численно крайне хуевая функция, ковид подтвердит. Чуть что и сразу взрывается, вызывая погрешности в числах с плавающей точкой. Поэтому там где возможно лучше ее не использовать. Вот они и не используют, а добавляют уже после тренировки. Естественно при этом нужно пофиксить датасет, поменяв лейблы с вероятностных 0 и 1 на что там нужно.
>>1664145 Спасибо. >Вот они и не используют, а добавляют уже после тренировки. А какие-то есть альтернативы? >поменяв лейблы с вероятностных 0 и 1 на что там нужно. Там как раз и было 1 и 0. Я так понимаю, полученный тензор/numpy массив просто условием прогнать "0 if <0.5 else 1 "? Или есть готовые решения?
>>1664132 > Почему сигмоида используется после использования модели? Потому что по ссылке мультилейбл. То есть у тебя одновременно может быть несколько лейблов. Если надо было бы выбрать только один, то нужен был бы софтмакс. А сигмоида переводит в (0, 1) как вероятность и дальше ты можешь по какого-нибудь порогу отсечь. Хотя тут видимо такой формат у сабмита кэггла
> И почему если её использовать в модели последним слоем то получается какая-то хрень в -10 степени? Это 0
>>1664709 не тот кто задал вопрос мелко плаваешь, в дипломную это надо. котаны, а если у тебя две видеокарты, то для того чтобы они работали вместе для обучения (не для игорь- там вроде нужно), их нужно еще как-то соединять между собой или можно просто воткнуть в pci?
>>1664831 Тензорфлоу обнаружит обе, но по умолчанию работает только на одном устройстве. Придётся либо вручную распределять модель по картам, либо использовать что-то вроде https://github.com/horovod/horovod
>>1635685 (OP) Как думаете может ли обычны человек, с бэкграундом в IT опыт работы на питоне за год вкатиться в машинное обучение и найти работу? А сколько вы вкатывались?
Пацаны, хотите верьте, хотите нет - с вами ОП первого треда 2016 года. Охуеть, 4 года прошло.
Зашел вспомнить молодость в /pr, наткнулся на тред и где-то в душе екнуло - начал узнавать ссылки. Пошел в архивач, доскролил до четвертого треда и узрел свои же слова. Шапка, конечно, пиздец деградировала, я ведь старался смищнее и грамотнее ее сделать, где-то целый день ее составлял. Хотя ссылки новые добавились.
Но хуле мне критиковать, я по-моему только 1 или 2 раза тред перекатил. Извините, какое-то нездоровое брюзжание.
Как вы тут, ESL все прочитали? Я из Яндекса укатил в Долину, весной вернулся к родителям в отпуск и попал под отмену рейсов, теперь, как и 10 лет назад капчую из отчего дома. Задавайте свои ответы. Сейчас самими машинками меньше занимаюсь и больше инфраструктурой под DL и все остальное в моей компании.
>>1665237 Нет, в смысле рулю программной платформой для аналитиков и датасаентистов в нашем ДЦ. >бегаешь сгоревшие диски и видекарты заменять в подвале Лел, их вендор вообще обслуживает afaik.
Существует ли классификатор изображений, который можно натренировать по имеющимся выборкам, которые просто имеют метку (имя файла или папка, где лежат), без ручной маркировки объектов? Может есть готовое решение? Чет на гитхабе не особо есть. >>1665237, да ладно, может он датасеты чистит вилкой. я бы хоть куда в айти вкотился, только вот кому я нужен с дипломом экономиста без опыта, кроме кручения сисек.
>>1665143 Много знакомых без опыта работы и знаний математики вкатились. Пощупали пару туториалов и устроились джунами. Зависит от того, на какую зп рассчитываешь. Если до 80к, то легко.
>>1665149 В Яндекс может быть действительно такие критерии. Хотя туда скорее надо диплом шада, чем пятерки по математике.
Ну што, вы готовы, дети? Аутомл на одном проце, без видеокарт, за 12 часов с нуля вкатился в машобчик, и пользуясь полученными знаниями, улучшил себя. А вы за сколько вкатитесь? То-то. > AutoML-Zero has already discovered neural networks, back-propagation, data-augmentation etc. from scratch within 12 hrs on a single CPU. It can adapt to lack of training data, required training speed and tasks. https://bigthink.com/surprising-science/automl?rebelltitem=2#rebelltitem2 Ссылочка на РТ архив: https://arxiv.org/abs/2003.03384
>>1665287 Неа, в Google не пошел (да меня туда и не звали). Сначала в Dropbox, а сейчас в Verily (не мытьем, так катанием, лол). Котики над платформой по обработке генетических и медицинских данных колдуют, я им помогаю не отвлекаться на всякую ерунду типа как организовать поставку данных, как работать на проде и не положить весь ДЦ в полку, как лучше что-то посчитать, etc. Короче всякие штуки, специфичные именно для нашей области, все остальное досталось от Гугла, от организационных до разработческих практик и общей инфраструктуры. На самом деле по теме треда мне особо-то и нечего рассказать, со времен первого треда я больше в дизайн систем и в коммуникацию ушел. Просто прикольно, что анон до сих пор поддерживает эту цепочку.
>>1665232 >Шапка, конечно, пиздец деградировала, я ведь старался смищнее и грамотнее ее сделать Шапка с советами ESL и прочей поеботой была говном, если бы ты это понимал, занимался бы ресерчем, а не этой тухлятиной, которую ты делаешь
>>1655071 надеюсь не опоздал Гвидо Ван Россум заявил о намерениях возродить снова Украинскую империю. алсо, не ссы, этого более чем достаточно. я в своей шараге дс2 писал сайт на джанге на диплом бакалавриата, бывший дноклассник нейронку тоже писал на диплом, но уже в дс1 вузике. и все прокатывало у него. так что не ссы
>>1665143 А зачем обычному человеку с бэкграундом в IT вкатываться в нейронки? Деньги - есть пути попроще, уважение в обществе - не будет, нравятся циферки-процентики-формулки - можно пойти в датааналитеки, хочешь обучать AI- датасаенс
>>1664709 > домашку Да за это нобелевку за создание сильного искусственного интеллекта надо давать. Полный анализ русского предложение это ИИ-полная задача.
Я ничего не понимаю, что делать?
Вкатывальщики импортят slesarplow as sp по туториалам (хотя сейчас актуальнее keras и pytorch)
Толковые качают из репозитория awesome-XXXX на гитхабе проект какого-то китайца, меняют фамилию и получают $10M инвестиций как стартап.
Умные смотрят prerequisites на https://see.stanford.edu/Course/CS229 и http://cs231n.stanford.edu/
Какая математика используется?
В основном линейная алгебра, теорвер, матстат, базовый матан и matrix calculus.
Почему python?
Исторически сложилось
Что почитать для вкатывания?
http://www.deeplearningbook.org/
Николенко "Глубокое обучение" - на русском, есть примеры, но меньше охват материала
В чем практиковаться нубу?
http://www.deeplearning.net/tutorial/
https://www.hackerrank.com/domains/ai
https://github.com/pytorch/examples
https://github.com/ChristosChristofidis/awesome-deep-learning#tutorials
Где набрать первый самостоятельный опыт?
https://www.kaggle.com/ | http://mltrainings.ru/
Стоит отметить, что спортивный deep learning отличается от работы примерно так же, как олимпиадное программирование от настоящего. За полпроцента точности в бизнесе борятся редко, а в случае проблем нанимают больше макак для разметки датасетов. На кагле ты будешь вилкой чистить свой датасет, чтобы на 0,1% обогнать конкурента.
Где работать?
https://www.indeed.com/q-deep-learning-jobs.html
Вкатывальщики могут устроиться программистами и дальше попроситься в ML-отдел
Где узнать последние новости?
https://www.reddit.com/r/MachineLearning/
http://www.datatau.com/
https://twitter.com/ylecun
На реддите также есть хороший FAQ для вкатывающихся
Где посмотреть последние статьи?
http://www.arxiv-sanity.com/
https://paperswithcode.com/
Количество статей зашкваливающее, поэтому все читают только свою узкую тему и хайповые статьи, упоминаемые в блогах, твиттере, ютубе и телеграме, топы NIPS и прочий хайп. Есть блоги, где кратко пересказывают статьи, даже на русском
Где ещё можно поговорить про анализ данных?
http://ods.ai/
Нужно ли покупать видеокарту/дорогой пека?
Если хочешь просто пощупать нейроночки или сделать курсовую, то можно обойтись облаком. На март 2020 Google Colab дает бесплатно аналог GPU среднего ценового уровня (что-то между 1050 и 1080) на несколько часов с возможностью продления.
Иначе выгоднее вложиться в GPU https://timdettmers.com/2019/04/03/which-gpu-for-deep-learning/ Заодно в майнкрафт на топовых настройках погоняешь
Когда уже изобретут AI и он нас всех поработит?
На текущем железе - никогда, тред не об этом
Список дедовских книг для серьёзных людей:
Trevor Hastie et al. "The Elements of Statistical Learning"
Vladimir N. Vapnik "The Nature of Statistical Learning Theory"
Christopher M. Bishop "Pattern Recognition and Machine Learning"
Взять можно тут: http://libgen.io/
Напоминание ньюфагам: немодифицированные персептроны и прочий мусор середины прошлого века действительно не работают на серьёзных задачах.
Предыдущий:
https://2ch.hk/pr/res/1614936.html
Архивач:
http://arhivach.ng/thread/412868/
Остальные в предыдущих тредах
Там же можно найти треды 2016-2018 гг. по поиску "machine learning" и "НЕЙРОНОЧКИ & МАШОБЧИК"