«Наши суждения обманывают наши ожидания, а наши ожидания обманывают наш опыт. То, что мы проецируем на будущее, многое открывает - о мире, в котором мы живем, и о нашем прошлом ».

Начало - 06.11.16, конец - 12.11.16

Мысли:

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

Кристиан и Гриффитс используют различные аспекты алгоритмического решения проблем, такие как сортировка, кэширование и оптимальная остановка, чтобы убедить читателя в том, что пошаговые методы, которые кажутся очень механическими по своей природе, на самом деле чрезвычайно полезны (или, по крайней мере, «достаточно хороши») для принятие решений в условиях неопределенности. Обычно они включают в каждую главу повествование об известном ученом-информатике, который изначально решил какую-то проблему с помощью определенного типа алгоритма или фреймворка. Я не могу сказать, что рассказы были особенно захватывающими, а личности, которые они описывают, совсем не конкретизированы, но я думаю, что это не относится к делу. Эта книга определенно не похожа на Innovators Уолтера Айзексона или что-нибудь из книги Майкла Льюиса о пузыре доткомов. Персонажи и повествования как бы просто прикреплены как истории происхождения для некоторого типа решения проблем. Algorithms to Live By, безусловно, такой же механический и практичный по своему стилю, как и рекомендации по принятию трудных решений.

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

Это действительно отличное погружение в разумное принятие решений, и оно дает читателю множество действенных советов по решению всевозможных реальных проблем. И хотя в написании нет ничего особенного (вы ожидаете, что он сильно отличается от двух ученых-информатиков), а повествования слегка суховаты, полезность и уникальность книги, безусловно, в конечном итоге побеждают.

Оценка: 7/10

Директивы:

1. Бывают случаи, когда хорошие алгоритмические подходы можно просто перенести на человеческие проблемы. Правило 37%, критерий наименее недавно использованного для переполнения кешей и верхняя граница уверенности в качестве руководства для исследования - все это примеры этого.

2. Обязательно проводите различие между процессом и результатом. Даже лучшая стратегия иногда дает плохие результаты - если вы придерживаетесь наилучшего из возможных планов, вы не должны винить себя, если что-то пойдет не так.

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

4. Для решения наиболее сложных задач практикуйте какую-либо форму ослабления ограничений. Если проблема, стоящая перед вами, слишком сложна, попробуйте решить ее более простой вариант и посмотрите, может ли решение дать вам отправную точку для исходной.

5. Теория игр и каскадирование информации позволяют сделать несколько важных выводов: во-первых, нам следует проявлять осторожность, когда мы знаем больше о том, что делают люди, чем о том, почему они это делают; во-вторых, помните, что действия других не обязательно являются убеждениями; в-третьих, мы должны помнить, что в играх могут быть непоправимо плохие правила, которые приводят к ужасному, несмотря на рациональное поведение.

Примечания:

· Алгоритм - конечная последовательность шагов, используемых для решения проблемы

o Даже в тех случаях, когда жизнь слишком беспорядочная, чтобы мы могли ожидать строгого численного анализа, использование интуиции и концепций, отточенных на более простых формах наших проблем, предлагает нам способ понять ключевые проблемы и добиться прогресса

o Алгоритмы могут в конечном итоге помочь нам управлять конечным пространством, конечным временем, ограниченным вниманием, неизвестными неизвестными, неполной информацией и непредвиденным будущим.

· Оптимальная остановка

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

o Когда вы останавливаетесь слишком рано, вы оставляете лучшего кандидата неоткрытым; когда вы останавливаетесь слишком поздно, вы стремитесь к лучшему кандидату, которого не существует - оптимальная стратегия требует баланса между двумя

o Правило поиска и прыжка: вы устанавливаете заранее определенное количество времени для изучения вариантов, а затем после этого момента мгновенно переключаетесь на любого, кто лучше, чем все ранее просмотренные варианты.

§ По мере роста пула вариантов точное место для проведения линии сходится на 37% пула.

§ Эта оптимальная стратегия в конечном итоге дает 37% шанс нанять лучшего соискателя; хотя это может показаться низким, без стратегии наши шансы найти лучший выбор будут неуклонно уменьшаться с увеличением размера пула - он становится более ценным по мере роста данных

