وبلاگ / شبکه‌های عصبی کپسولی: معماری هوشمند درک بصری ماشین‌ها

شبکه‌های عصبی کپسولی: معماری هوشمند درک بصری ماشین‌ها

شبکه‌های عصبی کپسولی: معماری هوشمند درک بصری ماشین‌ها

مقدمه

تصور کنید کودک شما برای اولین بار یک فنجان قهوه را می‌بیند. او می‌تواند همان فنجان را از هر زاویه‌ای که نگاه کند - از بالا، از پهلو، یا حتی وقتی کج شده - باز هم آن را به‌عنوان فنجان تشخیص دهد. اما شبکه‌های عصبی سنتی با این کار مشکل دارند. اگر یک شبکه عصبی کانولوشنال (CNN) را با تصاویر فنجان‌های عمودی آموزش دهید، ممکن است فنجان کج‌شده را به‌عنوان یک شیء کاملاً متفاوت تشخیص دهد.
یا در نظر بگیرید که یک سیستم تشخیص چهره را فریب دهید. با CNN های معمولی، می‌توانید با قرار دادن عکس یک چشم، یک بینی و یک دهان در موقعیت‌های کاملاً اشتباه روی یک کاغذ، سیستم را گول بزنید تا فکر کند این یک چهره واقعی است! این دقیقاً همان ضعفی است که شبکه‌های عصبی کپسولی می‌خواهند برطرف کنند.
شبکه‌های عصبی کپسولی (Capsule Networks یا CapsNets) توسط جفری هینتون - پدر یادگیری عمیق - و تیمش معرفی شدند تا یک مشکل اساسی را حل کنند: درک روابط فضایی بین اجزای یک شیء. این شبکه‌ها نه تنها می‌فهمند که یک شیء چیست، بلکه می‌دانند اجزای آن چگونه نسبت به هم قرار گرفته‌اند.

مشکل شبکه‌های کانولوشنال چیست؟

شبکه‌های عصبی کانولوشنال در بسیاری از کارها عملکرد فوق‌العاده‌ای دارند، اما یک نقص بنیادین دارند: عملیات Pooling. این عملیات که برای کاهش ابعاد داده استفاده می‌شود، اطلاعات مکانی دقیق را از بین می‌برد.
وقتی یک CNN تصویر صورت را پردازش می‌کند، می‌تواند تشخیص دهد که "دو چشم وجود دارد، یک بینی هست، یک دهان دیده می‌شود" - اما اینکه این اجزا چطور نسبت به هم چیده شده‌اند برایش اهمیت چندانی ندارد. همین موضوع باعث می‌شود CNN ها در برابر:
  • تغییرات زاویه دید: اگر شیء بچرخد یا از زاویه متفاوتی دیده شود
  • حملات مخالف (Adversarial Attacks): تغییرات کوچک در تصویر که برای انسان نامحسوس است اما شبکه را فریب می‌دهد
  • اشیاء غیرواقعی: ترتیب‌های نادرست اجزا که منطقاً نباید وجود داشته باشند
آسیب‌پذیر باشند.

کپسول‌ها چطور کار می‌کنند؟

در شبکه‌های عصبی سنتی، هر نرون یک عدد (اسکالر) خروجی می‌دهد که نشان می‌دهد یک ویژگی خاص وجود دارد یا نه. اما کپسول‌ها بردار خروجی می‌دهند.

ساختار یک کپسول

یک کپسول یک گروه از نرون‌هاست که با هم یک بردار تولید می‌کنند:
  • طول بردار: احتمال وجود یک ویژگی خاص را نشان می‌دهد (عددی بین 0 تا 1)
  • جهت بردار: ویژگی‌های آن شیء را کدگذاری می‌کند (مثل زاویه، اندازه، موقعیت، رنگ، بافت)
به‌عنوان مثال، یک کپسول مسئول تشخیص "چشم" ممکن است خروجی‌اش این اطلاعات باشد:

[0.9, 45°, 20px, مکان (150,80), رنگ قهوه‌ای، شکل بادامی]

این یعنی: "با احتمال 90% یک چشم وجود دارد که 45 درجه چرخیده، 20 پیکسل عرض دارد، در موقعیت (150,80) است، قهوه‌ای رنگ است و شکل بادامی دارد."

مکانیزم مسیریابی پویا (Dynamic Routing)

