Pull to refresh

Comments 50

UFO just landed and posted this here
Вопросов много, но ни одного касательно архитектуры RetinaNet я не увидел.

Под эффективностью подразумевается отношение показателя точности к количеству параметров(весов) нейронной сети.
UFO just landed and posted this here
В Тесле фундаментально такой же подход, один похожий backbone + разные декодеры/выходы под разные задачи.
UFO just landed and posted this here

В первом же абзаце


для задачи Object Detection.

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

UFO just landed and posted this here
Будем рвать фразы из контекста?)

Так, у вас был комментарий https://habr.com/ru/post/510560/#comment_21837260


Вопрос прикладного применения сети.
Куда ее?

Я — ответил


Рассказать почему такая уязвимость?

Скорее всего я в курсе, но раскройте мысль, а то сложно вести с вами дискуссию без конкретики.

UFO just landed and posted this here
Это касается все сети.

Вот тут не понял что хотите сказать.


Автор сделал жесткий dropout

Кажется путаете дропаут с прунингом, и то я не уверен. Это вы к тому, что автор использовал EfficientNet в качестве бэкбона?


Эти «ненужные ветви и слои» создают аналоги ансамблей, которые дают устойчивость к искажениям в том или ином измерении.
В итоге — малейший шум и RetinaNet является бесполезным механизмом.
Я с таким успехом могу брать конкретный искомый образ и делать свертку по изображению без слоев. Искать его по max отклику (утрирую конечно).

Это очень серьезное заявление. А есть пруфы? В смысле ваши эксперименты и сравнения с версией автора. С метриками и/или визуальными примерами. Желательно с исходниками, т.к. есть версия что вы не очень хорошо разбираетесь в современном DL и могли просто что-то не правильно натренировать. Без обид.


С таким же успехом можно сказать что автор сделал все правильно, т.к. лишние слои это прямой путь к оверфиту, который в том числе выражается к меньшей устойчивостью к шуму и т.д.


EfficientNet (если вы про него, конечно) не самая простая вещь в тренировке, но за последние месяцы она стала весьма популярна в соревнованиях на kaggle, что говорит о том, что архитектруа вполне себе рабочая.

UFO just landed and posted this here

Без обид, но вам следует подтянуть теорию и набить руку на реальных задачах. На нейронках, или на чем-то еще, неважно. Потому что вы не совсем понимаете специфику Computer Vision как такового.


Потому что он не решается полностью. Совсем. Можно только постепенно покрывать все большее и большее число случаев. Такие "смешные" фейлы были и будут на любых методах — паттерн матчинге, AAM, SURF+SVM, каскадах Хаара и т.д. Просто нейронки сейчас качественно лучше чем все остальное на основных задачах.


Можете мне не верить, без проблем, просто попробуйте сделать алгоритм детектирования объектов, который решает ту же задачу что и тесловский. И тогда придет понимание почему это не так просто, и почему обучаемые методы предпочтительней (спойлер: потому что подбирать руками эвристики под все случаи нереально).


Если что, у меня основная экспертиза именно в классическом "без нейроночном" CV.


Ваши «эффективные сети» приводят к банальностям типа этой.

EfficientNet достаточно свежая сетка, к слову маловероятно что в тесле на тот момент была именно она.


И да, на мои вопросы вы так и не ответили. Не про то что вы имели под "dropout" (вы же понимаете что это такое?). Не про то, откуда вы взяли что "лишние ветви" помогают в этом конкретном случае. Так не интересно, ей богу.

UFO just landed and posted this here
Вы, как и другие спецы «со степенями», любите кидаться терминами, понятиями, но вы не хотите слышать простые концепции.

Так расскажите об этих концепциях. Пока что в этих комментариях вы сделали 2 вещи:
1) Спросили работает ли RetinaNet с повернутыми/отмасштабированными объектами, возможно имея ввиду что из-за природы свертки они не будут работать на поворотах не на 90 градусов и не будут работать на масштабах не кратным 2. На что вам ответили что все работает, и привели название механизма которым это достигается.
2) Заявили что автор зря "сделал жесткий dropout", толком не объяснив что вы имеете ввиду, и не предоставив адекватных объяснений или доказательств.


