Заметки про CS
113 subscribers
68 links
Заметки на компьютерно-научную тематику, в основном CV и ML
Download Telegram
Свёрточный координатный слой

arXiv:1807.03247

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

В качестве решения авторы предлагают добавить в сеть CoordConv слои. Но прежде чем начать разговор про CoordConv разберемся с задачами и датасетом.

Читать дальше...
👍1
node2vec Масштабируемое обучение выделения особенностей для графов

arXiv:1607.00653

Графы дело известное и часто используется в компьютерных науках для представления данных. Одной из задач на графах является задача предсказания свойств вершин графа (например, если рассматривать социальные сети, то полезно уметь предсказывать интересы пользователей, опираясь на их свзяи с другими пользователями). Другая задача находить не учтённые связи между вершинами (в тех же социальных сетях определять, например, знакомы ли люди в реальной жизни). Один из подходов к решению задач такого рода это "вкладывание" вершин графа в некоторое многомерное векторное пространство и затем определение близости вершин исходного графа как близость соответствующих им векторов.

Авторы статьи как раз рассказывают о том, как такое вложение осуществить

Читать дальше...
Пример использования node2vec для датской дорожной сети

arXiv:1911.06217

Прошлый раз разбирались с алгоритмом node2vec и тренировкой функции, чтобы вкладывать вершины графа в векторное пространство, для переноса свойств вершин или поиска скрытых связей. В статье, которую хочется разобрать сегодня, авторы используют node2vec для работы с графом представляющим из себя дорожную сеть, а если более точно дорожную сеть Дании. Авторы вкладывают ее в векторное пространство особенностей алгоритмом node2vec и пытаются провесить скоростные ограничения и типы дорог с известных участков на неизвестные.

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

Читать дальше...
Поиск особых точек и их дескрипторов - обучение без учителя.

arXiv:1712.07629

В задачах SfM и не только, крайне полезно уметь выделять на изображении особые точки и приписывать им некий вектор-дескриптор. Тогда, сопоставив такие точки на двух изображениях, можно определить параметры преобразования гомографии одного изображения в другое, потом найти фундаментальную матрицу и т.п.

Раньше для поиска таких точек использовались разнообразные алгоритмы типа SIFT, SURF, FAST, ORB, а теперь, как и для многих других задач компьютерного зрения, предлагается применить нейронную сеть. Т.е. авторы хотят натренировать такую сеть, чтобы подав ей на вход изображение, на выходе мы бы получили набор особых точек этого изображения с приписанными этим точкам дескрипторами.

Как и обычно, проблема с нейронными сетями ровно одна - где взять соответствующий задаче датасет. И в данном случае разметка такого рода датасета, во-первых, сложноформализуемая задача, т.е. не всегда понятно какие именно точки на изображении следует размечать как особые. Во-вторых, требует огромное количество ресурсов. Поэтому статья, в первую очередь, интересна подходом, при помощи которого авторы умудряются натренировать сеть (и получить датасет), используя только синтетические данные.

Читать дальше...
D2-Net. Свёрточная нейронная сеть, для одновременного поиска и описания особых точек.

arXiv:1905.03561

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

Сегодня разберем еще одну статью, про поиск особых точек на картинке нейронными сетями.

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

Читать дальше...
S2DNet. Sparse-to-dense матчинг особых точек.

arXiv:2004.01673

И еще про особые точки. Однако, здесь концепция несколько отличается от двух предыдущих статей (SuprePoint, D2-Net). Если раньше мы брали две картинки, на каждой находили особые точки с дескриптором в каком-то векторном пространстве, а потом тем или иным способом "матчили" особые точки опираясь на их близость в пространстве дескрипторов и это называлось sparse-to-sparse методика. То в данной статье предлагается использовать несимметричный *sparse-to-dense" подход, а именно, вначале найти особые точки на одном изображении, а потом для каждой найденной точки искать соответствие на втором.

Читать дальше...
D2D. Выделение ключевых точек Сначала описать потом детектировать.

arXiv:2005.13605

Снова про особые точки на изображении. Мы разобрали две статьи sparse-to-sparse подхода: detect-then-describe (SuperPoint ) и detect-and-describe (D2-Net). Также рассмотрели sparse-to-dense подход S2DNet. Сегодня еще одна вариация из разряда sparse-to-sparse - на этот раз с подзаголовком describe-to-detect.

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

таксономия подходов к особым точкам, картинка из статьи

Читать дальше...
MegaDepth: Обучение предсказателя глубины по одной фотографии, на картинках из интернета

arXiv:1804.00607

В одной из предыдущих статей, в которой рассказывали про D2-Net фигурировал датасет, на котором собственно происходило обучение. Датасет называется MegaDepth и хотелось бы остановится на нем по-подробнее. В основном на том как его собрали и для чего использовали авторы исходной статьи.

Читать дальше...
Про инвариантность к сдвигам свёрточных сетей.

arXiv:2003.07064v2

То что свёрточные сети инвариантны к сдвигам картинки давно уже стало "общим местом" в работах по этому предмету. На самом деле, это крайне полезное свойство при классификации объекта на фотографии, где бы не был "котик" в левом или правом верхнем углу это не должно влиять на ответ классификатора. Если объект сдвигается на фотографии, то соответствующим образом сдвигаются и "ответы" свёрточных слоёв, а после всех свёрточных слоёв сейчас обычно принято ставить какой-то глобальный пулинг (либо усреднение, либо максимум), который тоже инвариантен к сдвигам.