قلب تپنده CapsNets الگوریتم Routing by Agreement است. این مکانیزم تعیین می‌کند اطلاعات از کپسول‌های لایه پایین‌تر به کدام کپسول در لایه بالاتر ارسال شوند.
فرآیند به این شکل است:
  1. پیش‌بینی: هر کپسول لایه پایین پیش‌بینی می‌کند که کپسول لایه بالایی چه خروجی باید داشته باشد
  2. توافق: اگر پیش‌بینی یک کپسول با خروجی واقعی کپسول بالایی همخوانی داشته باشد، ارتباط قوی‌تر می‌شود
  3. وزن‌دهی: کپسول‌هایی که بیشترین توافق را دارند، وزن بالاتری می‌گیرند
این مکانیزم شبیه رای‌گیری دموکراتیک است: کپسول‌هایی که "موافق" هستند رأی‌شان بیشتر شمرده می‌شود.
برای درک بهتر، تصور کنید سه کپسول وجود دارد که "چشم چپ"، "چشم راست" و "بینی" را تشخیص داده‌اند. هر سه پیش‌بینی می‌کنند که باید یک کپسول "صورت" در لایه بالایی فعال شود. اگر این سه پیش‌بینی با هم سازگار باشند (مثلاً موقعیت‌ها و زوایای منطقی داشته باشند)، کپسول "صورت" فعال می‌شود. اما اگر چشم‌ها و بینی در موقعیت‌های غیرمنطقی باشند، توافقی وجود ندارد و کپسول صورت فعال نمی‌شود.

تابع فعال‌سازی Squashing

برای اینکه طول بردار کپسول بین 0 و 1 باشد (برای نشان دادن احتمال)، از تابعی به نام Squashing استفاده می‌شود:
v = (||s||² / (1 + ||s||²)) × (s / ||s||)
این تابع بردارهای کوتاه را به سمت صفر فشرده می‌کند و بردارهای بلند را نزدیک به 1 نگه می‌دارد، در حالی که جهت بردار حفظ می‌شود.

معماری CapsNet کلاسیک

معماری اصلی CapsNet که توسط Sabour و همکارانش در 2017 معرفی شد، برای پایگاه داده MNIST (تشخیص ارقام دست‌نویس) طراحی شده بود:

لایه‌های شبکه:

1. لایه کانولوشنال اولیه
  • 256 فیلتر 9×9 با stride=1
  • استخراج ویژگی‌های پایه مثل لبه‌ها و گوشه‌ها
2. لایه PrimaryCaps
  • 32 کانال از کپسول‌های 8 بعدی
  • هر کپسول یک ویژگی ساده را نشان می‌دهد
  • در مجموع 6.5 میلیون کپسول
3. لایه DigitCaps
  • 10 کپسول 16 بعدی (هر کدام یک رقم از 0 تا 9)
  • طول هر بردار احتمال وجود آن رقم
  • جهت بردار ویژگی‌های رقم (زاویه، ضخامت خط، و غیره)
4. شبکه بازسازی (Decoder)
  • یک شبکه عصبی کامل (Fully Connected) سه لایه
  • ورودی: بردار کپسول برنده (رقم تشخیص داده شده)
  • خروجی: بازسازی تصویر اصلی
  • هدف: مجبور کردن کپسول‌ها به یادگیری ویژگی‌های معنادار

تابع هزینه (Loss Function)

CapsNet از Margin Loss استفاده می‌کند:
L_k = T_k max(0, m⁺ - ||v_k||)² + λ(1 - T_k) max(0, ||v_k|| - m⁻)²
که در آن:
  • T_k = 1 اگر کلاس k وجود داشته باشد، در غیر این صورت 0
  • m⁺ = 0.9 (حداقل طول برای کلاس موجود)
  • m⁻ = 0.1 (حداکثر طول برای کلاس غیرموجود)
  • λ = 0.5 (وزن کلاس‌های غایب)
به علاوه، هزینه بازسازی هم اضافه می‌شود تا کپسول‌ها بیاموزند ویژگی‌های معناداری را کدگذاری کنند.

مزایای شگفت‌انگیز CapsNets

1. پایداری در برابر چرخش و تغییر زاویه