И еще раз, у меня особых степеней нет.


Я верю вам. И повторяю — вы недооцениваете сложность задач. Задачи классификации, обобщения итп делает наш мозг, а не глаз («аналогом» которого является «пирамида CNN»). Мозг это не dense и не CNN. Это «машина» грандиозной мощности и эффективности.

Все смешалось в кучу. Серьезно, почитайте хоть что-нибудь по теории перед тем как делать такие заявления.
Алгоритмы компьютерного зрения не обязаны повторять работу мозга или глаза, чтобы решать поставленную задачу. Вы же не возмущаетесь что самолеты не машут крыльями в полете?
И да, мозг не совершенен, он тоже делает ошибки.
Дальше, да, можно сказать что CNN/нейронки в чем-то вдохновлялись биологией, но откровенно говоря весь современный прогресс в DL не имеет отношения к биологии, и это совершенно нормально.


Задачи классификации, обобщения итп делает наш мозг, а не глаз («аналогом» которого является «пирамида CNN»).

Почитайте https://en.wikipedia.org/wiki/Convolutional_neural_network#History CNN не имеет отношения к глазу. Она вдохновлялась visual cortex, который внезапно — часть мозга


Ответил. Просто это был не тот ответ, который вы ожидали.

Нет, не ответили. Можно я вас процитирую?


Интересный способ технической беседы.
Вместо конкретных цифр говорить общими фразами)

Конкретных ответов вы не дали.

UFO just landed and posted this here

Вас не смущает что вы требуете конкретных ответов на свои вопросы (коммент про внедрение внизу) а сами не можете конкретно ответить когда спрашивают вас?


Давайте попробуем тогда по одному вопросу за раз — что такое в вашем понимании dropout?

UFO just landed and posted this here
Я отвечу на большинство «заумных вопросов» простыми словами, как и нужно делать профессионалу. И даже опишу более сложные концепции.

Профессионалы как бы должны понимать как работают те вещи, о которых они говорят.


Я сразу понял, что вы пытаетесь меня уличить в дилетантизме, но почему то не хотите «читать между строк» моих.
Я писал про dropout
Убрал кучу нужных ветвей и слоев и говорит об эффективности на порядок.
Эти «ненужные ветви и слои» создают аналоги ансамблей, которые дают устойчивость к искажениям в том или ином измерении.

Но, "ненужные ветви и слои" это совсем не одно и то же что и ансамбль. Это фичи на которые, в некоторых случаях будут приводить к оверфиту, т.к. они могут быть использованы для запоминания отдельных примеров. Как понять что "ненужные слои" действительно не нужны? Проверить метрики на тестовой выборке. У авторов efficientnet метрики хорошие.


Согласны с тем что ваше утверждение про "dropout" не верно? Если нет, то почему?

UFO just landed and posted this here
Это как раз и есть это)

Нет. К ансамблю ближе пачка индивидуальных моделей которые дают свои решения. Итоговое решение усредняется. Таким образом, даже если одна модель в ансамбле переобучилась, остальные могут перевесить это решение.
Слой именно что извлекает некоторый признак, и сеть вольна его как и полностью игнорировать, так и полностью принимать свое решение исходя из значения признака. И вот тут слишком большая сеть может найти признаки которые характерны для одного примера, и слишком сильно на них ориентироваться при принятии решения. Так мы можем получить переобучение, и на метриках это заметно. Баланс между размером/числом слоев сложно найти, и авторы EfficientNet как раз сделали большой шаг в решении это задачи.


Опять процитирую публикацию. Не буду копаться глубже, но моя интуиция подсказывает, что там косяков очень много.

