Search
Write a publication
Pull to refresh
2
0

Пользователь

Send message

Как случайность может помочь математикам

Reading time3 min
Views5.6K

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




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

И всё же недавняя статья "Случайные поверхности скрывают в себе замысловатый порядок" касалась нового доказательства, в котором всё решает случайность. Результат включает появление закономерностей типа шахматных клеток, появляющихся на геометрических пространствах, построенных случайным образом. Авторы доказательства обнаружили, что случайность в геометрическом пространстве упрощает описание этих закономерностей. «Довольно неожиданно, что добавление случайности позволяет вам сделать больше», чем без неё, сказал Николас Курьен, математик из университета Париж-юг XI, соавтор той работы.
Читать дальше →

Волшебная сила макросов, или как облегчить жизнь ассемблерного программиста AVR

Reading time8 min
Views13K

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

Читать дальше →

Почему вместо четырёхдневной рабочей недели лучше подумать о шестичасовом рабочем дне

Reading time8 min
Views31K
Разговор о сокращении продолжительности рабочей недели очень своевременный, но в нынешней форме — совершенно бессмысленный в силу своей хаотичности, потому что люди бросились обсуждать высочайшую инициативу Дмитрия Медведева о возможном введении четырёхдневной рабочей недели, не определившись с базовыми вещами: приоритетами и целями. Ну и разобравшись по пути с некоторыми мифами и заблуждениями.

Фактически, в России сорокачасовой рабочей недели уже давно нет — чтобы в этом убедиться, достаточно посчитать, сколько на самом деле у нас рабочих дней. В невисокосном году 52 недели + 1 день. При пятидневке это должно означать 260 или 261 рабочий день. Но из-за дополнительных праздничных выходных в 2019 году в России будет всего 247 рабочих дней. За вычетом также 28 календарных дней (то есть, четырёх недель или двадцати рабочих дней) отпуска остаётся 227 рабочих дней в течение 48 недель — то есть, средняя рабочая неделя в России уже не пятидневная, а 4,73-дневная — или 38-часовая вместо 40-часовой.

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

image

Распознавание лиц с помощью сиамских сетей

Reading time7 min
Views29K


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

Допустим, нам нужно сделать модель распознавания лиц для организации, в которой работает около 500 человек. Если делать такую модель с нуля на основе свёрточной нейросети (Convolutional Neural Network (CNN)), то для обучения модели и достижения хорошей точности распознавания нам понадобится много изображений каждого из этих 500 человек. Но очевидно, что такой датасет нам не собрать, поэтому не стоит делать модель на основе CNN или иного алгоритма глубокого обучения, если у нас нет достаточного количества данных. В подобных случаях можно воспользоваться сложным алгоритмом однократного обучения, наподобие сиамской сети, которая может обучаться на меньшем количестве данных.
Читать дальше →

Интерпретируемая модель машинного обучения. Часть 2

Reading time4 min
Views14K
Всем привет. Считанные дни остаются до старта курса «Machine Learning». В преддверии начала занятий мы подготовили полезный перевод, который будет интересен как нашим студентам, так и всем читателям блога. И сегодня делимся с вами завершающей частью данного перевода.





Partial Dependence Plots


Partial Dependence Plots (графики частичной зависимости или же PDP, PD-графики) показывают незначительное влияние одного или двух признаков на прогнозируемый результат модели машинного обучения ( J. H. Friedman 2001 ). PDP может показать связь между целью и выбранными признаками с помощью 1D или 2D графиков.
Читать дальше →

Кто не спрятался – я не виноват (история скрытности в авиации)

Reading time12 min
Views67K
В описаниях современных боевых самолётов «малозаметный» — чуть ли не самая значимая характеристика. Важная и интересная. Под катом попытка описать историю и разные аспекты малозаметности. Картинок будет довольно много, но не жалуйтесь, авиация — это красиво.
Итак, пройдёмся от



до


Читать дальше →

Нечувствительные к весам нейронные сети (WANN)

Reading time6 min
Views41K


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


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

Читать дальше →

Какой дистрибутив лучше использовать для вашей embedded системы?

Reading time3 min
Views18K
Какой дистрибутив лучше использовать для embedded систем. Этот вопрос является актуальным на сегодняшний день.