یکی از قدرتمندترین ویژگی‌های CapsNets توانایی تعمیم به تغییرات هندسی است. اگر شبکه را با تصاویر عمودی یک شیء آموزش دهید، می‌تواند آن شیء را حتی وقتی 45 درجه چرخیده یا از زاویه متفاوتی دیده می‌شود، تشخیص دهد.
این به این دلیل است که کپسول‌ها اطلاعات چرخش و موقعیت را در بردارهایشان ذخیره می‌کنند. وقتی شیء می‌چرخد، فقط جهت بردار تغییر می‌کند، نه وجود خود شیء.
مثال واقعی: در سیستم‌های خودروهای خودران، تشخیص تابلوهای راهنمایی از زوایای مختلف حیاتی است. CapsNets می‌توانند یک تابلو "ایست" را حتی وقتی از پهلو یا با زاویه دیده می‌شود، به‌درستی تشخیص دهند.

2. کارایی با داده کم

CNN های سنتی نیاز به میلیون‌ها تصویر برای آموزش دارند تا تمام زوایا و حالت‌های ممکن را ببینند. اما CapsNets می‌توانند با داده کمتری یاد بگیرند چون روابط فضایی را درک می‌کنند.
اگر CapsNet یک صورت را از جلو ببیند، می‌تواند استنتاج کند که همان صورت از پهلو چگونه به نظر می‌رسد - بدون اینکه نیاز باشد دیده باشد!
کاربرد در پزشکی: در تشخیص پزشکی با هوش مصنوعی، داده‌های برچسب‌گذاری شده کم است. CapsNets می‌توانند با تعداد کمتری تصویر MRI یا CT اسکن آموزش ببینند و تومورها را از زوایای مختلف تشخیص دهند.

3. مقاومت در برابر حملات مخالف

حملات مخالف (Adversarial Attacks) یکی از بزرگترین تهدیدات برای امنیت سیستم‌های هوش مصنوعی است. در این حملات، تغییرات بسیار کوچک در تصویر (که برای انسان نامرئی است) می‌تواند CNN را فریب دهد.
اما CapsNets چون به روابط فضایی اهمیت می‌دهند، دشوارتر فریب می‌خورند. نمی‌توانید فقط با تغییر چند پیکسل آن‌ها را گمراه کنید - باید کل ساختار فضایی را تغییر دهید که بسیار دشوارتر است.
مثال امنیتی: در سیستم‌های تشخیص چهره، مهاجمان سعی می‌کنند با ماسک‌های خاص یا الگوهای چاپی، سیستم را فریب دهند. CapsNets می‌توانند تشخیص دهند که روابط فضایی بین اجزای صورت طبیعی نیست.

4. قابلیت تفسیر بهتر

یکی از مشکلات بزرگ شبکه‌های عصبی عمیق این است که "جعبه سیاه" هستند - نمی‌دانیم دقیقاً چه یاد گرفته‌اند. اما در CapsNets، می‌توانید بردارهای کپسول را بررسی کنید و ببینید شبکه دقیقاً چه ویژگی‌هایی را تشخیص داده است.
با تغییر دادن ابعاد مختلف بردار یک کپسول و بازسازی تصویر، می‌توانید ببینید هر بُعد چه ویژگی‌ای را کدگذاری می‌کند (زاویه؟ ضخامت؟ اندازه؟).
این برای هوش مصنوعی توضیح‌پذیر بسیار مهم است، به‌خصوص در حوزه‌هایی مثل پزشکی که پزشک باید بداند چرا سیستم یک تشخیص خاص را داده است.

5. شناسایی اشیاء همپوشان

CNN ها معمولاً در تشخیص اشیایی که روی هم هستند یا همپوشانی دارند ضعیف هستند. اما CapsNets چون برای هر شیء کپسول جداگانه‌ای دارند، می‌توانند چندین شیء همپوشان را همزمان تشخیص دهند.
کاربرد در خرده‌فروشی: در فروشگاه‌های بدون صندوقدار (مثل Amazon Go)، دوربین‌ها باید بتوانند محصولات مختلف در سبد خرید را تشخیص دهند حتی وقتی روی هم قرار گرفته‌اند.

چالش‌ها و محدودیت‌های CapsNets

1. هزینه محاسباتی بالا

بزرگترین مشکل CapsNets سرعت پایین آن‌هاست. الگوریتم Routing by Agreement نیاز به چندین تکرار دارد و این فرآیند بسیار زمان‌بر است.
در حالی که یک CNN می‌تواند در کسری از ثانیه یک تصویر را پردازش کند، CapsNet ممکن است چند ثانیه طول بکشد. این برای کاربردهای بلادرنگ مثل خودروهای خودران مشکل‌ساز است.

