Меня регулярно спрашивают про то “какие книжки почитать по ML”, “что я читаю” и “как выбрать полезные статьи”. В целом, я пару раз касался этой темы, но везде не цельно/не структурированно.
Попробую разобрать в этом посту что почему и зачем читал/читаю.
Первое что нужно понять – бесполезно читать статьи просто чтобы читать их. Любая книга/статья – должна помогать решать какую-то проблему. Чем ближе она к тем вопросам которые у вас есть – тем лучше вы будете понимать что происходит, тем больше будет пользы.
Забавное следствие – я не смогу рассказать о том, какие курсы помогают разобраться в ComputerVision. Сверточные сетки появились уже после того как я занялся ComputerVision. Так что учился я на выходящих статьях и исходниках. А курсы выходили уже потом.
Что же помогает получать информацию, и о чем я буду говорить?
- Статьи. Как я читаю, что и где выбираю.
- Конференции
- Блоги/каналы/сообщества
Статьи
Сейчас статей в ML и CV сильно больше чем можно прочитать. А про их качество ходят легенды. Не зря же появился даже https://www.paperswithoutcode.com/
Я уверен, что читать все подряд – бесполезно. Как результат – нужно использовать фильтры. В моем представлении фильтры могут быть:
- Ключевые слова/топики
- Хорошие подборки
- Хорошие площадки
Ключевые слова
Поговорим о ключевых словах. Чтобы они работали – нужно иметь поток статей из которого выбирать. Где взять такой поток? Мне комфортнее пользоваться таким сообществом – https://vk.com/deeplearning
Конечно, там статьи с небольшим запозданием. Но все самое интересное – появляется.
Когда-то пробовал использовать https://www.reddit.com/r/MachineLearning/ и прочие подреддиты. Но что-то не зашло. Унылый интерфейс + много шума.
Знаю, что есть много групп в телеге. Но на них не подписан.
Из тех что подписан, есть: https://t.me/computer_science_and_programming – там мало шума, только самые ключевые статьи последних недель. Если нет сил читать тот же deeplearning – скорее всего всё ключевое просмотрю тут.
https://t.me/ai_newz – упоротый канал, где автор несет полно чуши (видел множество фактических ошибок). При этом неплохая подборка новостей и статей, часть из которых я не видел в других источниках.
Так какие ключевые слова? Обычно это должны быть те тематики которыми я занимался в последнее время. Это, конечно, известные группы/институты/авторы. Например читаю про роботов, про OCR, про распознавание скелетов и действий.
Подборки
Ок, подборки. Где их доставать? В блогах интересных авторов. Иногда в каналах (упомянутых выше). Иногда в группах и сообществах. Для меня в первую очередь интересны подборки крупных конференций. CVPR, NIPS, SIGGRAPH, и.т.д. Но бывают неплохие подборки “по темам”. Я сам такое периодически пишу ( StyleGAN, Transformers) . И часто если наталкиваюсь на такую подборку пограничной мне теме – стараюсь изучить.
Площадки
Хорошие площадки – это площадки с порогом на вход. Где кто угодно не сможет опубликовать статью. Из известных русскоязычных – Хабр. Частично medium, частично towards data science.
Ах да. Давайте прервемся и поговорим про такой вопрос. А вообще благодатно ли читать статьи не оформленные в качестве научной работы? Или статьи где есть только выжимка работы?
Мне кажется что да. Если автор не очередной журналист, а человек из области – то такая статья может быть лучше оригинальной работы на arxiv, так как в ней может содержаться та боль или страдание которое претерпел человек который попробовал все запустить.
Конференции
Погнали дальше. Конференции. Я погранично отношусь к конференциям. Чувствую боль тех кто их ненавидит и понимаю людей которые их любят. Чем мне не нравятся конференции:
- Если конференция научная – то же самое можно прочитать в статье сильно быстрее
- Нужно куда-то ехать, тратить время/деньги, договариваться с компанией если она финансирует
- Зачастую 80% докладов – шлак. Их даже не хочется слушать
В чем их плюс:
- Нетворкинг. Часть наших заказов – это контакты с конференций. Мне это дико сложно, но да, конференции оптимальное место если вы ищите работу/сотрудников/подрядчиков/заказчиков
- Если уже знаком со статьей, но есть вопросы – можно попробовать их позадавать авторам.
- Если это техническая конференция – то можно найти примеры того как люди работают с похожими задачами. Такой фидбек всегда сложно собирать, а тут автора можно даже расспросить. Например: как работать с каким-нибудь фреймворком. Какие железки имеют какие особенности. И.т.д.
Так что я не рассматриваю конференции как стабильный источник информации. Но время от времени почему бы и нет.
Блоги/каналы/сообщества
Блоги/каналы/сообщества. Часть блогов и каналов я уже упомянул выше. Тут я добавлю, разбив их на несколько групп:
Персональные блоги/каналы. Я читаю:
- https://t.me/snakers4 – канал Александра, на котором есть много интересного про PyTorch, про железки и про жизнь стартапа
- https://t.me/partially_unsupervised – прикольные наблюдения про ML. Периодически Арсений пишет классные статьи на Хабре с математикой. Есть неплохие подборки
- https://t.me/roma_toloka – недавно натолкнулся на интересный канал, где Рома рассказывает про то как использовать Толоку для разных задач
- Плюс подписан на 5-10 публичных датасатанистов/директоров в фейсбуках и.т.д., с которыми знаком. Тут публиковать смысла нет – там достаточно редкий контент, совмещенный с личным.
Для меня смысл таких каналов – смотреть как организованы команды в разных фирмах/стартапах. Как внедряются новинки, какие сложности.
Сообщества, думаю, очевидные. Это ODS и уже упомянутый reddit. Я не активен ни там ни там. Но иногда открываю и гуглю какую-нибудь интересную информацию/дискуссию.