Искусственный нейрон — это математическая функция , задуманная как модель биологических нейронов в нейронной сети . Искусственные нейроны — это элементарные единицы искусственных нейронных сетей . [1] Искусственный нейрон — это функция, которая получает один или несколько входных данных, присваивает этим входным весам веса и суммирует их для получения выходных данных.
Дизайн искусственного нейрона был вдохновлен нейронной схемой . Его входы аналогичны возбуждающим постсинаптическим потенциалам и тормозным постсинаптическим потенциалам нервных дендритов , илиактивации , его веса аналогичны синаптическому весу , а его выходной сигнал аналогичен потенциалу действия нейрона,который передается по его аксону .
Обычно каждый вход взвешивается отдельно , и сумма часто добавляется к термину, известному как смещение (в общих чертах соответствующее пороговому потенциалу ), прежде чем пройти через нелинейную функцию , известную как функция активации или передаточная функция [ необходимы пояснения ] . Передаточные функции обычно имеют сигмовидную форму , но могут также принимать форму других нелинейных функций, кусочно -линейных функций или ступенчатых функций. Они также часто монотонно возрастают , непрерывны , дифференцируемы и ограничены . Недавно также были исследованы немонотонные, неограниченные и осциллирующие функции активации с несколькими нулями, которые превосходят сигмоидальные и ReLU-подобные функции активации во многих задачах. Функция определения порога вдохновила на создание логических элементов , называемых пороговой логикой; применимо для построения логических схем , напоминающих обработку мозга. Например, в последнее время для разработки такой логики широко используются новые устройства, такие как мемристоры . [2]
Передаточную функцию искусственного нейрона не следует путать с передаточной функцией линейной системы .
Простые искусственные нейроны, такие как модель Маккаллоха-Питтса, иногда называют «карикатурными моделями», поскольку они предназначены для отражения одного или нескольких нейрофизиологических наблюдений, но без учета реализма. [3] Искусственные нейроны также могут относиться к искусственным клеткам в нейроморфной инженерии , которые похожи на естественные физические нейроны.
Для данного искусственного нейрона k пусть имеется m + 1 вход с сигналами от x 0 до x m и весами от w k 0 до w k m . Обычно входу x 0 присваивается значение +1, что делает его входом смещения с w k 0 = b k . Это оставляет только m фактических входов для нейрона: от x 1 до x m .
Выходной сигнал k -го нейрона:
Где (phi) — передаточная функция (обычно пороговая функция).
Выходной сигнал аналогичен аксону биологического нейрона, и его значение распространяется на вход следующего слоя через синапс. Он также может выйти из системы, возможно, как часть выходного вектора .
У него нет процесса обучения как такового. Рассчитываются веса его передаточной функции и заранее определяется пороговое значение.
В зависимости от конкретной используемой модели их можно назвать полулинейной единицей , Nv-нейроном , бинарным нейроном , линейной пороговой функцией или нейроном Мак-Каллоха-Питтса ( MCP ) . Оригинальная нейронная сеть MCP подробно описана в главе 3. [4]
Короче говоря, нейрон MCP — это ограниченный вид искусственного нейрона, работающий с дискретными временными интервалами. Каждый из них имеет ноль или более входов, и пусть они будут записаны как . Выход у него один, пусть он будет записан как . Каждый вход может быть либо возбуждающим , либо тормозящим . Выход может быть либо тихим , либо стреляющим . Также есть порог
В нейронной сети MCP все нейроны работают синхронно с дискретными временными шагами . В момент времени выходной сигнал нейрона равен, если количество активирующих возбуждающих входов по крайней мере равно порогу, и ни один тормозной вход не активируется; в противном случае.
Каждый выход может быть входом для произвольного числа нейронов, включая самого себя (то есть возможны циклы). Однако выход не может дважды соединиться с одним нейроном. Самоциклы не вызывают противоречий, поскольку сеть работает синхронно с дискретными временными шагами.
В качестве простого примера рассмотрим один нейрон с порогом 0 и одну тормозную петлю. Его выходной сигнал будет колебаться между 0 и 1 на каждом шаге, действуя как «часы».
Любой конечный автомат может быть смоделирован нейронной сетью MCP, как доказано в [4] . Оснащенные бесконечной лентой, нейронные сети MCP могут моделировать любую машину Тьюринга . [5]
Искусственные нейроны созданы для имитации особенностей своих биологических аналогов. Однако между биологическими и искусственными нейронными сетями существует значительный разрыв в производительности. В частности, в человеческом мозге были обнаружены одиночные биологические нейроны с осциллирующей функцией активации, способные обучаться функции XOR . [6]
Однако, в отличие от большинства искусственных нейронов, биологические нейроны активируются дискретными импульсами. Каждый раз, когда электрический потенциал внутри сомы достигает определенного порога, по аксону передается импульс. Эту пульсацию можно перевести в непрерывные значения. Скорость (активаций в секунду и т. д.), с которой срабатывает аксон, напрямую преобразуется в скорость, с которой соседние клетки получают в себя сигнальные ионы. Чем быстрее срабатывает биологический нейрон, тем быстрее близлежащие нейроны накапливают электрический потенциал (или теряют электрический потенциал, в зависимости от «веса» дендрита, который соединяется с сработавшим нейроном). Именно это преобразование позволяет ученым-компьютерщикам и математикам моделировать биологические нейронные сети с использованием искусственных нейронов, которые могут выдавать разные значения (часто от -1 до 1).
Исследования показали, что в нейронных цепях, отвечающих за воспроизведение пения птиц , используется унарное кодирование . [7] [8] Использование унарного кода в биологических сетях предположительно связано с присущей ему простотой кодирования. Еще одним фактором, способствующим этому, может быть то, что унарное кодирование обеспечивает определенную степень исправления ошибок. [9]
Ведутся исследования и разработки в области физических искусственных нейронов – органических и неорганических.
Например, некоторые искусственные нейроны могут получать [10] [11] и выделять дофамин ( химические сигналы , а не электрические сигналы) и взаимодействовать с естественными клетками мышц и мозга крысы , что потенциально может быть использовано в BCI / протезировании . [12] [13]
Биосовместимые мемристоры малой мощности могут позволить создавать искусственные нейроны, которые функционируют при напряжениях биологических потенциалов действия и могут использоваться для непосредственной обработки биосенсорных сигналов , нейроморфных вычислений и/или прямой связи с биологическими нейронами . [14] [15] [16]
Органические нейроморфные схемы, изготовленные из полимеров и покрытые гелем, богатым ионами, позволяющим материалу переносить электрический заряд, как настоящие нейроны , были встроены в робота, что позволяет ему обучаться сенсомоторно в реальном мире, а не посредством моделирования или практически. [17] [18] Более того, искусственные шиповые нейроны, изготовленные из мягкой материи (полимеров), могут работать в биологически значимых средах и обеспечивать синергетическую связь между искусственными и биологическими доменами. [19] [20]
Первым искусственным нейроном был Threshold Logic Unit (TLU), или Linear Threshold Unit, [21] , впервые предложенный Уорреном МакКаллохом и Уолтером Питтсом в 1943 году. Модель была специально разработана как вычислительная модель «нервной сети» в мозге. . [22] В качестве передаточной функции использовался порог, эквивалентный использованию ступенчатой функции Хевисайда . Первоначально рассматривалась только простая модель с двоичными входами и выходами, некоторыми ограничениями на возможные веса и более гибким пороговым значением. С самого начала уже было замечено, что любая логическая функция может быть реализована сетями таких устройств, что легко увидеть из того факта, что можно реализовать функции И и ИЛИ и использовать их в дизъюнктивной или конъюнктивной нормальной форме . Исследователи также вскоре поняли, что циклические сети с обратной связью через нейроны могут определять динамические системы с памятью, но большая часть исследований сосредоточилась (и до сих пор делает) на сетях строго прямой связи из-за меньших трудностей, которые они представляют.
Одной из важных и новаторских искусственных нейронных сетей, использовавших линейную пороговую функцию, был персептрон , разработанный Фрэнком Розенблаттом . Эта модель уже учитывала более гибкие значения веса в нейронах и использовалась в машинах с адаптивными возможностями. Представление пороговых значений как фактора смещения было введено Бернардом Уидроу в 1960 году – см. ADALINE .
В конце 1980-х годов, когда исследования нейронных сетей вновь набрали силу, стали рассматриваться нейроны более непрерывной формы. Возможность дифференцирования функции активации позволяет напрямую использовать градиентный спуск и другие алгоритмы оптимизации для корректировки весов. Нейронные сети также начали использоваться в качестве общей модели аппроксимации функций . Самый известный алгоритм обучения, называемый обратным распространением ошибки, был открыт несколько раз, но его первая разработка восходит к работе Пола Вербоса . [23] [24]
Передаточная функция ( функция активации ) нейрона выбирается так, чтобы она имела ряд свойств, которые либо улучшают, либо упрощают сеть, содержащую нейрон. Крайне важно, например, что любой многослойный персептрон , использующий линейную передаточную функцию, имеет эквивалентную однослойную сеть; Поэтому для получения преимуществ многоуровневой сети необходима нелинейная функция. [ нужна цитата ]
Ниже во всех случаях u относится к взвешенной сумме всех входных данных нейрона, т. е. для n входных данных
где w — вектор синаптических весов , а x — вектор входов.
Выход y этой передаточной функции является двоичным, в зависимости от того, соответствует ли вход заданному порогу θ . Посылается «сигнал», т.е. выход устанавливается на единицу, если активация соответствует пороговому значению.
Эта функция используется в персептронах и часто встречается во многих других моделях. Он выполняет деление пространства входов гиперплоскостью . Это особенно полезно на последнем уровне сети, предназначенном для двоичной классификации входных данных. Ее можно аппроксимировать на основе других сигмоидальных функций, присвоив весам большие значения.
В этом случае выходная единица представляет собой просто взвешенную сумму ее входов плюс член смещения . Несколько таких линейных нейронов выполняют линейное преобразование входного вектора. Обычно это более полезно на первых уровнях сети. Существует ряд инструментов анализа, основанных на линейных моделях, таких как гармонический анализ , и все они могут использоваться в нейронных сетях с этим линейным нейроном. Термин смещения позволяет нам выполнять аффинные преобразования данных.
См.: Линейное преобразование , Гармонический анализ , Линейный фильтр , Вейвлет , Анализ главных компонент , Анализ независимых компонентов , Деконволюция .
Довольно простая нелинейная функция, сигмовидная функция, такая как логистическая функция, также имеет легко вычисляемую производную, которая может быть важна при расчете обновлений веса в сети. Таким образом, это делает сеть более легко манипулируемой математически и было привлекательно для первых ученых-компьютерщиков, которым нужно было минимизировать вычислительную нагрузку при моделировании. Ранее это часто наблюдалось в многослойных перцептронах . Однако недавняя работа показала, что сигмовидные нейроны менее эффективны, чем выпрямленные линейные нейроны. Причина в том, что градиенты, рассчитанные алгоритмом обратного распространения ошибки , имеют тенденцию уменьшаться к нулю по мере распространения активации через слои сигмоидальных нейронов, что затрудняет оптимизацию нейронных сетей, использующих несколько слоев сигмоидальных нейронов.
В контексте искусственных нейронных сетей выпрямитель или ReLU (выпрямленная линейная единица) — это функция активации , определяемая как положительная часть ее аргумента:
где x — входной сигнал нейрона. Это также известно как функция линейного изменения и аналогично полуволновому выпрямлению в электротехнике. Эта функция активации была впервые введена в динамическую сеть Ханлозером и др. в статье 2000 года в журнале Nature [25] с сильными биологическими мотивами и математическими обоснованиями. [26] Впервые в 2011 году было продемонстрировано, что он позволяет лучше обучать более глубокие сети, [27] по сравнению с широко используемыми функциями активации до 2011 года, то есть логистической сигмоидой (которая основана на теории вероятностей ; см. логистическую регрессия ) и его более практичный [28] аналог — гиперболический тангенс .
Обычно используемым вариантом функции активации ReLU является Leaky ReLU, который допускает небольшой положительный градиент, когда устройство не активно:
где x — входные данные нейрона, а a — небольшая положительная константа (в оригинальной статье для a использовалось значение 0,01 ). [29]
Ниже приведена простая реализация псевдокода одного TLU, который принимает логические входные значения (истина или ложь) и возвращает один логический выход при активации. Используется объектно -ориентированная модель. Никакой метод обучения не определен, поскольку существует несколько. Если бы использовалась чисто функциональная модель, приведенный ниже класс TLU был бы заменен функциональным TLU с порогом входных параметров, весами и входными данными, которые возвращали логическое значение.
класс TLU определяется как: пороговое значение элемента данных : число весов элементов данных : список чисел размера X член функции fire(входные данные : список логических значений размера X) : логическое значение , определенное как: переменная T : число T ← 0 для каждого i от 1 до X сделать , если inputs(i) истинно , тогда T ← T + Weights(i) end if end для каждого , если T > порог , затем вернуть true иначе: вернуть false end, если end функция end class