2. نیاز به حافظه زیاد

کپسول‌ها به‌جای یک عدد، بردار تولید می‌کنند. این یعنی حافظه بیشتری نیاز است. برای تصاویر با رزولوشن بالا، تعداد کپسول‌ها به‌سرعت افزایش می‌یابد.

3. عملکرد در تصاویر پیچیده

در حالی که CapsNets در پایگاه‌های داده ساده مثل MNIST عملکرد عالی دارند، در پایگاه‌های پیچیده‌تر مثل ImageNet (میلیون‌ها تصویر با هزاران کلاس) هنوز به اندازه CNN های مدرن خوب نیستند.

4. عدم قابلیت مقیاس‌پذیری

افزودن لایه‌های بیشتر به CapsNet سخت است چون هزینه محاسباتی به‌صورت نمایی رشد می‌کند. در حالی که شبکه‌های عصبی عمیق معمولی می‌توانند صدها لایه داشته باشند.

کاربردهای واقعی CapsNets

1. تشخیص پزشکی

در پزشکی، CapsNets می‌توانند در موارد زیر استفاده شوند:
  • تشخیص تومور مغزی: از تصاویر MRI با زوایای مختلف
  • تشخیص سرطان پوست: از عکس‌های ضایعات پوستی
  • تحلیل اشعه ایکس قفسه سینه: تشخیص بیماری‌های ریوی
مزیت اصلی این است که پزشک می‌تواند ببیند شبکه دقیقاً به چه ویژگی‌هایی توجه کرده (مثل شکل، اندازه، موقعیت تومور).

2. تشخیص اسناد و مدارک

در سیستم‌های تشخیص هویت، CapsNets می‌توانند:
  • گذرنامه‌های جعلی را تشخیص دهند
  • متون دست‌نویس را بخوانند
  • امضاها را تأیید کنند
حتی اگر سند کج اسکن شده یا از زاویه عکس گرفته شده باشد.

3. رباتیک و بینایی ماشین

در رباتیک، ربات‌ها باید اشیا را از زوایای مختلف تشخیص دهند:
  • ربات‌های انبارداری: چیدن و برداشتن اقلام
  • ربات‌های جراحی: تشخیص اندام‌ها و ابزارها
  • ربات‌های خانگی: شناسایی اشیای روزمره

4. واقعیت افزوده (AR)

در واقعیت افزوده، CapsNets می‌توانند:
  • اشیای واقعی را از زوایای مختلف تشخیص دهند
  • موقعیت و جهت اشیا را دقیق محاسبه کنند
  • اشیای مجازی را به‌درستی روی اشیای واقعی بگذارند

5. تشخیص اقلام در تجارت الکترونیک

فروشگاه‌های آنلاین می‌توانند از CapsNets برای:
  • جستجوی بصری محصولات
  • توصیه محصولات مشابه
  • تشخیص محصولات از عکس‌های کاربران
استفاده کنند، حتی اگر عکس از زاویه بد یا نور ضعیف گرفته شده باشد.

پیشرفت‌های اخیر در CapsNets

EM Routing

در 2018، هینتون الگوریتم جدیدی به نام EM Routing (Expectation-Maximization) معرفی کرد که سریع‌تر از Routing by Agreement است.
این الگوریتم از روش‌های آماری برای یافتن توافق استفاده می‌کند و می‌تواند به شبکه‌های عمیق‌تر مقیاس داده شود.

Self-Attention Routing

محققان اخیراً مکانیزم Attention را در CapsNets پیاده‌سازی کرده‌اند. این رویکرد از موفقیت مدل‌های Transformer الهام گرفته.
Self-Attention Routing هم سریع‌تر است و هم دقت بهتری دارد.

Capsules برای داده‌های سری زمانی

CapsNets دیگر فقط برای تصویر نیستند! محققان آن‌ها را برای پیش‌بینی سری‌های زمانی مثل قیمت سهام، الگوهای آب‌وهوا، و سیگنال‌های پزشکی تطبیق داده‌اند.

Efficient CapsNets

تلاش‌های زیادی برای کاهش هزینه محاسباتی انجام شده:
  • Fast Routing: استفاده از تقریب‌های ریاضی
  • Sparse Capsules: فعال کردن فقط کپسول‌های ضروری
  • Quantized CapsNets: استفاده از دقت کمتر (مثل 8-bit به‌جای 32-bit)
