Skip to main content
LibreTexts - Ukrayinska

2.5: Математичні формулювання

  • Page ID
    72698
  • \( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \) \( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)\(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\) \(\newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\) \( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\) \( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\) \( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\) \( \newcommand{\Span}{\mathrm{span}}\)

    Тепер у вас є інтуїтивне розуміння того, як нейрон інтегрує збудження та гальмування. Ми можемо зафіксувати цю динаміку в наборі математичних рівнянь, які можуть бути використані для моделювання нейронів на комп'ютері. Перший набір рівнянь фокусується на ефектах входів до нейрона. Другий набір фокусується на генерації виходів з нейрона. Тут ми покриємо неабияку кількість математичних підстав. Не хвилюйтеся, якщо ви не дотримуєтесь усіх деталей. Поки ви дотримуєтесь концептуально того, що роблять рівняння, ви повинні мати можливість спиратися на це розуміння, коли ви отримаєте в руки самі фактичні рівняння і досліджуєте, як вони поводяться з різними входами та параметрами. Ви побачите, що, незважаючи на всю математику, поведінка нейрона дійсно проста: кількість збуджуючого входу визначає, наскільки збуджений він отримує, в балансі з кількістю гальмування та витоку. І отримані вихідні сигнали поводяться так само, як і слід було очікувати.

    Обчислювальні входи

    Ми починаємо з формалізації «сили», якою тягне кожна сторона перетягування каната, а потім показуємо, як це змушує\(V_{m}\) «прапор» рухатися в результаті. Це дає явні рівняння для процесу динамічної інтеграції перетягування каната. Потім ми покажемо, як насправді обчислити коефіцієнти провідності в цьому рівнянні перетягування каната як функції входів, що надходять у нейрон, та синаптичних ваг (зосереджуючись на збудливих входах наразі). Нарешті, ми надаємо узагальнене рівняння перетягування каната, яке може сказати вам, де в кінцевому підсумку з'явиться прапор, щоб доповнити динамічні рівняння, які показують, як він рухається з плином часу.

    Нейронна інтеграція

    Ключова ідея цих рівнянь полягає в тому, що кожен хлопець у перетягуванні каната тягне з силою, яка пропорційна як його загальній міцності (провідності), так і тому, наскільки далеко «прапор» (\(V_{m}\)) знаходиться від свого положення (позначається рушійним потенціалом E). Уявіть, що буксири посаджені в їх положення, і їх руки повністю стискаються, коли\(V_{m}\) прапор потрапляє в їх положення (E), і вони не можуть знову захопити мотузку, так що вони більше не можуть тягнути в цей момент. Щоб поставити цю ідею в рівняння, ми можемо записати «силу» або струм, який збуджуючий хлопець надає як:

    • збудливий струм:

    \[I_{e}=g_{e}\left(E_{e}-V_{m}\right)\]

    Збуджувальний струм єI_e (I - традиційний термін для електричного струму, і е знову для збудження), і це добутокg_e часу провідності, наскільки далеко мембранний потенціал знаходиться далеко від збуджуючого рушійного потенціалу. ЯкщоВ_м = Е_е тоді збудливий хлопець «виграв» перетягування каната, і він більше не тягне, і струм йде до нуля (незалежно від того, наскільки великою може бути провідність - що-небудь раз 0 дорівнює 0). Цікаво, що це також означає, що збудливий хлопець тягне найсильнішого, коли\(V_{m}\) «прапор» знаходиться найдалі від нього - тобто коли нейрон знаходиться у своєму потенціалі спокою. Таким чином, найлегше порушити нейрон, коли він добре відпочив.

    Те саме основне рівняння можна записати для гальмування хлопця, а також окремо для хлопця з витоком (який ми тепер можемо знову ввести як основний клон терміна гальмування):

    • гальмівний струм:

    \[I_{i}=g_{i}\left(E_{i}-V_{m}\right) \]

    • струм витоку:

    \[I_{l}=g_{l}\left(E_{l}-V_{m}\right)\]

    (Різні тільки індекси).

    Далі ми можемо скласти разом ці три різні струми, щоб отримати чистий струм, який представляє чистий потік заряджених іонів через мембрану нейрона (через іонні канали):

    • чистий струм:

    \[I_{n e t}=I_{e}+I_{i}+I_{l}=g_{e}\left(E_{e}-V_{m}\right)+g_{i}\left(E_{i}-V_{m}\right)+g_{l}\left(E_{l}-V_{m}\right)\]

    Так що ж хорошого є чистий струм? Нагадаємо, що електрика схожа на воду, і вона випливає навіть сама назовні. Коли вода тече з місця, де багато води, до місця, де менше, результат полягає в тому, що води в першу чергу менше, а в другому - більше. Те ж саме відбувається і з нашими течіями: потік струму змінює мембранний потенціал (висоту води) всередині нейрона:

    • оновлення потенціалу мембрани за рахунок чистого струму:

    \[V_{m}(t)=V_{m}(t-1)+d t_{v m} I_{n e t}\]

    \ [V_ {m} (t)\) - поточне значення\(V_{m}\), яке оновлюється від значення на попередньому часовому кроці\(V_{m}(t-1)\), і\(d t_{v m}\) є константою швидкості, яка визначає, наскільки швидко змінюється мембранний потенціал — вона в основному відображає ємність мембрани нейрона).

    Наведені вище два рівняння - суть того, що нам потрібно, щоб мати можливість імітувати нейрон на комп'ютері! Він розповідає нам, як змінюється мембранний потенціал як функція інгібуючих, витікових та збудливих входів - враховуючи конкретні числа для цих вхідних провідностей та початкове\(V_{m}\) значення, ми можемо ітераційно обчислити нове\(V_{m}\) значення відповідно до вищезазначених рівнянь, і це точно відобразить, як реагує реальний нейрон на подібні такі входи!

    Підводячи підсумок, ось одна версія вищевказаних рівнянь, яка робить все:

    • \(V_{m}(t)=V_{m}(t-1)+d t_{v m}\left[g_{e}\left(E_{e}-V_{m}\right)+g_{i}\left(E_{i}-V_{m}\right)+g_{l}\left(E_{l}-V_{m}\right)\right]\)

    Для тих з вас, хто помітив проблему зі знаком мінус вище, або цікаво, як все це стосується закону Ома та процесу дифузії, див. Електрофізіологія нейрона. Якщо ви задоволені тим, куди ми прийшли, не соромтеся рухатися далі, щоб з'ясувати, як ми обчислюємо ці вхідні провідності, і що ми потім робимо зі\(V_{m}\) значенням, щоб керувати вихідним сигналом нейрона.

    Обчислення вхідних провідностей

    Збуджуючі та інгібуючі вхідні провідності представляють загальну кількість іонних каналів кожного типу, які в даний час відкриті і, таким чином, дозволяють іонам текти. У реальних нейронів ці провідності зазвичай вимірюються в nanosiemens (nS), що є\(10^{-9}\) siemens (дуже мала кількість - нейрони дуже крихітні). Зазвичай нейробіологи поділяють ці провідності на дві складові:

    • \(\overline{g}\)(«g-bar») — постійна величина, яка визначає максимальну провідність, яка виникла б, якби кожен іонний канал був відкритий.
    • \(g(t)\)— динамічно мінлива змінна, яка вказує на даний момент, яка частка від загальної кількості іонних каналів в даний час відкриті (переходить між 0 і 1).

    Таким чином, сумарні провідності інтересів записуються як:

    • збудливу провідність:

    \[\overline{g}_{e} g_{e}(t)\]

    • гальмівна провідність:

    \[\overline{g}_{i} g_{i}(t)\]

    • провідність витоку:

    \[\overline{g}_{l}\]

    (Зверніть увагу, що оскільки витік є константою, він не має динамічно мінливого значення, лише постійне значення g-bar).

    Таке поділ термінів полегшує обчислення провідності, оскільки все, на що нам потрібно зосередитись, - це обчислення частки або частки відкритих іонних каналів кожного типу. Це можна зробити, обчисливши середню кількість іонних каналів, відкритих на кожному синаптичному вході до нейрона:

    • \(g_{e}(t)=\frac{1}{n} \sum_{i} x_{i} w_{i}\)

    де\(x_{i}\) - активність певного нейрона відправки, індексованого індексом\(i\),\(w_{i}\) - сила синаптичної ваги, яка з'єднує відправляє нейрон\(i\) до приймального нейрона, і\(n\) є загальною кількістю каналів цього типу (в цьому випадок, збудливий) по всіх синаптичних входах в клітину. Як зазначалося вище, синаптична вага визначає, до яких моделей чутливий приймаючий нейрон, і це те, що адаптується при навчанні - це рівняння показує, як воно математично входить в обчислення загальної кількості збуджуючої провідності.

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

    Це ж рівняння має для інгібіторних вхідних провідностей, які обчислюються з точки зору активацій інгібуючих нейронів, що посилають, разів інгібуючі значення ваги.

    Є ще кілька складнощів щодо того, як ми інтегруємо входи з різних категорій вхідних джерел (тобто проекції з різних областей мозку джерела в даний приймаючий нейрон), з якими ми маємо справу в необов'язковому підрозділі: Net Input Detail. Але в цілому цей аспект обчислення є відносно простим, і тепер ми можемо перейти до наступного кроку, порівняння мембранного потенціалу з порогом і генерувати певний вихід.

    Рівноважний мембранний потенціал

    Перш ніж закінчити завершальний етап у процесі виявлення (генерування виходу), нам потрібно буде використовувати концепцію рівноважного мембранного потенціалу, яке є значенням\(V_{m}\) того, що нейрон осіде і залишиться на ньому, враховуючи фіксований набір збуджуючих та гальмівних вхідних провідності (якщо вони не є стійкими, то, швидше за все,\(V_{m}\) буде постійно змінюватися, коли вони змінюються). Це значення рівноваги цікаве тим, що воно більш чітко говорить нам про те, як процес перетягування каната всередині нейрона насправді балансує врешті-решт. Також ми побачимо в наступному розділі, що це корисно математично.

    Для обчислення рівноважного мембранного потенціалу\(\left(V_{m}^{e q}\right)\) ми можемо використовувати важливий математичний прийом: встановити зміну мембранного потенціалу (згідно ітераційного\(V_{m}\) оновлення рівняння зверху) на 0, а потім вирішити рівняння для значення\(V_{m}\) при цій умові. Іншими словами, якщо ми хочемо з'ясувати, що таке стан рівноваги, ми просто обчислюємо, які числа повинні бути такими, що\(V_{m}\) більше не змінюється (тобто його швидкість зміни дорівнює 0). Ось математичні кроки, які роблять це:

    • ітераційне рівняння\(V_{m}\) оновлення:

    \[V_{m}(t)=V_{m}(t-1)+d t_{v m}\left[g_{e}\left(E_{e}-V_{m}\right)+g_{i}\left(E_{i}-V_{m}\right)+g_{l}\left(E_{l}-V_{m}\right)\right]\]

    • просто зміна частини (постійна часу опущена, як ми шукаємо рівновагу):

    \[\Delta V_{m}=g_{e}\left(E_{e}-V_{m}\right)+g_{i}\left(E_{i}-V_{m}\right)+g_{l}\left(E_{l}-V_{m}\right)\]

    • встановіть його на нуль:

    \[0=g_{e}\left(E_{e}-V_{m}\right)+g_{i}\left(E_{i}-V_{m}\right)+g_{l}\left(E_{l}-V_{m}\right)\]

    • вирішувати для\(V_{m}\):

    \[V_{m}=\frac{g_{e}}{g_{e}+g_{i}+g_{l}} E_{e}+\frac{g_{i}}{g_{e}+g_{i}+g_{l}} E_{i}+\frac{g_{l}}{g_{e}+g_{i}+g_{l}} E_{l}\]

    Ми показуємо математику тут: Походження рівноважного мембранного потенціалу.

    На словах це говорить про те, що збудливий привід\(E_{e}\) сприяє загальному\(V_{m}\) як функція частки збудливої провідності\(g_{e}\) щодо суми всіх провідностей\(\left(g_{e}+g_{i}+g_{l}\right)\). І те ж саме для кожного з інших (гальмування, витік). Це саме те, що ми очікуємо від перетягування каната: якщо ми ігноруємо g_l, то\(V_{m}\) «прапор» позиціонується як функція відносного балансу між\(g_{e}\) і\(g_{i}\) - якщо вони рівні, то\(\frac{g_{e}}{g_{e}+g_{i}}\) становить .5 (наприклад, просто поставити «1" в для кожного з g - 1/2 = .5), що означає, що \(V_{m}\)прапор знаходиться на півдорозі між\(E_{i}\) і\(E_{e}\). Отже, вся ця математика просто для того, щоб знову відкрити те, що ми знали вже інтуїтивно! (Насправді, це найкращий спосіб зробити математику - якщо ви намалюєте правильну картинку, вона повинна сказати вам відповіді, перш ніж робити всю алгебру). Але ми побачимо, що ця математика стане в нагоді далі.

    Ось версія з термінами провідності, явно розбитими на константи «g-bar» та частини «g (t)», що змінюються в часі:

    • \(V_{m}=\frac{\overline{g}_{e} g_{e}(t)}{\overline{g}_{e} g_{e}(t)+\overline{g}_{i} g_{i}(t)+\overline{g}_{l}} E_{e}+\frac{\overline{g}_{i} g_{i}(t)}{\overline{g}_{e} g_{e}(t)+\overline{g}_{i} g_{i}(t)+\overline{g}_{l}} E_{i}+\frac{\overline{g}_{l}}{\overline{g}_{e} g_{i}(t)+\overline{g}_{i} g_{i}(t)+\overline{g}_{l}} E_{l}\)

    Для тих, хто дуже любить математику, рівняння потенціалу рівноваги мембрани може бути показано як Байєсівський оптимальний детектор.

    Генерація виходів

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

    Дискретні шипи

    Щоб обчислити дискретний потенціал дії, що спалахує поведінку з нейронних рівнянь, які ми маємо до цього часу, нам потрібно визначити, коли мембранний потенціал виходить вище порогу стрільби, а потім випромінювати шип, а згодом скинути мембранний потенціал назад до значення, з якого він може потім піднятися назад вгору і запустити ще один сплеск і т.д. це насправді найкраще виражається як свого роду проста комп'ютерна програма:

    • якщо (Vm > θ) то: у = 1; Вм = VM_R; інакше y = 0

    де y - вихідне значення активації нейрона, а VM_R - потенціал скидання, до якого мембранний потенціал скидається після спрацьовування спайка. Біологічно існують спеціальні калієві (K +) канали, які повертають мембранний потенціал назад після спайку.

    Ця найпростіша з шипових моделей не зовсім достатня для обліку детального шипучого поведінки реальних коркових нейронів. Однак трохи складніша модель може враховувати фактичні дані про шипи з великою точністю (як показав Герстнер і його колеги (Brette & Gerstner, 2005), і навіть вигравши кілька міжнародних змагань!). Ця модель відома як Adaptive Exponential або AdEx модель - натисніть на посилання, щоб дізнатися більше про неї. Зазвичай ми використовуємо цю модель AdEx при імітації дискретного шипу, хоча більш проста модель, описана вище, також все ще є варіантом. Критичною особливістю моделі AdEx є те, що ефективний поріг стрільби адаптується з часом, як функція збудження, що надходить в клітку, і її недавньої історії стрільби. Чистий результат - це явище, яке називається адаптацією швидкості спайку, де швидкість шипування має тенденцію зменшуватися з часом для інших статичних вхідних рівнів. В іншому ж модель AdEx ідентична описаній вище.

    Швидкість коду наближення до шипа

    560px-fig_adex_vm_vs_hz.png
    Рисунок\(2.5\): Нормована фактична швидкість стрільби з шипами моделі (hz norm, де hz означає Герц, які є одиницями швидкості стрільби) як функція рівноважного мембранного потенціалу (vm_eq) для діапазону різних збуджуючих та гальмівних вхідних провідностей. Для кожного значення vm_eq існує декілька різних значень hz_norm, що вказує на те, що ви не можете базувати наближення коду швидкості безпосередньо на\(V_{m}\) значенні.

    Незважаючи на те, що фактичні нейрони спілкуються через дискретні шипи (потенціал дії) події, часто корисно в наших обчислювальних моделям прийняти дещо більш абстрактне наближення коду швидкості, де нейрон безперервно виводить одне градуйоване значення (зазвичай нормалізоване між 0-1), що відображає загальну швидкість спалювання, яку повинен демонструвати нейрон, враховуючи рівень вхідних даних, які він отримує. Іншими словами, ми могли б підрахувати кількість дискретних шипів нейронів, і розділити їх на кількість часу, який ми зробили підрахунок, і це дало б нам середню швидкість спалювання. Замість того, щоб нейрон передавав цю швидкість шипів, розподілених у дискретних шипах протягом цього періоду часу, ми можемо змусити його миттєво повідомити це значення швидкості, як градуйоване число. Обчислювально, це повинно бути більш ефективним, оскільки він стискає кількість часу, необхідного для передачі певної швидкості шипіння, а також має тенденцію знижувати загальний рівень шуму в мережі, тому що замість перемикання між шипами і не шипами, нейрон може безперервно виводити більш стійке значення коду швидкості.

    Як зазначалося раніше, значення коду швидкості можна розглядати в біологічному плані як вихід невеликої популяції (наприклад, 100) нейронів, які, як правило, отримують однакові входи, і дають подібні вихідні відповіді - усереднення кількості шипів у будь-який момент часу над цією популяції нейронів є приблизно еквівалентно усереднення з плином часу від одного шипучого нейрона. Таким чином, ми можемо вважати, що наш модельований код швидкості обчислювальних нейронів відповідає невеликій популяції фактичних дискретних шипучих нейронів.

    Щоб насправді обчислити вихідний код швидкості, нам потрібно рівняння, яке забезпечує реальне число, яке відповідає кількості шипів, що випромінюються шипами нейрона з однаковим рівнем входів. Цікаво, що ви не можете використовувати мембранний потенціал\(V_{m}\) як вхід до цього рівняння - він не має відношення один до одного із швидкістю спалювання! Тобто, коли ми запускаємо нашу шипучу модель і вимірюємо фактичну швидкість шипи для різних комбінацій збудливих і гальмівних введення, а потім графік, що проти\(V_{m}\) значення рівноваги, що ці вхідні значення виробляють (без будь-яких шипучих, що відбувається), є кілька значень швидкості шипи для кожне\(V_{m}\) значення — ви не можете передбачити правильне значення швидкості стрільби, знаючи лише\(V_{m}\) (рис. 2.5).

    300px-fig_neuron_rate_code_approx.png
    Малюнок\(2.6\): Якість наближення коду швидкості (лінія швидкості) до фактичної швидкості шипінгу (лінія шипу), в діапазоні збудливих вхідних рівнів. Апроксимація коду швидкості базується на моделі gelin, яка порівнює g_e з g_e_theta, використовуючи сигмоїдальну функцію NOISY_XX1, а також включає адаптацію швидкості спайку, включену в модель AdEx.

    Натомість виявляється, що збудливий чистий вхід\(g_{e}\) дозволяє добре прогнозувати фактичну швидкість спайки, коли вона порівнюється з відповідним пороговим значенням (рис. 2.6). Що стосується мембранного потенціалу, ми знаємо, що\(V_{m}\) порівнюється з порогом,\(\theta\) щоб визначити, коли відбувається вихід. Який відповідний поріг використовувати для входу збудливої мережі? Нам потрібно якось\(\theta\) перетворити на\(g_{e}^{\Theta}\) значення — поріг у збудливі вхідні терміни. Тут ми можемо використовувати рівноважне мембранне рівняння потенціалу, отримане вище. Ми можемо використовувати це рівняння для вирішення рівня збуджуючої вхідної провідності, який би поставив рівноважний мембранний потенціал прямо на порозі стрільби\(\theta\):

    • рівновага\(V_{m}\) на порозі:

    \[\Theta=\frac{g_{e}^{\Theta} E_{e}+g_{i} E_{i}+g_{l} E_{l}}{g_{e}^{\Theta}+g_{i}+g_{l}}\]

    • вирішено для g_ {e} ^ {\ Theta}:

    \[g_{e}^{\Theta}=\frac{g_{i}\left(E_{i}-\Theta\right)+g_{l}\left(E_{l}-\Theta\right)}{\Theta-E_{e}}\]

    (див. g_ {e} ^ {\ Theta} похідне для алгебри для отримання цього розв'язку),

    Тепер ми можемо сказати, що наша швидкість закодоване значення вихідної активації буде деякою функцією різниці між збуджуючим чистим входом g_ {e} і цим пороговим значенням:

    • \(y=f\left(g_{e}-g_{e}^{\Theta}\right)\)

    І все, що нам потрібно зробити, це з'ясувати, як повинна виглядати ця функція f ().

    Існує три важливі властивості, якими повинна володіти ця функція:

    • поріг — він повинен бути 0 (або близький до нього), коли\(g_{e}\) менший за його порогове значення (нейрони не повинні реагувати, коли нижче порогового значення).
    • насичення - коли\(g_{e}\) стає дуже сильним відносно порогу, нейрон насправді не може продовжувати стріляти зі все більш високими темпами - існує верхня межа того, наскільки швидко він може стрибати (як правило, близько 100-200 Гц або шипів в секунду). Таким чином, наша функція коду швидкості також повинна демонструвати це вирівнювання або насичення на високому кінці.
    • гладкість — не повинно бути різких переходів (гострих країв) до функції, щоб поведінка нейрона була плавною і безперервною.
    300px-fig_nxx1_fun.png
    Малюнок\(2.7\): Функція X-over-X-плюс 1 (XX1) (Шум = 0) і функція Noisy-XX1 (NXX1) (Шум = .005).

    Функція X-over-X-plus-1 (XX1) (рис. 2.7, випадок шуму = 0, також відома як функція кінетики Міхаеліса-Ментіна — посилання на Вікіпедію) демонструє перші два з цих властивостей:

    • \(f_{x x 1}(x)=\frac{x}{x+1}\)

    де x - позитивна частинаg_e - g_e^ {\ Тета}, з додатковим коефіцієнтом посилення\ гамма, який просто примножує все:

    • \(x=\gamma\left[g_{e}-g_{e}^{\Theta}\right]_{+}\)

    Отже, повне рівняння:

    • \(y=\frac{\gamma\left[g_{e}-g_{e}^{\Theta}\right]_{+}}{\gamma\left[g_{e}-g_{e}^{\Theta}\right]_{+}+1}\)

    Які також можуть бути записані як:

    • \(y=\frac{1}{\left(1+\frac{1}{\gamma\left[g_{c}-g_{e}^{\ominus}\right]_{+}}\right)}\)

    Як видно на малюнку 2.7 (Noise=0), основна функція XX1 не є гладкою в точці порога. Щоб вирішити цю проблему, ми згортаємо функцію XX1 з нормально-розподіленим (гаусовим) шумом, який згладжує її, як показано у випадку Noise=0.005 на малюнку 2.7. Згортання становить додавання до кожної точки функції деякого внеску від сусідніх сусідів, зважених гаусовою (дзвіноподібною) кривою. Це те, що роблять програми для редагування фотографій, коли вони роблять «згладжування» або «розмивання» на зображенні. У програмному забезпеченні ми виконуємо цю операцію згортки, а потім зберігаємо результати в таблиці пошуку значень, щоб зробити обчислення дуже швидким. Біологічно цей процес згортки відображає той факт, що нейрони відчувають велику кількість шуму (випадкові коливання входів і мембранного потенціалу), так що навіть якщо вони трохи нижче порогу стрільби, випадкове коливання іноді може підштовхнути його через поріг і генерувати сплеск. Таким чином, швидкість шипування навколо порога плавна, а не різка, як у звичайній функції XX1.

    Для повноти, і строго для математично похилого, ось рівняння для операції згортки:

    • \(y^{*}(x)=\int_{-\infty}^{\infty} \frac{1}{\sqrt{2 \pi} \sigma} e^{-z^{2} /\left(2 \sigma^{2}\right)} y(z-x) d z\)

    де y (z-x) - функція XX1, застосована до входу z-x замість просто x. На практиці в числовій згортці використовується скінченне ядро ширини\(3 \sigma\) по обидва боки від x.

    Після згортки функція XX1 (рис. 2.7) наближає середню швидкість стрільби багатьох нейрональних моделей з дискретним шипом, включаючи AdEx. Математичне пояснення тут: Частотно-струмова крива.

    Відновлення ітераційної динаміки в активації

    Існує лише одна остання проблема з рівняннями, як написано вище. Вони не еволюціонують з часом градуйованим способом. На відміну від цього,\(V_{m}\) значення еволюціонує в градуйованому вигляді в силу ітераційного обчислення, де воно поступово наближається до значення рівноваги протягом ряду часових кроків оновлення. Натомість активація, вироблена вищевказаними рівняннями, дуже швидко переходить до його рівноваги значення, оскільки вона розраховується на основі збудливої провідності і не враховує млявість, з якою зміни провідності призводять до зміни мембранних потенціалів (за рахунок ємності). Як обговорювалося у Вступі, градуйована обробка дуже важлива, і ми можемо бачити це дуже безпосередньо в цьому випадку, оскільки вищевказані рівняння не працюють дуже добре у багатьох випадках, оскільки їм не вистачає цієї поступової еволюції з часом.

    Щоб ввести градуйовану ітераційну динаміку в функцію активації, ми просто використовуємо значення активації (\(y^{*}(x)\)) з вищевказаного рівняння як рушійну силу до ітераційного тимчасово розширеного рівняння оновлення:

    \[y(t)=y(t-1)+d t_{v m}\left(y^{*}(x)-y(t-1)\right)\]

    Це призводить до фактичного кінцевого виходу активації коду швидкості в поточний час t, y (t) для ітераційного наближення до рушійного значення, заданого\(y^{*}(x)\), з тією ж постійною часу,\(d t_{v m}\) яка використовується при оновленні мембранного потенціалу. На практиці це працює надзвичайно добре, краще, ніж будь-яка попередня функція активації, що використовується з Leabra.

    Резюме нейронних рівнянь і нормованих параметрів
    Параметр Біо Вал

    Норм Вал

    Параметр

    Біо Вал Норм Вал

    Час

    0.001 сек 1 мс Напруга 0,1 В або 100 мВ -100 мВ = 0,2 дВ
    Струм \(1 \times 10^{-8}\)А 10 нА Провідність 1x10^ {-9} С 1 нС
    Ємність \(1 \times 10^{-12}\)F 1 пФ C (ємність memb) 281 пФ 1/С = 3.55 = дт.вм
    \(g_{l}\)(витік) 10 нС 0.1 \(g_{i}\)(гальмування) 100 нС 1
    \(g_{e}\)(збудження) 100 нС 1 e_rev_l (витік) і VM_r -70 мВ 0.3

    e_rev_i (гальмування)

    -75 мВ 0,25 e_rev_e (збудження) 0 мВ

    1

    \(\theta\)(акт.р.,\(\mathbf{V}_{\mathbf{T}}\) в AdEx) -50 мВ 0.5 spike.spk_thr (exp відсічення в AdEx) 20 мВ 1.2
    spike.exp_схил (\(\Delta_{\mathbf{T}}\)в AdEx) 2 мВ 0,02 adapt.dt_time (\(\tau_{W}\)в AdEx) 144 мс дт = 0,007
    adapt.vm_gain (a в AdEx) 4 нС 0,04 adapt.spk_gain (b в AdEx) 0,0805 нА 0,00805

    Таблиця\(2.1\): Параметри, що використовуються в наших моделюваннях, нормалізуються за допомогою зазначених вище коефіцієнтів перетворення, так що типові значення, що виникають при моделюванні, потрапляють в нормований діапазон 0,1. Наприклад, мембранний потенціал представлений в діапазоні від 0 до 2, де 0 відповідає -100 мВ, а 2 відповідає +100 мВ, а 1, таким чином, 0 мВ (і більшість значень мембранного потенціалу залишаються в межах 0-1 в цій шкалі). Наведені біологічні значення є значеннями за замовчуванням для моделі AdEx. Інші біологічні значення можна вводити за допомогою кнопки BioParams на LeabAunitSpec, яка автоматично перетворює їх в нормовані значення.

    Таблиця\(2.1\) показує нормовані значення параметрів, використовуваних в наших моделюваннях. Ми використовуємо ці нормовані значення замість нормальних біологічних параметрів, щоб все природним чином вписувалося в діапазон 0.. 1, тим самим спрощуючи багато практичних аспектів роботи з моделюванням.

    Остаточні рівняння, що використовуються для оновлення нейрона, у обчислювальному порядку, наведені тут, при цьому всі змінні, які змінюються з часом, позначені як функція (t):

    1. Обчисліть збуджуючу вхідну провідність (гальмування було б аналогічним, але ми обговоримо це докладніше в наступному розділі, тому опустимо його тут):

    • \(g_{e}(t)=\frac{1}{n} \sum_{i} x_{i}(t) w_{i}\)

    2. Оновлення потенціалу мембрани один раз за кроком, як функція вхідних провідностей (поділ провідності на динамічну і постійну «g-bar» частини):

    • \(V_{m}(t)=V_{m}(t-1)+d t_{v m}\left[\overline{g}_{e} g_{e}(t)\left(E_{e}-V_{m}\right)+\overline{g}_{i} g_{i}(t)\left(E_{i}-V_{m}\right)+g_{l}\left(E_{l}-V_{m}\right)\right]\)

    3а. Для дискретного шипування порівняйте потенціал мембрани з порогом і запустіть спайк і скиньте Vm, якщо вище порогового:

    • якщо (Vm (t) > θ) то: у (t) = 1; Vm (t) = VM_r; інакше y (t) = 0

    3б. Для наближення коду швидкості обчислити активацію виводу як функцію NXX1 g_e та Vm:

    • \(y^{*}(x)=f_{N X X 1}\left(g_{e}^{*}(t)\right) \approx \frac{1}{\left(1+\frac{1}{\gamma\left[g_{e}-g_{e}^{\Theta}\right]_{+}}\right)}\)(згортка з шумом не показана)
    • \(y(t)=y(t-1)+d t_{v m}\left(y^{*}(x)-y(t-1)\right)\)(відновлення ітераційної динаміки на основі постійної часу змін мембранного потенціалу)