Category: техника

Category was added automatically. Read all entries about "техника".

любопытно

Как размножаются олени

В комментариях к прошлой записи самый клёвый тролль ЖЖ kray_zemli затроллил меня тем, что назвал фишеровское убегание гуманитарщиной (ну или как он там любит выражаться).

(Что такое "фишеровское убегание" тем, кто не знает, как всегда отлично объясняет Марков).

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

Collapse )

Доб. В комментариях modulo_zero нашёл в моем коде "нефизичное" допущение, и поправил симуляцию так, чтобы фишеровское убегание ускоряло эволюцию везде. Исправление, на мой взгляд, очень убедительное. А a_bronx правильно отметил, что устоявшийся русский перевод "убегание" очень неудачный, на самом деле "runaway" здесь означает "разнос" (as in "машина пошла в разнос").
любопытно

sets

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

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

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

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

Вы там что, совсем бездельники? (гневно)

g_e_n_i_e, объясни мне вот что. Вы там в Мюнхене делаете (точнее, сделали уже) систему симуляции плюс-минус любых механизмов, а также переводчик с языка чертежей в язык этих самых механизмов и обратно. Называется это САПР, ну прямо как в двадцать раз более простые и тупые системы пятнадцатилетней давности. Правильно я излагаю?

Кто мешает добавить в это всё простейший генеративный искусственный интеллект? Задал ему цель (хочу получить механизм, ведущий себя так-то, не дороже того-то), задал ограничения (есть такие и такие стандартные узлы, такие и такие материалы, стоят столько то и тп), а он производит тупой перебор в пространстве возможных состояний, и в итоге говорит: вот, барин, ваш сверхзвуковой самолет новейший смеситель для ванной. Ну да, для мало-мальски сложных механизмов перебор получится очень большой, ну так сокращать и оптимизировать в таких задачах все умеют сорок лет, если не больше, уже и в учебниках написано. Да хоть прямо алгоритм AVST туда, пусть перебирает в пространстве частичных решений, задаваемых "человеческими" эмпириками. Ну не верю я, что жалкие человеки делают это лучше, нет там никакого особенного пространства для "гениальности", нужно знать много, и считать упорно; и то, и другое компьютеры лучше людей делают.

Где моя технологическая сингулярность, я тебя спрашиваю?!

(Если кто-нибудь другой может дать внятное объяснение, сделайте это, пожалуйста, а то Андрюха, кажется, нечасто ЖЖ читает)
любопытно

Pattern recognition

Смотрим.
На входе двумерная визуальная информация. Это исходные зашумленные данные (фото, например, или кадр с камеры, или сканированный лист). Дано пространство моделей (априорно заданных возможных расшифровок), каждая из которых описывается малым объемом данных. Например, "заглавная буква А, сдвинутая на (-2, 2) и повернутая на 8 градусов по часовой стрелке". Или, для другой задачи, "двухполосное асфальтовое шоссе, поворот влево через 200 метров, закатное солнце под углом 30 градусов к горизонту, светит прямо в объектив". Каждую ситуацию умеем "рендерить", после чего проверять, насколько хорошо "рендер" совпадает с исходным изображением. Дальше, пользуясь моделью зашумленного канала, выясняем, что же на самом деле у нас на входе.
Если решать задачу распознавания в такой постановке, получается очень много, просто чудовищно много вычислений, даже в самых простых случаях (одна буква, маленькое разрешение). Поэтому все(?) делают наоборот: вычисляют какие-то агрегированные фичи исходного изображения (особые точки, контуры всякие) и строят модель по этим фичам. Рендера никакого нет.

Есть ощущение, что второй подход из первого делается полуавтоматически. Неправильное слово. В общем, примерно как компилятор из формального описания грамматики: не автоматически, конечно, но сильно проще, чем без оного. Кое-какие достаточно нетривиальные шаги автоматизируются "на халяву", оптимизированный backend может быть один и тот же для нескольких совершенно разных моделей и т.п. Подробнее пока не готов, когда буду готов, сделаю на досуге мототерминатора, буду дфмн богат красив и знаменит.

Кто что скажет?
Если такое уже есть в сколько-нибудь промышленном качестве, кто покажет пальцем?
любопытно

Когнитивная психология - ромашка

Мышление человека является объектно-ориентированным. Например, ограничение объема рабочей памяти человека выражается именно в объектах (не в битах). Программистам, наверное, проще всего понять это при помощи такой аналогии: "в кеш" помещается семь указателей на Object; вызов метода любого из семи объектов почти бесплатен, но аргументами метода могут являться только указатели на другие объекты, лежащие в кеше. "Положить в кеш" гораздо дороже, при этом один из прошлых семи вытесняется (и используемая схема вытеснения ближе всего к LRU cache).

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

