Наше новое приложение TesLab извлекает данные с вашего телефона и вашего автомобиля, чтобы показать вам, как лучше использовать свой автомобиль. Это поможет вам понять свои привычки вождения, то, как вы используете аккумулятор, и покажет вам, чем занимаются другие водители. Для этого нам нужны довольно изощренные способы понимания мира.
Здесь опять же роль активной способности забывчивости, своего рода охранника, надзирателя, ответственного за поддержание ярлыка психического, спокойствия. Мы сразу заключаем, что ни счастье, ни безмятежность, ни надежда, ни гордость, ни наслаждение настоящим моментом не могли бы существовать без возможности забытья. - Ницше, Генеология морали
Люди делают математические ошибки; компьютеров нет. Люди забывают вещи, компьютеры — нет. Это особенности человека, и если мы хотим сделать компьютеры умнее, нам нужно понять ценность нечеткого мышления и забывчивости. Есть люди, способные на великие подвиги логики и памяти, но вместо этого эволюция выбрала уровень памяти Златовласки, помня некоторые вещи, но не слишком много.
В нашей последней дискуссии я писал о пределах бинарной логики и о том, как можно лучше представить реальность, рассматривая вещи не как истинные или ложные, а как более или менее правдивые. Знание о знании, осознание момента, когда ваше знание о мире превратилось из уверенного в туманное, или действие в тот момент, когда путаница становится ясной, на самом деле облегчает понимание мира. Это немного усложняет математическую часть, но позволяет вам спроектировать типы ошибок, которые вы совершаете. Эти ошибки могут быть самоисправляющимися или полезными. Позволить компьютеру совершать математические ошибки помогает.
В этом посте я расскажу о том, как совершенная память на самом деле все усложняет. Кратковременная память — контролируемая забывчивость — может упростить рассуждения и снизить когнитивную нагрузку, так что для более эффективного осмысления мира требуется меньше усилий. И краткосрочная, и долговременная память имеют применение, но во многих случаях методы, использующие кратковременную память, обеспечивают полное припоминание.
Уровни понимания
Прежде чем мы перейдем к решению, давайте немного поговорим о проблеме, которую мы пытаемся решить. Наше приложение отслеживает точки данных с автомобиля и телефона, чтобы показывать водителям интересные вещи. У нас есть частичная информация, то есть мы не всегда получаем все существующие данные, поэтому нам нужно найти способы заполнить пробелы. Мы преобразуем необработанные данные в вещи, понятные и, надеюсь, применимые для водителя.
Мы получаем 4 основных необработанных потока событий: местоположение и скорость телефона, показания одометра автомобиля, показания автомобильного аккумулятора, а также передача и местоположение автомобиля. Эти необработанные события привязаны к физическому устройству, у которого есть время и место, например к телефону или машине. Когда эти необработанные события приходят, они переводятся и усваиваются.
Необработанные события обрабатываются в SensorEvents. Именно здесь мы определяем, движется ли автомобиль, или какова скорость зарядки при прогреве аккумулятора и тому подобное. Каждый из разных потоков имеет свой тип краткосрочной памяти, которая понимает, что означают разные события.
События датчиков, в свою очередь, переводятся в приводы, заряды и фантомные приводы, и мы можем сказать, какой телефон двигался с какой машиной. (Например, в случае семей с несколькими автомобилями и несколькими водителями могут пересекаться все виды потоков, и мы сейчас активно это настраиваем.) Каждый из этих различных типов поездок имеет свою собственную краткосрочную память, которая знает, что помнить и что забыть, поскольку события вытекают из других событий.
Поездки, в свою очередь, обрабатываются в отчетах о расходах, мероприятиях и значках. Опять же со своим типом памяти. И они, в свою очередь, организуются в таблицы лидеров, поездки на работу и поездки, которые, в свою очередь, переводятся в и т. д. и т. д. и т. д.
По мере поступления данных мы выдвигаем гипотезу о мире. Эта гипотеза окрашивает и меняет то, как мы видим мир. Если телефон движется, возможно, машина активна. Если машина активна, может быть, мы следим за ней. Если телефон перестанет двигаться, но мы знаем, что машина активна, мы продолжим мониторинг. (Например, зарядка автомобиля ночью.) Если мы считаем, что автомобиль в какой-то момент был активен, мы будем продолжать проверять его, даже если мы не получили ответа в течение некоторого времени, надеясь, что, если он вернется в сеть мы захватим как можно больше данных.
Конечно, может быть, он просто ушел. Если водитель не вызывает нас каким-либо образом, хотя движение приложения или его запуск, сервер расслабляется, выключается и перестает приставать к вашей машине. Наше представление о мире медленно угасает и забывается, поскольку оно не обновляется.
Уделение внимания
Наш первый уровень забывчивости фактически предшествует воспоминанию: он начинается с выбора того, на что мы обращаем внимание. Само внимание — это то, что меняет мир. Вы ведете себя иначе, когда кто-то наблюдает, чем когда вы один. В случае автомобиля он будет переходить в спящий режим, когда он неактивен, что снижает потребление энергии до минимума. Как только вы используете приложение, чтобы увидеть, в каком состоянии находится автомобиль, оно частично увеличивает расход топлива.
Ничего не делаем, пока телефон не переедет с одной сотовой вышки на другую. Если телефон движется достаточно быстро, он запускает проверку с автомобилем, который может проснуться, а может и не проснуться. Основываясь на том, что мы находим, серверы оживятся и начнут наблюдать за машиной.
Таким образом, в наших данных мы должны ожидать появления пробелов по двум причинам: мы не смотрим или мы не видим. Мы не следим за машиной, или машина по какой-то причине перестала отвечать. Сотовая связь нестабильна, и машине регулярно требуется 4–5 минут, чтобы снова подключиться к Интернету, например, когда я выезжаю с подземной парковки. Если бы у нас был доступ к данным — машина должна знать все эти вещи, и, предположительно, где-то есть база данных, чтобы запросить — но у нас нет доступа ни к чему из этого, и нам нужно накапливать знания, которые мы можем получить, глядя на них. на то, что отображается в приложении.
Что побуждает обращать внимание? Трансмиссия, активность одометра и уровень заряда батареи меняются. Телефон пробуждает нас от дремоты, когда мы спокойно смотрим на машину, и если мы видим, что что-то происходит, мы продолжаем смотреть, пока это не закончится. Мы ищем две вещи: находится ли водитель в машине или машина подключена к розетке.
Время — это иллюзия
Естественный вопрос — спросить, что происходит прямо сейчас? Что происходит в настоящем? Хотя настоящее на самом деле не существует. Является ли событие, которое произошло 30 секунд назад, таким же, как сейчас? 2 минуты? 15 минут?
Первая проблема, с которой мы столкнулись, заключается в том, что данные не поступают в режиме реального времени. Задержка между тем, когда событие произошло, и тем, что мы знаем о нем, может составлять более 15 минут. Потоки приходят с разной скоростью, поэтому, рассуждая на основе этих событий, иногда мы видим последствия раньше, чем причины.
Затем наша логика памяти должна иметь возможность отделять время, когда произошло событие, от времени получения образца — есть отметка времени самого события, а затем отметка времени, когда мы о нем узнали. Если мы узнали что-то еще о прошлом, то нам нужно переоценить то, что мы знаем о настоящем с того времени и вперед.
Мы загнаны в своего рода воображаемое время, где то, что мы думали, что знали тогда, отличается от того, что мы теперь думаем, что думали тогда. Это грамматическая катастрофа. В настоящем, которое представляет собой какое-то размытое окно времени между прошлым и будущим, мы никогда не уверены в том, что происходит, вещи постоянно меняются, поскольку история пересматривается.
API автомобиля не оптимизирован для того, как мы его используем. Например, есть 3 разные конечные точки, которые нам нужно запросить, чтобы получить то, что нам нужно, и временные метки выборки могут не синхронизироваться. API не всегда возвращает или предоставляет достоверные данные, поэтому между показаниями могут быть пробелы. Если есть 5-минутный разрыв между последовательными замерами батареи и другой, но перекрывающийся промежуток между показаниями одометра, как вы рассчитываете эффективность в течение этого времени? Насколько подробно вы можете сделать график?
К счастью, прошлое никуда не уходит. По мере того, как события приходят с большей или меньшей задержкой, «настоящее» расширяется, наши интерпретации прошлого меняются, но лежащая в их основе реальность не меняется.
Оптимизация объема памяти
Потребности в памяти для каждого потока разные. То, как вы справляетесь с пробелами в определенных значениях или как вы относитесь к диапазонам и колебаниям для каждого значения, отличается. Как вы решаете, как правильно запоминать вещи?
Возьмем, к примеру, память батареи. Этот тип памяти интерпретирует необработанные данные от автомобильного аккумулятора. Точки данных, которые мы получаем, — это метка времени, диапазон заряда батареи, состояние батареи (отключена, заряжается, зарядка приостановлена, зарядка завершена и т. д.) и скорость зарядки.
В случае показаний батареи обычно мы хотим знать, когда батарея становится активной или простаивает, заряжается ли она, и каков диапазон показаний батареи в это время. Это то, о чем мы заботимся.
Допустим, мы хотим запомнить запас заряда батареи за 20 минут. И если состояние батареи «заряжается», «зарядка завершена», «зарядка завершена», то мы хотим помнить, что мы заряжаемся в течение 30 минут. И затем каждый образец, который мы получаем, мы сообщаем нашему объекту памяти, что мы знаем точки данных как определенное количество времени.
Что происходит с 15-минутным разрывом данных? В этом примере, поскольку диапазон и зарядка запоминаются более чем на 15 минут, если мы запрашиваем память, мы «знаем», какими должны быть значения. Разрыв можно сгладить, и, основываясь на том, каким он ожидает мир, он может дать оценку значения, если вы спросите об этом в середине разрыва. Если вы добавляете 1,5 мили заряда в минуту, а прошло 8 минут, вы, вероятно, добавили 12 миль.
С другой стороны, если вы добавляли 1,5 мили заряда в минуту, а прошло 25 минут, мы понятия не имеем, что произошло. Прошло слишком много времени, чтобы узнать эту деталь, но если бы мы могли догадаться, что вы все еще взимаете плату, даже если мы не знаем сумму, которую вы добавили.
Если разрыв во времени больше, скажем, 2 часа, то в памяти есть пробел, который невозможно оценить, и при попытке рассказать историю того, что произошло, остается белое пятно.
Небольшой экскурс в другую область
Когда вы думаете об оптимизации этих значений, история из другой области может помочь осветить компромиссы. Давайте представим, как муравьи ходят и находят пищу в мире. В их маленьких муравьиных мозгах у них есть карта мира, и мы хотим знать, как долго помнить, где находится еда. (Обычно это используется как пример эмерджентного поведения, но давайте вместо этого посмотрим на их коллективную память.)
Представьте себе сценарий, в котором есть один участок возле гнезда, который можно собирать каждые 7 дней, после чего он пустует, пока не отрастет снова.
Каков правильный уровень детализации вашей карты мира? Как долго для вас имеет смысл помнить, сколько еды было в той или иной области? Соблазн состоит в том, чтобы превратить этих муравьев во всезнающих биологов, которые не только составляют супердетальную карту мира и помнят, где находятся вещи, но и когда они там были в последний раз, как часто что-то росло, как это растение ведет себя в этой почве, погода в настоящее время хорошая для этого растения и т. д.
Эта модель мира требует огромной когнитивной нагрузки, чтобы идти в ногу со временем, а также, вероятно, будет неоптимальной. Существует большая вероятность навязчивого принуждения, когда логика идет не так, и вы застреваете в петле, и должны быть меры предосторожности, чтобы не попасть в ловушку локального максимума.
Эволюция решила эту проблему не так. Вместо этого он заставляет муравьев бродить вокруг, и они помнят, где находится еда, только в течение короткого периода времени. Если знание постоянно подкрепляется муравьями, возвращающими еду, то коллективно запоминают, где находится еда, но через короткий промежуток времени это знание угасает.
Они в основном просто забывают, где была еда, и просто не имеют никакой информации. Через 7 дней они случайно забредут туда, а в качестве дополнительной выгоды исследуют все окружение. Меньше когнитивной нагрузки, а также увеличивается вероятность найти какую-то недавно появившуюся новинку. Забывание проще в реализации и потенциально является лучшим алгоритмом поиска.
Контролируемая забывчивость упрощает способ осмысления мира. Вернемся к автомобилям.
Вспоминая будущее
Время — это иллюзия, настоящее — это нечеткий промежуток времени между прошлым и будущим. При дальнейшем рассмотрении не совсем понятно, почему прошлое отличается от будущего. Прошлое постоянно совершенствует наше представление о настоящем, которое постоянно находится в движении, а различные возможные варианты прошлого помогают нам ограничивать различные возможные варианты будущего.
Бывают ситуации, когда вы хотите спросить память о том, что, по ее мнению, произойдет, исходя из того, что она знает сейчас, в будущем, исходя из прошлого и того, что она знает. Зарядка и поездка на работу такие.
Давайте представим, что вы находитесь на суперзарядке и хотите знать, как долго вам нужно оставаться там. Мы собрали данные до такой степени, что мы знаем, что вы начали заряжать машину и еще не остановились. Мы хотим спросить, что мы помним/предсказываем о будущем: как быстро автомобиль заряжается сейчас, как быстро он будет заряжаться через 10, 20, 30 минут, какой запас хода будет добавлен автомобилю? Если вы подключаетесь к цепи на 50 ампер или меньше, это почти всегда постоянная скорость заряда, в то время как скорость наддува варьируется в зависимости от емкости аккумулятора, уровня заряда и температуры.
Если мы помним заряд батареи в течение 20 минут, эти воспоминания о будущем совершенно преходящи, они существуют только тогда, когда их просят, и полностью условны.
Windows: как узнать о смене
Чтобы быть в курсе изменений, нам нужно иметь память о контексте. Недостаточно запомнить отдельные точки данных и сравнить их друг с другом, но нам нужно убедиться, что у нас достаточно точек, чтобы сделать вывод в любом случае.
А учитывая, что точки данных не поступают с каким-либо регулярным интервалом, значение имеют не последние 10 точек, а точки за последние 10 минут.
Например, используя одометр в качестве потока данных, как мы можем решить, движется машина или нет? В нашем случае мы говорим, что нам нужно как минимум 5 точек данных за последние 20 минут, и все точки данных должны быть одинаковыми. Если это изменится на true, то автомобиль будет зафиксирован на месте. (Это используется как эвристика, когда мы пытаемся выяснить время начала поездки.)
Highwater Marks
Когда вы активно пытаетесь осмыслить мир, забывчивость полезна для того, чтобы упростить процесс и удержать вас от локальных максимумов. Но всегда есть вещи, которые имеет смысл запомнить навсегда. Версии программного обеспечения автомобиля, например, всегда должны повышаться. Одометры всегда растут.
Одно из самых больших применений этого — когда мы «высекаем прошлое в камне». Есть момент, до которого мы не оглядываемся назад, когда мы решили, что это конец истории, настоящее никогда не вернется дальше этого. Для разных типов воспоминаний эти временные рамки сильно различаются. Для таких вещей, как показания батареи, это в часах, но если мы ищем отчеты о заряде батареи, как далеко вас увела эта зарядка, это в днях и недельных шкалах времени.
Когда мы думаем о поездках на работу и выясняем, где ваш дом, а где работа, эти временные рамки исчисляются месяцами. Это самое близкое к долговременной памяти.
Кратковременная память упрощает жизнь
Забывчивость — более дешевый способ справиться с изменениями, чем усложнять анализ. Цена, которую вы платите, заключается в том, что вам нужно пересматривать вещи, но с более простой моделью мира вы получаете большую способность к адаптации при работе с изменяющимся миром, о котором у вас есть ограниченные знания.
Надежное осмысление частичной информации намного сложнее, чем вы думаете.