All streams
Search
Write a publication
Pull to refresh
57
0
Кремнев Валерий @LonelyDeveloper97

Математика, Нейробиология, Программирование

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

Нет ничего рационального в 100 рулонах туалетной бумаги дома. Даже в случае самого пессимистичного прогноза. А вот проблемы другим людям такой подход создает.
Хм. Даже не знаю. Я бы поставил «другое» — там есть такой вариант.

Статья ведь не только про коронавирус, а про «дилему заключенного» в условиях повышения спроса. Только в этом случае у нас больше стратегий, чем две. Я мог написать «падение курса доллара» вместо «коронавирус», и она все еще была бы актуальна — это же математическая модель и вопрос выбора оптимальной стратегии.

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

Уточнил в статье, спасибо за комментарий.
Кажется, для этого есть причина «ничего нового»)

Я понимаю тех, кому неприятен этот шум, но тут уж ничего не поделаешь. И минус в таком случае — вполне валидный способ показать, что ты не хочешь видеть такие статьи — он для этого и создан. Но выбор причины — странноват. Хотелось понять, почему именно она.
Хм, мне вот интересно, господ ставящих несоответствие тематике хабра не смущает плашка вверху страницы, ведущая на официальный пост от редакторов хабра на тему действий во время COVID?
Почему именно несоответствие тематике? Почему не «другое», «низкий уровень материала», «В статье нет ничего нового»?

Если вы поставили такую причину — я хочу пригласить вас это обсудить. Мне интересно ваше мнение.
А можно источник? Очень хочется посмотреть на противовирусную маску из туалетной бумаги)
Неправильно сформулировал.
Вел к тому, что спрос на нее по непонятной причине подскочил, судя по наблюдениям.
У биологического нейрона на вход и на выход идут нейромедиаторы. +- их можно считать алфавитом. (В нормальном мозге есть еще отдельные белки синтезирующиеся на лету, так что не все так просто))

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

Машины тьюринга на ИНС — это немного не тот уровень. Если всего два биологических нейрона могут регулировать друг друга и таким образом эмулировать рекурсию через обратный вызов, то для построения миниатюрного тьюринг-полного вычислителя — нужно совсем немного биологических нейронов. Я попробую посчитать сколько, но это займет время. Пока у меня есть что рассказать про более высокие уровни мозга, так что я займусь этим где-нибудь через месяц.

В мозгу — 80 миллиардов нейронов. Если на эмуляцию машины тьюринга на биологических нейронах потребуется 1000 штук (я уверен, что это число на порядок больше реального) — это 80 миллионов, объединенных в одну сеть машинок. И они не просто «что-то делают» по отдельности. Есть отдельный кластер для синхронизации вычислений — префронтальная кора.

Примерно поэтому ИНС «моделируют мозг», примерно на том же уровне, на каком набор «лего-космодром» моделирует запуск Falcon Heavy)
Все немного сложнее.
Нейрон — это как целая микросхема, с прошивкой. Не тьюринг-полная, но довольно неплохая. А два — уже можно скомбинировать в нормальный исполнитель, если сделать рекурсивные связи. И если я правильно понимаю концепцию тьюринг-полноты — могу ошибаться.

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

На одном нейроне, кажется, нельзя сделать сдвиг влево, так что эмуляции рекурсивных функций не получится.
Зависит от нейрона, но прикинуть можно так:

Связи — Я видел оценку, что на один синапс приходится порядка 4,5 бит в среднем. Их могут быть тысячи на нейрон.

Нейрон с одним типом нейромедиатора — условно можно взять информацию о текущем заряде и пороге. Если взять сложный нейрон, с несколькими нейромедиаторами для регулирования — опять складываем. Я думаю, можно где-то в 16 бит уложиться.

Из этого — 1 нейрон в среднем — минимум несколько килобит, в основном за счет связей.

Потом надо еще вспомнить про Late-LTP — это тоже состояний к связи добавит. Каждое возможное состояние может быть записано в долговременную память. Учитывая это мы явно дошли до килобайтов.

И, скорее всего — это не все особенности влияющие на его емкость, еще что-нибудь я обязательно забыл.

До мегабайта врятли дойдем, но к десятку кб — приблизимся.

С ИИ вопрос интересный. У биологических мозгов есть много архитектурных особенностей, которые приходится подпирать костылями.
Они не адаптированы для быстрых и точных расчетов. Не замечают, когда оперируют понятиями, которые на самом деле являются ссылкой в /dev/null (воркалось, хливкие шорьки… и все такое). Позволяют создавать циклические зависимости без «stackoverflow exception» (Летающий макаранный монстр не ошибается, ибо так написано в книге о летающем макаронном монстре, а книга правильна, потому что летающий макаронный монстр не ошибается). Вот список эксплойтов, особенностей и багов. Внушительный и при этом не полный.

