что значит выявить закономерности
Значение слова «закономерность»
Источник (печатная версия): Словарь русского языка: В 4-х т. / РАН, Ин-т лингвистич. исследований; Под ред. А. П. Евгеньевой. — 4-е изд., стер. — М.: Рус. яз.; Полиграфресурсы, 1999; (электронная версия): Фундаментальная электронная библиотека
Различают общие, специфические и универсальные закономерности.
ЗАКОНОМЕ’РНОСТЬ, и, ж. (книжн.). Отвлеч. сущ. к закономерный, соответствие с законом, последовательное проявление действия какого-н. закона. З. явлений.
Источник: «Толковый словарь русского языка» под редакцией Д. Н. Ушакова (1935-1940); (электронная версия): Фундаментальная электронная библиотека
закономе́рность
1. книжн. свойство по значению прилагательного закономерный; регулярность, повторяемость чего-либо ◆ Ограничимся пока лишь указанием на самою проблему, на её закономерность, на её насущность. Н. В. Устрялов, «Под знаком революции», 1927 г. (цитата из НКРЯ) ◆ Действительно, молоко, масло и мясо каждый день покупались, а цены на них росли с неуклонной закономерностью. Федор Шахмагонов, Евгений Зотов, «Гость», 1977 г. (цитата из НКРЯ)
2. правомерность, оправданность, обусловленность чего-либо ◆ Закономерность присутствия каждого кадра не по абстрактно ритмическому или индивидуалистически-настроенческому принципу, а по необходимости, как элемента действия, опустить который нельзя. Григорий Козинцев, «Тут начинается уже не хронология, но эпоха…», 1940–1973 г. (цитата из НКРЯ)
3. закономерное явление; существенная, постоянно повторяющаяся взаимосвязь явлений реального мира; проявление какого-либо объективного закона, правила ◆ Имея первоначальным источником материальные потребности человека, борьбу за существование, положительная наука в дальнейшем развитии ставит себе и чисто теоретические цели установления закономерности в мире явлений. С. Н. Булгаков, «Основные проблемы теории прогресса», 1902 г. (цитата из НКРЯ) ◆ Опыт дает нам знание только единичных случаев, которые в лучшем случае могут быть лишь частыми и повторяющимися: но по самому существу дела никакой опыт не может нам дать знания о всеобщей или необходимой закономерности. С. Л. Франк, «Непостижимое», 1938 г. (цитата из НКРЯ) ◆ Разум должен согласить и сочетать хаотические движения и процессы мира, внести в них разумную закономерность. Георгий Флоровский, «Пути русского богословия», 1936 г. (цитата из НКРЯ) ◆ Неистребимая привычка научного работника: во всем искать закономерности, повторяющиеся черты. И. Грекова, «Без улыбок», 1975 г. (цитата из НКРЯ)
Математики нашли закономерность, разбираясь в том, как избежать её появления
Мы, наконец, узнали, насколько большим должно быть множество чисел, чтобы в нём гарантировано содержалась закономерность под названием «многочленная прогрессия»
Некоторые закономерности в математике настолько редкие, что их можно искать всю жизнь и не найти. Другие же встречаются так часто, что их, кажется, невозможно избежать.
Новое доказательство, представленное Сарой Пилюс из Оксфордского университета, показывает, что одна численная закономерность особенно важного типа, по сути, является неизбежной: она гарантированно обнаружится в любой достаточно большой коллекции чисел, вне зависимости от того, как их выбирают.
«Этим закономерностям присуща своего рода неразрушимость», — сказал Теренс Тао из Калифорнийского университета в Лос-Анджелесе.
Доказательство Пилюс касается последовательности чисел под названием «многочленные прогрессии». Их легко создавать – вы очень быстро сможете составить свою – и они касаются связи между сложением и умножением чисел.
Несколько десятилетий математики знали, что при малом размере набора (или «множества») чисел – то есть, когда в нём содержится относительно немного чисел – в нём может вообще не оказаться никаких многочленных прогрессий. Им также было известно, что при росте множества оно в конце концов переходит определённый порог, после которого в нём уже содержится так много чисел, что одна из таких последовательностей обязана там встретиться. Это похоже на миску супа с буковками из теста – чем больше у вас букв, тем больше вероятность, что из них можно складывать слова.
Но до работы Пилюс математики не знали, каков этот порог. Её доказательство даёт ответ на этот вопрос – точную формулу, определяющую, насколько большим должно быть множество, чтобы в нём гарантированно содержались определённые многочленные прогрессии.
А до этого у математиков были только смутные представления о том, что многочленные прогрессии встречаются среди целых чисел (1, 2, 3, и т.п.). Теперь они точно знают, где их искать.
В поисках закономерностей
Чтобы представить себе эти закономерности, рассмотрим одну из них, немного более простую, чем та, с которой работала Пилюс. Начнём с цифры 2 и будем добавлять тройку: 2, 5, 8, 11, 14, и т.д. Такая закономерность – начав с одного номера, добавляем другой – называется «арифметической прогрессией». Это одна из наиболее изученных и частых прогрессий в математике.
Касательно частоты появления арифметической прогрессии среди целых чисел нужно понять две вещи.
Одну из них доказал Эндре Семереди в 1975 году. Сначала, сказал он, выберите длину своей арифметической прогрессии. Это может быть закономерность с четырьмя членами (2, 5, 8, 11), или семью (14, 17, 20, 23, 26, 29, 32), или вообще с любым количеством. После этого он доказывает, что как только множество чисел достигает определённого размера (который он не смог определить), в нём обязательно найдётся арифметическая прогрессия такой длины. Таким образом он укрепил идею о том, что в достаточно больших множествах чисел где-то обязательно найдётся закономерность.
«Семереди, по сути, сказал, что полный беспорядок невозможен. Какое бы множество вы ни взяли, в него всегда сумеет затесаться какая-нибудь структура», — сказал Бен Грин из Оксфорда.
Однако теорема Семереди ничего не говорит о том, насколько большой должна быть коллекция чисел для того, чтобы эти закономерности стали неизбежными. Он просто сказал, что для арифметической прогрессии любой выбранной длины обязательно существует множество чисел неизвестного размера, которое его содержит.
Более чем через два десятилетия после этого математики определили этот размер – доказав таким способом второй основной факт, касающихся арифметических закономерностей.
В 2001 году Тимоти Гауэрс из Кембриджского университета доказал, что если вы хотите гарантированно найти, допустим, арифметическую прогрессию из пяти членов, вам нужно множество чисел по меньшей мере определённого размера – и определил, какой это будет размер (описать точный размер сложно, в эту формулу входят огромные экспоненциальные числа).
Чтобы понять, что сделал Гауэрса, нужно понять, что имеют в виду математики, говоря о «размере» множества чисел и об идее «достаточно большого размера».
Во-первых, выберите интервал на числовой прямой, допустим, от 1 до 1000, или что-то более случайное, типа от 17 до 1016. Начало и конец интервала не имеют значения, важна только его длина. Затем определите ту долю чисел из этого интервала, которую вы хотите добавить в множество. К примеру, если вы создаёте множество из 100 чисел от 1 до 1000, то размер вашего множества составит 10% от интервала.
Доказательство Гауэрса работает вне зависимости от того, как вы выбираете числа из этого множества. Можно взять 100 первых нечётных чисел из диапазона от 1 до 1000, 100 первых чисел, заканчивающихся на 6, или даже 100 случайных чисел. И Гауэрс доказал, что вне зависимости от метода, как только множество займёт достаточно большое пространство (не обязательно 10%) в достаточно длинном интервале, в нём неизбежно появится арифметическая прогрессия из пяти членов. То же самое он доказал для арифметической прогрессии любой длины.
«После Гауэрса мы знаем, что если мне дадут арифметическую прогрессию любой длины, тогда любое подмножество» чисел какого-то определённого размера обязательно будет содержать эту прогрессию, сказала Пилюс.
Работа Пилюс похожа на достижение Гауэрса, только она сконцентрировалась на многочленных прогрессиях.
«Можно создавать большие множества чисел, не содержащие геометрических прогрессий. Но если дать себе немного свободы, и сдвинуть геометрическую прогрессию», создав многочленную прогрессию, то крупные множества, кажется, просто вынуждены содержать их, сказал Шон Прендивиль из Ланкастерского университета, работавший с Пилюс над многочленными прогрессиями.
В 1996 году Виталий Бергельсон и Александр Лейбман доказали, что при достижении достаточно большого размера множеством там обязательно должны появиться многочленные прогрессии – это был многочленный эквивалент работы Семереди. Однако, у математиков не было понятия о том, насколько большим должно быть «достаточно большое» множество.
Пилюс ответила на этот вопрос контринтуитивным способом – размышляя о том, какими свойствами должно обладать множество чисел, чтобы в нём не было таких закономерностей.
Борьба с закономерностями при помощи закономерностей
Пилюс хотела определить, насколько большим должно быть множество – какой процент чисел из интервала должен в нём содержаться – чтобы гарантировать, что оно будет содержать заданную многочленную прогрессию. Для этого она представила все способы, благодаря которым множество чисел может избежать появления в нём прогрессии – а потом доказала, что при превышении определённого размера не работают даже самые хитроумные из этих стратегий.
Эту задачу можно рассматривать как состязание. Допустим, кто-то просит вас создать множество, содержащее половину чисел от 1 до 1000. Вы выигрываете, если в множестве не будет первых четырёх членов многочленной прогрессии. Как бы вы подбирали числа?
Сара Пилюс из Оксфордского университета
Возможно, вы инстинктивно попытаетесь выбрать числа случайным образом. Но этот инстинкт будет ошибочным.
«Большинство множеств находятся в середине нормального распределения. Они содержат среднее количество многочленных прогрессий», — сказал Прендивиль. И это среднее значение гораздо больше требуемого от вас нулевого.
Это похоже на то, как если бы вы выбирали из всего населения планеты случайного человека, и получили такого, рост которого близок к среднему. Если ваша цель – найти более редкий экземпляр ростом более 2 м, вам нужно вести поиски более направленно.
Поэтому для выигрыша в состязании по выбору чисел вам нужен более организованный способ решать, какие числа включать в ваше множество из 500 штук. К примеру, можно заметить, что если выбирать только чётные числа, можно устранить вероятность того, что в множестве будут находиться многочленные прогрессии, содержащие нечётные числа. Прогресс! Естественно, таким способом вы увеличиваете вероятность того, что ваше множество содержит многочленные прогрессии, состоящие из чётных чисел.
Однако суть в том, что придумав структурированный способ выбора 500 чисел, можно устранить вероятность нахождения в множестве определённых многочленных прогрессий. Иначе говоря, нужно соблюдать закономерность, чтобы избежать закономерности.
Пилюс решила доказать, что при достижении определённого размера, даже очень хитроумно составленным множествам всё равно придётся включить в себя многочленные прогрессии. По сути, она хотела определить критическую точку, в которой вы, каждый раз избегая включения многочленных прогрессий одного типа, приходите к наличию многочленных прогрессий другого типа – как в случае с чётными и нечётными числами.
Для этого ей нужно было найти способ количественно оценить структуризацию множества.
Измерение структуры
До выхода работы Пилюс многие математики пытались понять, когда именно многочленные прогрессии появляется в множестве чисел. Этим занимались многие из весьма успешных математиков, но никто из них не смог достаточно сильно продвинуться на пути к выяснению размера множества, которого оно должно достичь, чтобы содержать многочленные прогрессии различной длины.
Главным препятствием для них было то, что математики не представляли, как именно можно охарактеризовать структуры, позволяющие избежать появления многочленных прогрессий. Была одна потенциальная техника для этого, но когда Пилюс начинала работать в этой области, её нельзя было применить к вопросам, касающимся многочленных прогрессий.
Эта техника появилась в работе Гауэрса от 2001 года по арифметическим прогрессиям. Гауэрс создал тест, назвав его «нормой Гаэурса», обнаруживающий структуры определённого вида в множестве чисел. Тест выдаёт одно число, определяющее количество структурности в множестве – то есть, он численно показывает, насколько далеко множество отошло от простого набора случайных чисел.
«Понятие »множество выглядит случайным» не является чётко определённым с математической точки зрения», — сказал Грин. Гауэрс нашёл способ количественно охарактеризовать это понятие.
Множество может быть более или менее структурированным. Множества, содержащие случайные числа, не имеют структуры, поэтому с большой вероятностью содержат числовые закономерности. У таких множеств норма Гауэрса низкая. Множества, содержащие только нечётные числа, или только числа, делящиеся на 10, имеют рудиментарную структуру. Легко доказать, что при превышении определённого размера в множествах такой простой структуры также появятся различные закономерности.
Тяжелее всего работать с множествами очень сложных структур. Они могут выглядеть случайными, однако при этом быть построенными по какому-то очень хитрому правилу. Их норма Гауэрса высока, и они дают наилучшие шансы систематически избегать закономерностей при росте размера множества.
Поскольку Гауэрс использовал эти техники для поисков ответы на вопросы, связанные с арифметическими прогрессиями, их нельзя было применить к вопросам, касающимся многочленных прогрессий. Арифметические прогрессии имеют равные промежутки, а числа в многочленных прогрессиях очень активно скачут. Нормы Гауэрса были полезными для изучения многочленных прогрессий так же, как триммер для травы для очистки старой краски с дома: идея похожая, хотя для этой работы и не совсем подходит.
В новом доказательстве Пилюс использовала базовую идею нормы Гауэрса для создания нового способа анализа структур, связанных с многочленными прогрессиями. Она использовала технику «понижения градуса» для доказательства того, что при разбирательствах с интересующими её многочленными прогрессиями стоит беспокоиться только о простых структурах с низкой нормой Гауэрса. Дело в том, что многочленные прогрессии настолько сильно меняются при переходе от одного члена к другому, что они неизбежно прорываются через менее прочные числовые препятствия – как слон, продирающийся через витрины наружу из посудной лавки.
Формулу Пилюс тяжело описать простыми терминами. В ней участвует двойной логарифм длины изначального интервала, из которого вы выбираете числа для своего множества. Полученный ею минимальный размер не обязательно будет самым малым из всех возможных – в будущих работах может обнаружиться, что истинный порог находится ещё ниже. Но до появления её доказательства у математиков вообще не было количественного понимания появления гарантии наличия многочленных прогрессий.
«Она стала первым человеком, показавшим, насколько большим должен быть размер множества», — сказал Прендивиль.
Доказательство Пилюс количественно отвечает на один вопрос, связанный с многочленными прогрессиями. Теперь математики используют его в надежде получить ответ на другой вопрос – касательно того, когда многочленные прогрессии появляются в множествах, целиком состоящих из простых чисел, наиболее важных чисел в математике, упорно сопротивляющихся каким бы то ни было последовательностям. До появления этого доказательства у математиков не было представления о том, как подойти к этому вопросу.
«Есть надежда, что некоторые из аргументов моей работы можно будет применить в области простых чисел», — сказала Пилюс.
Как понять найти закономерность
Тема: Закономерности в числах и фигурах
Всё в нашей жизни подчиняется каким-то правилам. Есть правила и в математике. Например, посмотрите на такой ряд чисел: 1, 2, 3. Числа стоят по порядку. Или такой ряд: 1, 3, 5: числа стоят через 1 число. 10, 20, 30: каждое следующее число больше предыдущего на 10. То есть при составлении какого-то последовательного ряда соблюдается какое-то правило. Это правило называется закономерность.
Закономерность – это правило, по которому что-то повторяется время от времени.
Повторяться могут изображения, буквы, числа и любые другие символы. Но обязательно в ряду должно быть не менее трёх чисел.
Например, 2, 3. Есть ли в этом ряду закономерность? Этого мы утверждать не можем. А если ряд 3, 6, 9, то какое число мы можем поставить дальше? Конечно. 12. Мы должны поставить это число по правилу данной закономерности (каждое число в ряду больше другого на 3).
В закономерности всегда не менее 3-х элементов!
На первых двух мы обычно предполагаем закономерность, а на третьем проверяем. Два элемента могут находиться рядом абсолютно случайно. А три – это уже правило.
Как находить закономерности?
1. Внимательно смотрим на ряд чисел, фигур или других картинок.
2. Если в этом ряду есть закономерность, то думаем, какая.
3. Проверяем, соблюдается ли это правило во всей последовательности чисел.
4. Вставляем числа (или фигуры), которые должны эту закономерность продолжить.
Рассмотрим пример с фигурами: В таблице размещены рожицы: квадрат, треугольник, круг. Две строки заполнены, а в третьей одна ячейка свободна. Сравним все ряды: в каждом полном ряду есть все три фигуры. Какую фигуру на надо вставить в пустую клеточку? Чего в этом ряду не хватает? Конечно, это квадрат. Мы нашли закономерность, задачу решили.
Как решать задания на закономерности, вы подробно можете посмотреть на сайте заочных школ на Методической страничке в пособии «Закономерности в цифрах и фигурах. Аналогичная закономерность». Скачайте и просмотрите. Там есть примеры аналогичных заданий.
Будьте очень внимательны при решении этих последовательностей!
КОНТРОЛЬНАЯ РАБОТА № 3 по предмету «Математическая мозаика» для 1 класса
Фамилия _______________________________ Имя __________________
Школа _______________ Класс ______________
Задание 1. Назовите следующее число в ряду:
Задание 2. Помогите коту Мурзику выбрать из предлагаемых вариантов геометрическую фигуру, которую нужно поместить в пустую клетку.
Задание 3. Машенька – ужасная модница. У нее два ящика с красивыми косынками. В первом ящике: красная косынка, синяя косынка в белый горошек, желтая косынка в мухоморчик, красная косынка в рыбку, зеленая косынка с птичкой, зеленая косынка в мороженку. Во втором ящике: синяя косынка в белочку, красная косынка в горошек, зеленая косынка в мухоморчик. Сколько различных по цвету косынок у Машеньки? Ответ: ________
Задание 4. Определи, какую картинку надо вставить в пустую клетку.
А. Лодочка 2. Машинка 3. Ведёрко
Задание 5. Найдите числа, которых не хватает каждой змейке. Впишите цифры в ответе.
Ответ:
Жёлтая змейка (верхняя) – ____
Зелёная змейка (средняя) – ______
Малиновая змейка (нижняя) – _____
Задание 6. Какая фигура лишняя?
3 4 5 Ответ: _______
Задание 7. Какой пример соответствует картинке?
А) 4 + 4 = 8
Задачи на поиск закономерностей развивают логическое мышление ребёнка, учат сравнивать, рассуждать, классифицировать и делать выводы.
Выбирайте игру для старта
На платформе LogicLike.com дети с удовольствием развивают логику и способности к математике (смотреть отзывы). У нас 3500 занимательных заданий с ответами и пояснениями!
Что такое закономерность в математике?
Математическая закономерность – это определенное правило, по которому в числовом, фигурном или другом ряду элементов происходит повторение или изменение самих элементов или их свойств в соответствии с заданным правилом.
Из учебных материалов с картинками и видео, подготовленных опытными педагогами, ваш ребёнок узнает:
Очень часто в головоломках на закономерность встречаются буквы и цифры. Иногда могут встречаться и геометрические фигуры, и различные картинки, но это очень редко. Именно исходя из представленных букв и цифр, необходимо найти закономерность и додумать, какое же число или буква будет идти следующим. Очень часто в таких головоломках на закономерность буквы означают какие либо количественные признаки, а цифры – наоборот, зачастую обозначают буквы, или даже целые слова.
Последовательность букв
Автор получил 7 рублей за добавление этой Головоломки на сайт
Хочу так же
Логика сознания. Часть 12. Поиск закономерностей. Комбинаторное пространство
Поэзия — та же добыча радия.
В грамм добыча, в годы труды.
Изводишь единого слова ради
Тысячи тонн словесной руды.
Но как испепеляюще слов этих жжение
Рядом с тлением слова-сырца.
Эти слова приводят в движение
Тысячи лет миллионов сердца.
Сделаем еще один шаг в сторону универсального обобщения. Опишем идею комбинаторного пространства и то, как это пространство помогает искать закономерности и тем самым решать задачу обучения с учителем.
Задача контекстного сдвига текстовой строки
Сейчас мы покажем, как очень сложно решить очень простую задачу. Мы научимся сдвигать на одну позицию произвольную текстовую строку.
Предположим, что у нас есть длинный текст. Мы последовательно читаем его от начала к концу. За один шаг чтения мы смещаемся на один символ. Предположим, что у нас есть скользящее окно шириной N символов и в каждый момент времени нам доступен только фрагмент текста, помещающийся в это окно. Введем циклический идентификатор позиции (описан в конце четвертой части), указывающий на позицию символов в тексте. Период идентификатора обозначим K. Пример текста с наложенным идентификатором позиции и сканирующим окном приведен на рисунке ниже.
Фрагмент текста. Числами обозначен циклический идентификатор позиции. Период идентификатора K=10. Вертикальными линиями выделено одно из положений скользящего окна. Размер окна N=6
Основная идея такого представления в том, что если размер окна N меньше периода идентификатора K, то набор пар «буква — идентификатор позиции» позволяет однозначно записать строку внутри скользящего окна. Ранее похожий метод записи мы упоминали, когда говорили о том, как можно закодировать звуковую информацию. Подставьте вместо букв коды неких условных фонем, и вы получите запись звукового фрагмента.
Введем систему понятий, позволяющую описать все, что появляется в скользящем окне. Для простоты не будем делать разницы между заглавными и строчными буквами и не будем учитывать знаки препинания. Так как потенциально любая буква может встретиться нам в любой позиции, то нам понадобятся все возможные сочетания букв и позиций, то есть 26 x K понятий. Условно эти понятия можно обозначить как
Мы можем записать любое состояние скользящего окна как перечисление соответствующих понятий. Так для окна, показанного на рисунке выше, это будет
Сопоставим каждому понятию некий разреженный бинарный код. Например, если взять длину кода в 256 бит и отвести 8 бит для кодирования одного понятия, то кодирование буквы «a» в различных позициях будет выглядеть как показано на рисунке ниже. Напомню, что коды выбираются случайным образом, и биты у них могут повторяться, то есть одни и те же биты могут быть общими для нескольких кодов.
Пример кодов буквы a в позициях от 0 до 9. Бинарные вектора показаны вертикально, единицы выделены горизонтальными светлыми линиями
Создадим бинарный код фрагмента логическим сложением кодов составляющих его понятий. Как уже писалось ранее, такой бинарный код фрагмента будет обладать свойствами фильтра Блума. Если разрядность бинарного массива достаточна высока, то с достаточно высокой точностью можно выполнить обратное преобразование и получить из кода фрагмента набор исходных понятий.
На рисунке ниже приведен пример того, как будут выглядеть коды понятий и суммарный код фрагмента для предыдущего примера.
Пример сложения бинарных кодов понятий в код фрагмента
Описание, составленное таким образом, хранит не только набор букв фрагмента текста, но и их последовательность. Однако и набор понятий, и суммарный код этой последовательности зависит от того, в какой позиции находился циклический идентификатор на момент, когда последовательность появилась в тексте. На рисунке ниже приведен пример того, как описание одного и того же фрагмента текста зависит от начального положения циклического идентификатора.
Изменение кодировки текста при разном начальном смещении
Первому случаю будет соответствовать описание
Второй случай будет записан, как
В результате текст один и тот же, но совсем другой набор понятий и, соответственно, совсем другой описывающий его бинарный код.
Тут мы приходим к тому, о чем так много говорили в предыдущих частях. Варианты, получаемые при смещении текста, – это возможные трактовки одной и той же информации. При этом контекстами выступают все возможные варианты смещения. И хотя суть информации неизменна, ее внешняя форма, то есть описание через набор понятий или через его бинарное представление, меняется от контекста к контексту, то есть, в нашем случае, при каждом изменении начальной позиции.
Чтобы иметь возможность сравнивать фрагменты текста инвариантно к их смещению, надо ввести пространство контекстов смещений. Для этого понадобится K контекстов. Каждый контекст будет соответствовать одному из вариантов возможного начального смещения.
Напомню, что контексты определяются правилами контекстных преобразований. В каждом контексте задается набор правил относительно того, как меняются понятия в этом контексте.
Контекстными преобразованиями в случае с текстом будут правила изменения понятий при переходе к соответствующему контексту смещению. Так, например, для контекста с нулевым смещением правила переходов будут переходами сами в себя
Для контекста со смещением на 8 позиций при длине кольцевого идентификатора K=10, что соответствует нижней строке примера с рисунка выше, правила будут иметь вид
a0→a8, a1→a9, a2→a0⋯z9→z7
При таких правилах в контексте со смещением 8 описание окна из первой строки примера перейдет в описание окна из второй строки, что, собственно, вполне очевидно и без долгих пояснений
В нашем случае контексты, по сути, выполняют вариацию смещения текстовой строки по всем возможным позициям кольцевого идентификатора. В результате если две строки совпадают или похожи друг на друга, но сдвинуты одна относительно другой, то всегда найдется контекст, который нивелирует это смещение.
Позже мы подробно разовьем мысль о контекстах, сейчас же нас будет интересовать один частный, но при этом очень важный вопрос: как изменяются бинарные коды описаний при переходе от одного контекста к другому?
В нашем примере мы имеем текст и знаем позиции букв. Задав требуемое смещение, мы всегда можем пересчитать позиции букв и получить новое описание. Не представляет труда вычислить бинарные коды для исходного и смещенного состояния. Например, на рисунке ниже показано, как будет выглядеть код строки «arkad» в нулевом смещении и код той же строки при смещении на одну позицию вправо.
Код исходной строки и ее смещения
Так как у нас есть алгоритм пересчета описаний, мы без труда можем для любой строки получить ее исходный бинарный код (в нулевом контексте) и код в смещении на одну позицию (в контексте «1»). Взяв длинный текст, мы можем создать сколь угодно много таких примеров, относящихся к одному смещению.
А теперь возьмем сгенерированные примеры и представим, что перед нами черный ящик. Есть бинарное описание на входе, есть бинарное описание на выходе, но нам ничего не известно ни про природу входного описания, ни про правила, по которым происходит преобразование. Можем ли мы воспроизвести работу этого черного ящика?
Мы пришли к классической задаче обучения с учителем. Есть обучающая выборка и по ней требуется воспроизвести внутреннюю логику, связывающую входные и выходные данные.
Такая постановка задачи типична для ситуаций, с которыми часто сталкивается мозг, решая вопросы контекстных преобразований. Например, в прошлой части было описано, как сетчатка глаза формирует бинарные коды, соответствующие зрительной картинке. Микродвижения глаз постоянно создают обучающие примеры. Так как движения очень быстрые, то можно считать, что мы видим одну и ту же сцену, но только в разных контекстах смещения. Таким образом мозг получает исходный код изображения и код, в который это изображение переходит в контексте проделанного глазом смещения. Задача обучения зрительных контекстов – это вычисление правил, которым подчиняются зрительные трансформации. Знание этих правил позволяет получать трактовки одного и того же изображения одновременно в различных вариантах смещений без необходимости глазу физически эти смещения совершать.
В чем сложность?
Когда я учился в институте, у нас была очень популярна игра «Быки и коровы». Один игрок загадывает четырехзначное число без повторов, другой пытается его угадать. Тот, кто пытается, называет некие числа, а загадавший сообщает, сколько в них быков, то есть угаданных цифр, стоящих на своем месте, и сколько коров, цифр, которые есть в загаданном числе, но стоят не там, где им положено. Вся соль игры в том, что ответы загадавшего не дают однозначной информации, а создают множество допустимых вариантов. Каждая попытка порождает такую неоднозначную информацию. Однако совокупность попыток позволяет найти единственно верный ответ.
Что-то похожее есть и в нашей задаче. Выходные биты не случайны, каждый из них зависит от определенного сочетания входных битов. Но так как во входном векторе может содержаться несколько понятий, то неизвестно, какие именно биты отвечают за срабатывание конкретного выходного бита.
Так как в кодах понятий биты могут повторяться, то один входной бит ничего не говорит о выходе. Чтобы судить о выходе, требуется анализировать сочетание нескольких входных битов.
Поскольку один и тот же выходной бит может относиться к кодам разным понятий, то срабатывание выходного бита еще не говорит о том, что на входе появилось то же сочетание бит, которое заставило этот выходной бит сработать ранее.
Иначе говоря, получается достаточно сильная неопределенность, как со стороны входа, так и со стороны выхода. Эта неопределенность оказывается серьезной помехой и затрудняет слишком простое решение. Одна неопределенность перемножается на другую неопределенность, что в результате приводит к комбинаторному взрыву.
Для борьбы с комбинаторным взрывом требуется «комбинаторный лом». Есть два инструмента, позволяющие на практике решать сложные комбинаторные задачи. Первый – это массовое распараллеливание вычислений. И тут важно не только иметь большое количество параллельных процессоров, но и подобрать такой алгоритм, который позволяет распараллелить задачу и загрузить все доступные вычислительные мощности.
Второй инструмент – это принцип ограниченности. Основной метод, использующий принцип ограниченности – это метод «случайных подпространств». Иногда комбинаторные задачи допускают сильное ограничение исходных условий и при этом сохраняют надежду, что и после этих ограничений в данных сохранится достаточно информации, чтобы можно было найти требуемое решение. Вариантов того, как можно ограничить исходные условия, может быть много. Не все из них могут быть удачными. Но если, все же, вероятность, что удачные варианты ограничений есть, то тогда сложная задача может быть разбита на большое количество ограниченных задач, каждая из которых решается значительно проще исходной.
Комбинируя эти два принципа, можно построить решение и нашей задачи.
Комбинаторное пространство
Возьмем входной битовый вектор и пронумеруем его биты. Создадим комбинаторные «точки». В каждую точку сведем несколько случайных битов входного вектора (рисунок ниже). Наблюдая за входом, каждая из этих точек будет видеть не всю картину, а только ее малую часть, определяемую тем, какие биты сошлись в выбранной точке. Так на рисунке ниже крайняя слева точка с индексом 0 следит только за битами 1, 6, 10 и 21 исходного входного сигнала. Создадим таких точек достаточно много и назовем их набор комбинаторным пространством.
В чем смысл этого пространства? Мы предполагаем, что входной сигнал не случаен, а содержит определенные закономерности. Закономерности могут быть двух основных типов. Что-то во входном описании может появляться несколько чаще чем другое. Например, в нашем случае отдельные буквы появляются чаще чем их сочетания. При битовом кодировании это означает, что определенные комбинации битов встречаются, чаще чем другие.
Другой тип закономерностей – это когда кроме входного сигнала есть сопутствующий ему сигнал обучения и что-то, содержащееся во входном сигнале, оказывается связано с чем-то, что содержится в сигнале обучения. В нашем случае активные выходные биты – это реакция на комбинацию определенных входных битов.
Классический метод, широко используемый в нейронных сетях, — градиентный спуск. Для него важно понять, в какую сторону двигаться. Обычно это несложно, когда выходная цель одна. Например, если мы хотим обучить нейронную сеть написанию цифр, мы показываем ей изображения цифр и указываем, что за цифру она при этом видит. Сети понятно «как и куда спускаться». Если мы будем показывать картинки сразу с несколькими цифрами и называть все эти цифры одновременно, не указывая, где что, то ситуация становится значительно сложнее.
Когда создаются точки комбинаторного пространства с сильно ограниченным «обзором» (случайные подпространства), то оказывается, что некоторым точкам может повезти и они увидят закономерность если не совсем чистой, то, по крайней мере, в значительно очищенном виде. Такой ограниченный взгляд позволит, например, провести градиентный спуск и получить уже чистую закономерность. Вероятность для отдельной точки наткнуться на закономерность может быть не очень высока, но всегда можно подобрать такое количество точек, чтобы гарантировать себе, что всякая закономерность «где-то да всплывет».
Конечно, если делать размеры точек слишком узкими, то есть количество битов в точках выбирать приблизительно равным тому, сколько битов ожидается в закономерности, то размеры комбинаторного пространства начнут стремиться к количеству вариантов полного перебора возможных гипотез, что возвращает нас к комбинаторному взрыву. Но, к счастью, можно увеличивать обзор точек, снижая их общее количество. Это снижение не дается бесплатно, комбинаторика «переносится в точки», но до определенного момента это не смертельно.
Создадим выходной вектор. Просто сведем в каждый бит выхода несколько точек комбинаторного пространства. Какие это будут точки выберем случайным образом. Количество точек, попадающих в один бит, будет соответствовать тому, во сколько раз мы хотим уменьшить комбинаторное пространство. Такой вектор выхода будет хэш-функцией для вектора состояния комбинаторного пространства. О том, как это состояние считается, мы поговорим чуть позже.
В общем случае, например, как показано на рисунке выше, размер входа и выхода могут быть различны. В нашем примере с перекодированием строк эти размеры совпадают.
Кластеры рецепторов
Как искать закономерности в комбинаторном пространстве? Каждая точка видит свой фрагмент входного вектора. Если в том, что она видит, оказывается достаточно много активных битов, то можно предположить, что то, что она видит, и есть какая-либо закономерность. То есть, набор активных битов, попадающий в точку, можно назвать гипотезой о наличии закономерности. Запомним такую гипотезу, то есть зафиксируем набор активных битов, видимых в точке. В ситуации, показанной на рисунке ниже, видно, что в точке 0 надо зафиксировать биты 1, 6 и 21.
Фиксация битов в кластере
Будем называть запись номера одного бита рецептором к этому биту. Это подразумевает, что рецептор следит за состоянием соответствующего бита входного вектора и реагирует, когда там появляется единица.
Набор рецепторов будем называть кластером рецепторов или рецептивным кластером. Когда предъявляется входной вектор, рецепторы кластера реагируют, если в соответствующих позициях вектора стоят единицы. Для кластера можно подсчитать количество сработавших рецепторов.
При таких настройках практически каждый бит, который есть в коде одной буквы, повторяется в коде другой буквы, а то и в кодах нескольких букв. Поэтому одиночный рецептор не может надежно указать на закономерность. Два рецептора указывают на букву значительно лучше, но и они могут указывать на сочетание совсем других букв. Можно ввести некий порог длины, начиная с которого можно достаточно достоверно судить о том, есть ли в кластере нужный нам фрагмент кода.
Введем минимальный порог по количеству рецепторов, необходимых для формирования гипотезы (в примере он равен 6). Приступим к обучению. Будем подавать исходный код и код, который мы хотим получить на выходе. Для исходного кода легко подсчитать, сколько активных битов попадает в каждую из точек комбинаторного пространства. Выберем только те точки, которые подключены к активным битам выходного кода и у которых количество попавших в нее активных битов входного кода окажется не меньше порога создания кластера. В таких точках создадим кластеры рецепторов с соответствующими наборами битов. Сохраним эти кластеры именно в тех точках, где они были созданы. Чтобы не создавать дубликаты, предварительно проверим, что эти кластеры уникальны для этих точек и точки еще не содержат точно таких же кластеров.
Скажем то же другими словами. По выходному вектору мы знаем, какие биты должны быть активны. Соответственно, мы можем выбрать связанные с ними точки комбинаторного пространства. Для каждой такой точки мы можем сформулировать гипотезу о том, что то, что она сейчас видит на входном векторе, – это и есть закономерность, которая отвечает за активность того бита, к которому эта точка подключена. Мы не можем сказать по одному примеру, верна или нет эта гипотеза, но выдвинуть предположение нам никто не мешает.
Обучение. Консолидация памяти
В процессе обучения каждый новый пример создает огромное количество гипотез, большинство из которых неверны. От нас требуется проверить все эти гипотезы и отсеять ложные. Это мы можем сделать, наблюдая за тем, подтвердятся ли эти гипотезы на последующих примерах. Кроме того, создавая новый кластер, мы запоминаем все биты, которые видит точка, а это, даже если там и содержится закономерность, еще и случайные биты, которые попали туда от других понятий, не влияющих на наш выход, и которые в нашем случае являются шумом. Соответственно, требуется не только подтвердить или опровергнуть, что в запомненной комбинации битов содержится нужная закономерность, но и очистить эту комбинацию от шума, оставив только «чистое» правило.
Возможны разные подходы к решению поставленной задачи. Опишу один из них, не утверждая, что он лучший. Я перебрал множество вариантов, этот подкупил меня качеством работы и простотой, но это не значит, что его нельзя улучшить.
Удобно воспринимать кластеры, как автономные вычислители. Если каждый кластер может проверять свою гипотезу и принимать решения независимо от остальных, то это очень хорошо для потенциального распараллеливания вычислений. Каждый кластер рецепторов после создания начинает самостоятельную жизнь. Он следит за поступающими сигналами, накапливает опыт, меняет себя и принимает если необходимо решение о самоликвидации.
Кластер – это набор битов, про который мы предположили, что внутри него сидит закономерность, связанная со срабатыванием того выходного бита, к которому подключена точка, содержащая этот кластер. Если закономерность есть, то скорее всего она затрагивает только часть битов, причем мы заранее не знаем, какую. Поэтому будем фиксировать все моменты, когда в кластере срабатывает существенное количество рецепторов (в примере не менее 4). Возможно, что в эти моменты закономерность, если она есть, проявляет себя. Когда накопится определенная статистика, мы сможем попробовать определить, есть ли в таких частичных срабатываниях кластера что-то закономерное или нет.
Пример статистики показан на рисунке ниже. Плюс в начале строки показывает, что в момент частичного срабатывания кластера выходной бит также был активен. Биты кластера сформированы из соответствующих битов входного вектора.
Хроника частичного срабатывания кластера рецепторов
Что нас должно интересовать в этой статистике? Нам важно, какие биты чаще других срабатывают совместно. Не спутайте это с самыми частыми битами. Если посчитать для каждого бита частоту его появления и взять самые распространенные биты, то это будет усреднение, которое совсем не то, что нам надо. Если в точке сошлись несколько устойчивых закономерностей, то при усреднении получится средняя между ними «не закономерность». В нашем примере, видно, что 1,2 и 4 строки похожи между собой, также похожи 3,4 и 6 строки. Нам надо выбрать одну из этих закономерностей, желательно самую сильную, и очистить ее от лишних битов.
Наиболее распространенная комбинация, которая проявляется как совместное срабатывание определенных битов, является для этой статистики первой главной компонентой. Чтобы вычислить главную компоненту, можно воспользоваться фильтром Хебба. Для этого можно задать вектор с единичными начальными весами. Затем получать активность кластера, перемножая вектор весов на текущее состояние кластера. А затем сдвигать веса в сторону текущего состояния тем сильнее, чем выше эта активность. Чтобы веса не росли бесконтрольно, после изменения весов их надо нормировать, например, на максимальное значение из вектора весов.
Такая процедура повторяется для всех имеющихся примеров. В результате вектор весов все больше приближается к главной компоненте. Если тех примеров, что есть, не хватает, чтобы сойтись, то можно несколько раз повторить процесс на тех же примерах, постепенно уменьшая скорость обучения.
Основная идея в том, что по мере приближения к главной компоненте кластер начинает все сильнее реагировать на образцы, похожие на нее и все меньше на остальные, за счет этого обучение в нужную сторону идет быстрее, чем «плохие» примеры пытаются его испортить. Результат работы такого алгоритма после нескольких итераций показан ниже.
Результат, полученный после нескольких итераций выделения первой главной компоненты
Если теперь подрезать кластер, то есть оставить только те рецепторы, у которых высокие веса (например, выше 0.75), то мы получим закономерность, очищенную от лишних шумовых битов. Эту процедуру можно повторить несколько раз по мере накопления статистики. В результате можно понять, есть ли в кластере какая-либо закономерность, или мы собрали вместе случайный набор битов. Если закономерности нет, то в результате подрезания кластера останется слишком короткий фрагмент. В этом случае такой кластер можно удалить как несостоявшуюся гипотезу.
Кроме подрезки кластера надо следить за тем, чтобы была поймана именно нужная закономерность. В исходной строке смешаны коды нескольких букв, каждый из них является закономерностью. Любой из этих кодов может быть «пойман» кластером. Но нас интересует код только той буквы, которая влияет на формирование выходного бита. По этой причине большинство гипотез будут ложными и их необходимо отвергнуть. Это можно сделать по тем критериям, что частичное или даже полное срабатывание кластера слишком часто будет не совпадать с активностью нужного выходного бита. Такие кластеры подлежат удалению. Процесс такого контроля и удаления лишних кластеров вместе с их «подрезкой» можно назвать консолидацией памяти.
Процесс накопления новых кластеров достаточно быстрый, каждый новый опыт формирует несколько тысяч новых кластеров-гипотез. Обучение целесообразно проводить этапами с перерывом на «сон». Когда кластеров создается критически много, требуется перейти в режим «холостой» работы. В этом режиме прокручивается ранее запомненный опыт. Но при этом не создается новых гипотез, а только идет проверка старых. В результате «сна» удается удалить огромный процент ложных гипотез и оставить только гипотезы, прошедшие проверку. После «сна» комбинаторное пространство не только оказывается очищено и готово к приему новой информации, но и гораздо увереннее ориентируется в том, что было выучено «вчера».
Выход комбинаторного пространства
По мере того, как кластеры будут накапливать статистику и проходить консолидацию, будут появляться кластеры, достаточно похожие на то, что их гипотеза либо верна, либо близка к истине. Будем брать такие кластеры и следить за тем, когда они будут полностью активироваться, то есть когда будут активны все рецепторы кластера.
Далее из этой активности сформируем выход как хеш комбинаторного пространства. При этом будем учитывать, что чем длиннее кластер, тем выше шанс, что мы поймали закономерность. Для коротких кластеров есть вероятность, что сочетание битов возникло случайно как комбинация других понятий. Для повышения помехоустойчивости воспользуемся идеей бустинга, то есть будем требовать, чтобы для коротких кластеров активация выходного бита происходила только когда таких срабатываний будет несколько. В случае же длинных кластеров будем считать, что достаточно и единичного срабатывания. Это можно представить через потенциал, который возникает при срабатывании кластеров. Этот потенциал тем выше, чем длиннее кластер. Потенциалы точек, подключенных к одному выходному биту, складываются. Если итоговый потенциал превышает определенный порог, то бит активируется.
После некоторого обучения на выходе начинает воспроизводиться часть, совпадающая с тем, что мы хотим получить (рисунок ниже).
Пример работы комбинаторного пространства в процессе обучения (порядка 200 шагов). Сверху исходный код, в середине требуемый код, снизу код, предсказанный комбинаторным пространством
Постепенно выход комбинаторного пространства начинает все лучше воспроизводить требуемый код выхода. После нескольких тысяч шагов обучения выход воспроизводится с достаточно высокой точностью (рисунок ниже).
Пример работы обученного комбинаторного пространства. Сверху исходный код, в середине требуемый код, снизу код, предсказанный комбинаторным пространством
Чтобы наглядно представить, как это все работает, я записал видео с процессом обучения. Кроме того, возможно, мои пояснения помогут лучше разобраться во всей этой кухне.
Усиление правил
Для выявления более сложных закономерностей можно использовать тормозные рецепторы. То есть вводить закономерности, блокирующие срабатывание некоторых утвердительных правил при появлении некой комбинации входных битов. Это выглядит как создание при определенных условиях кластера рецепторов с тормозными свойствами. При срабатывании такого кластера он будет не увеличивать, а уменьшать потенциал точки.
Несложно придумать правила проверки тормозных гипотез и запустить консолидацию тормозных рецептивных кластеров.
Так как тормозные кластеры создаются в конкретных точках, то они влияют не на блокировку выходного бита вообще, а на блокировку его срабатывания от правил, обнаруженных именно в этой точке. Можно усложнить архитектуру связей и ввести тормозные правила, общие для группы точек или для всех точек, подключенных к выходному биту. Похоже, что можно придумать еще много чего интересного, но пока остановимся на описанной простой модели.
Случайный лес
Описанный механизм позволяет найти закономерности, которые в Data Mining принято называть правилами типа «if-then». Соответственно, можно найти что-то общее между нашей моделью и всеми теми методами, что традиционно используются для решения таких задач. Пожалуй, наиболее близок к нам «random forest».
Этот метод начинается с идеи «случайных подпространств». Если в исходных данных слишком много переменных и эти переменные слабо, но коррелированы, то на полном объеме данных становится трудно вычленить отдельные закономерности. В таком случае можно создать подпространства, в которых будут ограничены как используемые переменные, так и обучающие примеры. То есть каждое подпространство будет содержать только часть входных данных, и эти данные будут представлены не всеми переменными, а их случайным ограниченным набором. Для некоторых из этих подпространств шансы обнаружить закономерность, плохо видимую на полном объеме данных, значительно повышаются.
Затем в каждом подпространстве на ограниченном наборе переменных и обучающих примеров производится обучение решающего дерева. Решающее дерево – это древовидная структура (рисунок ниже), в узлах которой происходит проверка входных переменных (атрибутов). По результатам проверки условий в узлах определяется путь от вершины к терминальному узлу, который принято называть листом дерева. В листе дерева находится результат, который может быть значением какой-либо величины или номером класса.
Пример дерева принятия решений
Для решающих деревьев существуют различные алгоритмы обучения, которые позволяют построить дерево с более-менее оптимальными атрибутами в его узлах.
На завершающем этапе применяется идея бустинга. Решающие деревья формируют комитет для голосования. На основании коллективного мнения создается наиболее правдоподобный ответ. Главное достоинство бустинга – это возможность при объединении множества «плохих» алгоритмов (результат которых лишь немного лучше случайного) получить сколь угодно «хороший» итоговый результат.
В нашем алгоритме, эксплуатирующем комбинаторное пространство и кластеры рецепторов, используются те же фундаментальные идеи, что и в методе случайного леса. Поэтому нет ничего удивительного, что наш алгоритм работает и выдает неплохой результат.
Биология обучения
Собственно, в этой статье описана программная реализация тех механизмов, которые были описаны в предыдущих частях цикла. Поэтому не будем повторять все с самого начала, отметим лишь основное. Если вы забыли о том, как работает нейрон, то можно перечитать вторую часть цикла.
На мембране нейрона располагается множество различных рецепторов. Большинство этих рецепторов находится в «свободном плавании». Мембрана создает для рецепторов среду, в которой они могут свободно перемещаться, легко меняя свое положение на поверхности нейрона (Sheng, M., Nakagawa, T., 2002) (Tovar K. R.,Westbrook G. L., 2002).
Мембрана и рецепторы
В классическом подходе на причинах такой «свободы» рецепторов обычно акцент не делается. Когда синапс усиливает свою чувствительность, это сопровождается перемещением рецепторов из внесинаптического пространства в синаптическую щель (Malenka R.C., Nicoll R.A., 1999). Этот факт негласно воспринимается как оправдание подвижности рецепторов.
В нашей модели можно предположить, что основная причина подвижности рецепторов – это необходимость «на лету» формировать из них кластеры. То есть картина выглядит следующим образом. По мембране свободно дрейфуют самые разные рецепторы, чувствительные к различным нейромедиаторам. Информационный сигнал, возникший в миниколонке, вызывает выброс нейромедиаторов аксонными окончаниями нейронов и астроцитами. В каждом синапсе, где испускаются нейромедиаторы, кроме основного нейромедиатора присутствует своя уникальная добавка, которая идентифицирует именно этот синапс. Нейромедиаторы выплескиваются из синаптических щелей в окружающее пространство, за счет чего в каждом месте дендрита (точках комбинаторного пространства) возникает специфический коктейль нейромедиаторов (ингредиенты коктейля указывают на биты, попадающие в точку). Те свободно блуждающие рецепторы, которые находят в этот момент свой нейромедиатор в этом коктейле (рецепторы конкретных битов входного сигнала), переходят в новое состояние – состояние поиска. В этом состоянии у них есть небольшое время (до того момента, пока не наступит следующий такт), за которое они могут встретить другие «активные» рецепторы и создать общий кластер (кластер рецепторов, чувствительных к определенному сочетанию битов).
Метаботропные рецепторы, а речь идет о них, имеют достаточно сложную форму (рисунок ниже). Они состоят из семи трансмембранных доменов, которые соединены петлями. Кроме того, у них есть два свободных конца. За счет разных по знаку электростатических зарядов свободные концы могут через мембрану «залипать» друг на друга. За счет таких соединений рецепторы и объединяются в кластеры.
Одиночный метаботропный рецептор
После объединения начинается совместная жизнь рецепторов в кластере. Можно предположить, что положение рецепторов относительно друг друга может меняться в широких пределах и кластер может принимать причудливые формы. Если допустить, что рецепторы, срабатывающие совместно, будут стремиться занять место ближе друг к другу, например, за счет электростатических сил, то получится интересное следствие. Чем ближе будут оказываться такие «совместные» рецепторы, тем сильнее будет их совместное притяжение. Сблизившись они начнут усиливать влияние друг друга. Такое поведение воспроизводит поведение фильтра Хебба, который выделяет первую главную компоненту. Чем точнее фильтр настраивается на главную компоненту, тем сильнее оказывается его реакция, когда она появляется в примере. Таким образом, если после ряда итераций совместно срабатывающие рецепторы окажутся вместе в условном «центре» кластера, а «лишние» рецепторы на удалении, на его краях, то, в принципе, такие «лишние» рецепторы могут в какой-то момент самоликвидироваться, то есть просто оторваться от кластера. И тогда мы получим поведение кластера, аналогичное тому, что описано выше в нашей вычислительной модели.
Кластеры, которые прошли консолидацию, могут переместиться куда-нибудь «в тихую гавань», например, в синаптическую щель. Там существует постсинаптическое уплотнение, за которое кластеры рецепторов могут якориться, теряя уже ненужную им подвижность. Поблизости от них будут находиться ионные каналы, которыми они смогут управлять через G-белки. Теперь эти рецепторы начнут влиять на формирование локального постсинаптического потенциала (потенциала точки).
Локальный потенциал складывается из совместного влияния расположенных рядом активирующих и тормозящих рецепторов. В нашем подходе активирующие отвечают за узнавание закономерностей, призывающих активировать выходной бит, тормозящие за определение закономерностей, которые блокируют действие локальных правил.
Синапсы (точки) расположены на дендритном дереве. Если где-то на этом дереве находится место, где на небольшом участке срабатывает сразу несколько активирующих рецепторов и это не блокируется тормозными рецепторами, то возникает дендритный спайк, который распространяется до тела нейрона и, дойдя до аксонного холмика, вызывает спайк самого нейрона. Дендритное дерево объединяет множество синапсов, замыкая их на один нейрон, что очень похоже на формирование выходного бита комбинаторного пространства.
Объединение сигналов с разных синапсов одного дендритного дерева может быть не простым логическим сложением, а быть сложнее и реализовывать какой-нибудь алгоритм хитрого бустинга.
Напомню, что базовый элемент коры – это кортикальная миниколонка. В миниколонке около ста нейронов расположены друг под другом. При этом они плотно окутаны связями, которые гораздо обильнее внутри миниколонки, чем связи, идущие к соседним миниколонкам. Вся кора мозга – это пространство таких миниколонок. Один нейрон миниколонки может соответствовать одному выходному биту, все нейроны одной кортикальной миниколонки могут быть аналогом выходного бинарного вектора.
Кластеры рецепторов, описанные в этой главе, создают память, ответственную за поиск закономерностей. Ранее мы описывали, как с помощью кластеров рецепторов создать голографическую событийную память. Это два разных типа памяти, выполняющие разные функции, хотя и основанные на общих механизмах.
У здорового человека сон начинается с первой стадии медленного сна, которая длится 5-10 минут. Затем наступает вторая стадия, которая продолжается около 20 минут. Еще 30-45 минут приходится на периоды третей и четвертой стадий. После этого спящий снова возвращается во вторую стадию медленного сна, после которой возникает первый эпизод быстрого сна, который имеет короткую продолжительность — около 5 минут. Во время быстрого сна глазные яблоки очень часто и периодически совершают быстрые движения под сомкнутыми веками. Если в это время разбудить спящего, то в 90% случаев можно услышать рассказ о ярком сновидении. Вся эта последовательность называется циклом. Первый цикл имеет длительность 90-100 минут. Затем циклы повторяются, при этом уменьшается доля медленного сна и постепенно нарастает доля быстрого сна, последний эпизод которого в отдельных случаях может достигать 1 часа. В среднем при полноценном здоровом сне отмечается пять полных циклов.
Можно предположить, что во сне происходит основная работа по расчистке кластеров рецепторов, накопившихся за день. В вычислительной модели мы описали процедуру «холостого» обучения. Старый опыт предъявляется мозгу, не вызывая формирования новых кластеров. Цель – проверка уже существующих гипотез. Такая проверка состоит из двух этапов. Первый — вычисление главной компоненты закономерности и проверка того, что количество битов, отвечающих за нее, достаточно для четкой идентификации. Второй – проверка истинности гипотезы, то есть того, что закономерность оказалась в нужной точке, связанной с нужным выходным битом. Можно предположить, что часть стадий ночного сна связана с такими процедурами.
Все процессы, связанные с изменениями в клетках, сопровождаются экспрессией определенных белков и транскрипционных факторов. Есть белки и факторы про которые показано, что они участвут в формировании нового опыта. Так вот, оказывается, что их количество сильно увеличивается во время бодрствования и резко уменьшается во время сна.
Увидеть и оценить концентрацию белков можно через окрашивание среза мозговой ткани красителем, избирательно реагирующим на требуемый белок. Подобные наблюдения показали, что наиболее масштабные изменения для белков, связанных с памятью, происходят именно во время сна (Chiara Cirelli, Giulio Tononi, 1998) (Cirelli, 2002) (рисунки ниже).
Распределение белка Arc в теменной коре крысы после трех часов сна (S) и после трех часов спонтанного бодрствования (W) (Cirelli, 2002)
Распределение транскрипционного фактора P-CREB в корональных участках теменной коры крысы после трех часов сна (S) и в случае лишения сна на три часа (SD) (Cirelli, 2002)
В такие рассуждения о роли сна хорошо укладывается известная каждому особенность – «утро вечера мудренее». Утром мы гораздо лучше ориентируемся в том, что еще вчера было не особо понятно. Все становится четче и очевиднее. Возможно, что этим мы обязаны именно масштабной расчистке кластеров рецепторов, произошедшей во время сна. Удаляются ложные и сомнительные гипотезы, достоверные проходят консолидацию и начинают активнее участвовать в информационных процессах.
При моделировании было видно, что количество ложных гипотез во многие тысячи раз превышает количество истинных. Так как отличить одни от других можно только временем и опытом, то мозгу не остается ничего другого, кроме как копить всю эту информационную руду в надежде найти в ней со временем граммы радия. При получении нового опыта количество кластеров с гипотезами, требующими проверки, постоянно растет. Количество кластеров, формирующихся за день и содержащих руду, которую еще предстоит обработать, может превышать количество кластеров, отвечающих за кодирование накопленного за всю предыдущую жизнь проверенного опыта. Ресурс мозга по хранению сырых гипотез, требующих проверки должен быть ограничен. Похоже, что за 16 часов дневного бодрствования кластерами рецепторов практически полностью забивается все доступное пространство. Когда наступает этот момент, мозг начинает принуждать нас перейти в режим сна, чтобы позволить ему выполнить консолидацию и расчистить свободное место. Видимо, процесс полной расчистки занимает около 8 часов. Если разбудить нас раньше, то часть кластеров останется необработанной. Отсюда происходит феномен того, что усталость накапливается. Если несколько дней недосыпать, то потом придется наверстывать упущенный сон. В противном случае мозг начинает «аварийно» удалять кластеры, что ни к чему хорошему не приводит, так как лишает нас возможности почерпнуть знания из полученного опыта. Событийная память скорее всего сохранится, но закономерности останутся невыявленными.
Кстати, мой личный совет: не пренебрегайте качественным сном, особенно если вы учитесь. Не пытайтесь сэкономить на сне, чтобы больше успеть. Сон не менее важен в обучении, чем посещение лекций и повтор материала на практических занятиях. Недаром дети в те периоды развития, когда накопление и обобщение информации идет наиболее активно, большую часть времени проводят во сне.
Быстродействие мозга
Предположение о роли рецептивных кластеров позволяет по-новому взглянуть на вопрос быстродействия мозга. Ранее мы говорили, что каждая миниколонка коры, состоящая из сотни нейронов – это самостоятельный вычислительный модуль, который рассматривает трактовку поступающей информации в отдельном контексте. Это позволяет одной зоне коры рассматривать до миллиона возможных вариантов трактовки одновременно.
Теперь можно предположить, что каждый кластер рецепторов может работать как автономный вычислительный элемент, выполняя весь цикл вычислений по проверке своей гипотезы. Таких кластеров в одной только кортикальной колонке может быть сотни миллионов. Это значит, что, хотя частоты, с которыми работает мозг, далеки от частот, на которых работают современные компьютеры, тревожиться о быстродействии мозга не стоит. Сотни миллионов кластеров рецепторов, работающих параллельно в каждой миниколонке коры, позволяют успешно решать сложные задачи, находящиеся на границе с комбинаторным взрывом. Чудес не бывет. Но можно научиться ходить по грани.
Текст приведенной программы доступен на GitHub. В коде оставлено достаточно много отладочных фрагментов, я не стал их удалять, а только закомментировал на случай, если кому-то захочется самостоятельно поэкспериментировать.