Легко представить себе каких-нибудь обитателей атмосферы Юпитера, в языке и мышлении которых никаких слов или объектов нет вообще. Для них мир - бесконечное дифференциальное уравнение, язык построен, например, как способ передавать соседу ограничения функций на некоторые многообразия. Чтобы бороздить и все такое, какой-нибудь механизм абстрагирования вместо объектно-ориентированного им все-таки понадобится. Ну, например, абстракция может быть основана на теореме Коши (вместо всего семейства функций с совпадающими вычетами можно в "рассуждениях" использовать одну произвольную), или на том, что замкнутые многообразия делятся на хорошо различимые классы, и, опять же, в некоторых случаях можно использовать произвольный экземпляр, а результаты распространять на весь класс (чую, сейчас сюда придет какой-нибудь победитель IMO и скажет, что это вообще тот же самый способ, только немного обобщенный). Можно оперировать устойчивыми приближениями вместо самих функций, короче говоря, никаких особых ограничений для разума не видно. Это все фантазии, понятно. Я не знаю, как именно, и можно ли вообще так построить разумное существо. Мы человека-то построить до сих пор не можем, что уж про юпитерианцев фантазировать.

Что-то я убежал в сторону, ну так вот, с точки зрения людей объекты-то есть. И что же это за объекты? У каждого свои. Поэтому одно и то же на всех ограничение на размер кеша (ну, почти одно и то же; я думаю, что у Терренса Тао оно "немного" другое) выливается в совершенно разную способность мыслить. В качестве примера опять будет Википедия, уж прошу прощения. По ссылке - рассказ о том, как можно научить мозг рассматривать в качестве объекта не отдельно взятую цифру, а группу цифр, и таким образом научиться запоминать последовательности из 80 цифр. Это модельный и почти бесполезный на практике пример, но механизм должен быть примерно понятен.

Хорошо, а что такое объект на "аппаратном уровне"? А это, скорее всего, группа связанных нейронов, соединенных положительными обратными связями (в этот момент биологи во главе с nature_wonder фигеют от наглости обобщений и от крайне вольного обращения с терминологией; нижайше прошу прощения). Это означает, что практически невозможно активировать часть из них - только группу целиком. Впрочем, связи могут быть перестроены, после чего объект станет группой объектов, объединится с другим, "отдаст" часть другому и т.п. Но такая перестройка - не часть рутинного процесса мышления; это часть процесса обучения; условно говоря, слом шаблона.

Ну теперь о "гадании на ромашке", ради описания которого я и начал всю эту писанину. Как люди работают с вероятностями (на встроенном, интуитивном уровне)? Да вот так и работают, при помощи рабочей области на семь объектов, потому что другого механизма просто нет.

Представьте себе, что у вашего собеседника в голове ромашка из семи лепестков. Вы предлагаете ему заключить контракт (или купить пылесос Кирби, или переспать, или еще что). На лепестках ромашки возникают описания вариантов будущего, релевантных предложению (некоторые почти идентичны). Например: "кинет"x2, "предложение честное"x1, "он просто не понимает, о чем говорит"x4. Каждый подсказывает некоторые последствия при любом варианте действий (как и все человеческое мышление, подсказывает весьма приблизительно, а часто - с грубыми ошибками). Возможные варианты действий (например, ответов) перебираются against всех лепестков (kak eto po-russki-to skazat'). Для каждого получаем спектр исходов, выбираем наилучший. Весь этот процесс идет с огромной скоростью и крайне редко осознается. Хотя содержимое своей "ромашки" в каждый конкретный момент вполне можно зафиксировать и осознать, люди этим не занимаются.

И еще раз. Лепестков семь, редко больше. Часто меньше. Лепестки дискретны, т.е. значения вероятности, не кратные одной седьмой, невозможны. Варианты действий, варианты будущего - это все "объекты" (т.е. паттерны, которые должны были существовать в мозгу собеседника и раньше; знакомые ему по собственному опыту, или, скажем, по кинофильмам). Ненадежный, неточный механизм? Конечно. Так вот оно и работает. Например, именно поэтому есть люди, которые постоянно играют в азартные игры (под "мне повезет и я стану богат" выделяется лепесток; вероятность одна седьмая, а ставка так низка), есть те, кто не играет (не выделяется, вероятность ноль), а промежуточные значения крайне редки и в основном свидетельствуют о знакомстве с теорией вероятностей и об осознанных, неинтуитивных подсчетах помимо всякой ромашки.

Вот вы хотите от кого-то чего-то добиться, а у него (у нее) и лепестка-то такого нет. Вы его ему (ей) эту картинку не придумали, не внедрили в сознание в качестве объекта, и нужного вам лепестка попросту нет. Так что надо постараться. А еще лучше - предъявить сразу несколько разных вариантов "светлого будушего", и несколько вариантов нужных вам действий; и несколько лепестков займете, а какие-нибудь из дефолтовых вытеснятся из кеша.

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