Капсульные нейронные сети: что это такое, как это работает, архитектура и компоненты

Опубликовано: 2020-04-03

Как вы узнаете вещи? Если я напишу «Их» и «Тьер», вы прочитаете их оба как «Их»? Ваш ответ, вероятно, будет да.

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

Оглавление

Что такое капсульная нейронная сеть?

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

Капсулы в этих сетях определяют параметры признаков объекта. Предположим, что ваши капсульные сети должны идентифицировать лицо. Капсулы будут сосредоточены на определении того, присутствуют ли определенные черты лица или нет. Они не ограничиваются только этим. Они также проверят, как организованы черты конкретного лица. Таким образом, ваша система может идентифицировать лицо только тогда, когда капсулы определяют, что элементы этого лица расположены в правильном порядке.

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

Узнать больше: Нейронные сети: приложения в реальном мире

Как работают капсульные сети?

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

После этого капсулы выбирают родительскую капсулу. Они делают выбор посредством динамической маршрутизации, которую мы обсудим далее в этой статье. Как только они выбрали свою родительскую капсулу, они находят сумму векторов, сжатых между 0 и 1, когда они придерживаются своего направления. Вы выполняете сжатие, используя норму системы координат как вероятность существования и косинусное расстояние как меру согласия.

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

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

Читайте: 6 типов функции активации в нейронных сетях

Какова архитектура капсульной нейронной сети?

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

Второй уровень — это сеть PrimaryCaps, которая использует эти основные функции и находит среди них более подробные шаблоны. Например, он может видеть пространственные отношения между отдельными штрихами. Разные наборы данных имеют разное количество капсул в сети PrimaryCaps; например, набор данных MNIST содержит 32 капсулы. Третий уровень — это сеть DigitCaps, и количество присутствующих в ней капсул также варьируется. После этих слоев кодер имеет 16-мерный вектор, который поступает в декодер.

Декодер имеет три связанных слоя. Он берет 16-мерный вектор и пытается восстановить то же самое изображение с нуля с помощью имеющихся у него данных. Таким образом, сеть становится более надежной, поскольку она может делать прогнозы в соответствии со своими знаниями.

Читайте также: Рекуррентная нейронная сеть в Python.

Вычисления в CNN

Умножение матриц

Между первым слоем и вторым слоем мы выполняем умножение матриц. Это кодирует информацию о пространственных отношениях, а закодированная информация показывает вероятность классификации меток.

Скалярные веса

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

Динамическая маршрутизация

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

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

Сначала они принимают решение, является ли объект домом или нет, а затем отправляют свои прогнозы в капсулы высокого уровня. Если проекции крыши относительно стен совпадают с другими предсказаниями от низкоуровневых капсул, вывод говорит, что объект является домом. Это процесс маршрутизации по соглашению.

Межвекторная нелинейность

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

Последние мысли

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

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

Если вам интересно узнать больше о машинном обучении, ознакомьтесь с дипломом PG IIIT-B и upGrad в области машинного обучения и искусственного интеллекта, который предназначен для работающих профессионалов и предлагает более 450 часов тщательного обучения, более 30 тематических исследований и заданий, IIIT- Статус B Alumni, более 5 практических практических проектов и помощь в трудоустройстве в ведущих фирмах.

Что такое нейронные сети-трансформеры?

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

Что такое графические нейронные сети и как работают графы?

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

Отличаются ли капсулы от сетей капсул?

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