Интересное что-то – Telegram
Интересное что-то
517 subscribers
2.72K photos
253 videos
139 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://news.1rj.ru/str/asisakov_channel
Чат: https://news.1rj.ru/str/youknowds_chat
Download Telegram
Forwarded from Борис опять
Разбирался в апскейле изображений, bilinear и bicubic интерполяции, aliasing.

Процесс апскейла изображений на пальцах такой:
1. Создаем новое изображение большего размера, добавляя "пустые” пиксели между пикселями изначальной сетки.
2. Применяем интерполяцию, чтобы определить значения “пустых" пикселей на основе значений соседних пикселей изначального изображения.
* Простейший вариант: nearest neighbor. Берем значение ближайшего пикселя.
* Поумнее: bilinear. Значение "пустого" пикселя расчитывается как взвешенная сумма ближайших четырех исходных пикселей. Веса зависят от расстояния: чем ближе пиксель, тем больше он влияет.
* Еще умнее: bicubic. Принцип как у billinear, но используюстя пиксели в окне 16х16 и уравнение посложнее. Соответственно результат более гладкий.
3. Применям алгоритм anti-aliasing, чтобы убрать артефакты апскейла. Например, "лесенки" на диагональных линиях, которые можно наблюдать, если повращать какой-нибудь контур в пейнте.

Unfun fact: по умолчанию torch.nn.functional.interpolate использует nearest-neighbor интерполяцию. Самую быструю и самую плохую по качеству.
Unfun fact 2: из Python библиотек для обработки изображений только Pillow делает интерполяцию нормально. По умолчанию использует bicubic.

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

Как правило можно использовать bilinear/bicubic из Pillow и не волноваться.

Хорошие статьи:
* https://zuru.tech/blog/the-dangers-behind-image-resizing
* https://www.cambridgeincolour.com/tutorials/image-interpolation.htm
Forwarded from Aspiring Data Science
Эрни Чан - бывший сотрудник хедж-фонда, уже много лет как частный трейдер, автор 3 хороших книг и множества лекций. Очень интересно наблюдать эволюцию его взглядов на трейдинг и применимость ML в финансах. Идея об уходе от общих таргетов заслуживает внимания и проверки, тем более что о ней же говорит и ДеПрадо (в его книге эта техника называется "метаразметкой").

https://www.youtube.com/watch?v=nAOjbL5bsjA

Книга Quantitative Trading: How to Build Your Own Algorithmic Trading Business https://www.amazon.com/gp/product/B097QGPVND/

Ещё у него есть активный блог: http://epchan.blogspot.com/
Forwarded from Artem K
Пожалуйста, не отклоняйтесь от темы чата! Флуд и нерелвантные темы могут привести к бану!

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

В данном чате нет профессиональных рекрутеров, не все рекомендации могут быть полезными.

!!! TL;DR https://news.1rj.ru/str/resume_review/38603 !!!

Полезные ссылки(предлагайте еще):
https://www.careercup.com/resume
https://news.1rj.ru/str/resume_review/4574
http://larrr.com/resume-checklist-ili-kak-delat-ne-nado
https://habr.com/ru/post/542372
https://twitter.com/slizagna/status/1356652219932626944

Как готовиться к бехейв интервью: https://www.youtube.com/c/DanCroitor
Советы для джунов: https://news.1rj.ru/str/resume_review/34487

Resume templates: https://www.overleaf.com/latex/templates/awesome-cv/dfnvtnhzhhbm
Еще один шаблон: https://github.com/posquit0/Awesome-CV
Советы по резюме от HR FB: https://news.1rj.ru/str/resume_review/2705
Форум по резюме для США: https://forum.govorimpro.us/t/покритикуйте-пожалуйста-резюме/36763
Еще одна валидация резюме: https://www.reddit.com/r/resumes
Можно сделать бесплатную проверку резюме(платить им деньги не рекомендую) - https://www.topresume.com
Здесь можно сделать бесплатный скрининг резюме: https://resumeworded.com
Еще один бесплатный скрининг резюме: https://www.vmock.com
Советы для джунов: https://news.1rj.ru/str/resume_review/34487

Проверка английского в резюме:
https://app.grammarly.com
https://hemingwayapp.com

Ссылки по странам:
Германия - https://www.thelocal.de/20130131/47649

Подготовка к собеседованиям:
@FaangInterview
@l33tcode
Флудильни:
@FloodInterview
@pogromista

Для активных участников чата разрешены ссылки на ресурсы и одна реклама того, что относится к резюме айтишников с тегом #реклама в начале сообщения(в т.ч. для личных и некомерческих проектов)
Разрешены посты о протестах против войны.
Запрещены обсуждения постов про пртесты и любые выпадки в сторону Украины.

Админы: @ArtemK_us, @julialxv и др
Forwarded from commit history
Написал статью на основе заметок по собеседованиям отсюда. В качестве доп материалов добавил:

+ скрин литкода
+ фото заката с Бали
+ фото домашнего рабочего места в Москве
+ общие советы для прохождения собеседований

https://habr.com/ru/post/704128/
Forwarded from cydoroga
Всем привет!
Не очень в тему, но думаю, многим может быть интересно.

Ребята, в том числе ШАДовцы, сделали штуку, которая позволяет инферить и файнтюнить BLOOM-176B из Колаба.
Если вам интересно работать с 175B+ языковыми моделями без необходимости иметь несколько мощных GPU — можете глянуть ссылку и написать, что вы про это думаете!

https://colab.research.google.com/drive/1Ervk6HPNS6AYVr3xVdQnY5a-TjjmLCdQ?usp=sharing
#courses #math
Самые основы математики и программирования