این بهبودها CapsNets را برای دستگاه‌های موبایل و اینترنت اشیا قابل استفاده‌تر می‌کند.

3D Capsules

برای کاربردهایی مثل پزشکی (CT scan)، ربات‌یک، و واقعیت مجازی، CapsNet های سه‌بعدی توسعه داده شده‌اند که می‌توانند با داده‌های حجمی کار کنند.

مقایسه CapsNet با معماری‌های دیگر

CapsNet در مقابل CNN

ویژگی CNN CapsNet
درک روابط فضایی ضعیف عالی
سرعت خیلی سریع کند
نیاز به داده زیاد کمتر
مقاومت به چرخش ضعیف عالی
مقیاس‌پذیری عالی محدود
استفاده از حافظه کم زیاد

CapsNet در مقابل Vision Transformers

Vision Transformers (ViT) در سال‌های اخیر به رقیب قدرتمندی برای هر دو CNN و CapsNet تبدیل شده‌اند. ViT ها از مکانیزم Attention استفاده می‌کنند و می‌توانند روابط بلندمدت در تصویر را یاد بگیرند.
مزایای ViT: سرعت بیشتر، مقیاس‌پذیری بهتر، عملکرد عالی در پایگاه‌های بزرگ
مزایای CapsNet: درک بهتر روابط فضایی، نیاز به داده کمتر، قابل تفسیرتر

CapsNet و Graph Neural Networks

شبکه‌های عصبی گراف (GNN) هم مثل CapsNets به روابط بین اجزا اهمیت می‌دهند. برخی محققان CapsNets را به‌عنوان نوعی GNN برای داده‌های تصویری می‌بینند.
ترکیب این دو رویکرد می‌تواند شبکه‌های قدرتمندتری بسازد.

پیاده‌سازی CapsNet

برای کسانی که می‌خواهند CapsNet را امتحان کنند، کتابخانه‌های TensorFlow، PyTorch و Keras پشتیبانی خوبی دارند.

نمونه کد ساده در PyTorch

python
import torch
import torch.nn as nn
import torch.nn.functional as F

class PrimaryCaps(nn.Module):
def __init__(self, num_capsules=8, in_channels=256, out_channels=32):
super(PrimaryCaps, self).__init__()
self.capsules = nn.ModuleList([
nn.Conv2d(in_channels, out_channels, kernel_size=9, stride=2)
for _ in range(num_capsules)
])
def forward(self, x):
outputs = [capsule(x).view(x.size(0), -1, 1) for capsule in self.capsules]
outputs = torch.cat(outputs, dim=-1)
return self.squash(outputs)
def squash(self, tensor):
squared_norm = (tensor ** 2).sum(dim=-1, keepdim=True)
scale = squared_norm / (1 + squared_norm)
return scale * tensor / torch.sqrt(squared_norm + 1e-8)
class DigitCaps(nn.Module):
def __init__(self, num_capsules=10, num_routes=32 * 6 * 6,
in_channels=8, out_channels=16):
super(DigitCaps, self).__init__()
self.num_routes = num_routes
self.num_capsules = num_capsules
self.W = nn.Parameter(torch.randn(1, num_routes, num_capsules,
out_channels, in_channels))
def forward(self, x, num_iterations=3):
batch_size = x.size(0)
x = x.unsqueeze(2).unsqueeze(4)
u_hat = torch.matmul(self.W, x).squeeze(4)
b = torch.zeros(batch_size, self.num_routes, self.num_capsules, 1)
for iteration in range(num_iterations):
c = F.softmax(b, dim=2)
s = (c * u_hat).sum(dim=1, keepdim=True)
v = self.squash(s)
if iteration < num_iterations - 1:
agreement = torch.matmul(u_hat, v.transpose(3, 4))
b = b + agreement
return v.squeeze(1)
def squash(self, tensor):
squared_norm = (tensor ** 2).sum(dim=-1, keepdim=True)
scale = squared_norm / (1 + squared_norm)
return scale * tensor / torch.sqrt(squared_norm + 1e-8)
این کد نمونه نشان می‌دهد چگونه لایه‌های PrimaryCaps و DigitCaps پیاده‌سازی می‌شوند.

ابزارها و منابع یادگیری

