Как стать автором
Обновить
65
0
Дмитрий Майоров @dimview

Неправильные, но полезные модели

Отправить сообщение
Есть ещё пара важных моментов:

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

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

2. Можно передавать только шифрованные данные. Если данные нешифрованы, в них скорее всего есть некоторые часто повторяющиеся или легко предсказуемые последовательности, их можно будет искать в эфире.
Адвокат может запросить всю поисковую историю для данного человека и потом выбирать, какие запросы с его точки зрения имеют отношение к процессу, то есть выставляют его клиента в хорошем свете или клиента противника в плохом. Судья может с этим согласиться или не согласиться, но это уже потом будет.

В этом смысле адвокаты являются частью правоохранительных органов — они считаются officers of the court.
Если данные имеют отношение к судебному процессу, адвокату достаточно посылать запрос в Гугл: «In general, attorneys can use a subpoena to obtain records from a company if the data would be relevant to a lawsuit [...] A curious divorce attorney simply needs to send a subpoena to Google».
Шифровать надо все данные, просто по умолчанию. Если вся моя почта нешифрована и вдруг среди неё появилось зашифрованное письмо, АНБ знает, что дело нечисто, надо попробовать расшифровать или хотя бы посмотреть, кому оно адресовано. Если АНБ хочет узнать, сколько раз и когда в моей переписке упоминалась фамилия Череззаборногузадирайло, при нешифрованной почте это элементарно, а при шифрованной — не очень.
Шнайер не предлагал «защищать всё кое-как». Он предлагал защищать всё. Сейчас большая часть трафика идёт в нешифрованном виде, и большая часть шифрованного трафика защищена алгоритмами и средствами, которые АНБ может сломать. Это и есть защита кое-как, которую Шнайер критикует.

Другое дело что защитить трафик проще, чем обеспечить безопасность своего компьютера и сервера. И тут обычные смертные мало что могут сделать. Но атака на конкретный компьютер требует целенаправленных ресурсов, которых у АНБ на всех не хватит.

Пример с распределением почты по секретности предполагает, что вы знаете заранее, какие из ваших данных имеет смысл держать в секрете, а какие — нет. Если вы действительно знаете, то вы тем самым показали АНБ, куда смотреть. Но чаще вы не знаете заранее, какие данные лучше держать в секрете, а какие — нет. Первое, что делают адвокаты в процессах о разводах — получают доступ к истории поисковых запросов. Из неё всегда можно выбрать много интересного, что выглядело совершенно нормально, пока отношения между супругами были хорошими.
Вы не упомянули важный фактор — время. Физик может изучить Lisp, узнать, что такое виртуальный деструктор и научиться делать rebase в git. Ничего принципиально сложного в этом нет, это не квантовая механика, просто нужно время. Примерно лет десять, как в любой другой области. Те же десять лет нужны для того, чтобы физику изучить. Но лишних десяти лет ни у кого нет.

Отсюда и кривые программы, использующиеся для расчётов. Цена ошибок в таком одноразовом коде ниже, чем затраты на исправление ошибок. Утекает память? Ну и что, когда программа закончилась, операционная система её всё равно освободит. Много однотипного кода? Это вообще не ошибка. Неинициализированная переменная? Если на результат это не влияет, кого это волнует? С таким же успехом можно критиковать физиков за плохой почерк.

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

При необходимости можно отдать кривую одноразовую программу расчёта, которую физик написал, как умел, на Фортране, настоящему программисту и он сделает аналог на современном языке, который не стыдно будет продавать и поддерживать.
Если всю сетку сдвинуть, то и муар сдвинется (но не исчезнет). Вот если каждый узел сетки сдвинуть на свой собственный рандомный эпсилон, тогда муар исчезнет, а мы получим исходный алгоритм Монте-Карло.
Гарантировать повышение точности результата путём уменьшения шага разбиения сетки я бы побоялся. Если у фигур есть повторяющиеся куски с периодом, кратным к шагу сетки, можно встретить интересные эффекты вроде муара.
Есть хороший детский пример, как примерно посчитать пи подручными способами:

  1. Берём чистый лист бумаги
  2. Просим детей наставить на него N точек в произвольных местах
  3. Кладём сверху аккуратными рядами одинаковые монеты так, чтобы они покрывали весь лист
  4. Считаем, сколько точек не закрыты монетами (пусть будет K)


Тогда пи примерно равно 4 * (N — K) / N.

Если копилки под рукой нет, можно бросать иголку на дощатый мол и считать, сколько раз она окажется полностью на одной доске.
Поддерживаю. Я бы в него что-нибудь запостил со стыка прикладной статистики и программирования, что в существующие хабы не укладывается.
В примере rand() вызывается около 2*10^7 раз. У стандартного библиотечного rand() из glibc период повторения последовательности 2*10^9. Там вроде сдвиговый регистр с обратной связью используется, отсюда и цикл длиной 2^31.

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

Одно дело если я метеорологией занимаюсь, тогда спокойно могу нули выкинуть. Если атмосферное давление действительно равно нулю, то мои исследования никому уже не нужны.

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

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

Или то же потребление пива. Много людей не пьют вообще, у пьющих есть горб где-то посередине, а потом — длинный тонкий хвост. Опять ненормальное распределение. Можно нули отдельно моделировать, а пьющих преобразовать, но как именно? Предположения какие-то надо делать по поводу формы хвоста, от них результат зависеть будет.

Одна из особенностей бутстрапа как раз в том, что он не требует делать такие предположения.
1. Нет, дело не в шуме из-за размера выборки (у меня они большие), дело именно в кривизне распределений. Как в правиле 20/80, по которому 20% людей выпивают 80% пива. Некоторые распределения можно приблизить логнормальным (количество денег в банке) или всякой экзотикой вроде распределения Васичека (потери), но нет гарантии, что это правильно отражает суть того, что на самом деле происходит. Даже такие вроде бы нормальные величины как вес или рост не следуют нормальному распределению, вопрос только в том, какой должен быть размер выборки, чтобы это понять.

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

3. Мощность параметрических тестов гораздо выше, но они опираются на предположения, которые не обязательно выполняются. При больших размерах выборки (10^5 и больше) t-тест почти всегда находит статистически значимую разницу между тестовой и контрольной группой в A/A тесте, просто потому что они выбраны хоть немного неслучайно.
То же самое можно сказать про классические параметрические методы. Я ни разу не видел в настоящих данных нормальное распределение, поэтому строго говоря всякие t-тесты и p-значения от них неприменимы (что мало кому мешает их использовать на практике). Точность у параметрических методов тоже растёт медленнее, чем количество наблюдений.

Другое дело что если предположения, лежащие в основе параметрических методов, выполняются, тогда их результат в некотором смысле оптимален. Про Монте-Карло такое сказать нельзя, по крайней мере при конечном количестве итераций. А при бесконечном количестве итераций получается сферический конь в вакууме.
12 ...
15

Информация

В рейтинге
Не участвует
Откуда
США
Зарегистрирован
Активность