حافظه پراکنده توزیع شده (Sparse Distributed Memory) یک مدل ریاضی از حافظه بلند مدت انسان است که توسط پنتی کانروا در سال 1988 زمانی که او در مرکز تحقیقات ایمز ناسا بود معرفی شد.[1]
این حافظه، چه در تئوری و چه در آزمایش، رفتارهایی را نشان میدهد که قبلاً توسط ماشینها به آنها دسترسی نداشتند - مانند تشخیص سریع چهرهها یا بوها، کشف ارتباطات جدید بین ایدههای به ظاهر نامرتبط، و غیره. حافظه پراکنده توزیع شده برای ذخیره و بازیابی مقادیر زیاد (21000 بیت) اطلاعات بدون تمرکز بر دقت، اما بر شباهت اطلاعات استفاده میشود [2]. برخی از برنامههای کاربردی اخیر در مسیریابی ربات[3] و دستکاری ربات مبتنی بر تجربه وجود دارد.[4]
اصل کلی
این یک حافظه با دسترسی تصادفی تعمیم یافته (RAM) برای کلمات دودویی طولانی (مثلاً 1000 بیتی) است. این کلمات هم به عنوان آدرس و هم به عنوان داده برای حافظه عمل میکنند. ویژگی اصلی حافظه حساسیت به شباهت است. این بدان معنی است که یک کلمه را میتوان نه تنها با دادن آدرس نوشتن اصلی، بلکه با دادن یک آدرس نزدیک به آن، همانطور که با تعداد بیتهای نامتناسب (یعنی فاصله همینگ بین آدرسهای حافظه) اندازهگیری میشود، بازخوانی کرد.[1]
SDM تبدیل از فضای منطقی به فضای فیزیکی را با استفاده از نمایش دادههای توزیع شده و ذخیرهسازی، مشابه فرآیندهای رمزگذاری در حافظه انسان، پیادهسازی میکند [5]. مقدار مربوط به یک آدرس منطقی در بسیاری از آدرس های فیزیکی ذخیره میشود. این روش ذخیرهسازی قوی است و قطعی نیست. یک سلول حافظه مستقیما آدرس دهی نمیشود. اگر دادههای ورودی (آدرسهای منطقی) تا حدی آسیب ببینند، ما همچنان میتوانیم دادههای خروجی صحیح را دریافت کنیم.[6]
تئوری حافظه از نظر ریاضی کامل است [1] و توسط شبیهسازی کامپیوتری تایید شده است. از مشاهدات ناشی میشود که فواصل بین نقاط یک فضای با ابعاد بالا شبیه روابط نزدیکی بین مفاهیم در حافظه انسان است. این نظریه همچنین از این جهت عملی است که حافظههای مبتنی بر آن را میتوان با عناصر حافظه با دسترسی تصادفی معمولی پیادهسازی کرد [7].
تعریف
حافظه انسان تمایل دارد که خاطرات را بر اساس شباهتهایی که بین آنها وجود دارد جمع کند (اگرچه ممکن است به هم مرتبط نباشند)، مانند "ماشین آتش نشانی قرمز و سیب قرمز است" [8]. حافظه توزیعشده پراکنده یک نمایش ریاضی از حافظه انسان است و از فضای با ابعاد بالا برای کمک به مدلسازی مقادیر زیادی از حافظه که شبیه شبکه عصبی انسان است استفاده میکند.[9][10] ویژگی مهم چنین فضاهای با ابعاد بالا این است که دو بردار به طور تصادفی انتخاب شده نسبتاً دور از یکدیگر هستند، به این معنی که آنها همبستگی ندارند [11]. SDM را میذتوان یک تحقق هش حساس به محلی در نظر گرفت.
ایده زیربنایی پشت یک SDM، نگاشت یک حافظه باینری عظیم بر روی مجموعه کوچکتری از مکانهای فیزیکی، به اصطلاح مکانهای سخت است. به عنوان یک دستورالعمل کلی، آن مکان های سخت باید به طور یکنواخت در فضای مجازی توزیع شوند تا وجود فضای مجازی بزرگتر را تا حد امکان دقیق تقلید کنند. هر دادهای به صورت توزیع شده توسط مجموعهای از مکانهای سخت ذخیره میشود و با میانگینگیری آن مکانها بازیابی میشود. بنابراین، یادآوری ممکن است کامل نباشد، دقت بستگی به اشباع حافظه دارد.
پیشنهاد کانروا بر چهار ایده اساسی استوار است:[12]
۱) فضای بولی {0, 1}n، یا 2n امتیاز در 100<n<105، ویژگیهایی را نشان میدهد که شبیه تصورات شهودی انسان از روابط بین مفاهیم است. این بدان معنی است که ذخیره دادهها به عنوان نقاطی از فضای ذکر شده که در آن هر آیتم حافظه به عنوان یک بردار n بیت ذخیره میشود، منطقی است.
۲) نورونهایی با n ورودی میتوانند به عنوان رمزگشای آدرس یک حافظه با دسترسی تصادفی استفاده شوند
۳) اصل اتحاد: دادههای ذخیره شده در حافظه را میتوان به عنوان آدرسهای همان حافظه استفاده کرد. فاصله بین دو نقطه اندازهگیری شباهت بین دو آیتم حافظه است. هر چه نقاط نزدیکتر باشند، بردارهای ذخیره شده مشابهتر هستند.
۴) اگر دادهها به صورت توالی از رویدادها سازماندهی شوند، زمان را میتوان به عنوان تابعی از محل ذخیره دادهها در حافظه ردیابی کرد.
فضای دوتایی N
SDM با بردارهای n بعدی با مولفههای باینری کار میکند. بسته به زمینه، بردارها نقاط، الگوها، آدرسها، کلمات، آیتمهای حافظه، دادهها یا رویدادها نامیده میشوند. این بخش بیشتر در مورد ویژگیهای فضای برداری N = {0, 1}n است عددی از ابعاد فضا را در نظر بگیرید. تعداد نقاط، یا آیتمهای حافظه ممکن است، سپس 2n این عدد را با N نشان میدهیم و از N و 2n همچنین برای خود فضا قرار دارد استفاده میکنیم [6].
مفاهیم مربوط به فضای N: {0,1}n
· مبدأ، 0: نقطه با تمام مختصات 0 مبدا نامیده میشود، 0 = 000...00.
· متمم، 'x: متمم، یا مقابل نقطه x، n-تاپلی است که دارای یکهایی است که x صفر دارد و بالعکس.
· Norm, |x|: هنجار نقطه x تعداد یکها در بازنمایی دودویی آن است.
· تفاوت، x – y: تفاضل دو نقطه x و y n-تاپلی است که دارای یکهایی است که x و y متفاوت هستند و در جای دیگر صفر است. بیتی «انحصاری یا» است: x − y = x ⊕ y. تفاوت تغییر میکند: x − y = y – x.
· فاصله، d(x,y) فاصله بین دو نقطه x و y تعداد ابعادی است که x و y در آنها متفاوت است. به آن فاصله هامینگ میگویند (ریشه دوم آن فاصله اقلیدسی است) و در بیت بیان میشود. فاصله هنجار تفاوت است: d(x, y) = |x − y|
· بین x:y:z: نقطه y بین نقاط x و z است اگر و فقط اگر فاصله x تا z مجموع فواصل x تا y و از y تا z باشد. یعنی x:y:z ⇔ d(x,z) = d(x,y) + d(y,z). به راحتی میتوان دید که هر بیت از یک نقطه در بین، کپی بیت مربوطه یک نقطه پایانی است.
· متعامد، x ⊥ y: نقطه x بر نقطه y متعامد است، یا این دو عمود یا بیتفاوت هستند، اگر و فقط اگر فاصله بین این دو نصف تعداد ابعاد باشد: x ⊥ y ⇔ d(x, y) = n/2 . فاصله n/2 فاصله بیتفاوتی فضای N نامیده میشود. اگر x متعامد بر y باشد، متمم 'y نیز متعامد است (x در نیمه راه بین y و 'y است).
· دایره، O(r,x) دایرهای با شعاع r و مرکز x مجموعه نقاطی است که حداکثر r بیت از x قرار دارند: O(r,x) = {y | d(x, y) ≤ r}.
ویژگیهای فضای N: {0, 1}n
فضای N را میتوان با رئوس مکعب واحد در فضای اقلیدسی n بعدی نشان داد. رئوس روی سطح یک کره n بعدی با شعاع (اقلیدسی متریک) √n/2 قرار دارند. این باعث تشبیه کره میشود. فضایی را کروی اگر مینامیم
۱) هر نقطه x یک نقطه مقابل ‘x منحصر به فرد دارد،
۲) کل فضا بین هر نقطه x و نقطه مقابل آن ‘x و
۳) همه نقاط "برابر" هستند (به این معنی که برای هر دو نقطه x و y فاصلهای وجود دارد که خودمورفیسم[1] فضا را حفظ میکند که x را به y نگاشت میکند، به طوری که از هر یک از نقاط آن فضا یکسان به نظر میرسد).
سطح یک کره (در فضای سه بعدی اقلیدسی) به وضوح کروی است. بر اساس تعریف، N نیز کروی است، زیرا y ⊕ x ⊕ (…) یک اتومورفیسم است که x را به y نگاشت میکند. از آنجا که N کروی است، مفید است که آن را به عنوان سطح کرهای با محیط 2n در نظر بگیریم. تمام نقاط N به طور مساوی به عنوان نقطه مبدا واجد شرایط هستند و یک نقطه و مکمل آن مانند دو قطب در فاصله n از یکدیگر هستند که کل فضای بین آنها وجود دارد. نقاط بین دو قطب و عمود بر آنها مانند خط استوا هستند.
توزیع فضای N
تعداد نقاطی که دقیقاً d بیت از یک نقطه دلخواه x هستند (مثلاً از نقطه 0) تعداد راههایی برای انتخاب d مختصات از مجموع n مختصات است و بنابراین با ضریب دوجملهای به دست میآید:
بنابراین توزیع N توزیع دو جملهای با پارامترهای n و p است که p = 1/2 است. میانگین توزیع دو جملهای n/2 و واریانس آن n/4 است. این تابع توزیع با N(d) نشان داده میشود. توزیع نرمال F با میانگین n/2 و انحراف معیار √n/2 تقریب خوبی برای آن است: N(d) = Pr{d(x, y) ≤ d} ≅ F{(d − n /2)/√n/4}
گرایش به متعامد
ویژگی برجسته N این است که بیشتر آن تقریباً در فاصله میانگین (بی تفاوتی) n/2 از یک نقطه (و مکمل آن) قرار دارد. به عبارت دیگر، بیشتر فضا تقریباً به هر نقطه معین متعامد است، و هر چه n بزرگتر باشد، این اثر بارزتر است.
به عنوان شبکه عصبی
SDM را میتوان به عنوان یک پسوند قابل آدرس دهی از یک حافظه کلاسیک با دسترسی تصادفی (RAM) یا به عنوان نوع خاصی از شبکه عصبی پیشخور سه لایه در نظر گرفت. تغییرات SDM اصلی در RAM عبارتند از [13]:
· SDM فاصله هامینگ بین آدرس مرجع و هر آدرس مکان را محاسبه میکند. برای هر فاصلهای که کمتر یا مساوی شعاع داده شده باشد، مکان مربوطه انتخاب میشود.
· حافظه با شمارندهها (که در آن n تعداد مکانها و m طول دادههای ورودی است) به جای عناصر ذخیرهسازی تک بیتی نشان داده میشود.
· نوشتن در حافظه به جای رونویسی به صورت زیر است:
o اگر i-bit دادههای ورودی 1 باشد، شمارندههای مربوطه (شمارندهها در مکانهای انتخاب شده (ردیفها) و در ستونهای i-ام) افزایش مییابد.
o اگر i-bit دادههای ورودی 0 باشد، شمارندههای مربوطه کاهش مییابد.
· خواندن (یا یادآوری) از حافظه مشابه است:
o محتویات مکانهای انتخاب شده به صورت ستونی خلاصه میشود.
o هر مجموع آستانه است. اگر مجموع بزرگتر یا مساوی با مقدار آستانه باشد، بیت خروجی مربوطه روی 1 تنظیم می شود، در صورت مخالف آن پاک میشود. توجه داشته باشید که اگر بردارهای ورودی آموزش به بردارهای متعامد بسته باشند، ممکن است آستانهها صفر باشند.
مدل نورونی
یک توصیف ایدهآل از نورون به شرح زیر است: یک نورون دارای یک جسم سلولی با دو نوع شاخه است: دندریت و آکسون. سیگنالهای ورودی از نورونهای دیگر را از طریق دندریتها دریافت میکند، آنها را ادغام میکند (جمع میکند) و سیگنال خروجی (الکتریکی) خود را تولید میکند که از طریق آکسون به نورونهای بیرونی ارسال میشود. نقاط تماس الکتریکی بین نورونها سیناپس نامیده میشود.
هنگامی که یک نورون سیگنال تولید میکند در حال شلیک است و پس از شلیک باید قبل از شلیک دوباره بهبود یابد. اهمیت نسبی سیناپس برای شلیک نورون، وزن سیناپسی (یا ضریب ورودی) نامیده میشود. دو نوع سیناپس وجود دارد: تحریکی که نورون را تحریک میکند و مهاری که مانع شلیک میشود. نورون با توجه به انواع سیناپسهایی که آکسون آن میسازد، تحریککننده یا مهارکننده است.[14]
زمانی که مجموع ورودیها از یک آستانه خاص فراتر رود، یک نورون فعال میشود. هر چه آستانه بالاتر باشد، مهمتر است که سیناپسهای تحریکی ورودی داشته باشند در حالی که سیناپسهای بازدارنده ورودی ندارند.[15] اینکه یک نورون بازیابی شده واقعا شلیک میکند یا نه بستگی به این دارد که آیا ورودی تحریکی کافی (فراتر از آستانه) و نه ورودی بازدارنده زیادی در یک دوره معین دریافت کرده است.
مدل رسمی نورون مفروضات سادهتری را ایجاد میکند.[16] یک نورون n ورودی با یک تابع آستانه خطی مدلسازی میشود:
F: {0, 1}n - > {0, 1} به شرح زیر است:
برای i = 0, …, n-1 که در آن n تعداد ورودیها است، اجازه دهید Ft خروجی در زمان t باشد: Ft ∈ {0,1} و اجازه دهید xi,t ورودی iام در زمان t باشد. xi,t ∈ {0, 1}. اجازه دهید wi وزن ورودی i باشد و اجازه دهید c آستانه باشد.
مجموع وزنی ورودیها در زمان t با تعریف میشود
سپس خروجی نورون در زمان t به عنوان یک تابع بولی تعریف میشود:
جایی که Ft=1 به این معنی است که نورون در زمان t شلیک میکند و Ft=0 که شلیک نمیکند، یعنی برای اینکه نورون شلیک کند، مجموع وزنی باید به آستانه برسد یا از آن فراتر رود. ورودیهای تحریکی مجموع را افزایش میدهند و ورودیهای بازدارنده آن را کاهش میدهند.
نورون به عنوان رمزگشای آدرس
تز کلیدی کانروا [1] این است که نورونهای خاصی میتوانند ضرایب ورودی و آستانههای خود را در طول کل زندگی یک ارگانیسم ثابت کنند و به عنوان رمزگشای آدرس مورد استفاده قرار گیرند که در آن ضرایب ورودی n (الگویی که نورونها راحتتر به آن پاسخ میدهند) آدرس حافظه n بیتی را تعیین میکند، و آستانه، اندازه الگوی آدرس مشابه نورون را کنترل میکند.
این مکانیسم مکمل سیناپسهای قابل تنظیم یا وزنهای قابل تنظیم در یک شبکه عصبی (یادگیری همگرایی پرسپترون) است، زیرا این مکانیسم دسترسی ثابت یک چارچوب مرجع دائمی است که به شما امکان میدهد سیناپسهایی را انتخاب کنید که اطلاعات در آنها ذخیره میشود و تحت مجموعه شرایط خاص از آنها بازیابی میشود. علاوه بر این، یک رمزگذاری از شرایط فعلی به عنوان یک آدرس عمل میکند.
آدرس a یک نورون با ضرایب ورودی w جایی که w0, .., wn1 به عنوان یک الگوی ورودی n بیتی تعریف میشود که مجموع وزنی را به حداکثر میرساند. حداکثر زمانی اتفاق میافتد که ورودیهای بازدارنده صفر و ورودیهای تحریکی یک باشند. بیت iام آدرس این است:
با فرض اینکه وزنها غیر صفر هستند)
حداکثر مجموع وزنی S(w) مجموع همه ضرایب مثبت است:
و حداقل جمع وزنی s(w) با نقطه مقابل آدرس نورون a` مطابقت دارد:
وقتی آستانه c در محدوده باشد s(w) < c < S(w) خروجی نورون برای برخی از آدرسها (الگوهای ورودی) 0 و برای برخی دیگر 1 است. اگر آستانه بالاتر از S باشد، خروجی همیشه 0 است، اگر زیر s باشد، خروجی همیشه 1 است. بنابراین با انتخاب مناسب آستانه، یک نورون فقط به یک آدرس پاسخ میدهد. هنگامی که آستانه S است (حداکثر برای مجموع وزنی)، نورون فقط به آدرس خود پاسخ میدهد و مانند رمزگشای آدرس یک حافظه با دسترسی تصادفی معمولی عمل میکند.
محل حافظه
SDM برای مقابله با الگوهای آدرس طراحی شده است که فضای آدرس عظیمی را در بر میگیرد (به ترتیب 21000). SDM فرض میکند که الگوهای آدرس که در واقع موقعیتهای فیزیکی مورد علاقه را توصیف میکنند، به طور پراکنده در سراسر فضای ورودی پراکنده شدهاند. رزرو مکان فیزیکی جداگانه مربوط به هر ورودی ممکن غیرممکن است. SDM تنها تعداد محدودی مکان فیزیکی یا سخت را پیادهسازی میکند. مکان فیزیکی مکان حافظه (یا سخت) نامیده میشود.[7]
هر مکان سختی با دو مورد مرتبط است:
o یک آدرس سخت ثابت، که آدرس N-bit مکان است
o یک بخش محتویات که عرض آن M بیت است و میتواند الگوهای داده M-bit متعددی را که در محل نوشته شدهاند جمعآوری کند. بخش محتویات ثابت نیست. توسط الگوهای داده نوشته شده در حافظه اصلاح میشود.
در SDM یک کلمه را میتوان با نوشتن آن در یک مکان ذخیرهسازی آزاد و در عین حال ارائه مکان با رمزگشای آدرس مناسب در حافظه ذخیره کرد. یک نورون به عنوان رمزگشای آدرس، یک مکان را بر اساس شباهت آدرس مکان به نشانه بازیابی انتخاب میکند. برخلاف ماشینهای تورینگ معمولی SDM از محاسبات موازی توسط رمزگشاهای آدرس استفاده میکند. صرف دسترسی به حافظه به عنوان محاسبات در نظر گرفته میشود، که مقدار آن با اندازه حافظه افزایش مییابد [1].
الگوی آدرس
یک بردار N-bit که برای نوشتن و خواندن از حافظه استفاده میشود. الگوی آدرس یک توصیف کد شده از یک وضعیت محیطی است. (به عنوان مثال N = 256.)
الگوی داده
یک بردار M بیت که هدف عملیات نوشتن و خواندن است. مانند الگوی آدرس، توصیفی کدگذاری شده از یک وضعیت محیطی است. (به عنوان مثال M = 256.)
نوشتن
نوشتن عملیات ذخیره یک الگوی داده در حافظه با استفاده از یک الگوی آدرس خاص است. در طول نوشتن، ورودی حافظه شامل یک الگوی آدرس و یک الگوی داده است. الگوی آدرس برای انتخاب مکانهای حافظه سخت استفاده میشود که آدرسهای سخت آنها در فاصله قطعی مشخصی از الگوی آدرس قرار دارند. الگوی داده در هر یک از مکانهای انتخاب شده ذخیره میشود.
خواندن
خواندن عملیات بازیابی یک الگوی داده از حافظه با استفاده از یک الگوی آدرس خاص است. در طول خواندن، یک الگوی آدرس برای انتخاب تعداد معینی از مکانهای حافظه سخت (درست مانند هنگام نوشتن) استفاده میشود. محتویات مکانهای انتخاب شده به صورت بیتی جمع شده و آستانهای برای استخراج الگوی داده M-bit میباشد. این به عنوان خروجی خوانده شده از حافظه عمل میکند.
زنجیر اشارهگر[2]
همه موارد در یک لیست (یا آرایه) از اشاره گرها به مکانهای حافظه پیوند داده میشوند و در RAM ذخیره میشوند. هر آدرس در یک آرایه به یک خط جداگانه در حافظه اشاره میکند. آن خط در صورتی که مشابه خطوط دیگر باشد برگردانده میشود. نورونها بهعنوان رمزگشا و رمزگذار آدرس مورد استفاده قرار میگیرند، شبیه به روشی که نورونها در مغز کار میکنند و مواردی را از آرایه که مطابقت دارند یا مشابه هستند، برمیگردانند.
فاصله بحرانی[3]
مدل حافظه کانروا مفهومی از یک نقطه بحرانی دارد: قبل از این نقطه، آیتم ذخیره شده قبلی را میتوان به راحتی بازیابی کرد. اما فراتر از این نقطه، یک مورد قابل بازیابی نیست. کانروا به طور روشمند این نقطه را برای مجموعه خاصی از پارامترهای (ثابت) محاسبه کرده است. فاصله بحرانی متناظر یک حافظه پراکنده توزیع شده را میتوان تقریباً با حداقل کردن معادله زیر با محدودیت d ∈ N and d ≤ n ارزیابی کرد. اثبات را میتوان در، [17] [18] یافت.
کجا:
· d: فاصله تا هدف است.
· n: تعداد ابعاد است.
· N: توزیع نرمال نرمال شده با میانگین صفر و واریانس یک است.
· w: تعداد دفعاتی است که رشته بیت هدف در حافظه نوشته شده است.
· θ: مجموع رشتههای بیت تصادفی در همه h مکانهای سخت که با عملیات خواندن فعال میشوند. به عنوان مثال، اندازه یک مجموعه سلولی؛
· shared(d): میانگین تعداد مکانهای سخت مشترک فعال شده توسط دو رشته d بیت است کمی از یکدیگر فاصله دارند. میتوان مقادیری را برای یک SDM 1000-بعدی در کتاب کانروا، جدول 7.1، ص. 63، یا معادلات محاسبه هر SDM در ضمیمه B، ص. 125 همان کتاب.
تفسیر احتمالی
یک سیستم حافظه انجمنی با استفاده از بازنماییهای پراکنده و توزیعشده میتواند به عنوان یک نمونهگر اهمیت، یک روش مونت کارلو برای تقریب استنتاج بیزی، دوباره تفسیر شود.[19] SDM را میتوان یک تقریب مونت کارلو به یک انتگرال احتمال شرطی چند بعدی در نظر گرفت. زمانی که این تقریب معتبر باشد، SDM پاسخهای قابل قبولی را از یک مجموعه آموزشی تولید میکند، یعنی زمانی که مجموعه آموزشی حاوی دادههای کافی برای ارائه تخمینهای خوبی از احتمالات مشترک اساسی باشد و نمونههای مونت کارلو به اندازه کافی برای به دست آوردن تخمین دقیق از انتگرال وجود داشته باشد.[20]
قابل قبول بودن بیولوژیکی
کدگذاری پراکنده ممکن است یک استراتژی کلی سیستمهای عصبی برای افزایش ظرفیت حافظه باشد. حیوانات برای سازگاری با محیط خود باید بیاموزند که کدام محرکها با پاداش یا تنبیه همراه است و این محرکهای تقویت شده را از محرکهای مشابه اما نامربوط تشخیص دهند. چنین کاری مستلزم اجرای خاطرات انجمنی خاص محرک است که در آن تنها چند نورون از جمعیت به هر محرکی پاسخ میدهند و هر نورون تنها به چند محرک از همه محرکهای ممکن پاسخ میدهد.
کار نظری روی SDM توسط کانروا نشان داده است که کدگذاری پراکنده ظرفیت حافظه انجمنی را با کاهش همپوشانی بین بازنماییها افزایش میدهد. از نظر تجربی، بازنماییهای پراکنده اطلاعات حسی در بسیاری از سیستمها، از جمله بینایی، [21] استماع، [22] لمس، [23] و بویایی مشاهده شده است. با این حال، علیرغم وجود شواهد انباشته برای کدگذاری پراکنده گسترده و استدلالهای نظری برای اهمیت آن، اثباتی مبنی بر اینکه کدگذاری پراکنده، ویژگی محرک حافظه تداعی را بهبود میبخشد، تا همین اواخر وجود نداشت.
پیشرفتهایی در سال 2014 توسط آزمایشگاه گرو میزنبوک در دانشگاه آکسفورد در تجزیه و تحلیل سیستم بویایی مگس سرکه انجام شد.[25] در مگس سرکه، تصور میشود که کدگذاری بوهای پراکنده توسط سلولهای Kenyon بدن قارچ، تعداد زیادی مکان دقیق قابل آدرسدهی را برای ذخیرهسازی خاطرات مخصوص بو ایجاد میکند. لین و همکاران.[26] نشان داد که پراکندگی توسط یک مدار بازخورد منفی بین سلولهای Kenyon و نورون جانبی جفت قدامی GABAergic (APL) کنترل میشود. فعالسازی سیستماتیک و مسدود کردن هر یک از پایههای این مدار بازخورد نشان میدهد که سلولهای Kenyon APL را فعال میکنند و APL سلولهای Kenyon را مهار میکند. برهم زدن حلقه بازخورد Kenyon cell-APL، پراکندگی پاسخهای بوی سلول Kenyon را کاهش میدهد، همبستگیهای بین بو را افزایش میدهد، و از یادگیری تمایز بوهای مشابه، اما نه غیر مشابه توسط مگسها جلوگیری میکند. این نتایج نشان میدهد که مهار بازخورد، فعالیت سلولهای Kenyon را برای حفظ کدگذاری بوهای پراکنده و همبسته و در نتیجه بوی خاص خاطرات، سرکوب میکند. یک انتشار در سال 2017 در Science [27] نشان داد که مدار بویایی مگس یک نسخه بهبودیافته از هش حساس به محل دودویی را از طریق پیشبینیهای پراکنده و تصادفی پیادهسازی میکند.
برنامههای کاربردی
در کاربردهای حافظه، کلمات الگوهایی از ویژگیها هستند. برخی از ویژگیها توسط یک سیستم حسی تولید میشوند، برخی دیگر یک سیستم حرکتی را کنترل میکنند. یک الگوی فعلی (مثلاً 1000 بیت) وجود دارد که محتوای فعلی تمرکز سیستم است. حسگرها وارد فوکوس میشوند، موتورها از فوکوس هدایت میشوند و حافظه از طریق فوکوس قابل دسترسی است.
آنچه در جهان میگذرد - تجربه "ذهنی" سیستم - در داخل با دنبالهای از الگوها در کانون نشان داده میشود. حافظه این توالی را ذخیره میکند و اگر با الگویی مشابه با الگوی قبلی مورد خطاب قرار گیرد، میتواند آن را بعداً در فوکوس دوباره ایجاد کند. بنابراین، حافظه میآموزد که آنچه را که در شرف وقوع است پیشبینی کند. کاربردهای گسترده حافظه در سیستمهایی است که با اطلاعات دنیای واقعی در زمان واقعی سروکار دارند.
این برنامهها شامل بینایی - تشخیص و شناسایی اشیاء در یک صحنه و پیش بینی صحنههای بعدی - روباتیک، تشخیص و تأیید سیگنال، و یادگیری و کنترل تطبیقی است. از جنبه نظری، کارکرد حافظه ممکن است به ما در درک حافظه و یادگیری در انسان و حیوان کمک کند.[7][28]
بهترین جستجوی تطبیق
SDM را میتوان برای مسئله یافتن بهترین تطابق با یک کلمه آزمایشی در مجموعه دادهای از کلمات ذخیره شده اعمال کرد.[1][29] یا به عبارت دیگر مسئله جستجوی نزدیکترین همسایه.
حافظهای با N مکان در نظر بگیرید N = 2n. اجازه دهید هر مکان ظرفیت یک کلمه n بیتی را داشته باشد (به عنوان مثال N = 2100 کلمه 100 بیتی)، و اجازه دهید رمزگشایی آدرس توسط N نورونهای رمزگشای آدرس انجام شود. آستانه هر نورون x را روی حداکثر مجموع وزنی آن تنظیم کنید و از یک پارامتر مشترک d برای تنظیم تمام آستانهها هنگام دسترسی به حافظه استفاده کنید. آستانه موثر نورون x پس از آن خواهد بود x-|d| که به این معنی است که هر بار که آدرس x در داخل d بیت آدرس ارائه شده به حافظه (یعنی آدرسی که توسط رجیستر آدرس نگهداری میشود) باشد، مکان x قابل دسترسی است. با d = 0 ما یک حافظه با دسترسی تصادفی معمولی داریم. همچنین فرض کنید که هر مکان دارای یک بیت اشغال شده در مکان خاصی است که میتوان به همان شیوه بیتهای داده معمولی به آن دسترسی داشت. نوشتن یک کلمه در یک مکان این بیت اشغال شده را تنظیم میکند. فرض کنید فقط مکان اشغال شده قابل خواندن است.
برای ثبت اطلاعات در حافظه، با تنظیم شروع کنید d = n و دستوری برای پاک کردن بیت اشغال شده در مکان صادر کنید. این عملیات واحد، تمام حافظه را بدون توجه به مقادیر ثبات آدرس، خالی علامتگذاری میکند. سپس تنظیم کنیدd = 0 و هر کلمه y از مجموعه داده را با خود y به عنوان آدرس بنویسید. توجه داشته باشید که هر عملیات نوشتن تنها بر یک مکان تأثیر میگذارد: مکان y. بنابراین زمان بایگانی متناسب با تعداد کلمات مجموعه داده است.
یافتن بهترین تطابق برای کلمه آزمایشی z، شامل قرار دادن z در ثبت آدرس و یافتن کمترین فاصله d که یک مکان اشغال شده برای آن وجود دارد، میباشد. میتوانیم جستجو را با تنظیم شروع کنیم d = 0 و افزایش d متوالی تا زمانی که یک مکان اشغال شده پیدا شود. این روش زمانهای جستجوی متوسطی را ارائه میدهد که متناسب با تعداد بیتهای آدرس یا کمی کمتر از n/2 آن است [1] زیرا میتوان انتظار داشت که نزدیکترین مکان اشغال شده کمتر از n/2 آن باشد بیت از z (با جستجوی دودویی در d این O(log(n)) خواهد بود).
با کلمات 100 بیتی 2100 مکان مورد نیاز، یعنی یک حافظه بسیار بزرگ است. با این حال، اگر حافظه را همانطور که کلمات مجموعه داده را ذخیره میکنیم بسازیم، برای هر کلمه از مجموعه داده فقط به یک مکان (و یک رمزگشای آدرس) نیاز داریم. هیچ یک از مکانهای اشغال نشده نیازی به حضور ندارند. این نشان دهنده جنبه پراکندگی در SDM است.
تشخیص گفتار
SDM را میتوان در رونویسی گفتار با آموزش "گوش دادن" به مجموعه بزرگی از زبان گفتاری استفاده کرد. دو مسئله سخت در گفتار طبیعی نحوه تشخیص مرزهای کلمات و نحوه تنظیم با گویندگان مختلف است. حافظه باید بتواند هر دو را مدیریت کند. اول، دنبالههایی از الگوها را به عنوان زنجیره اشارهگر ذخیره میکند. در آموزش - در گوش دادن به گفتار - یک ساختار احتمالی با بیشترین میزان بروز انشعاب در مرزهای کلمات ایجاد میکند. در رونویسی گفتار، این نقاط انشعاب شناسایی میشوند و تمایل دارند جریان را به بخشهایی تقسیم کنند که با کلمات مطابقت دارند. دوم، حساسیت حافظه به شباهت مکانیزم آن برای تنظیم با بلندگوهای مختلف - و تغییرات در صدای یک گوینده است.[7]
"پی بردن به فراموشی"
Decay Functions
در دانشگاه ممفیس، Uma Ramamurthy، Sidney K. D'Mello و Stan Franklin نسخه اصلاح شدهای از سیستم حافظه پراکنده توزیعشده را ایجاد کردند که نشان دهنده "تحقق فراموشی" است. از یک معادله واپاشی برای نشان دادن بهتر تداخل در دادهها استفاده میکند. سیستم حافظه توزیعشده پراکنده، هر الگو را تقریباً در یک صدم مکانها توزیع میکند، [توضیحات لازم] بنابراین تداخل میتواند نتایج مضری داشته باشد.[30]
دو نمونه احتمالی از فروپاشی از این حافظه توزیع شده پراکنده اصلاح شده ارائه شده است
مکانیسم فروپاشی نمایی[4]: f(x) = 1 + e-ax
مکانیسم پوسیدگی سیگموئید ترجمه شده منفی[5]:
در تابع واپاشی نمایی، با افزایش x سریعتر به صفر نزدیک می شود و a یک ثابت (معمولاً بین 3-9) و c یک شمارنده است. برای تابع سیگموئید ترجمه شده-منفی، زمانی که a بزرگتر از 4 باشد، واپاشی مشابه تابع فروپاشی نمایی است.[30]
همانطور که گراف به 0 نزدیک میشود، نشان میدهد که چگونه حافظه با استفاده از مکانیسمهای فروپاشی فراموش میشود.
حافظه پراکنده ژنتیکی[6]
اشرف انور، استن فرانکلین و دیپانکار داسگوپتا در دانشگاه ممفیس. مدلی را برای مقداردهی اولیه SDM با استفاده از الگوریتمهای ژنتیک و برنامهریزی ژنتیک پیشنهاد کرد (1999).
حافظه ژنتیکی از الگوریتم ژنتیک و حافظه پراکنده به عنوان یک شبکه عصبی مصنوعی شبه[7] استفاده میکند. آن را برای استفاده در ایجاد حیات مصنوعی در نظر گرفتهاند.[31]
پیش بینی آماری
SDM برای پیشبینی آماری، وظیفه مرتبط کردن بردارهای حالت ادراکی بسیار بزرگ با رویدادهای آینده استفاده شده است. در شرایط ظرفیت نزدیک یا بیش از حد، که رفتار حافظه تداعی مدل شکسته میشود، پردازش انجام شده توسط مدل را میتوان به عنوان یک پیشبینیکننده آماری تفسیر کرد و هر شمارنده داده در یک SDM را میتوان بهعنوان تخمینی مستقل از احتمال شرطی یک تابع باینری f برابر با مجموعه فعالسازی تعریفشده توسط مکان حافظه شمارنده مشاهده کرد.[32]
هوش عمومی مصنوعی
· LIDA از حافظه توزیع شده پراکنده برای کمک به مدلسازی شناخت در سیستمهای بیولوژیکی استفاده میکند. فضای مکانهای حافظه توزیعشده پراکنده در حال یادآوری یا تشخیص شیئی است که در رابطه با اشیاء دیگر دارد. این سیستم توسط استن فرانکلین[8]، خالق سیستم حافظه پراکنده اصلاح شده "فراموشی واقعی[9]" اصلاح شده [33]. خاطرات گذرا اپیزودیک و بیانی بازنماییهایی را در LIDA توزیع کردهاند (بر اساس نسخه اصلاح شده SDM [34])، شواهدی وجود دارد که این مورد در سیستم عصبی نیز وجود دارد.[35]
· CMatie یک عامل نرم افزار آگاهانه است که برای مدیریت اطلاعیه های سمینار در گروه علوم ریاضی دانشگاه ممفیس توسعه یافته است. این مبتنی بر SDM تقویت شده با استفاده از الگوریتمهای ژنتیک به عنوان حافظه انجمنی است.
· حافظه زمانی سلسله مراتبی از SDM برای ذخیرهسازی بازنماییهای توزیعشده پراکنده از دادهها استفاده میکند.
یادگیری تقویتی
SDMها یک طرح تقریب تابع محلی و خطی را ارائه میدهند، که برای کار در زمانی طراحی شده است که یک فضای ورودی (آدرس) بسیار بزرگ/بعدی باید در یک حافظه فیزیکی بسیار کوچکتر ترسیم شود. به طور کلی، معماریهای محلی، از جمله SDMها، میتوانند در معرض آسیب ابعاد قرار گیرند، زیرا برخی از توابع هدف ممکن است در بدترین حالت به تعداد نمایی از واحدهای محلی نیاز داشته باشند که به طور دقیق در کل فضای ورودی تقریب شوند. با این حال، به طور گسترده اعتقاد بر این است که اکثر سیستمهای تصمیمگیری تنها به دقت بالا در اطراف منیفولدهای کم بعدی فضای حالت، یا "بزرگراههای" حالات مهم نیاز دارند [37]. کار در Ratitch et al [38] مدل حافظه SDM را با ایدههای یادگیری مبتنی بر حافظه[10] ترکیب کرد، که تقریبی ارائه میکند که میتواند ساختار و وضوح آن را به صورت پویا تطبیق دهد تا مناطقی از فضای حالت را که «جالبتر[11]» هستند [39] مکانیابی کند و به نسبت منابع حافظه بیشتری را برای مدلسازی دقیق آنها تخصیص دهد.
نمایهسازی اشیا در بینایی کامپیوتر
آزمایشگاه دانا اچ. بالارد [40] یک تکنیک نمایهسازی شیء همه منظوره برای بینایی کامپیوتری را نشان داد که محاسن تجزیه و تحلیل اجزای اصلی را با خواص تطبیق مطلوب فضاهای با ابعاد بالا برای دستیابی به تشخیص با دقت بالا ترکیب میکند. الگوریتم نمایهسازی از یک سیستم بینایی فعال در ارتباط با شکل اصلاح شده SDM استفاده میکند و بستری را برای یادگیری ارتباط بین ظاهر یک شی و هویت آن فراهم میکند.
برنامههای افزودنی
افزونهها و بهبودهای زیادی برای SDM پیشنهاد شده است، به عنوان مثال:
· فضای حافظه سهتایی: این حافظه را قادر میسازد تا به عنوان یک حافظه گذرا اپیزودیک[12] (TEM) در عاملهای نرم افزار شناختی استفاده شود. TEM حافظهای با ویژگی بالا و نگهداری کم است که برای رویدادهایی که ویژگیهای زمان و مکان خاصی دارند استفاده میشود [41][42].
· SDM عدد صحیح که از بردارهای عدد صحیح مدولار به جای بردارهای باینری استفاده میکند. این افزونه قابلیتهای بازنمایی حافظه را بهبود میبخشد و نسبت به عادیسازی قویتر است. همچنین میتواند برای پشتیبانی از فراموشی و ذخیرهسازی توالی قابل اعتماد گسترش یابد.[11]
· استفاده از بردارهای کلمه با اندازه بزرگتر از بردارهای آدرس: این برنامه افزودنی بسیاری از ویژگیهای مطلوب SDM اصلی را حفظ میکند: قابلیت ارتباط خودکار، آدرسپذیری محتوا، ذخیرهسازی توزیع شده و استحکام بر روی ورودیهای نویز. علاوه بر این، قابلیتهای جدیدی را اضافه میکند که امکان ذخیرهسازی خودکار مرتبط با توالی بردارها، و همچنین سایر ساختارهای داده مانند درختان را فراهم میکند [43].
· ساخت SDM از نورونهای Spiking: علیرغم شباهت بیولوژیکی SDM، بیشتر کارهایی که تا به امروز برای نشان دادن قابلیتهای آن انجام شده است، از مدلهای عصبی بسیار مصنوعی استفاده کردهاند که رفتار واقعی نورونها را در مغز انتزاعی میکنند. کار اخیر آزمایشگاه استیو فربر[13] در دانشگاه منچستر[44][45][46] انطباقهایی با SDM را پیشنهاد کرد، به عنوان مثال. با ترکیب کدهای رتبهبندی N-of-M [47][48] در نحوه کدگذاری اطلاعات توسط جمعیتهای نورونها - که ممکن است ساخت یک نوع SDM از اجزای بیولوژیکی قابل قبول را ممکن کند. این کار در SpiNNaker (معماری شبکه عصبی اسپیکینگ[14]) که به عنوان بستر محاسباتی نورومورفیک برای پروژه مغز انسان استفاده میشود، گنجانده شده است.[49]
· توزیع غیرتصادفی مکانها[15]: [50][51] اگرچه مکانهای ذخیرهسازی در ابتدا بهطور تصادفی در فضای آدرس N باینری توزیع میشوند، توزیع نهایی مکانها به الگوهای ورودی ارائهشده بستگی دارد و ممکن است غیرتصادفی باشد بنابراین انعطافپذیری و تعمیم بهتری را ممکن میسازد. الگوی داده ابتدا در مکانهایی ذخیره میشود که نزدیکترین مکان به آدرس ورودی است. سپس سیگنال (به عنوان مثال الگوی داده) در سراسر حافظه پخش میشود و درصد کمی از قدرت سیگنال (به عنوان مثال 5٪) در هر مکان بعدی که با آن مواجه میشوید از بین میرود. توزیع سیگنال به این روش، نیاز به انتخاب شعاع خواندن/نوشتن را که یکی از ویژگیهای مسئلهساز SDM اصلی است، از بین میبرد. همه مکانهای انتخاب شده در یک عملیات نوشتن اکنون یک کپی از الگوی باینری اصلی با قدرت برابر دریافت نمیکنند. در عوض آنها یک کپی از الگوی وزن شده با مقدار واقعی از 1.0 تا 0.05 دریافت می کنند تا در شمارندههای با ارزش واقعی (به جای شمارندههای باینری در SDM کانرووا) ذخیره کنند. این به نزدیکترین مکانها با قدرت سیگنال بیشتری پاداش میدهد و از معماری طبیعی SDM برای کاهش قدرت سیگنال استفاده میکند. به طور مشابه در خواندن از حافظه، خروجی از نزدیکترین مکانها وزن بیشتری نسبت به مکانهای دورتر داده میشود. روش سیگنال جدید اجازه میدهد تا از کل قدرت سیگنال دریافتی توسط یک مکان به عنوان معیاری برای تناسب یک مکان استفاده شود و نسبت به ورودیهای مختلف انعطافپذیر است (زیرا ضریب تلفات برای الگوهای ورودی با طولهای مختلف نیازی به تغییر ندارد).
· SDMSCue (حافظه توزیع شده پراکنده برای نشانههای کوچک): اشرف انور[16] و استن فرانکلین[17] در دانشگاه ممفیس، نوعی از SDM را معرفی کردند که قادر به مدیریت نشانههای کوچک است. یعنی SDMSCue در سال 2002. ایده کلیدی استفاده از خواندن/نوشتنهای متعدد و پیشبینیهای فضایی برای رسیدن به یک نشانه متوالی طولانیتر است [52].
[1] Kanerva, Pentti (1988). Sparse Distributed Memory. The MIT Press. ISBN 978-0-262-11132-4.
[2] Kanerva, Pentti (1988). Sparse Distributed Memory. The MIT Press. ISBN 978-0-262-11132-4.
[3] Mendes, Mateus; Crisostomo, Manuel; Coimbra, A. Paulo (2008). "Robot navigation using a sparse distributed memory". 2008 IEEE International Conference on Robotics and Automation. pp. 53–58. doi:10.1109/ROBOT.2008.4543186. ISBN 978-1-4244-1646-2. S2CID 10977460.
[4] Jockel, S.; Lindner, F.; Jianwei Zhang (2009). "Sparse distributed memory for experience-based robot manipulation". 2008 IEEE International Conference on Robotics and Biomimetics. pp. 1298–1303. doi:10.1109/ROBIO.2009.4913187. ISBN 978-1-4244-2678-2. S2CID 16650992.
[5] Rissman, Jesse; Wagner, Anthony D. (2012). "Distributed representations in memory: insights from functional brain imaging". Annual Review of Psychology. 63: 101–28. doi:10.1146/annurev-psych-120710-100344. PMC 4533899. PMID 21943171.
[6] Grebeníček, František. "Sparse Distributed Memory− Pattern Data Analysis. URL: http://www.fit.vutbr.cz/~grebenic/Publikace/mosis2000.pdf"
[7] Flynn, Michael J., Pentti Kanerva, and Neil Bhadkamkar. "Sparse distributed memory prototype: principles and operation." (1989).
[8] C. George Boeree (2002). "General Psychology". Shippensburg University.
[9] Pentti Kanerva (1993). "Sparse Distributed Memory and Related Models". Pennsylvania State University: 50–76. CiteSeerX 10.1.1.2.8403. {{cite journal}}: Cite journal requires |journal= (help)
[10] M. J. Flynn; P. Kanerva & N. Bhadkamkar (December 1989). "Sparse Distributed Memory: Principles and Operation" (PDF). Stanford University. Retrieved 1 November 2011.[permanent dead link]
[11] Snaider, Javier, and Stan Franklin. "Integer sparse distributed memory Archived 2021-08-02 at the Wayback Machine." Twenty-fifth international flairs conference. 2012.
[12] Mendes, Mateus Daniel Almeida. "Intelligent robot navigation using a sparse distributed memory." Phd thesis, (2010). URL: https://eg.sib.uc.pt/handle/10316/17781 Archived 2016-03-04 at the Wayback Machine
[13] Grebenıcek, František. Neural Nets as Associative Memories. Diss. Brno University of Technology, 2001. URL: http://www.vutium.vutbr.cz/tituly/pdf/ukazka/80-214-1914-8.pdf Archived 2016-03-04 at the Wayback Machine
[14] Kandel, Eric R., James H. Schwartz, and Thomas M. Jessell, eds. Principles of neural science. Vol. 4. New York: McGraw-Hill, 2000.
[15] Eccles, John G. "Under the Spell of the Synapse." The Neurosciences: Paths of Discovery, I. Birkhäuser Boston, 1992. 159-179.
[16] McCulloch, Warren S.; Pitts, Walter (1943). "A logical calculus of the ideas immanent in nervous activity". Bulletin of Mathematical Biophysics. 5 (4): 115–133. doi:10.1007/bf02478259.
[17] Brogliato, Marcelo Salhab (2012). Understanding Critical Distance in Sparse Distributed Memory (Thesis). hdl:10438/13095.
[18] Brogliato, Marcelo Salhab; Chada, Daniel de Magalhães; Linhares, Alexandre (2014). "Sparse Distributed Memory: understanding the speed and robustness of expert memory". Frontiers in Human Neuroscience. 8 (222): 222. doi:10.3389/fnhum.2014.00222. PMC 4009432. PMID 24808842.
[19] Abbott, Joshua T., Jessica B. Hamrick, and Thomas L. Griffiths. "Approximating Bayesian inference with a sparse distributed memory system." Proceedings of the 35th annual conference of the cognitive science society. 2013.
[20] Anderson (1989). "A conditional probability interpretation of Kanerva's sparse distributed memory". International Joint Conference on Neural Networks. Vol. 1. pp. 415–417. doi:10.1109/ijcnn.1989.118597. S2CID 13935339.
[21] Vinje, WE; Gallant, JL (2000). "Sparse coding and decorrelation in primary visual cortex during natural vision" (PDF). Science. 287 (5456): 1273–1276. Bibcode:2000Sci...287.1273V. CiteSeerX 10.1.1.456.2467. doi:10.1126/science.287.5456.1273. PMID 10678835. S2CID 13307465. Archived from the original (PDF) on 2017-09-11.
[22] Hromádka, T; Deweese, MR; Zador, AM (2008). "Sparse representation of sounds in the unanesthetized auditory cortex". PLOS Biol. 6 (1): e16. doi:10.1371/journal.pbio.0060016. PMC 2214813. PMID 18232737.
[23] Crochet, S; Poulet, JFA; Kremer, Y; Petersen, CCH (2011). "Synaptic mechanisms underlying sparse coding of active touch". Neuron. 69 (6): 1160–1175. doi:10.1016/j.neuron.2011.02.022. PMID 21435560. S2CID 18528092.
[24] Ito, I; Ong, RCY; Raman, B; Stopfer, M (2008). "Sparse odor representation and olfactory learning". Nat Neurosci. 11 (10): 1177–1184. doi:10.1038/nn.2192. PMC 3124899. PMID 18794840.
[25] A sparse memory is a precise memory. Oxford Science blog. 28 Feb 2014. http://www.ox.ac.uk/news/science-blog/sparse-memory-precise-memory
[26] Lin, Andrew C.; et al. (2014). "Sparse, decorrelated odor coding in the mushroom body enhances learned odor discrimination". Nature Neuroscience. 17 (4): 559–568. doi:10.1038/nn.3660. PMC 4000970. PMID 24561998.
[27] Dasgupta, Sanjoy; Stevens, Charles F.; Navlakha, Saket (2017). "A neural algorithm for a fundamental computing problem". Science. 358 (6364): 793–796. Bibcode:2017Sci...358..793D. doi:10.1126/science.aam9868. PMID 29123069.
[28] Denning, Peter J. Sparse distributed memory. Research Institute for Advanced Computer Science [NASA Ames Research Center], 1989.
[29] Minsky, Marvin, and Papert Seymour. "Perceptrons." (1969). "Time vs. memory for best matching - an open problem" p. 222–225
[30] Uma Ramamurthy; Sidney K. D'Mello; Stan Franklin. "Realizing Forgetting in a Modified Sparse Distributed Memory System" (PDF). Computer Science Department and The Institute for Intelligent Systems. The University of Memphis. pp. 1992–1997. Archived from the original on 5 April 2012. Retrieved 1 November 2011.
[31] Rocha LM, Hordijk W (2005). "Material representations: From the genetic code to the evolution of cellular automata". Artificial Life. 11 (1–2): 189–214. CiteSeerX 10.1.1.115.6605. doi:10.1162/1064546053278964. PMID 15811227. S2CID 5742197. Archived from the original on 2013-09-20. Retrieved 2013-08-02.
[32] Rogers, David. "Statistical prediction with Kanerva's sparse distributed memory." Advances in neural information processing systems. 1989.
[33] Rao, R. P. N.; Fuentes, O. (1998). "Hierarchical Learning of Navigational Behaviors in an Autonomous Robot using a Predictive Sparse Distributed Memory". Machine Learning. 31: 87–113. doi:10.1023/a:1007492624519. S2CID 8305178.
[34] Franklin, Stan, et al. "The role of consciousness in memory." Brains, Minds and Media 1.1 (2005): 38.
[35] Shastri, Lokendra (2002). "Episodic memory and cortico–hippocampal interactions" (PDF). Trends in Cognitive Sciences. 6 (4): 162–168. doi:10.1016/s1364-6613(02)01868-5. PMID 11912039. S2CID 15022802.
[36] Anwar, Ashraf; Franklin, Stan (2003). "Sparse distributed memory for 'conscious' software agents". Cognitive Systems Research. 4 (4): 339–354. doi:10.1016/s1389-0417(03)00015-9. S2CID 13380583.
[37] Ratitch, Bohdana, Swaminathan Mahadevan, and Doina Precup. "Sparse distributed memories in reinforcement learning: Case studies." Proc. of the Workshop on Learning and Planning in Markov Processes-Advances and Challenges. 2004.
[38] Ratitch, Bohdana, and Doina Precup. "Sparse distributed memories for on-line value-based reinforcement learning Archived 2015-08-24 at the Wayback Machine." Machine Learning: ECML 2004. Springer Berlin Heidelberg, 2004. 347-358.
[39] Bouchard-Côté, Alexandre. "Sparse Memory Structures Detection." (2004).
[40] Rao, Rajesh PN, and Dana H. Ballard. "Object indexing using an iconic sparse distributed memory." Computer Vision, 1995. Proceedings., Fifth International Conference on. IEEE, 1995.
[41] D'Mello, Sidney K., Ramamurthy, U., & Franklin, S. 2005. Encoding and Retrieval Efficiency of Episodic Data in a Modified Sparse Distributed Memory System. In Proceedings of the 27th Annual Meeting of the Cognitive Science Society. Stresa, Ital
[42] Ramamaurthy, U., Sidney K. D'Mello, and Stan Franklin. "Modified sparse distributed memory as transient episodic memory for cognitive software agents[dead link]." Systems, Man and Cybernetics, 2004 IEEE International Conference on. Vol. 6. IEEE, 2004.
[43] Snaider, Javier; Franklin, Stan (2012). "Extended sparse distributed memory and sequence storage". Cognitive Computation. 4 (2): 172–180. doi:10.1007/s12559-012-9125-8. S2CID 14319722.
[44] Furber, Steve B.; et al. (2004). "Sparse distributed memory using N-of-M codes". Neural Networks. 17 (10): 1437–1451. doi:10.1016/j.neunet.2004.07.003. PMID 15541946.
[45] Sharp, Thomas: "Application of sparse distributed memory to the Inverted Pendulum Problem". Diss. University of Manchester, 2009. URL: http://studentnet.cs.manchester.ac.uk/resources/library/thesis_abstracts/MSc09/FullText/SharpThomas.pdf
[46] Bose, Joy. Engineering a Sequence Machine Through Spiking Neurons Employing Rank-order Codes[dead link]. Diss. University of Manchester, 2007.
[47[ Simon Thorpe and Jacques Gautrais. Rank order coding. In Computational Neuroscience: Trends in research, pages 113–118. Plenum Press, 1998.
[48] Furber, Stephen B.; et al. (2007). "Sparse distributed memory using rank-order neural codes". IEEE Transactions on Neural Networks. 18 (3): 648–659. CiteSeerX 10.1.1.686.6196. doi:10.1109/tnn.2006.890804. PMID 17526333. S2CID 14256161.
[49] Calimera, A; Macii, E; Poncino, M (2013). "The Human Brain Project and neuromorphic computing". Functional Neurology. 28 (3): 191–6. PMC 3812737. PMID 24139655.
[50] Hely, Tim; Willshaw, David J.; Hayes, Gillian M. (1997). "A new approach to Kanerva's sparse distributed memory". IEEE Transactions on Neural Networks. 8 (3): 791–794. doi:10.1109/72.572115. PMID 18255679. S2CID 18628649.
Caraig, Lou Marvin. "A New Training Algorithm for Kanerva's Sparse Distributed Memory." arXiv preprint arXiv:1207.5774 (2012).
[52] Anwar, Ashraf; Franklin, Stan (2005-01-01). Ng, Michael K.; Doncescu, Andrei; Yang, Laurence T.; Leng, Tau (eds.). A Sparse Distributed Memory Capable of Handling Small Cues, SDMSCue. IFIP — The International Federation for Information Processing. Springer US. pp. 23–38. doi:10.1007/0-387-24049-7_2. ISBN 978-0-387-24048-0. S2CID 10290721.
[53] Method and apparatus for a sparse distributed memory system US 5113507 A, by Louis A. Jaeckel, Universities Space Research Association, 1992, URL: https://patents.google.com/patent/US5113507
[54] Method and device for storing and recalling information implementing a kanerva memory system US 5829009 A, by Gary A. Frazier, Texas Instruments Incorporated, 1998, URL: https://patents.google.com/patent/US5829009
[55] Furber, Stephen B. "Digital memory." U.S. Patent No. 7,512,572. 31 Mar. 2009.URL: https://patents.google.com/patent/US7512572
[56] Emruli, Blerim; Sandin, Fredrik; Delsing, Jerker (2015). "Vector space architecture for emergent interoperability of systems by learning from demonstration". Biologically Inspired Cognitive Architectures. 11: 53–64. doi:10.1016/j.bica.2014.11.015.
[57] Emruli, Blerim; Sandin, Fredrik (2014). "Analogical mapping with sparse distributed memory: A simple model that learns to generalize from examples". Cognitive Computation. 6 (1): 74–88. doi:10.1007/s12559-013-9206-3. S2CID 12139021.
[58] Berchtold, Martin. "Processing Sensor Data with the Common Sense Toolkit (CSTK)." *(2005).
[59] The Mind Wanders by B. Hayes, 2018. url: http://bit-player.org/2018/the-mind-wanders
[60] Brogliato, Marcelo S.; Chada, Daniel M.; Linhares, Alexandre (2014). "Sparse distributed memory: understanding the speed and robustness of expert memory". Frontiers in Human Neuroscience. 8: 222. doi:10.3389/fnhum.2014.00222. PMC 4009432. PMID 24808842.
[61] Surkan, Alvin J. (1992). "WSDM: Weighted sparse distributed memory prototype expressed in APL". ACM SIGAPL APL Quote Quad. 23: 235–242. doi:10.1145/144052.144142.
[62] Turk, Andreas, and Günther Görz. "Kanerva's sparse distributed memory: an object-oriented implementation on the connection machine." IJCAI. 1995.
[63] Silva; Tadeu Pinheiro, Marcus; Pádua Braga, Antônio; Soares Lacerda, Wilian (2004). "Reconfigurable co-processor for kanerva's sparse distributed memory" (PDF). Microprocessors and Microsystems. 28 (3): 127–134. doi:10.1016/j.micpro.2004.01.003.
[64] Brown, Robert L. (June 1987). "Two Demonstrators and a Simulator for a Sparse Distributed Memory" (PDF). NASA Technical Reports Archive.
[1] automorphism
[2] Pointer Chains
[3] Critical Distance
[4] Exponential decay mechanism
[5] Negated-translated sigmoid decay mechanism
[6] Genetic sparse distributed memory
[7] pseudo artificial neural network
[8] Stan Franklin
[9] Realizing forgetting
[10] memory-based learning
[11] more interesting
[12] Transient Episodic Memory
[13] Steve Furber
[14] Spiking Neural Network Architecture
[15] Non-random distribution of locations
[16] Ashraf Anwar
[17] Stan Franklin