• «ТехноТекст». Эпизод 3. Шедевры не стареют, рукописи не горят, IТ-статьи не {404}



      За время, прошедшее с прошлого конкурса, все сильно изменилось — и мир вокруг, и каждый из нас. Хабр вообще пережил редизайн и переименование; у нас прибавилось сотни аккаунтов и компаний, тысячи постов и комментариев. Сообщество и наши авторы тоже пережили трансформацию, и теперь они другие — еще умнее, профессиональнее, сильнее, раскрепощеннее. Поэтому на «ТехноТексте-2020» мы ждем много новых крутых текстов и талантливых участников. Тем более что в этом году у нас в два раза больше номинаций. А у вас — в 3 раза больше времени, чтобы подготовить свою звездную статью.
      Читать дальше →
    • Как предсказать гипероним слова (и зачем). Моё участие в соревновании по пополнению таксономии

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


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


        Читать дальше →
      • Прощай, Google! 15 Альтернативных поисковиков, которые не шпионят, а сажают деревья и раздают воду



          Аве Кодер!

          В этой статье речь пойдет о крутых инди поисковиках, которые могут составить конкуренцию поисковым гигантам, а также удовлетворить вкусы как утонченного мусьё, так и идейного борца за личную жизнь.
          Читать дальше →
        • Стыкуемся с МКС с помощью JavaScript и циркуля

            Компания SpaceX, основанная небезызвестным Илоном Маском, выпустила симулятор ручной стыковки корабля Crew Dragon с МКС. Если все пойдет по плану, стыковку проведут 27 мая 2020 года. Она будет проходить в полностью автоматическом режиме, но экипаж корабля сможет переключиться на ручное управление. Собственно, именно ручной режим и воспроизведен в симуляторе.

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

            Космический челнок так и норовит улететь не туда… А точность с которой нужно попасть в шлюз составляет 20 см… по трем осям, а также по угловой скорости, скорости смещения и т.д.

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

            Как тебе такое, Илон Маск?

            image
            Курение вредит вашему здоровью
            Читать дальше →
          • Почему прокрастинаторы прокрастинируют (откладывают дела «на потом») и как побороть прокрастинацию

            • Translation
            image

            pro-cras-ti-na-tion |prəˌkrastəˈnāSHən, prō-|
            существительное
            задержка или откладывание чего-либо: первый совет — избегайте прокрастинации.

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

            Избегать прокрастинации. Так элегантно в своей простоте…

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

            Нет, «избегайте прокрастинации» — хороший совет только для не настоящих прокрастинаторов. Для тех, кто говорит «Я захожу на Facebook несколько раз в день на работе. Я такой прокрастинатор!». Это те люди, которые будут говорить настоящему прокрастинатору «Не откладывай дела на потом и у тебя все будет хорошо».

            Дело в том, что ни словари ни не настоящие прокрастинаторы не понимают, что для настоящих прокрастинаторов прокрастинация — не дополнительная опция. Это что-то, что они не знают как не делать.
            Читать дальше →
          • Большой туториал по обработке спортивных данных на python



            Последние пару лет в свободное время занимаюсь триатлоном. Этот вид спорта очень популярен во многих странах мира, в особенности в США, Австралии и Европе. В настоящее время набирает стремительную популярность в России и странах СНГ. Речь идет о вовлечении любителей, не профессионалов. В отличие от просто плавания в бассейне, катания на велосипеде и пробежек по утрам, триатлон подразумевает участие в соревнованиях и системной подготовке к ним, даже не будучи профессионалом. Наверняка среди ваших знакомых уже есть по крайней мере один “железный человек” или тот, кто планирует им стать. Массовость, разнообразие дистанций и условий, три вида спорта в одном – все это располагает к образованию большого количества данных. Каждый год в мире проходит несколько сотен соревнований по триатлону, в которых участвует несколько сотен тысяч желающих. Соревнования проводятся силами нескольких организаторов. Каждый из них, естественно, публикует результаты у себя. Но для спортсменов из России и некоторых стран СНГ, команда tristats.ru собирает все результаты в одном месте – на своем одноименном сайте. Это делает очень удобным поиск результатов, как своих, так и своих друзей и соперников, или даже своих кумиров. Но для меня это дало еще и возможность сделать анализ большого количества результатов программно. Результаты опубликиваны на трилайфе: почитать.

            Это был мой первый проект подобного рода, потому как лишь недавно я начал заниматься анализом данных в принципе, а также использовать python. Поэтому хочу рассказать вам о техническом исполнении этой работы, тем более что в процессе то и дело всплывали различные нюансы, требующие иногда особого подхода. Здесь будет про скраппинг, парсинг, приведение типов и форматов, восстановление неполных данных, формирование репрезентативной выборки, визуализацию, векторизацию и даже параллельные вычисления.
            Читать дальше →
            • +9
            • 6.1k
            • 6
          • Генерация под контролем: как обуздать мощные языковые модели

              Intro


              Если вы не проспали последние пару-тройку лет, то вы, конечно, слышали от трансформерах — архитектуре из каноничной Attention is all you need. Почему трансформеры так хороши? Например, они избегают рекуррентности, что дает им возможность эффективно создавать такое представление данных, в которое можно запихнуть очень много контекстной информации, что положительно сказывается на возможности генерации текстов и непревзойденной способности к transfer learning.


              Трансформеры запустили лавину работ по language modelling — задаче, в которой модель подбирает следующее слово, учитывая вероятности предыдущих слов, то есть выучивая p(x), где x — текущий токен. Как можно догадаться, это задача совсем не требует разметки и потому в ней можно использовать огромные неаннотированные массивы текста. Уже обученная языковая модель может генерировать текст, да так хорошо, что авторы подчас отказываются выкладывать обученные модели.


              Но что если мы хотим добавить немного “ручек” к генерации текста? Например, делать условную генерацию, задавая тему или контролируя другие атрибуты. Такая форма уже требует условной вероятности p(x|a), где a — это желаемый атрибут. Интересно? Поехали под кат!

              Читать дальше →
            • Как работает рендеринг 3D-игр: текстурирование и фильтрация текстур

              • Translation
              image

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

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

              Часть 1: обработка вершин

              Часть 2: растеризация и трассировка лучей

              Начнём с простого


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

              Но при многослойном использовании и комбинировании с помощью сложных вычислений такие простые изображения в 3D-сцене могут создавать поразительно реалистичные изображения. Чтобы понять, как такое возможно, давайте полностью их отключим и посмотрим, как будут выглядеть объекты 3D-мира без текстур.
              Читать дальше →
              • +33
              • 12.8k
              • 7
            • Как работает рендеринг 3D-игр: растеризация и трассировка лучей

              • Translation
              image

              Часть 1: обработка вершин

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

              Главная тема этой статьи — важный этап рендеринга, на котором трёхмерный мир точек, отрезков и треугольников становится двухмерной сеткой разноцветных блоков. Очень часто этот процесс кажется незаметным, потому что преобразование из 3D в 2D оказывается невидимым, в отличие от процесса, описанного в предыдущей статье, где мы сразу же могли увидеть влияние вершинных шейдеров и тесселяции. Если вы пока не готовы к этому, то можете начать с нашей статьи 3D Game Rendering 101.

              Подготовка к двум измерениям


              Подавляющее большинство читателей читают этот веб-сайт на совершенно плоском мониторе или экране смартфона; но даже если у вас есть современная техника — изогнутый монитор, то отображаемая им картинка тоже состоит из плоской сетки разноцветных пикселей. Тем не менее, когда вы играете в новую Call of Mario: Deathduty Battleyard, изображения кажутся трёхмерными. Объекты движутся по сцене, становятся больше или меньше, приближаясь и отдаляясь от камеры.
              Читать дальше →
              • +24
              • 13.2k
              • 5
            • Альтернативное понимание контекста с помощью статистической языковой модели

              • Tutorial
              ALM

              В интернете полно статей на тему основанных на N-граммах языковых моделей. При этом, готовых для работы библиотек довольно мало.

              Есть KenLM, SriLM и IRSTLM. Они популярны и используются во многих крупных проектах. Но есть проблемы:

              1. Библиотеки старые, не развиваются.
              2. Плохо поддерживают русский язык.
              3. Работают только с чистым, специально подготовленным, текстом
              4. Плохо поддерживают UTF-8. Например, SriLM с флагом tolower ломает кодировку.

              Из списка немного выделяется KenLM. Регулярно поддерживается и не имеет проблем с UTF-8, но она также требовательна к качеству текста.

              Когда-то мне потребовалась библиотека для сборки языковой модели. После многих проб и ошибок пришёл к выводу, что подготовка датасета для обучения языковой модели — слишком сложный и долгий процесс. Особенно, если это русский язык! А ведь хотелось как-то всё автоматизировать.

              В своих исследованиях отталкивался от библиотеки SriLM. Сразу отмечу, что это не заимствование кода и не fork SriLM. Весь код написан полностью с нуля.
              Читать дальше →
            • Как я перестал бояться и полюбил холестерин

                Сегодня Lifext расскажет:


                • Так ли плох холестерин, как его малюют?
                • Как узнать свой уровень?
                • Что стало с мужчиной, который съедал 25 яиц в день?
                • Триумф и крах обезжиренных диет;
                • А сахар то здесь каким боком?
                • История: тайны судмедэкспертов;
                • Выводы Lifext;

                image

                Читать дальше →
              • Радужное доказательство демонстрирует наличие стандартных составных частей у графов

                • Translation

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



                8 января трое математиков опубликовали доказательство теоремы из комбинаторики, сформулированной почти 60 лет назад, известной, как гипотеза Рингеля. Грубо говоря, она предсказывает, что графы – конструкции, состоящие из точек и линий – можно идеально сложить из одинаковых частей меньшего размера.

                Математики с восторгом приняли подтверждение этой гипотезы.

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

                Гипотеза Рингеля предсказывает, что особые типы сложных графов – с триллионами вершин и рёбер – можно «замостить», т.е. полностью покрыть, отдельными копиями меньших графов определённого типа. С концептуальной точки зрения этот вопрос похож на следующий: могу ли я полностью замостить пол на кухне одинаковыми копиями какой-либо плитки, имеющейся в магазине? В реальной жизни большинство типов плитки не подойдёт для вашей кухни – чтобы полностью покрыть пол, придётся комбинировать их разные формы. Но в мире теории графов гипотеза предсказывает, что замостить граф можно всегда.
                Читать дальше →
              • А куда в этот ваш телескоп глазом смотреть?

                  Когда телескоп не работает, астрономы грустят
                  Когда телескоп не работает, астрономы грустят


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


                  Так получилось, что я не очень умный человек пять лет назад я заболела космосом и променяла работу в IT на аспирантуру в Специальной астрофизической обсерватории. И теперь хочу показать, как работают и выживают ученые высоко в горах Северного Кавказа. Под катом будет наше астрономическое железо (немного) и внутренности самого большого телескопа в Европе, из тех что не показывают туристам на экскурсиях.

                  Читать дальше →
                • Применение машинного обучения и Data Science в промышленности

                  • Translation
                  Хабр, привет. Перевел пост, который идёт строго (!) в закладки и передаётся коллегам. Он со списком блокнотов и библиотек ML и Data Science для разных отраслей промышленности. Все коды на Python, и размещены на GitHub. Они будут полезны как для расширения кругозора, так и для запуска своего интересного стартапа.

                  image

                  Отмечу, что если среди читателей есть желающие помочь, и добавить в любую из подотраслей подходящий проект, пожалуйста, свяжитесь со мной. Я их добавлю в список. Итак, давайте начнём изучение списка.
                  Читать дальше →