Если создавать ИИ, то переносить туда все это — не стоит, действительно можно создать что-то эффективнее.

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

В техническом тексте важна такая штука, как «понятийная дистанция».

Давайте рассмотрим это на примере какого-нибудь краткого тезиса. Например, вот этого, строчкой выше.

Из-за того, что я использовал очень простые слова, найдется процент людей, которые прочтут его и подумают «Да, конечно, смысл говорить такую очевидную вещь!». Или наоборот: «Боже, что за фигню этот парень мелет, какие „понятийные дистанции“».

Проблема в том, что слова — не однозначно переводятся в смысл. В моей голове — «понятийная дистанция» — это тысячи примеров провальной коммуникации. Когда я говорил тезис, а человек очень своеобразно интерпретировал мои слова, либо не понимал их. И когда я пытался объяснить что-то «с конца», собеседник быстро терял терпение. Ему мешало первое впечатление о тезисе.

Формулируя краткий тезис — вы должны понимать, что его прочтут все. И люди, которым он поможет, и те, кому он создаст помехи. И если ваша мысль находится слишком «далеко» от читателя — у вас есть всего два-три абзаца, чтобы это исправить. Надеюсь, в свои три я уложился)

Если мы говорим о любом тексте — то цель передать какую-то информацию от писателя к читателю.

Вы действительно считаете, что возможно написать любую мысль так, что читатель «быстро поймет суть»? Если вы смогли так сформулировать — вы выполнили задачу текста. Статья уже не нужна.

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

У читателя — есть терпение. Он его тратит, чтобы читать статью. Если вы не даете читателю восстановить силы по дороге, и продолжаете резко бить его веником сухого изложения — он устанет. Именно поэтому люди могут прочитать огромный объем художки, и ломаются на научных статьях всего страниц на 5. Хотя «сути» в научной статье в разы больше.

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

PS
Да, я читал Ильяхова, и считаю что он чрезмерно упрощает. Его методы хороши для мелких постов, но на вопрос «почему люди могут прочитать 3 художественных книги запоем» — они не отвечают. Он сам использует прием с развлечением читателя в «Пиши-сокращай» (комикс каждую главу, забавные примеры из жизни), но почему-то упомянуть о нем в самой книге — забыл.
Я решил сделать отдельную статью, и описать там основные отличия биологических нейронов, от простой модели с «весом». И о том, как их можно учитывать, с помощью раскраски графа, задания функции утечки и прочего.

Где-то сегодня-завтра выложу.
Ссылка — это какая-то связь между нейронами (между какими? нейронами «стула» и… некоей свободной «оперативной областью», где будут выполнятся промежуточные манипуляции).

Об этом будет отдельная статья. Ссылка — это адрес в памяти. Информация о пути до нейронов. Как собственно и везде. Потом объясню как это построить на нейронах)

Если у нас 100 ссылок от абстрактного стула к конкретным, при активации абстрактного стула по ссылке активируется конкретный, или наоборот?
— нет ста конкретных стульев в мозге. Есть граф примитивов, из которых мозг каждый раз заново соберет вам стул. Вы можете менять делали как угодно, пока сохраните «форму стула». Короче, есть куча кубиков лего и есть инструкция о том, как примерно их надо собрать. И ей не обязательно следовать точь-в-точь. Можно сделать стул с тремя ножками, можно с 5, можно без сидения.

Если связь — это просто доставка сигнала от одной группы нейронов к другой, то аналогия со ссылкой ООП не работает — по ООП-ссылке можно прочитать любые свойства объекта, на который ссылаешься, а тут нет.

Тут нет «свойств объекта». Еще раз — вы динамически инстанцируете все, что вам надо. Оно не хранится как данные. Вы работали с шейдерами? Вот примерно так оно работает в мозгу. У вас есть куча шейдеров и вы просто комбинируете их, для рендера результата.
Это касается не только графики. Тоже происходит для звуков слова «стул». И для всего остального.
Нейрон — это не бит со значением 0/1. Это целая микросхема, которая меняет свою прошивку в зависимости от того, что ей пришло на вход и какие результаты дали сигналы, которые она послала «на выход». Ее можно перепрошить даже без участия других нейронов, с помощью выброса нейромедиаторов — они меняют алгоритм работы нейрона.
И из 85 миллиардов таких микрокомпьютеров состоит мозг. Это огромный кластер для распределенных вычислений. Тут немного сложно мыслить в терминах классического ООП. Вам скорее подойдут аналогии с GPU. Они — ближе по строению к мозгу, но намного проще. У них не связаны ядра, и их всего несколько тысяч, а не миллиарды.
Копировать — не обязательно.
Смотрите, есть у вас текстура. А вы хотите наложить ее на поверхность. Вместо того, чтобы «копировать» текстуру на поверхность, вы можете оставить ссылку на область памяти с текстурой. Тоже самое сделать для поверхности.