Однако, есть одна тонкость, с которой авторы статьи решили разобраться, а именно поведение свёрточных слоёв на краях картинки.

Читать дальше...
Self-attention (cамовнимание?) в моделях компьютерного зрения

arXiv:1906.05909

Статья сильно не новая, но полезная. В ней attention подход переносится из сетей, применяемых для работы с текстами (перевода), на сети, которые призваны решать задачи компьютерного зрения.

Читать дальше...
Изображения как набор слов 16 х 16.

arXiv:2010.11929

Если здесь attention модель применялась "локально" и фактически self-attention преобразование служило заменой стандартной свёртки, то сегодня посмотрим на статью, в которой авторы попытались максимально перенести подход, предложенный для решения задачи перевода в компьютерное зрение.

Читать дальше...
Нейронная машина Тьюринга.

arXiv:1410.5401

Что такое машина Тьюринга все, наверное, знают. В статье рассказывается о некоем аналоге такой машины на базе нейронных сетей.

Т.е. разбирается вопрос можно ли обучить сеть выполнять какой-нибудь алгоритм, используя подход "обучения с учителем", т.е. на базе набора примеров. Не просто классифицировать или даже генерировать картинку-текст-видео, а именно, чтобы сама сеть "написала" программу по набору примеров, а потом на новых примерах её выполнила. Например, научилась копировать последовательность данных или сортировать их и т.п.

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

Читать дальше...
RNN, LSTM, GRU и другие рекуррентные нейронные сети.

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

Читать дальше...
NeRF. Представление сцен в виде нейронных полей излучения для синтеза изображений

arXiv:2003.08934

В данной статье предложен метод, который позволяет по набору снимков, получать новые изображения той же сцены из точек, для которых в исходном наборе не было фотографий. Для этого тренируется нейронная сеть, которая для каждой трехмерной точки сцены с координатами $(x, y, z)$ для направления $(theta, phi)$ восстанавливает "прозрачность" этой точки и излучение в нужном направлении. Такое представление сцены авторы называют neural radiance field (NeRF)

схема из статьи

Читать дальше...
GANcraft. 3D рендеринг Minecraft миров, обучение без учителя

arXiv:2104.07659

В данной статье предлагается механизм генерации фотореалистичных изображений 3Д мира созданного в таких программах как Minecraft, т.е. на вход поступает: "крупноблочное" 3Д представление мира, точка съемки и стиль генерации (например, зима-весна-лето, утро-день-вечер и т.п.) - на выходе "фотография". Важно, отметить, что фотографии нормально склеиваются, т.е. одно место снятое с разных точек генерирует консистентные изображения.

Читать дальше...
BARF. Bundle-Adjusting Neural Radiance Fields

arXiv:2104.06405

Еще одно продолжение NeRF, авторы этой статьи обращают внимание, что для получения хорошего представления 3D сцены при помощи нейронной сети, как это описано в NeRF необходимо, чтобы исходный набор изображений имел очень точные координаты камер. Однако в реальной ситуации далеко не всегда точные координаты места съёмки известны. Авторы предлагают способ тренировки нейронной сети типа NeRF, который может иметь дело с не вполне точными координатами камер.

NeRF vs BARF, изображение из статьи

Читать дальше...
Предсказание пробок на дорогах, используя пространственно-временную корреляцию и гибридный фреймворк глубокого обучения.

arXiv:1612.01022

Cтатья решает задачу предсказания пробок (в достаточно простой постановке). Есть дорога без разветвлений и перекрёстков. На этой дороге отмечен некий набор контрольных точек, в которых каждые 5 минут замеряется traffic volume

карта с контрольными точками, изображение из статьи

Надо на основе значения величины в контрольных точках в текущий момент и в прошлом, предсказать значение traffic volume в будущем.

Читать дальше...
Управляемый линейный модуль (Gated Linear Unit).

arXiv:1612.08083

На самом статья про построение модели языка с использованием управляемых свёрточных сетей (Gated Convolutional Networks), но мне область применения не очень интересна (плюс, думаю в этой области такой подход уже несколько устарел, там сейчас рулит BERT и вот это вот всё), а вот базовый блок, предложенный в данной статье хочется разобрать, чтобы потом можно было ссылаться. Потому что этот блок может быть использован при работе с временными последовательностями в качестве замены рекуррентных сетей.

Читать дальше...
Графы, лапласиан, кластера и т.п.

Графы и всевозможные алгоритмы с ними связанные, раньше входили в тройку лидеров по популярности в разнообразных книжках про программирование, наряду с алгоритмами сортировки и поиска. Теория графов область весьма обширная и пытаться объять её во всей полноте возможных задач в одной статье (или даже в нескольких статьях) совершенно бесполезно, народ пишет серьёзные толстые книжки и при этом тоже далеко не о всех возможных аспектах рассказывает.

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

Читать дальше...
👍1
Графы, процесс загрубления, кластеризация

В прошлый раз разобрали некоторые общие моменты связанные с графами, теперь поговорим подробнее про разбиение графов на части, т.е. кластеризацию. Мы не будем заходить в какие-то очень тонкие детали, возможно позже разберём конкретные статьи, пока хочется получить представление о двух вещах: первая - это загрубление графа - т.е. алгоритмы уменьшающие размер графа, сохраняя его структурные свойства, вторая - это собственно кластеризация графа (в основном будем разбирать спектральную кластеризацию).

Читать дальше...