Вы прицепились к одному абзацу, но кажется так и не поняли в чем фишка. В задаче классификации (для которой и проектировался EfficientNet) локальная информация не нужна, т.к. важно понять что в принципе происходит на картинке.
Но локальная информация нужна для задач связанных с локализацией (обнаружением объектов). Поэтому поверх EfficientNet, который эффективно собирает все более и более глобальные признаки, вешают FPN, которая комбинирует признаки с разных уровней (там чуть сложнее, но суть именно что такая).


Собственно об этом вся статья в комментариях которой мы флудим.


Идеальное ли это решение? Наверняка нет, но оно работает, и люди это применяют для решения реальных задач, что авторы самой RetinaNet, что уважаемый pdima. Через пару лет наверняка придумают что-то еще


По метрикам беспилотные авто более безопасны, но пока за рулем люди.

Вот это и есть софистика.


Я вас убедил? Если нет, объясните почему.

UFO just landed and posted this here

Каша. Нет, серьезно, пройдите какой-нить курс, почитайте книжку, или что-нибудь в таком духе.


Это формула. Аналоговая функция. И не важно какого размера подсеть (целая или ветка) — это ансамбль или такая же формула.

Это вообще не противоречит тому, что я сказал. Перечитайте пожалуйста мой комментарий. Он про то, что ансамбль отчасти позволяет боротся с оверфитом, в то время как увеличение модели, как правило, к оверфиту приводит. И поэтому ваше высказывание про efficientnet не совсем соответствует истине.


В CNN вполне себе есть relu, и оч. много. Почитайте любую работу по CNN.
Пулинг уменьшает масштаб, это правда, но все чуть сложнее.
SIFT можно интерпретировать как CNN, но это очень условно. Сеть обученная на ImageNet является куда более мощным (в смысле абстрактности извлекаемых признаков) экстрактором фич, чем SIFT.
ImageNet сетки хорошо обобщаются на другие задачи, даже без обучения, почитайте про трансфер лернинг, например. Причем речь идет о том, что сеть обученная на кошечках дает признаки пригодные для сегментации живых клеток. Да, они хуже чем специализированные сети, но лучше чем условные SIFT.


Но задачи CV все равно решаются одни и те же полвека: инварианты к масштабу, повороту и другие аффины, яркость итп.

Совсем нет, но об этом чуть позже


Качественный скачок мы совершили, когда мы перешли от аналоговых вычислителей к цифровым.

С радостью подискутирую на эту тему, но давайте двигаться маленькими шагами


Согласны с тем что ваше утверждение про "dropout" не верно? Если нет, то почему?

Так согласны или нет? То что ансамбль это ф-ия вообще ничего не меняет.

Не тратьте свое и мое время. Я отвечу на большинство «заумных вопросов» простыми словами, как и нужно делать профессионалу. И даже опишу более сложные концепции.


Пока единственный ответ который я увидел был «Заигрались вы». А хотелось бы узнать что в оригинальной публикации по retinanet такого выбросили авторы:
Автор сделал жесткий dropout ТОПовых сетей для ImageNet. Убрал кучу нужных ветвей и слоев и говорит об эффективности на порядок.
Извините, но какой-то бардак в голове. Откуда мысль про жесткий dropout (прунинг наверное)? Желательно цитатой с оригинального пейпера по retinanet.
Не знаю зачем Вы спорите с данным товарищем, один взгляд на хабровские публикации + стиль письма тут и становится очевидно, что это очередной представитель от псевдонауки. Только в данном случае новый подвид — раньше в основном были физики да математики, а сейчас уже вон в deep learning потянулись. Всем чекбоксам удовлетворяет — понимание и знание области (DL) на базовом уровне, отсюда лезет каша из терминов и настойчивое желание доказать, что на самом деле всё якобы проще; пассивно-агрессивный стиль письма, где между строк читается «все п… ы, а я Д'Артаньян», причем без каких-либо намеков на какую-то реальную компетенцию; полное игнорирование вопросов, нулевая конкретика, постоянные отсылки к невнятным статьям, которые товарищ сам же и накатал.
именно retinanet? Неплохая архитектура для любых задач detection (нахождения объектов). Очень простая архитектура, с ней просто работать и затачивать под задачи, хотя с времени публикации появились и более сильные решения. Лично я последний раз использовал для определения пневмонии на рентгеновских снимках: arxiv.org/pdf/2005.13899.pdf
UFO just landed and posted this here
UFO just landed and posted this here
Retinanet там внутри либо нет уже делали реализации, Retinanet используют но такие подробности уже под NDA
Как обобщает? Инвариантность к масштабу? Повороту? Шум? Афинные искажения? А если яркость изменить на цветном изображении?

Какой-нить таблички, с сравнением точности с другими сетями, действительно не хватает. Остальные вопросы решаются аугментацией, которая ортогональна архитектуре сети. Можно только придраться к инвариантности к масштабу, но на практике аугментации хватает.

CNN дают инвариантность только по сдвигу, и то не любому (после пулинга будет инвариантность только по шагу последнего слоя например), все остальное достигается грубой силой — увеличение сети и датасета, включая аугментации как раз по перечисленным изменениям. В результате работает. Мозг так же не всегда инвариантен к таким изменениям, читать по вертикали чибо перевернув текст не так удобно например.
UFO just landed and posted this here
Мозг натренировался на огромном датасете, с чем не встечался то и плохо распознает (произношение других народов например, перевернутый текст), с реснетами такая же история.
UFO just landed and posted this here
Я возможно не правильно понял вопросы, они о ретинанет либо о мозге? Во время тренировки обычно картинки случайно преобразовываются (как раз случайные аффинные преобразование, случайные преобразования цветных каналов, шум итд), так что очень существенного падения метрик при сравнимых изменениях тестовых картинок (например поворотах на 20 град, 1.5х масштаб, умеренном шуме) не должно быть.

Возможно специально подобрать шум (изменения) который будет сильно влиять на результат, но я не думаю что вопрос был про adverserial атаки.

Не знаю, у меня перевернутый текст неплохо распознается (мозгом, конечно) — хоть на 90, хоть на 180. Другое дело, когда натыкаешься в перевернутом тексте на непривычное слово, с которым как раз до этого не встречался (перевернул телефон и прочел Ваш комментарий, возникла проблема только со словом "реснетами").

Если добавите ауги на нужный градус — вполне. Повороты реально не проблема, к ним можно подготовится, хоть 10 градусов, хоть 110. Та же фигня с масштабом — добавьте ауги на нужный скейл и все будет плюс-минус хорошо.

UFO just landed and posted this here
Ауги не в архитектуре сети а в подготовке данных при тренировке. Независимо от архитектуры.

Ауги это часть которая ортогональна топологии сети, об этом не пишут в статьях. Разумеется практически все картиночные сетки для прода учат с использованием аугментаций (под конкретную задачу), вне зависимости от архитектуры.

UFO just landed and posted this here

Вопрос же был про то, как работает сетка с поворотами, правильно? При чем тут surf/sift? Можете получить точность RetinaNet на дескрипторах? Круто, можете показать пример?
Или даже просто расскажите как решали бы эту задачу на сифтах. Вот есть у нас 100 классов объектов, надо делать их обнаружение на фотках. Какое решение вы бы предложили?


К слову, SIFT не то чтобы прямо инвариантен к повороту https://www.quora.com/Computer-Vision-Is-SIFT-really-rotational-invariant

UFO just landed and posted this here

Т.е. вы не можете рассказать как решить задачу детекции используя дескрипторы?

UFO just landed and posted this here

Не, это был просто вопрос. Про сифты я ниже ответил.

Ну и я не понимаю к чему вообще тогда был весь разговор про сифты.
Поясните, что ли. Если хотели сказать что RetinaNet ничем не лучше сифтов, то это неправда, RetinaNet показывает лучшие результаты.

UFO just landed and posted this here
Sign up to leave a comment.

Articles