https://www.youtube.com/@dudvstud9081
Самое полезное что есть у трансформера как у архитектры - устойчивость, оч сложно сделать так чтобы градиенты взорвались или на инференсе он разошёлся, поэтому 8бит обучение и инференс, вполне себе рабочая схема(скоро выйдет 4бит инференс, но его пока карты не поддерживают)

Ноутбук сборник всяких хаков

Автор: @kaggling
Forwarded from Dan Okhlopkov - канал (Dan)
📹 В какой-то момент я офигел, что умеет ffmpeg.

Как-то на физтехе мы делали phystech.tv: 24/7 стрим из видосов, которые были сняты в МФТИ. А это бесконечные "посвятские видосы первокурсников”, Тьмовости и треш-контент от Бужанского. И это все работало 1 строчкой в терминале.

Недавно на hackernews нашел волшебный гайд по ffmpeg. Если вам нужно сделать что-нибудь с видео или аудио - я уверен, что для этого уже есть ffmpeg filter.

🔗 https://img.ly/blog/ultimate-guide-to-ffmpeg/
Играющий тренер

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

Кто это
Довольно распространенная вакансия, где руководителя разработки хотят с глубокими экспертными знаниями. Ну, кажется, что всё нормально, и ничего сильно подозрительного нет.
А потом читаешь текст вакансии и там говорится, что подобный тимлид должен:
⁃ проектировать и реализовывать сложные архитектурные решения;
⁃ заниматься наймом команды;
⁃ заниматься людьми, их обучением, ростом, мотивацией;
⁃ заниматься рабочими процессами;
⁃ заниматься проектным менеджментом.
Ну то есть примерно быть разработчиком, тестировщиком, админом/девопсом, эйчаром и ПМом в одном лице.
Это то, что прямо сразу в голову приходит. Напишите в комментариях, чем еще «должен» заниматься играющий тренер.

80 на 80
Отсюда появляется золотое правило для тимлидов подобного рода. В вакансии пишут, что они 80% времени должны писать код, но мы-то понимаем, что менеджерских активностей тут еще на 80%. А уж как вы эти 160% уложите в рабочие дни, да так, чтобы качество у каждого вида деятельности не страдало – это ваши заботы.
Зато вам будут платить аж на 20-25% больше, чем какому-нибудь сеньору, который только задачи из to do забирает в in progress, пишет код и в done их двигает. При этом не теряя своих хард скиллов, свободно конвертируемых в деньги на рынке труда любой страны и любой компании.

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

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

Если у вас 1-2-3 землекопа и всё уже отлажено в целом, то пусть приходит и правда какую-то серьезную часть времени код пилит, попутно подтюнивая эволюционирующие рабочие процессы, направляя команду и проект к светлому будущему.

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

В этом плане мне очень нравится пример Антона Околелова из подкаста Цинковый прод. Он как-то писал, что ему не хочется расставаться с кодом, но и тимлидить нравится. Поэтому он сознательно идет тимлидом в небольшие команды (2-3 человека), чтобы в комфортном для себя режиме на двух стульях усиживать без вреда для дела.

Итог
Думайте что вам ближе, ищите что по душе.
Предлагают вакансию играющего тренера – хорошенько анализируйте, насколько она адекватна, прежде чем соглашаться.
Написал небольшой эпос о библиотеке transformers.
И хотя текста много это все равно только лишь введение. Функционала в библиотеке слишком много.
https://habr.com/ru/post/704592/

Для тех кто не в курсе: библиотека Transformers предоставляет доступ к куче современных предобученных DL-моделей.
И на текущий момент является чуть ли не аналогом скалерна в мире Deep Learning.
Forwarded from Artificial stupidity
​​#statistics

Поговорим о causal trees.

Ранее мы говорили об uplift trees. Causal trees - некоторое обобщение для построения деревьев в causal inference.

Что же там происходит?

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

Но что, если мы сделаем иную (и более честную) функцию для того, чтобы разделять дерево на ветви? Про это как раз и следующая работа (Athey, Susan, and Guido Imbens. "Recursive partitioning for heterogeneous causal effects." Proceedings of the National Academy of Sciences 113.27 (2016): 7353-7360).

Почему нам важно иметь иную функцию для разбиения? Все потому, что у нас стоит принципиально иная задача. Это не обычная классификация или регрессия, а оценка причинности влияния и размера эффекта. Соответственно, обычные методы будут привносить смещение (bias). И оценки наши, увы, будут несостоятельны.

Соответственно, наш критерий для сплита должен учитывать (см. пример хорошего и плохого разбиения в изображении к посту):
- Баланс между попавшими в ветвь дерева объектами из target и control;
- Ожидаемую точность оценки CATE (conditional average treatment effect). Если разбиение разбивает на группы неточно, то мы получаем искажение в нашей оценке

Потому, давайте введем новую функцию для получения оптимального разбиения - EMSE (expected mean squared error for treatment effects). Если коротко, то это просто MSE с поправкой и учетом разделения на тест и обучение. Выглядит формула примерно так 1 / N_test * sum_N_test( (Y_i - tau_est)**2 - Y_i**2)

То есть, мы обучаем наше разделение на одном множестве, а потом подставляем в другое. На коем и вычисляем MSE с поправкой на константу. Ну а expected здесь - это мат. ожидание от нашего MSE. При этом, test и estimation у нас независимы.

Доказано, что такая функция позволяет нам иметь нужные статистические свойства.

Итог:
Кажется весьма интересным такой способ оценки. Да и весьма в стиле ML решений с разделением на train/test части. Подробнее можно почитать в статьях + в этом блог-посте. А реализацию на python можно найти в пакете econml.