برای شروع کار با CapsNets:
  1. کد اصلی Hinton: مقاله اصلی کد کامل TensorFlow دارد
  2. PyTorch implementations: چندین پیاده‌سازی متن‌باز در GitHub موجود است
  3. دوره‌های آنلاین: دوره‌های یادگیری عمیق که CapsNets را پوشش می‌دهند
  4. Kaggle notebooks: مثال‌های عملی روی داده‌های واقعی
برای کسانی که می‌خواهند به‌طور جدی‌تر وارد شوند، پیشنهاد می‌کنم با Google Colab شروع کنید که GPU رایگان ارائه می‌دهد.

آینده CapsNets چگونه است؟

ترکیب با تکنولوژی‌های نوین

محققان در حال کار روی ترکیب CapsNets با:

کاربردهای آینده

در آینده، CapsNets می‌توانند در این حوزه‌ها انقلاب ایجاد کنند:
1. خودروهای خودران: تشخیص دقیق‌تر عابران پیاده، وسایل نقلیه و تابلوها از هر زاویه‌ای
2. جراحی رباتیک: کمک به ربات‌های جراح برای تشخیص اندام‌ها و بافت‌ها در هر موقعیتی
3. واقعیت مجازی/افزوده: ردیابی دقیق‌تر حرکات و تعامل طبیعی‌تر با اشیای مجازی
4. تشخیص زودهنگام بیماری‌ها: تحلیل تصاویر پزشکی با دقت بالاتر و نیاز به داده کمتر
5. امنیت سایبری: تشخیص الگوهای حمله با توجه به ساختار و روابط آن‌ها

چالش‌های باقی‌مانده

برای اینکه CapsNets به جریان اصلی هوش مصنوعی بپیوندند، باید این مشکلات حل شوند:
  1. سرعت: باید راه‌هایی برای افزایش سرعت یافت شود
  2. مقیاس‌پذیری: باید بتوانند به شبکه‌های بزرگتر مقیاس داده شوند
  3. استانداردسازی: نیاز به معماری‌های استاندارد و best practices
  4. ابزارها: کتابخانه‌های بهینه‌تر و user-friendly تر
  5. آموزش: منابع آموزشی بیشتر برای توسعه‌دهندگان

نکات کلیدی برای یادگیری CapsNets

اگر می‌خواهید با CapsNets کار کنید، این نکات را در نظر بگیرید:
1. پایه محکم: ابتدا شبکه‌های عصبی کانولوشنال را به‌خوبی یاد بگیرید
2. ریاضیات: درک جبر خطی و بردارها ضروری است
3. شروع کوچک: با پیاده‌سازی روی MNIST شروع کنید، سپس به داده‌های پیچیده‌تر بروید
4. تجربه عملی: کد بنویسید و تجربه کنید - نظری خواندن کافی نیست
5. جامعه علمی: مقالات جدید را دنبال کنید و در بحث‌های علمی شرکت کنید

جمع‌بندی

شبکه‌های عصبی کپسولی نشان می‌دهند که هنوز راه‌های زیادی برای بهبود یادگیری ماشین وجود دارد. ایده اصلی CapsNets - درک روابط فضایی - بسیار قدرتمند است و می‌تواند در آینده تأثیر بزرگی داشته باشد.
اگرچه CapsNets هنوز چالش‌هایی دارند، اما پتانسیل فوق‌العاده‌ای برای حل مشکلاتی که CNN ها نمی‌توانند حل کنند، دارند. با پیشرفت سخت‌افزار و الگوریتم‌های بهینه‌تر، احتمالاً در آینده نزدیک شاهد کاربردهای گسترده‌تر CapsNets خواهیم بود.
برای کسانی که در حوزه بینایی ماشین و یادگیری عمیق کار می‌کنند، آشنایی با CapsNets می‌تواند افق‌های جدیدی باز کند. این تکنولوژی ممکن است کلید حل برخی از چالش‌های اساسی در هوش مصنوعی باشد.
آیا CapsNets جایگزین کامل CNN ها خواهند شد؟ شاید نه. اما می‌توانند ابزار قدرتمندی در کنار سایر تکنیک‌ها باشند. آینده احتمالاً متعلق به معماری‌های هیبریدی است که بهترین ویژگی‌های CapsNets، Transformers، و سایر نوآوری‌ها را ترکیب می‌کنند.
حالا زمان آن رسیده که شما هم این تکنولوژی را امتحان کنید و ببینید چه معجزاتی می‌توانید با آن بسازید!