Существует три актуальных подхода для решения этой задачи:

  1. Использовать готовый дистрибутив для вашего одноплатного компьютера(Armbian, Openwrt и т.д.)
  2. Собрать и настроить свой дистрибутив с помощью систем сборок(Buildroot/Yocto и т.д.).
  3. Использовать свою связку bootloader (u-boot) + ядро(kernel) + rootfs (busybox).

Если кто знает еще, напишите пожалуйста в комментариях.
UPDATE.
Проект OpenWRT это и система сборки (это не buildroot), так и проект предоставляющий готовые собранные образы для вашей целевой платы.

Читать дальше →

Записки IoT-провайдера. Проклятие импульсного выхода

Reading time5 min
Views29K
Здравствуйте, уважаемые любители Интернета Вещей. Сегодня мне хотелось бы поговорить про импульсный выход. Один из популярнейших телеметрических выходов у приборов учета. Простой, как пять копеек. И самый тяжелый в эксплуатации.


Читать дальше →

В будущем учёные, возможно, научатся предсказывать, что именно вы запомните

Reading time4 min
Views3K


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

Некоторые люди способны описать эмоциональные воспоминания до определённого предела, даже по прошествии долгого времени, при этом вспоминания о более обыденных событиях исчезают. Но почему конкретно это происходит, и как мы сохраняем наши воспоминания, пока неясно. В новой работе, опубликованной в журнале Psychological Review, мы описываем новую компьютерную модель, которая может помочь объяснить этот факт.
Читать дальше →

И всё же C — низкоуровневый язык

Reading time9 min
Views56K


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


Критика C — классический для нашей индустрии эпистолярный жанр. Она звучит то громче, то тише, но в последнее время буквально оглушает. Пример — перевод статьи Дэвида Чизнэлла «C — не низкоуровневый язык», опубликованный в нашем блоге некоторое время назад. Про C можно говорить разное, в дизайне языка действительно много неприятных ошибок, но отказывать C в «низкоуровневости» — это уже слишком!


Чтобы не терпеть такую несправедливость, я собрался с духом и постарался определиться с тем, что есть язык программирования низкого уровня и чего хотят от него практики, после чего перебрал аргументы критиков C. Так получилась эта статья.

Читать дальше →

Как я учил змейку играть в себя с помощью Q-Network

Reading time3 min
Views12K

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


Обучение с подкреплением


В машинном обучении RL(Reinforcement Learning) достаточно сильно отличается от других направлений. Отличие состоит в том, что классический ML алгоритм обучается уже на готовых данных, в то время как RL, так сказать, сам создает себе эти данные. Идея RL состоит в том, что помимо самого алгоритма, который называют агентом, существует среда(environment), в которую этот агент и помещается. На каждом этапе агент должен совершать какое-то действие(action), а среда отвечает на это наградой(reward) и своим состоянием(state), на основе которого агент и совершает действие.

Читать дальше →

Как мы сделали движок и игру на нем за полтора года. Часть вторая. Инфраструктура

Reading time6 min
Views14K
Для начала несколько комментариев по следам предыдущей статьи. Мы действительно раньше работали в компании Wargaming, где разрабатывали движок, известный как dava.framework или dava.engine. Поэтому многие старые коллеги, с которыми мы по-прежнему в хороших отношениях, активно участвуют в обсуждении.

У ряда людей возникли сомнения: это та же технология или другая? Ответ: это новая технология, написанная с нуля.

Как же мы справились всего за год? Наша команда имеет огромный опыт. Многие занимаются разработкой движков и игр более 15-и лет.

Почему с нуля, если можно было взять наш старый движок, который к тому же лежит в open-source? Ему около 10 лет, и большая часть кода устарела. Даже самые лучшие части движка, которыми мы гордимся, местами содержали куски кода и какие-то рудименты 5-и, 7-и и иногда даже 10-ти летней давности. Многие архитектурные решения были рассчитаны на устройства того времени — начиная с айфона 3G. Сейчас же мы ориентируемся минимум на iPad Air 1 и аналогичные ему по мощности Android-устройства. Соответственно и подходы несколько поменялись.
Читать дальше →

Древности: Windows 3.1 и жизнь без кнопки «Пуск»

