• Равномерно распределяем точки по сфере в pytorch и tensorflow

    • Tutorial

    Этот текст написан для тех, кто интересуется глубоким обучением, кто хочет использовать разные методы библиотек pytorch и tensorflow для минимизации функции многих переменных, кому интересно научиться превращать последовательно выполняющуюся программу в выполняемые с помощью numpy векторизованные матричные вычисления. А ещё можно научиться делать мультфильм из данных, визуализированных с помощью PovRay и vapory.


    Читать дальше →
    • +30
    • 2,6k
    • 6
  • Криптография после высадки инопланетян

    • Перевод
    Автор статьи: Брюс Шнайер — американский криптограф, писатель и специалист по компьютерной безопасности. Автор нескольких книг по безопасности, криптографии и ИБ. Основатель криптографической компании Counterpane Internet Security, Inc., член совета директоров Международной ассоциации криптологических исследований и член консультативного совета Информационного центра электронной приватности.

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

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

    • Перевод
    «Это легко. Берём метрику Шварцшильда, ищем символы Кристоффеля, вычисляем их производную, записываем геодезическое уравнение, меняем некоторые декартовы координаты (чтобы не страдать), получаем большое многострочное ОДУ — и решаем его. Примерно так».



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

    Мой новый проект исправляет этот недостаток, отказавшись от эффективности/интерактивности самым простым образом: это рейтрейсер чисто на CPU. Трассировка выполняется максимально точно и максимально долго. Рендеринг изображения вверху занял 15 5 минут (спасибо, RK4) на моём ноутбуке.
    Читать дальше →
  • Задача с небоскрёбом и яйцами — не бином Ньютона?

    На самом деле, он самый. Но обо всём по порядку.

    Постановка задачи


    Осваиваю питон, решаю всякое на Codewars. Сталкиваюсь с известной задачей про небоскрёб и яйца. Разница лишь в том, что исходные данные — не 100 этажей и 2 яйца, а чуть побольше.
    Дано: N яиц, M попыток их бросить, бесконечный небоскрёб.

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

    0 <= N, M <= 20000.
    Время прогона двух десятков тестов — 12 секунд.
    Читать дальше →
  • Изучаем сопромат с CalculiX

    • Tutorial
    Сдал сопромат — можно жениться!

    Введение


    Метод конечных элементов (МКЭ или FEM, у них за рубежом) прочно вошел в практику инженерных расчетов при проектировании сложных систем. В значительной степени это касается прочностных расчетов механики. Применения этого метода, реализуемого соответствующим программным обеспечением существенно сокращает цикл разработки конечного устройства, позволяя исключить массу экспериментальных проверок, необходимых при использования классических расчетов на основе методов сопромата и строительной механики. На текущий момент разработана масса прикладного ПО, реализующего МКЭ. Во главе угла стоит мощный ANSYS, по бокам от него и в почетном удалении — CAD-системы со встроенным FEM-модулем (SolidWorks, Siemens NX, Creo Parametric, Компас 3D).

    CalculiX силен, но труден и непонятен. Исправим это?



    Естественно, МКЭ проник и в сферу образования — чтобы использовать его в реальных задачах, нужна подготовка соответствующих специалистов. В столицах, в крупных технических вузах обстановка в этой области более-менее нормальная, да и у нас в регионе тот же ANSYS применяется, например, на кафедре теории упругости ЮФУ. Но по периферии, в узко специализированных и не богатых университетах ситуация плачевна. И всё просто — ANSYS стоит порядка 2 млн. рублей за одно рабочее место, а место требуется не одно. К сожалению не все вузы могут позволить себе выложить 30-40 миллионов на организацию компьютерного класса для обучения применению МКЭ.

    Одной из альтернатив может служить применение в учебном процессе свободного ПО. К счастью таковое ПО имеется. Однако, русскоязычных материалов по его использованию практически не существует. Исправляя эту ситуацию, данную статью я собираюсь посвятить в введению в CalculiX — открытый, свободный программный пакет, предназначенный для решения линейных и нелинейных трёхмерных задач механики твёрдого деформируемого тела и механики жидкости и газа с помощью метода конечных элементов.
    Читать дальше →
  • Клод Шеннон: как гений решает проблемы

    • Перевод


    Клоду Шеннону потребовалось около десяти лет, чтобы полностью сформулировать свою эпохальную теорию информации.

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

    Однако только в 1948 году он опубликовал Математическую Теорию Связи.

    Правда, это был не единственный его крупный вклад в науку. Еще будучи студентом MIT (Массачусетский технологический институт), в свои скромные 21, он опубликовал работу, которую многие считают, пожалуй, наиболее важной магистерской диссертацией века.

    Для обычного человека значение ее невелико. Нельзя сказать, что имя Шеннона у всех на устах. Но, если бы не работа Шеннона, то никакого компьютера в современном понимании могло не появиться. Шеннон оказал колоссальное влияние не только на информатику, но и на физику, и на инженерию.

    Мы запросто бросаемся словом «гений», но лишь немногие люди на свете по праву заслужили именоваться так, и Клод Шеннон — один из них. Он мыслил иначе, мыслил играючи.

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

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

    Любая задача имеет очертания и форму. Для решения задач первым делом нужно научиться их понимать.

    Переведено в Alconost
    Читать дальше →
  • TL;DR книги “Искусство заниматься наукой и инженерным делом” Ричарда Хэмминга

      На Хабре уже долгое время публикуется совместный перевод замечательной книги Ричарда Хэмминга "The Art of Doing Science and Engineering". Я долгое время хотел её прочитать в оригинале. Да не просто прочитать, а составить насколько возможно краткую выжимку основных идей каждой главы. И вот недавно мне удалось это сделать.


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


      Из-за достаточно большого количества материала и его "плотной" подачи данная статья всё равно получилась достаточно объёмной. Поэтому предлагаю её TL;DR.


      TL;DR этого TL;DR
      • Удача сопутствует подготовленному уму (Пастер).
      • Подготовка должна осуществляться ориентируясь на будущее, а не на прошлое (но основываясь на нём).
      • Стоит стараться достигать цели, которые вы себе поставили, и стоит ставить высокие цели.

      Читать дальше →
      • +15
      • 2,5k
      • 1
    • Михаил Бессмельцев с коллегой разработал новые алгоритмы для векторизации графики


        Слева направо: оригинал, оснащённое поле (frame field) и окончательный результат. На базе зашумлённого растрового изображение в оттенках серого вычисляется оснащённое поле, выровненное по линиям картинки. На острые углы типа X- и T-пересечений накладываются векторы по обоим направлениям. Затем из этого поля извлекается топология чертежа — и производится окончательная генерация векторных кривых

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

        Первые алгоритмы векторизации изображений появились в начале 1990-х годов и
        использовались в инструментах для редактирования векторной графики, таких как Adobe Illustrator (Live Trace), CorelDRAW (PowerTRACE) и Inkscape. Несмотря на их широкое внедрение в промышленности, эти алгоритмы до сих пор страдают от серьёзных недостатков и находятся в активной разработке. В нескольких индустриях, где векторизация крайне необходима, включая традиционную анимацию и инженерное проектирование, она часто выполняется вручную. Дизайнеры кропотливо обводят отсканированное изображение с помощью инструментов рисования.
        Читать дальше →
      • «Трое в лодке, нищета и собаки», или как Антиплагиат ищет парафраз

          Наступил новый учебный год. Студенты получили расписание занятий и стали задумываться о пьянках-гулянках-девушках-гитарах будущей сессии. Написание курсовых, дипломов, статей и диссертаций не за горами. А значит, грядут и анализ текстов на наличие заимствований, и отчеты о проверке, и прочая головная студенческая и администраторская боль. И у сотен тысяч людей (без шуток – мы посчитали!) уже возникает закономерный вопрос – как же обмануть «Антиплагиат». В нашем случае практически все способы обмана так или иначе связаны с искажениями текста. Мы уже научили «Антиплагиат» обнаруживать текст, «искаженный » с помощью перевода с английского на русский (мы писали об этом в первой статье нашего корпоративного блога). Сегодня речь пойдет о том, как обнаруживать самый эффективный, хотя и трудоемкий способ искажения текста – парафраз.



          Читать дальше →
        • Оптические трекеры: ASEF и MOSSE

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

            • Подсчёт уникальных людей, зашедших в определённую зону или перешедших через границу в кадре
            • Определение типичных маршрутов машин на стоянке и людей в магазине
            • Автоматический поворот камеры видеонаблюдения при смещении объекта

            Даже не глядя в литературу, я могу с уверенностью сказать, что наилучший способ решить поставленную задачу — использовать нейронные сети. В общем-то, дальше можно было бы ничего и не писать, но не всегда в задачу можно кинуться парой GTX 1080Ti. Кому интересно, как отслеживают объекты на видео в таких случаях, прошу под кат. Я попробую не просто объяснить, как работают ASEF и MOSSE трекеры, а подвести вас к решению, чтобы формулы показались очевидными.
            Читать дальше →
            • +15
            • 1,3k
            • 4
          • В чём важность 196 884 = 196 883 + 1? Как это объяснить на пальцах?

            • Перевод
            Автор ответа на Quora — Майкл Гриффин, постдок по математике

            Сения Шейдвассер дал очень хороший, простой ответ на этот вопрос, рекомендую прочитать эту краткую версию. Но есть гораздо более удивительная история гипотезы чудовищного вздора (Monstrous Moonshine), смешанной с уравнением Маккея: от виски Jack Daniel’s до чёрных дыр и квантовой гравитации.

            В этой истории часто упоминаются симметрии и математические «группы», поэтому начнём с того, что понимается под группой в математике. Группу можно представить как способ переупорядочить набор объектов, сохраняя определённую структуру. Операции в группе должны следовать определённым правилам, например, всегда должна быть возможность отменить операцию, а если вы выполняете одну операцию, а затем другую, то получаете третью операцию в группе.
            Читать дальше →
          • Теория счастья. Проклятие режиссёра и проклятые принтеры

              Продолжаю знакомить читателей Хабра с главами из своей книжки «Теория счастья» с подзаголовком «Математические основы законов подлости». Это ещё не изданная научно-популярная книжка, очень неформально рассказывающая о том, как математика позволяет с новой степенью осознанности взглянуть на мир и жизнь людей. Она для тех кому интересна наука и для тех, кому интересна жизнь. А поскольку жизнь наша сложна и, по большому счёту, непредсказуема, упор в книжке делается, в основном, на теорию вероятностей и математическую статистику. Здесь не доказываются теоремы и не даются основы науки, это ни в коем случае не учебник, а то, что называется recreational science. Но именно такой почти игровой подход позволяет развить интуицию, скрасить яркими примерами лекции для студентов и, наконец, объяснить нематематикам и нашим детям, что же такого интересного мы нашли в своей сухой науке.

              Опубликованные главы:

               •  Введение в мерфологию
               •  Закон арбузной корки и нормальность ненормальности
               •  Закон зебры и чужой очереди



              Мы порассуждаем о цейтнотах, дедлайнах и о невовремя ломающихся принтерах.

              Читать дальше →
              • +32
              • 4,5k
              • 6
            • «Матрица дружбы». Самый старый социальный граф для самых маленьких

                Тут случилось первое сентября, очередной учебный год, цветы-конфеты, слёзы счастья и вот это вот всё, а я в процессе подготовки к лекции в институте наткнулся на очень любопытные данные. Я смотрел, что бы такого можно было быстро и красиво порисовать в GePhi, и наткнулся на историю Йоханнеса Делича (Johannes Delitsch). Делич работал в Лейпциге учителем начальных классов и собрал в 1880 учебном году данные о том, кто с кем дружит в его классе. И это, по ходу, один из первых задокументированных социальных графов.


                Йоханнес Делич

                Читать дальше →
              • Python и DataScience: изучаем возможности универсальной библиотеки Numpy



                  От переводчика: это перевод материала Ракшита Васудева, давно и плотно изучающего DataScience и применение в ней языка Python. Автор рассказывает о мощной библиотеке Numpy, который позволяет реализовать многие возможности машинного обучения и работы с большими данными.

                  Numpy — математическая библиотека для Python. Она позволяет выполнять разного рода вычисления эффективно и быстро. Она значительно расширяет функциональность Python благодаря специальным решениям, которые в ней применяются. В этой статье рассказывается о базовых возможностях Numpy, и это только первая часть; чуть позже будут опубликованы и другие. Статья для тех, кто только начинает изучать Numpy, вступая в дивный мир математики в Python.
                  Читать дальше →
                  • +10
                  • 4,1k
                  • 5
                • Что на самом деле делала программа Ады Лавлейс?

                  • Перевод
                  image

                  Эпизод с основанием Microsoft – один из наиболее известных в компьютерной истории. В 1975 году Пол Аллен вылетел в Альбукерк, чтобы продемонстрировать интерпретатор BASIC, которые они с Биллом Гейтсом написали для микрокомпьютера Altair. Поскольку у них не было работающего компьютера Altair, они проверили свой интерпретатор при помощи написанного ими эмулятора, выполнявшегося на компьютерной системе Гарварда. Эмулятор был основан только на опубликованных спецификациях процессора Intel 8080. Когда Аллен, наконец, запустил интерпретатор на реальном компьютере Altair – перед человеком, который, как они надеялись, купит их ПО – он даже не знал, заработает ли программа. Она заработала. В следующем месяце Аллен и Гейтс официально основали новую компанию.

                  За более чем сто лет до интерпретатора BASIC Аллена и Гейтса, Ада Лавлейс написала и опубликовала компьютерную программу. Она тоже написала программу для компьютера, о котором знала только по описанию. Но её программа, в отличие от интерпретатора BASIC, никогда не выполнялась, потому что компьютер, для которого она была написана, так и не был построен.
                  Читать дальше →
                • Насколько данные для обучения модели (не)похожи на тестовую выборку?

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

                  Есть такая поговорка: «Не сравнивайте яблоки с апельсинами». Но что делать, если нужно сравнить один набор яблок с апельсинами с другим, но распределения фруктов в двух наборах разное? Сможете работать с данными? И как будете это делать?

                  Читать дальше →
                  • +22
                  • 2,9k
                  • 3
                • Интервью с победителями 59-й Международной Математической Олимпиады

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


                    Читать дальше →
                  • Венгерский алгоритм, или о том, как математика помогает в распределении назначений

                    • Tutorial
                    Привет, друзья! В этой статье хотел бы рассказать про интересный алгоритм из дисциплины «Исследование операций» а именно про Венгерский метод и как с его помощью решать задачи о назначениях. Немного затрону теории про то, в каких случаях и для каких задач применим данный алгоритм, поэтапно разберу его на мною выдуманном примере, и поделюсь своим скромным наброском кода его реализации на языке R. Приступим!

                    image
                    Читать дальше →
                  • Тридцать шесть градусов красоты

                      Сеточные системы координат, в которых плоскость делится на одинаковые симметричные элементы — на квадраты, треугольники, шестиугольники, достаточно известны. Им соответствуют квадратная, треугольная, шестиугольная симметрия. Но еще существует симметрия десятиугольная.

                      В ней плоскость не делится на десятиугольники, вместо этого все линии расположены под углами кратными 36°. Координаты в этой системе можно записывать целыми числами, по два целых числа на горизонтальное и вертикальное направление.



                      Расскажу как это нарисовать.
                      Читать дальше →
                    • Деньги на ветер: почему ваш антифишинг не детектирует фишинговые сайты и как Data Science заставит его работать?

                        image

                        В последнее время фишинг является наиболее простым и популярным у киберпреступников способом кражи денег или информации. За примерами далеко ходить не нужно. В прошлом году ведущие российские предприятия столкнулись с беспрецедентной по масштабу атакой — злоумышленники массово регистрировали фейковые ресурсы, точные копии сайтов производителей удобрений и нефтехимии, чтобы заключать контракты от их имени. Средний ущерб от такой атаки — от 1,5 млн рублей, не говоря уже про репутационный ущерб, который понесли компании. В этой статье мы поговорим о том, как эффективно детектировать фишинговые сайты с помощью анализа ресурсов (изображений CSS, JS и т.д.), а не HTML, и как специалист по Data Science может решить эти задачи.
                        Читать дальше →

                      Самое читаемое