§ Правило может применяться либо к фиксированному пулу, либо к фиксированному количеству времени.

o Модификации:

§ Добавление отклонения и отзыва в микс либо уменьшит, либо увеличит период просмотра соответственно.

§ Полная информация (или объективный, а не относительный стандарт, по которому следует судить о кандидатах) изменяется на Правило пороговых значений: немедленно принимайте кандидата, если они превышают определенный процентиль

· Пороговое значение процентиля уменьшается по мере того, как количество кандидатов, остающихся в пуле, уменьшается (иначе говоря, понизьте ваши стандарты, когда у вас есть выбор из меньшего пула)

· Это правило дает вам шанс успеха 58%.

§ Поиск работы и продажа недвижимости - когда у вас есть ряд ценных предложений, включающих и стоимость передачи предложения, будет применяться пороговое правило.

§ Проблема со взломом (каждое ограбление дает некоторую награду, но если его поймают, потеряйте весь накопленный выигрыш: оптимальный стоп примерно равен шансу успеха, разделенному на шанс неудачи.

o Мы склонны останавливаться слишком рано в большинстве задач оптимального типа остановки, но это может быть объяснено неявными временными затратами всех наших решений.

· Исследовать / использовать

o Проблема: как нам выбрать между осторожностью, используя то, что мы хорошо знаем, и шансом на что-то новое в надежде, что это лучше, чем то, что мы знаем?

o Баланс полностью зависит от выбранного вами временного интервала; ценность разведки со временем снижается, в то время как ценность эксплуатации увеличивается со временем

o Индекс Гиттинса предполагает геометрическое дисконтирование (оценивая каждый прогон как постоянную долю от предыдущего) и пытается максимизировать единственное количество, которое учитывает как разведку, так и эксплуатацию.

§ Принцип беспроигрышной смены остается в силе, принцип проигрыша-смены не всегда работает хорошо, и полные или относительные неизвестные получают бонус.

§ Если будущее оценивается более мягко, ценность случайного открытия (по сравнению с принятием уверенности) возрастает еще больше.

o Система минимизации сожалений будет использовать алгоритм Верхняя граница уверенности, в котором вы хотите выбрать руку, которая могла бы разумно работать лучше всего в будущем (а не то, какая рука показала лучшие результаты на данный момент).

§ Подобно Gittins, но проще вычислить и не требует геометрического дисконтирования.

§ По-прежнему дает бонус к возможностям, о которых мы знаем меньше

o Эмпирические исследования показали, что люди в целом отдают предпочтение исследованиям намного больше, чем было бы оптимальным, и переходят от одного варианта к другому, даже если один из них объективно лучше.

§ Это может быть объяснено тем фактом, что шансы на успех для данных вариантов со временем могут измениться или улучшиться.

§ И молодые, и старые обычно ведут себя в соответствии с тем, что ожидает алгоритм - молодые предпочитают исследования, а старые - эксплуатацию, потому что оба понимают, где они находятся в соответствующих временных интервалах.

· Сортировка

o Проблема: сортировка становится все труднее по мере увеличения масштаба - иногда линейно с n, иногда квадратично (n * n)

o Сортировка слиянием - это алгоритм, который начинается с помещения соседних единиц в отсортированные пары, затем сопоставляет пары в упорядоченные наборы по четыре, что в конечном итоге приводит к полностью отсортированному объекту; это оставляет нам сложность между линейным и квадратичным временем (n * log (n))

o Сортировка по корзине группирует элементы вместе в несколько отсортированных категорий без учета внутрикатегорийной сортировки с целью разделения элементов на примерно равные группы; это может позволить линейное время

o Сортировка сравнительного подсчета сравнивает каждый элемент со всеми остальными, подсчитывая, сколько элементов он больше, а затем использует это значение в качестве ранга; это похоже на пузырьковую сортировку, которая работает в квадратичном времени (очень неэффективна, но не подвержена ошибкам или надежна)

o Усилия, затрачиваемые на сортировку материалов, - это просто упреждающий удар по усилиям, которые потребуются для последующего поиска в них, поэтому обычно мы должны ошибаться в сторону беспорядка, поскольку сортировка того, что вы никогда не будете искать, - это пустая трата

· Кеширование

o Кэширование - это процесс хранения фрагментов информации, к которым вы часто обращаетесь, для более быстрого доступа к ним; алгоритм кеширования решит, какую информацию или элементы удалять, когда это ограниченное пространство или память израсходованы.

o Алгоритм Белади - выселите любой предмет, который вам понадобится, как можно дольше (требуются данные из будущего)

§ Наименее недавно использованный наиболее близок к такому ясновидению среди различных алгоритмов кеширования.

§ LRU учит нас, что следующая вещь, которая нам может понадобиться, - это последняя вещь, которая нам нужна, в то время как то, что нам понадобится после этого, вероятно, будет вторым по последнему слову.

o Кэширование так же полезно, когда близость (а не производительность) является дефицитным ресурсом.

o Рекомендации, применяемые к физическим объектам в среде обитания человека:

§ LRU - хороший принцип для использования

§ Убедитесь, что вещи находятся в любом кэше, ближайшем к тому месту, где они обычно используются.

§ Наличие нескольких уровней кешей - от самого маленького и самого быстрого до самого большого и самого медленного - может быть даже лучше.

§ Каждый раз заменяйте все, что вы вынимаете из тайника, на переднюю позицию.

· Планирование

o Проблема: как нам организовать наш день, когда одни задачи должны быть раньше других, другие могут быть начаты только в определенное время, у некоторых есть определенные сроки, а у других нет, а некоторые важны, но не срочны

o Самый ранний срок выполнения - начните с задачи, подлежащей наиболее раннему сроку, и постепенно продвигайтесь к задаче, подлежащей выполнению последней (лучше всего для уменьшения максимальной задержки).

o Алгоритм Мура - начните с EDD, но как только окажется, что мы не успеем перейти к следующему элементу, выбросьте самый большой элемент; повторяйте этот шаблон, пока все не будет сделано в соответствующие сроки (лучше всего для сокращения количества просроченных проектов)

o Кратчайшее время обработки - всегда выполняйте максимально быстрое задание (лучше всего для сокращения общего времени выполнения)

§ Может облегчить ваш ум, сократив количество нерешенных задач как можно быстрее

§ Можно также оценить каждый проект по важности, разделить на время, необходимое для завершения каждого, и работать в порядке от наивысшей важности на единицу времени к наименьшей.

o EDD и SPT по-прежнему являются оптимальными стратегиями, когда новые задания даются вам в непредсказуемые моменты, при условии, что вы можете переключиться на только что появившуюся работу, если она должна быть выполнена раньше, чем та, которую вы выполняете в настоящее время.

§ Существуют психологические или психические издержки переключения, связанные с упреждением, включая возможные задержки и ошибки.

§ И, конечно же, составление расписания входит в наш список дел.

o Разбивка - любая ситуация, при которой система останавливается, потому что она полностью занята металлоконструкциями.

§ В этом состоянии даже выполнять задачи в неправильном порядке лучше, чем вообще ничего не делать.

§ Установление минимального времени, которое можно потратить на одну задачу, может помочь предотвратить полное уничтожение пропускной способности из-за приверженности к быстрому реагированию - если минимальное время больше, чем время, необходимое для переключения контекста, мы никогда не сможем попасть в корзину.

o Объединение прерываний - пакетные задачи, которые можно выполнять вместе, если ни у одной из них нет конфликтующих интервалов времени ответа.

· Правило Байя

o Закон Лапласа: для любых возможных w успехов в n попытках ожидание успеха составляет (w + 1) / (n + 2)

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

o Правило Байя: P (A | B) = P (B | A) P (A) / P (B)

§ Дает прямое решение проблемы того, как объединить ранее существовавшие убеждения с наблюдаемыми свидетельствами: просто умножьте их вероятности вместе

o Принцип Коперника: если любой момент в жизни данного объекта одинаково вероятен (или у нас нет предварительных знаний об объекте), то мы можем ожидать, что оно проявится ровно на полпути к продолжительности любого явления - или вещи будут длиться столько, сколько они уже существуют

o Когда дело доходит до прогнозов, основанных на ограниченных доказательствах, мало что так важно, как наличие хороших априорных значений - например, имеем ли мы дело с нормальным распределением или распределением по степенному закону (с большинством точек ниже среднего, а некоторые намного выше)

§ Для любого степенного распределения подходящей стратегией прогнозирования является правило умножения: умножьте полученное количество на некоторый постоянный коэффициент; чем дольше что-то продолжалось, тем дольше мы ожидаем, что это будет продолжаться

§ Для любого нормального распределения мы используем правило среднего: используйте естественное среднее распределение в качестве ориентира; события удивительны, когда они рано, но не когда опаздывают

§ Для любого распределения Эрланга мы используем аддитивное правило: всегда прогнозируем, что все будет продолжаться на постоянную величину дольше; события никогда не бывают более или менее удивительными, независимо от того, когда они происходят

o Мы должны помнить, что новости, социальные сети и другие формы рассказывания историй могут очень легко исказить наше воспринимаемое распределение и вероятность того или иного явления; неравная частота репрезентаций в СМИ в реальном мире

· Переоснащение

o Проблема: насколько серьезно мы должны думать о наших проблемах и сколько факторов мы должны принимать во внимание?

§ Включение большего количества факторов в модель сделает ее более подходящей для данных, но это не обязательно означает лучший прогноз.

§ Слишком много факторов также могут приводить к сильно различающимся результатам от одного экземпляра исследования к другому (переобучение), а это означает, что добавление сложности может быть вредным.

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

o Мы можем частично бороться с чрезмерной подгонкой с помощью перекрестной проверки или оценки того, насколько хорошо модель справляется с данными, которые она не видела (что по иронии судьбы может включать использование меньшего количества данных)

§ Перекрестная проверка может быть выполнена путем удержания точек данных, а также полного тестирования модели с данными из какой-либо другой формы оценки (другие прокси-метрики)

§ Регуляризация также может бороться с чрезмерной подгонкой, добавляя штраф за сложность к вашей модели - более сложные модели должны значительно лучше объяснять данные, чтобы оправдать себя (например, Lasso , который использует в качестве штрафа общий вес различных факторов модели)

o Если факторы, которые мы придумываем первыми, скорее всего, будут наиболее важными, то после определенного момента размышления о проблеме больше не будут только пустой тратой времени и усилий - это приведет нас к худшим решениям.

§ Наибольшая неопределенность, чем больше разрыв между тем, что вы можете измерить, и тем, что имеет значение, тем больше вам следует остерегаться переобучения и отдавать предпочтение простоте (иначе говоря, преждевременное прекращение)

§ Помните, что при столкновении со сложностями рациональным решением может стать следование нашему первому инстинкту (эвристика существует не просто так)

· Расслабление

o Проблема: что мы делаем, когда проблема оказывается неразрешимой?

o Ослабление ограничений - устранение некоторых ограничений проблемы и приступление к решению проблемы, которая была бы предпочтительнее текущей ... затем, добившись прогресса, попытайтесь вернуть ограничения

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

§ В большинстве случаев, если мы готовы принять достаточно близкие решения, то даже некоторые из самых сложных проблем можно решить.

§ Мы также можем превратить дискретные задачи оптимизации (только целые числа) в непрерывные (дроби разрешены в качестве ответов) и использовать их в качестве приблизительного ориентира.

o Лагранжева релаксация. Вместо этого возьмите некоторые ограничения задачи и внесите их в систему подсчета очков в качестве затрат.

· Случайность

o Иногда лучшее решение проблемы - это использовать случай, а не пытаться полностью обосновать ответ.

§ Случайная выборка снова и снова (как в моделировании Монте-Карло) может дать неплохие приблизительные результаты (иногда с почти достоверностью) за ту долю времени, когда вычисление вероятностей оказывается слишком утомительным.

§ Выборка может быть очень полезна для задач, слишком сложных для непосредственного понимания, или в ситуациях, когда статистики и анекдотов недостаточно (например, государственная политика)

o Результаты можно улучшить, используя Восхождение на холм - взяв базовое решение, а затем протестировав какую-либо альтернативу, внося небольшие изменения в последовательность, ища наилучшее локальное улучшение (остановка, когда дальнейшие изменения не приводят к улучшению)

§ Чтобы не застревать на локальных максимумах, вы можете внести несколько случайных небольших изменений (даже если они хуже) и вернуться к Hill Climbing (известному как дрожание).

§ Восхождение на холм с произвольным перезапуском включает в себя полное скремблирование нашего решения, когда мы достигаем локального максимума и снова начинаем восхождение (хорошо работает, когда в задаче много локальных максимумов)

§ Алгоритм Метрополиса - похож на Hill Climbing, но в любой момент потенциально может принимать как плохие настройки, так и хорошие.

§ Имитация отжига - подобен алгоритму мегаполиса, но со временем снижает вероятность того, что вы сделаете плохую настройку (меньше второстепенных вариантов со временем)

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

· Теория игры

o Равновесие Нэша - оба игрока в игре следуют стратегии, которую ни один из них не хотел бы менять, учитывая игру своего оппонента.

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

§ «Цена анархии» количественно определяет стоимость таких доминирующих стратегий, которые не координируются; в некоторых случаях эта цена достаточно мала, чтобы иметь практический смысл

§ Плохое равновесие по Нэшу также может происходить в многостороннем масштабе, иначе известном как трагедия общин.

o В то время как теория игр спрашивает, какое поведение проявится при наличии набора правил, дизайн механизма спрашивает, какой набор правил даст нам поведение, которое мы хотим видеть.

§ Можно ухудшить каждый результат и в то же время сделать жизнь каждого лучше, сдвинув равновесие к тому, что считается оптимальным

§ Расширение этой логики дает хороший аргумент в пользу роли правительства - например, принятие законов, требующих минимальных отпусков и ограничивающих часы работы магазинов.

§ Эмоции в некотором смысле действуют как конструкция механизма, позволяющего заключать контракты, которые не нуждаются в внешнем принуждении (по существу, перекрывая любое рациональное поведение)

o Теория игр также говорит нам, что катастрофы, такие как финансовые пузыри, могут происходить даже тогда, когда никто не виноват.

§ Группа агентов, ведущих себя рационально, тем не менее может стать жертвой бесконечной дезинформации или информационного каскада

§ Сочетание частной информации и потока общедоступной информации о действиях отдельных агентов может создать консенсус, который сильно отличается от исходной частной информации.

§ Нам следует проявлять осторожность, когда мы знаем больше о том, что делают люди, чем о том, почему они это делают; во-вторых, помните, что действия - это не убеждения; в-третьих, мы должны помнить, что в играх могут быть непоправимо плохие правила, которые приводят к ужасным результатам, таким как пузыри.

Фразы / цитаты:

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

· Если у нас нет веских оснований думать иначе, кажется, что наш лучший проводник в будущее - это зеркальное отображение прошлого. Ближайшее к ясновидению - это предположить, что история повторяется - в обратном направлении.

· По мере того, как вы стареете и начинаете испытывать эти спорадические задержки, мужайтесь: продолжительность задержки отчасти является индикатором степени вашего опыта. Усилия по поиску - свидетельство того, насколько хорошо вы все устроили: самые важные вещи всегда под рукой.

· По правде говоря, всегда есть накладные расходы - время, потраченное на метаработу, логистику бухгалтерского учета и управление задачами. Это один из основных компромиссов планирования. И чем больше вы берете на себя, тем больше накладных расходов.

· Наши суждения обманывают наши ожидания, а наши ожидания обманывают наш опыт. То, что мы проецируем на будущее, многое открывает - о мире, в котором мы живем, и о нашем прошлом.

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

· Анекдоты, конечно, насыщенные и яркие, но они нерепрезентативны. Практически любой закон, независимо от того, насколько он просвещен или ошибочен, сделает кого-то лучше, а кого-то хуже, поэтому тщательно отобранные истории не предлагают какой-либо точки зрения на более широкие закономерности. С другой стороны, совокупная статистика противоположна: исчерпывающая, но неубедительная. Статистика может рассказать нам только часть истории, скрывая любую лежащую в основе неоднородность.

· Более того, способность невольно влюбиться делает вас, в свою очередь, более привлекательным партнером. Ваша способность горевать, спать с эмоциональными рыбами - это то самое качество, которое делает вас таким надежным сообщником.