А результат рендера мозг вам вычислит, когда вы активируете обе области сразу.

Фича в том, что выделенных частей вроде «памяти»и «cpu» в мозге нет. Вычисления проводятся напрямую. Т.Е. каждый раз, когда вы видите стул, мозг заново создает объект «стул» из данных с глаз. Но он может запомнить «программу активаций» для создания «стула», и запустить ее для обработки ввода из другого источника.
Например, если кто-то рядом скажет «стул».

Поэтому, если вы не ставили целью «создать в мозгу программу отрисовки вот этого конкретного стула», а просто пытаетесь представить «стул» — вы можете получить разные результаты. Но если вы год будете рисовать один и тот же стул — то вы будете до мельчайших подробностей рендерить именно его. Мозг запишет, «что нужно сделать» чтобы представить стул)

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

Прояснил что-то или все еще не попал?
PS
При составлении модели я вообще не смотрел на ИНС. Я составлял ее из описания нейрона в начале статьи и механизмов LTP/LTD и регуляции нейромедиаторами.
Я честно говоря не совсем понял, почему уже третья ветка комментариев идет про ИНС.

Можете пожалуйста объяснить, что конкретно в статье навело вас на мысль, что моя модель не учитывает регуляцию связей между нейронами? Я просто видимо сделал что-то не так если уже третий человек увидел здесь стандартную ИНС со стабильными весами, без возможности регуляции нейромедиаторами извне, без затухания, без E-LTP и L-LTP, хотя когда я читаю статью — я вижу по абзацу на каждую из этих тем.
Может я как-то неправильно выразился? Или слово «вес» — это такой общий триггер, на «о, ну вот сейчас мне опять будут про ИНС затирать, ну не работают они как мозг»?)
Просто не совсем понял, что я не так сделал в статье, если мне приходится дополнять ее комментариями)
Я специально добавил в модель LTP и затухание нейронных связей, которого нет в ИНС именно по этой причине.

Я предполагаю, что вы прочитали слово «вес» и связали его с ИНС, так как там используется тот же термин. Да, я взял его оттуда, и дополнил так, чтобы он отражал процессы в реальном нейроне. Веса меняются, затухают со временем, усиливаются только с E-LTP. L-LTP — не механизм усиления а механизм фиксации в текущем состоянии.

Я даже картинку в статье сделал) Вот эту:
image
Вторая связь «сильнее», но не зафиксирована. Первая — наоборот. Через несколько часов — вторая «затухла», а первая — осталась такой же.

Дополню, что в моей модели отсутствие связи — эквивалентно нулевому весу связи в плане активации нейрона к которому она идет. И при бесконечном времени вес связи будет стремиться к нулю, если она не «зафиксирована» L-LTP.
Но при этом, ребро неплохо изображает наличие синапса и потенциальную возможность усилить связь. Поэтому я не удаляю «ослабшие» ребра.

Как вы и описали у себя в комментарии)
Вы немного спешите)
Про то, как «кататься по памяти» (на самом деле вы довольно неплохую аналогию подобрали, там действительно облако связей) — будет в одной из следующих статей. Собственно, моя статья кончается на том, что память — это граф объектов. А вот штука которая позволяет его «обходить» — находится в немного другой части мозга, и сделана для другой цели)
Так вроде же, за сохранность «силы» синапса и отвечает L-LTP. Который врубается в довольно редких (ну, на самом деле не очень, но по сравнению со всей жизнью — редких), случаях. Т.Е. все что вы «наповторяли», вторичными активациями действительно живет пару дней максимум. А вот L-LTPшные связи — остаются с вами очень надолго. Конкретнее инфа гуглится через Epigenetics Mechanisms in memory. Их ослабить тоже можно, но там идет Long-term depression, т.е. это уже не обычное «ослабевание» связи в течении суток, там мозг ее направленно деградирует, через вызовы в «обратном порядке». И, как я понимаю, как и с LTP — можно понизить силу «временно», на пару часов, а можно стереть окончательно и освободить место.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity