Кремнев Валерий @LonelyDeveloper97
Математика, Нейробиология, Программирование
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity
Математика, Нейробиология, Программирование
Нет ничего рационального в 100 рулонах туалетной бумаги дома. Даже в случае самого пессимистичного прогноза. А вот проблемы другим людям такой подход создает.
Статья ведь не только про коронавирус, а про «дилему заключенного» в условиях повышения спроса. Только в этом случае у нас больше стратегий, чем две. Я мог написать «падение курса доллара» вместо «коронавирус», и она все еще была бы актуальна — это же математическая модель и вопрос выбора оптимальной стратегии.
Для коронавируса уже был прекрасный график. И тема актуальная. Я решил, что на живом примере проще показать о чем я говорю.
Уточнил в статье, спасибо за комментарий.
Я понимаю тех, кому неприятен этот шум, но тут уж ничего не поделаешь. И минус в таком случае — вполне валидный способ показать, что ты не хочешь видеть такие статьи — он для этого и создан. Но выбор причины — странноват. Хотелось понять, почему именно она.
Почему именно несоответствие тематике? Почему не «другое», «низкий уровень материала», «В статье нет ничего нового»?
Если вы поставили такую причину — я хочу пригласить вас это обсудить. Мне интересно ваше мнение.
Вел к тому, что спрос на нее по непонятной причине подскочил, судя по наблюдениям.
Так что ячейка ленты — это по сути, комбинация нейромедиаторов принятая нейроном за условный такт, и выданные им из синапсов нейромедиаторы в ответ.
И внутри эта штука умеет суммировать разные типы нейромедиаторов, переводить себя в кучу состояний. А на каждую его связь влияет нейрон, к которому эта связь идет.
Машины тьюринга на ИНС — это немного не тот уровень. Если всего два биологических нейрона могут регулировать друг друга и таким образом эмулировать рекурсию через обратный вызов, то для построения миниатюрного тьюринг-полного вычислителя — нужно совсем немного биологических нейронов. Я попробую посчитать сколько, но это займет время. Пока у меня есть что рассказать про более высокие уровни мозга, так что я займусь этим где-нибудь через месяц.
В мозгу — 80 миллиардов нейронов. Если на эмуляцию машины тьюринга на биологических нейронах потребуется 1000 штук (я уверен, что это число на порядок больше реального) — это 80 миллионов, объединенных в одну сеть машинок. И они не просто «что-то делают» по отдельности. Есть отдельный кластер для синхронизации вычислений — префронтальная кора.
Примерно поэтому ИНС «моделируют мозг», примерно на том же уровне, на каком набор «лего-космодром» моделирует запуск Falcon Heavy)
Нейрон — это как целая микросхема, с прошивкой. Не тьюринг-полная, но довольно неплохая. А два — уже можно скомбинировать в нормальный исполнитель, если сделать рекурсивные связи. И если я правильно понимаю концепцию тьюринг-полноты — могу ошибаться.
Из того что я знаю, из двух нейронов получится штука, на которую можно записать операции для полубесконечной ленты, так что они будут условно эмулировать сдвиг вправо/влево и чтение с одного конца ленты и запись на другой. Чего хватает для машины тьюринга.
На одном нейроне, кажется, нельзя сделать сдвиг влево, так что эмуляции рекурсивных функций не получится.
Связи — Я видел оценку, что на один синапс приходится порядка 4,5 бит в среднем. Их могут быть тысячи на нейрон.
Нейрон с одним типом нейромедиатора — условно можно взять информацию о текущем заряде и пороге. Если взять сложный нейрон, с несколькими нейромедиаторами для регулирования — опять складываем. Я думаю, можно где-то в 16 бит уложиться.
Из этого — 1 нейрон в среднем — минимум несколько килобит, в основном за счет связей.
Потом надо еще вспомнить про Late-LTP — это тоже состояний к связи добавит. Каждое возможное состояние может быть записано в долговременную память. Учитывая это мы явно дошли до килобайтов.
И, скорее всего — это не все особенности влияющие на его емкость, еще что-нибудь я обязательно забыл.
До мегабайта врятли дойдем, но к десятку кб — приблизимся.
Они не адаптированы для быстрых и точных расчетов. Не замечают, когда оперируют понятиями, которые на самом деле являются ссылкой в /dev/null (воркалось, хливкие шорьки… и все такое). Позволяют создавать циклические зависимости без «stackoverflow exception» (Летающий макаранный монстр не ошибается, ибо так написано в книге о летающем макаронном монстре, а книга правильна, потому что летающий макаронный монстр не ошибается). Вот список эксплойтов, особенностей и багов. Внушительный и при этом не полный.
Если создавать ИИ, то переносить туда все это — не стоит, действительно можно создать что-то эффективнее.
Но мне кажется, что помимо попыток создания ИИ есть и другие задачи: Мы все еще не знаем, как правильно работать с уже имеющимися мозгами. Как их правильно обучать? Как чинить, если полетела регуляция нейромедиаторов? Как патчить от списка эксплойтов выше?
И вот здесь может понадобиться более точная с точки зрения биологии модель.
Давайте рассмотрим это на примере какого-нибудь краткого тезиса. Например, вот этого, строчкой выше.
Из-за того, что я использовал очень простые слова, найдется процент людей, которые прочтут его и подумают «Да, конечно, смысл говорить такую очевидную вещь!». Или наоборот: «Боже, что за фигню этот парень мелет, какие „понятийные дистанции“».
Проблема в том, что слова — не однозначно переводятся в смысл. В моей голове — «понятийная дистанция» — это тысячи примеров провальной коммуникации. Когда я говорил тезис, а человек очень своеобразно интерпретировал мои слова, либо не понимал их. И когда я пытался объяснить что-то «с конца», собеседник быстро терял терпение. Ему мешало первое впечатление о тезисе.
Формулируя краткий тезис — вы должны понимать, что его прочтут все. И люди, которым он поможет, и те, кому он создаст помехи. И если ваша мысль находится слишком «далеко» от читателя — у вас есть всего два-три абзаца, чтобы это исправить. Надеюсь, в свои три я уложился)
Вы действительно считаете, что возможно написать любую мысль так, что читатель «быстро поймет суть»? Если вы смогли так сформулировать — вы выполнили задачу текста. Статья уже не нужна.
А придумать такую формулировку — сложно. Потому что мозгу плевать на концепцию сообщения минимальной длины. Наоборот, он любит иногда отвлечься и посмотреть на понятные примеры, веселые картинки и так далее. Мозги — не жесткий диск, и ваша задача чуть сложнее, чем минимизация объема.
У читателя — есть терпение. Он его тратит, чтобы читать статью. Если вы не даете читателю восстановить силы по дороге, и продолжаете резко бить его веником сухого изложения — он устанет. Именно поэтому люди могут прочитать огромный объем художки, и ломаются на научных статьях всего страниц на 5. Хотя «сути» в научной статье в разы больше.
Для технической документации, коротких новостей, сообщений — инфостиль великолепен. Или для общения с людьми, которые уже разбираются в вопросе. В противном случае, на размере от пары тысяч символов — читатель уснет.
PS
Да, я читал Ильяхова, и считаю что он чрезмерно упрощает. Его методы хороши для мелких постов, но на вопрос «почему люди могут прочитать 3 художественных книги запоем» — они не отвечают. Он сам использует прием с развлечением читателя в «Пиши-сокращай» (комикс каждую главу, забавные примеры из жизни), но почему-то упомянуть о нем в самой книге — забыл.
Где-то сегодня-завтра выложу.
Об этом будет отдельная статья. Ссылка — это адрес в памяти. Информация о пути до нейронов. Как собственно и везде. Потом объясню как это построить на нейронах)
— нет ста конкретных стульев в мозге. Есть граф примитивов, из которых мозг каждый раз заново соберет вам стул. Вы можете менять делали как угодно, пока сохраните «форму стула». Короче, есть куча кубиков лего и есть инструкция о том, как примерно их надо собрать. И ей не обязательно следовать точь-в-точь. Можно сделать стул с тремя ножками, можно с 5, можно без сидения.
Тут нет «свойств объекта». Еще раз — вы динамически инстанцируете все, что вам надо. Оно не хранится как данные. Вы работали с шейдерами? Вот примерно так оно работает в мозгу. У вас есть куча шейдеров и вы просто комбинируете их, для рендера результата.
Это касается не только графики. Тоже происходит для звуков слова «стул». И для всего остального.
Нейрон — это не бит со значением 0/1. Это целая микросхема, которая меняет свою прошивку в зависимости от того, что ей пришло на вход и какие результаты дали сигналы, которые она послала «на выход». Ее можно перепрошить даже без участия других нейронов, с помощью выброса нейромедиаторов — они меняют алгоритм работы нейрона.
И из 85 миллиардов таких микрокомпьютеров состоит мозг. Это огромный кластер для распределенных вычислений. Тут немного сложно мыслить в терминах классического ООП. Вам скорее подойдут аналогии с GPU. Они — ближе по строению к мозгу, но намного проще. У них не связаны ядра, и их всего несколько тысяч, а не миллиарды.
Смотрите, есть у вас текстура. А вы хотите наложить ее на поверхность. Вместо того, чтобы «копировать» текстуру на поверхность, вы можете оставить ссылку на область памяти с текстурой. Тоже самое сделать для поверхности.
А результат рендера мозг вам вычислит, когда вы активируете обе области сразу.
Фича в том, что выделенных частей вроде «памяти»и «cpu» в мозге нет. Вычисления проводятся напрямую. Т.Е. каждый раз, когда вы видите стул, мозг заново создает объект «стул» из данных с глаз. Но он может запомнить «программу активаций» для создания «стула», и запустить ее для обработки ввода из другого источника.
Например, если кто-то рядом скажет «стул».
Поэтому, если вы не ставили целью «создать в мозгу программу отрисовки вот этого конкретного стула», а просто пытаетесь представить «стул» — вы можете получить разные результаты. Но если вы год будете рисовать один и тот же стул — то вы будете до мельчайших подробностей рендерить именно его. Мозг запишет, «что нужно сделать» чтобы представить стул)
Иными словами — мозг сохраняет алгоритм активаций нейронов, а не «данные» с которыми нам привычно работать. Каждое вычисление идет заново, сохранены только ветки, по которым вычисления пойдут.
Прояснил что-то или все еще не попал?
При составлении модели я вообще не смотрел на ИНС. Я составлял ее из описания нейрона в начале статьи и механизмов LTP/LTD и регуляции нейромедиаторами.
Я честно говоря не совсем понял, почему уже третья ветка комментариев идет про ИНС.
Можете пожалуйста объяснить, что конкретно в статье навело вас на мысль, что моя модель не учитывает регуляцию связей между нейронами? Я просто видимо сделал что-то не так если уже третий человек увидел здесь стандартную ИНС со стабильными весами, без возможности регуляции нейромедиаторами извне, без затухания, без E-LTP и L-LTP, хотя когда я читаю статью — я вижу по абзацу на каждую из этих тем.
Может я как-то неправильно выразился? Или слово «вес» — это такой общий триггер, на «о, ну вот сейчас мне опять будут про ИНС затирать, ну не работают они как мозг»?)
Просто не совсем понял, что я не так сделал в статье, если мне приходится дополнять ее комментариями)
Я предполагаю, что вы прочитали слово «вес» и связали его с ИНС, так как там используется тот же термин. Да, я взял его оттуда, и дополнил так, чтобы он отражал процессы в реальном нейроне. Веса меняются, затухают со временем, усиливаются только с E-LTP. L-LTP — не механизм усиления а механизм фиксации в текущем состоянии.
Я даже картинку в статье сделал) Вот эту:
Вторая связь «сильнее», но не зафиксирована. Первая — наоборот. Через несколько часов — вторая «затухла», а первая — осталась такой же.
Дополню, что в моей модели отсутствие связи — эквивалентно нулевому весу связи в плане активации нейрона к которому она идет. И при бесконечном времени вес связи будет стремиться к нулю, если она не «зафиксирована» L-LTP.
Но при этом, ребро неплохо изображает наличие синапса и потенциальную возможность усилить связь. Поэтому я не удаляю «ослабшие» ребра.
Как вы и описали у себя в комментарии)
Про то, как «кататься по памяти» (на самом деле вы довольно неплохую аналогию подобрали, там действительно облако связей) — будет в одной из следующих статей. Собственно, моя статья кончается на том, что память — это граф объектов. А вот штука которая позволяет его «обходить» — находится в немного другой части мозга, и сделана для другой цели)