С точки зрения интервью
Нужно уметь классический, неспециализированный ML. Надо знать всё что преподают в cs229 хотя бы поверхностно. Казалось бы, зачем спрашивать про классические мл в вижн, если везде софтмакс? Да всё просто. Ничто так не выдает челоека, который копирует готовые сеточки из гитхаба и ни в чём не соображает, чем незнание классического ML. Такой человек потом будет городить нейронку там, где нужна линейная модель с матрицей 5x2.
Что это знчит? Заботайте что такое bias-variance tradeoff, что делают SVM, как работает линейная регрессия и что такое ridge regression, как строятся decision trees и основы статистики, нужные для этого, ну то есть всё это вот базовое. Потренируйтесь это делать на небольших задачках или проектах. Это займёт пару дней, но это важно. Не только для собеседований, но и вообще в жизни.
Ну и что было для меня неожиданным, когда я тольно начинал работать, что надо иметь представление о классическом Computer Vision. В половине компаний также спрашивали что-то базовое из этого, спросил бы и я. Например, вы читали про Fast R-CNN, а знаете, что такое Selective Search который в статье упоминается? И я долгое время не знал, а потом посмотрел--интересный же алгоритм. Да хоть бы просто закодить конволюшн или edge detection сможете?
Ну и конечно, в компьютр вижне кандидаты должны не только знать, но и уметь диплёрнинг. В чём отличие?
Практика диплёрнинга всё понятно, нужно понять, вы кодили модели или просто слышали о них. Я бы задавал такие вопросы:
- Как вы обычно выбираете оптимайзер для CV модели?
- Как измеряется качество детекторов объектов в литературе? Вы упомянули AP@k, а что это такое? В чём плюсы и минусы использования этого как метрики?
- У меня модель, где loss на training set не уменьшается, а наоборот растёт; что делать? А если прыгает то вверх то вниз, но в основном идёт вниз?
- Когда нужно увеличивать количество фильтров в слое CNN ?
Теория диплёрнинга (чтобы понять, сможете вы что-то придумать своё или только копи-пастить из статей можете)
- Что будет с натренированной моделью, если все веса поделить на два?
- Представьте, что при тренировке MLP одна из фич всегда равна нулю; чему будут равны соответствующие веса первого уровня?
- В CNN практически не применяют L2 регуляризацию на веса convolution layers; почему? А что применяют?
- Что такое Layer Normalization и зачем оно?
Про теорию диплёрнинга спрашивают меньше, но часто неумение на это ответить очень печалит собеседующего. Чаще всего эти вопросы возникают "внезапно" когда что-нибудь такое вскользь упоминаешь, а интервьюер говорит "ага, а зачем этот модуль / что будет если это повертеть / а когда это не надо делать?"
"Насколько вы в теме" ака Domain Knowledge.
Опять же, вопрос вы просто попроходили курсы или вы работаете как профессионал (в т.ч. относитесь к персональным проектам профессионально, а-ля доводите до конца и проводите эксперименты). Вопросы из серии:
- Расскажите про какой-нибудь интересный проект, который вы задеплоили. И дальше спрашивать про детали.
- Расскажите про метод из своей самой любимой статьи которую прочитали за последние несколько недель, не подглядывая?
- Какой ваш последний эксперимент, который вы притащили из литературы и он поначалу не получился? что вы сделали, чтобы довести это до успеха? какие сделали выводы?
Разумеется, задавая такие вопросы, я бы попросил рассказать что-то имеющее отношение к предметной области, а не скажем инфраструктурые проекты.
Leadership. Нет, это не умение составлять документы и поучать жизни джуниоров. Это умение придумывать проекты. В FANG, придумывать проекты требуется только от старших (а то и от штатных) инженеров. Но в сэлф-драйвинге и для мидлов похожие требования. Поэтому какая-нибудь демонстрация того, что вы это умеете делать систематично, нужна. Публикации в этом помогают. Но лучше задумайтесь, был ли проект, который вы придумали, и он получился? Напишите в резюме. Подумайте о том, как это пришло вам в голову и сформулируйте это словами и запомните. Пригодится, и не только с поиске работы, но и вообще в жизни.
Нужно уметь классический, неспециализированный ML. Надо знать всё что преподают в cs229 хотя бы поверхностно. Казалось бы, зачем спрашивать про классические мл в вижн, если везде софтмакс? Да всё просто. Ничто так не выдает челоека, который копирует готовые сеточки из гитхаба и ни в чём не соображает, чем незнание классического ML. Такой человек потом будет городить нейронку там, где нужна линейная модель с матрицей 5x2.
Что это знчит? Заботайте что такое bias-variance tradeoff, что делают SVM, как работает линейная регрессия и что такое ridge regression, как строятся decision trees и основы статистики, нужные для этого, ну то есть всё это вот базовое. Потренируйтесь это делать на небольших задачках или проектах. Это займёт пару дней, но это важно. Не только для собеседований, но и вообще в жизни.
Ну и что было для меня неожиданным, когда я тольно начинал работать, что надо иметь представление о классическом Computer Vision. В половине компаний также спрашивали что-то базовое из этого, спросил бы и я. Например, вы читали про Fast R-CNN, а знаете, что такое Selective Search который в статье упоминается? И я долгое время не знал, а потом посмотрел--интересный же алгоритм. Да хоть бы просто закодить конволюшн или edge detection сможете?
Ну и конечно, в компьютр вижне кандидаты должны не только знать, но и уметь диплёрнинг. В чём отличие?
Практика диплёрнинга всё понятно, нужно понять, вы кодили модели или просто слышали о них. Я бы задавал такие вопросы:
- Как вы обычно выбираете оптимайзер для CV модели?
- Как измеряется качество детекторов объектов в литературе? Вы упомянули AP@k, а что это такое? В чём плюсы и минусы использования этого как метрики?
- У меня модель, где loss на training set не уменьшается, а наоборот растёт; что делать? А если прыгает то вверх то вниз, но в основном идёт вниз?
- Когда нужно увеличивать количество фильтров в слое CNN ?
Теория диплёрнинга (чтобы понять, сможете вы что-то придумать своё или только копи-пастить из статей можете)
- Что будет с натренированной моделью, если все веса поделить на два?
- Представьте, что при тренировке MLP одна из фич всегда равна нулю; чему будут равны соответствующие веса первого уровня?
- В CNN практически не применяют L2 регуляризацию на веса convolution layers; почему? А что применяют?
- Что такое Layer Normalization и зачем оно?
Про теорию диплёрнинга спрашивают меньше, но часто неумение на это ответить очень печалит собеседующего. Чаще всего эти вопросы возникают "внезапно" когда что-нибудь такое вскользь упоминаешь, а интервьюер говорит "ага, а зачем этот модуль / что будет если это повертеть / а когда это не надо делать?"
"Насколько вы в теме" ака Domain Knowledge.
Опять же, вопрос вы просто попроходили курсы или вы работаете как профессионал (в т.ч. относитесь к персональным проектам профессионально, а-ля доводите до конца и проводите эксперименты). Вопросы из серии:
- Расскажите про какой-нибудь интересный проект, который вы задеплоили. И дальше спрашивать про детали.
- Расскажите про метод из своей самой любимой статьи которую прочитали за последние несколько недель, не подглядывая?
- Какой ваш последний эксперимент, который вы притащили из литературы и он поначалу не получился? что вы сделали, чтобы довести это до успеха? какие сделали выводы?
Разумеется, задавая такие вопросы, я бы попросил рассказать что-то имеющее отношение к предметной области, а не скажем инфраструктурые проекты.
Leadership. Нет, это не умение составлять документы и поучать жизни джуниоров. Это умение придумывать проекты. В FANG, придумывать проекты требуется только от старших (а то и от штатных) инженеров. Но в сэлф-драйвинге и для мидлов похожие требования. Поэтому какая-нибудь демонстрация того, что вы это умеете делать систематично, нужна. Публикации в этом помогают. Но лучше задумайтесь, был ли проект, который вы придумали, и он получился? Напишите в резюме. Подумайте о том, как это пришло вам в голову и сформулируйте это словами и запомните. Пригодится, и не только с поиске работы, но и вообще в жизни.