Reading time8 min
Views46K
В моей компьютерной реальности Windows 3.x продержалась недолго, всего пару лет, и была моментально забыта после появления Windows 95. Но и в первой половине девяностых она никогда не была основным инструментом. Практически все делалось в DOS: игры там, работа с файлами там, тексты тоже там, даже интернет (еще не веб, а только почта и новостные группы) работал через «консольные» утилиты. Как так вышло? Действительно ли третья версия Windows была необязательным приложением к суровому текстовому экспириенсу четверь века назад?

Вдоволь наигравшись с компьютерами двадцатилетней давности, я начал исследовать более ранние системы, и понял, что за исключением досовских игр они для меня — темный лес. Сегодня — первый подход к снаряду, знакомство с Windows 3.1 — еще не совсем операционной системой, скорее графической оболочкой поверх MS-DOS. Выпущенная в 1992 году, эта версия Windows, по-прежнему лишенная многих очевидных сегодня элементов интерфейса, содержала большое количество нововведений, включая наиболее ценное: «Сапёр».

Не всплывай! Прерываемые транзишены в iOS

Reading time8 min
Views11K

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


Читать дальше →

Язык программирования Swift на Raspberry Pi

Reading time4 min
Views14K

Raspberry PI 3 Model B+

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

Официальный язык программирования «малинки» — Python. Хотя Python достаточно прост в использовании, ему не хватает типобезопасности, плюс он потребляет много памяти. Swift, напротив, имеет ARC-управление памятью и почти в 8 раз быстрее Python. Ну а поскольку объем ОЗУ и вычислительные возможности процессора Raspberry Pi ограничены, использование языка вроде Swift позволяет максимально использовать потенциал железа этого мини-ПК.
Читать дальше →

Обмен секретными сообщениями через серверные логи

Reading time3 min
Views13K
Согласно определению в Википедии, тайник (dead drop) — это инструмент конспирации, который служит для обмена информацией или какими-то предметами между людьми, использующими секретное местоположение. Смысл в том, что люди никогда не встречаются — но при этом обмениваются информацией, поддерживая эксплуатационную безопасность.

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

В интернете есть много инструментов для шифрования и анонимизации, но сам факт использования этих инструментов привлекает внимание. Кроме того, они могут быть заблокированы на корпоративном или государственном уровне. Что делать?
Читать дальше →

Взгляд изнутри: RFID в современном мире. Часть 2: китайские RFID

Reading time2 min
Views9.7K


В прошлой статье мы познакомились с RFID-метками, которые незримо окружают нас в быту. Сегодня продолжим разбираться с бытовым применением меток и взглянем на метки китайского производства.
Всё лучшее для фанатов geekporn с китайской перчинкой начинается здесь!

Бревно в глазу: какие уязвимости есть у систем видеонаблюдения

Reading time7 min
Views18K
image

Найти кусочек земной поверхности, не попадающий в поле зрения какой-либо камеры, становится всё сложнее, если говорить о более-менее крупных городах. Кажется, ещё немного, и настанет то самое светлое будущее, в котором преступники не смогут скрыться от бдительного правосудия, а люди заживут счастливо и беззаботно, ведь ещё в 2009 году в 95% случаев Скотланд-Ярд использовал записи камер видеонаблюдения в качестве доказательства вины убийц. К сожалению, эта утопия далека от реальности. И не в последнюю очередь потому, что камеры наблюдения имеют уязвимости. Поговорим о том, какие уязвимости наиболее часто встречаются в системах видеонаблюдения, обсудим их причины и рассмотрим способы сделать эксплуатацию таких устройств безопаснее.
Читать дальше →

Бумажная настольная игра DoodleBattle

Reading time2 min
Views4.2K
Всем привет! Представляем вам свою первую настольную игру с бумажными фигурками. Это такой варгейм, но только бумажный. И всю игру пользователь делает сам :) Хотел бы сразу сказать, что это не очередная адаптация, а полностью нами разработанный проект. Все иллюстрации, фигурки, правила до каждой буквы и пиксела мы сделали и придумали сами. Такие дела :)

image

DoodleBattle: FlatArms — это пошаговый варгейм с полем битвы и линейками, где два отряда выполняют опасные миссии, побеждают и проигрывают в безумной борьбе за обладание секретной информацией и технологиями. Конечно же, игра снабжена всем необходимым из конверта: фигурки, поле, постройки, правила, набор миссий, линейки и кубики.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity