Это конечно все здорово, но медицинская разметка - это долго и дорого. Сабсеты кажется хорошей идеей, но сколько надо насобирать данных, чтобы получить адекватные доверительные интервалы метрик на этих сабсетах. Про тесты на лик: к сожалению единого идентификатора пациента в России, как и в остальном мире нет. И элементарно одного и того же человека очень сложно отловить, чтобы исключить такой лик. Out-of-Distribution - это просто беда. Я видел маммографию с оцифровщика, под снимком лежала сим-карта. И пользователи не хотят понимать, что этого объекта быть не должно и почему сим-карта воспринимается как образование. Его вывод - ваша система отстой.
Тут же предлагается bounding box для первичной детекции руки разметить, без самих ключевых точек. Это делается максимально быстро в простом VGG Image Annotator или грузится на толоку.
За статью респект, применю ваш в опыт в поиске ключевых точек на рентгенах костей
Из личного опыта MRCNN показывает результаты хуже результаты с другими оптимизаторами. Если классы сбаласированы то Adam справляется на ура. SGD и RMSprop спасают, если какие-то буквы встречаться будут откровенно редко (1к10 и больше). Но опять же с этим можно побороться, если прикрутить взвешенную функцию потерь.
Вы конечно молодцы и задача классная. Но только в общих словах описали pipeline для работы и покидались красивыми словами. Где же хоть какие-то метрики? Какого IoU или Dice добились с Unet? Какова AUC ROC при классификации по категориям?
Так где-то была статья, что тренд в разработке новых моделей изменился. Раньше гнались за размером и новыми рекордами метрик. Теперь гонятся за эффективностью без падения метрик.
Кстати по мне, так нейросетевая регрессия — надстройка над линейной. Так в пределах получения выхода одного нейрона без активации, что мы имеем? <x, w> — скалярное произведение входов на веса. В нейронке туча регрессий, на выходы которых наложена нелинейность активационных функций.
еще забыл, что частенько функции(например InvertImg) работают с 8-битными изображениями. А в медицине, например бывает 12-16 бит. Поэтому вставляешь костыли: конвертируешь сначала до float 0.-255., применяешь аугментацию, а потом до 0.-1.
Я бы еще посоветовал вам при обучении модели попробовать Tversky loss-функцию — это надстройка над Dice ошибкой, только с доп. параметром По факту заставляет сеть штрафовать больше за False Positive или False Negative.
Крыш все-таки гораздо меньше фона и классы сегментации несбалансированы.
Да вполне, спасибо большое.
Еще не понятен один момент. При определении расстояния от точки до плоскости dist(x) в знаменателе норма вектора w. А зачем она там? модуль скалярного произведения |wTx+b| разве не дает нам расстояние? В коде например так и сделано.
Отличная статья. Но много, за раз не осилил. Пришлось возвращаться 3 раза.
А чем вызвана любовь к Keras? Для себя решил, что Keras скорее хороший старт, чем полноценный инструмент. В связи с этим копаюсь и переношу часть проектов в PyTorch.
Давайте не преувеличивать.
5G приципиально другой стандарт? Не согласен.
Почему?
1) Большие скорости обеспечивает. Ну к сожалению пути только два, повышать мощность (т.е. отношение С/ш), либо полосу. Клод Шеннон нам в помощь с его предельной теоремой. 5G предлагают Использовать новый частотный диапазон 26.5 ГГц. Потому что там можно гонять полосу сигнала 100 и более МГц. В 5ГГц и ниже это сделать сложнее.
2) Направленные решетки (Massive MIMO) — опять то же самое, но тут мы поднимаем мощность на приёмнике, т.е. с/ш. + Всякие плюшки с точки зрения ЭМС и т.д. Надо понимать, что активные решетки — это дорого.
3) Интернет вещей. В данным момент у нас есть несколько нелицензируемых диапазонов, таких как 433 МГц, 868 МГц, 2.4 и 5 ГГц. И куча протоколов по которым работают «умные» устройства типа ZigBee и прочие. Хотят засунуть все это в концепцию 5G, чтобы был единый протокол и универсальный радиомодуль, которым мог бы общаться со всеми сразу.
4) Новые кодовые конструкции. Да там вместо турбокодов предлагают использовать LDPC. Это простой блоковый код. Он не оптимален в отличии от турбокодов. В чем преимущество? У него простая порождающая и проверочная матрицы. Скорость кодирования и декодирования возрастет. Однако работает он при хороших С/ш. Я вангую, что будет использоваться в диапазоне 26.5 ГГц.
5) Новые сетевые плюшки типа работы на две базовые станции на их границе, mesh сети и т.д. Тут ничего не скажу, да это все круто, но в сетевых вещах и не разбираюсь.
Мое мнение: 5G в первую очередь хочет объединить всё и вся. Создать единый стандарт общения между устройствами, универсальный радиомодуль. Помимо этого хочется больших скоростей, потому что объемы данных растут и достаточно быстро. Условные беспилотные авто пересылают тучу информации. Способы поднять скорость используются очевидные и прям новшеств там нет.
Это конечно все здорово, но медицинская разметка - это долго и дорого.
Сабсеты кажется хорошей идеей, но сколько надо насобирать данных, чтобы получить адекватные доверительные интервалы метрик на этих сабсетах.
Про тесты на лик: к сожалению единого идентификатора пациента в России, как и в остальном мире нет. И элементарно одного и того же человека очень сложно отловить, чтобы исключить такой лик.
Out-of-Distribution - это просто беда. Я видел маммографию с оцифровщика, под снимком лежала сим-карта. И пользователи не хотят понимать, что этого объекта быть не должно и почему сим-карта воспринимается как образование. Его вывод - ваша система отстой.
Тут же предлагается bounding box для первичной детекции руки разметить, без самих ключевых точек. Это делается максимально быстро в простом VGG Image Annotator или грузится на толоку.
За статью респект, применю ваш в опыт в поиске ключевых точек на рентгенах костей
Из личного опыта MRCNN показывает результаты хуже результаты с другими оптимизаторами. Если классы сбаласированы то Adam справляется на ура. SGD и RMSprop спасают, если какие-то буквы встречаться будут откровенно редко (1к10 и больше). Но опять же с этим можно побороться, если прикрутить взвешенную функцию потерь.
В таких вещах датасет может быть ценнее модели)
16 бит в png влезает спокойно, при желании можно даже несколько каналов
Вы конечно молодцы и задача классная. Но только в общих словах описали pipeline для работы и покидались красивыми словами. Где же хоть какие-то метрики? Какого IoU или Dice добились с Unet? Какова AUC ROC при классификации по категориям?
Хорошая статья. Тоже хотел перевести, но меня опередели)
Так где-то была статья, что тренд в разработке новых моделей изменился. Раньше гнались за размером и новыми рекордами метрик. Теперь гонятся за эффективностью без падения метрик.
Кстати по мне, так нейросетевая регрессия — надстройка над линейной. Так в пределах получения выхода одного нейрона без активации, что мы имеем? <x, w> — скалярное произведение входов на веса. В нейронке туча регрессий, на выходы которых наложена нелинейность активационных функций.
За lambda спасибо. Про неё не знал.
albumentations конечно хорош, но инфы по нему не так много. Особенно когда он начнет засыпать ошибками.
Я бы еще посоветовал вам при обучении модели попробовать Tversky loss-функцию — это надстройка над Dice ошибкой, только с доп. параметром По факту заставляет сеть штрафовать больше за False Positive или False Negative.
Крыш все-таки гораздо меньше фона и классы сегментации несбалансированы.
Однако в условиях когерентности вообще не раскрыты индексы t_k, t_m. Там какая-то путаница.
Автор, спасибо за статью. Сам инженер в области антенной техники. Подход с точки зрения векторов однозначно топ.
Да вполне, спасибо большое.
Еще не понятен один момент. При определении расстояния от точки до плоскости dist(x) в знаменателе норма вектора w. А зачем она там? модуль скалярного произведения |wTx+b| разве не дает нам расстояние? В коде например так и сделано.
А чем вызвана любовь к Keras? Для себя решил, что Keras скорее хороший старт, чем полноценный инструмент. В связи с этим копаюсь и переношу часть проектов в PyTorch.
5G приципиально другой стандарт? Не согласен.
Почему?
1) Большие скорости обеспечивает. Ну к сожалению пути только два, повышать мощность (т.е. отношение С/ш), либо полосу. Клод Шеннон нам в помощь с его предельной теоремой. 5G предлагают Использовать новый частотный диапазон 26.5 ГГц. Потому что там можно гонять полосу сигнала 100 и более МГц. В 5ГГц и ниже это сделать сложнее.
2) Направленные решетки (Massive MIMO) — опять то же самое, но тут мы поднимаем мощность на приёмнике, т.е. с/ш. + Всякие плюшки с точки зрения ЭМС и т.д. Надо понимать, что активные решетки — это дорого.
3) Интернет вещей. В данным момент у нас есть несколько нелицензируемых диапазонов, таких как 433 МГц, 868 МГц, 2.4 и 5 ГГц. И куча протоколов по которым работают «умные» устройства типа ZigBee и прочие. Хотят засунуть все это в концепцию 5G, чтобы был единый протокол и универсальный радиомодуль, которым мог бы общаться со всеми сразу.
4) Новые кодовые конструкции. Да там вместо турбокодов предлагают использовать LDPC. Это простой блоковый код. Он не оптимален в отличии от турбокодов. В чем преимущество? У него простая порождающая и проверочная матрицы. Скорость кодирования и декодирования возрастет. Однако работает он при хороших С/ш. Я вангую, что будет использоваться в диапазоне 26.5 ГГц.
5) Новые сетевые плюшки типа работы на две базовые станции на их границе, mesh сети и т.д. Тут ничего не скажу, да это все круто, но в сетевых вещах и не разбираюсь.
Мое мнение: 5G в первую очередь хочет объединить всё и вся. Создать единый стандарт общения между устройствами, универсальный радиомодуль. Помимо этого хочется больших скоростей, потому что объемы данных растут и достаточно быстро. Условные беспилотные авто пересылают тучу информации. Способы поднять скорость используются очевидные и прям новшеств там нет.