Обновить
0
0
Владимир Савин@WowaBBS

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

Отправить сообщение

LSTM – сети долгой краткосрочной памяти

Время на прочтение8 мин
Охват и читатели301K

Рекуррентные нейронные сети


Люди не начинают думать с чистого листа каждую секунду. Читая этот пост, вы понимаете каждое слово, основываясь на понимании предыдущего слова. Мы не выбрасываем из головы все и не начинаем думать с нуля. Наши мысли обладают постоянством.

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

Решить эту проблемы помогают рекуррентые нейронные сети (Recurrent Neural Networks, RNN). Это сети, содержащие обратные связи и позволяющие сохранять информацию.
Читать дальше →

«Магическая константа» 0x5f3759df

Время на прочтение9 мин
Охват и читатели132K
В этой статье мы поговорим о «магической» константе 0x5f3759df, лежащей в основе элегантного алгоритмического трюка для быстрого вычисления обратного квадратного корня.

Вот полная реализация этого алгоритма:

float FastInvSqrt(float x) {
  float xhalf = 0.5f * x;
  int i = *(int*)&x;  // представим биты float в виде целого числа
  i = 0x5f3759df - (i >> 1);  // какого черта здесь происходит ?
  x = *(float*)&i;
  x = x*(1.5f-(xhalf*x*x));
  return x;
}

Этот код вычисляет некоторое (достаточно неплохое) приближение для формулы

image

Сегодня данная реализация уже хорошо известна, и стала она такой после появления в коде игры Quake III Arena в 2005 году. Её создание когда-то приписывали Джону Кармаку, но выяснилось, что корни уходят намного дальше – к Ardent Computer, где в середине 80-ых её написал Грег Уолш. Конкретно та версия кода, которая показана выше (с забавными комментариями), действительно из кода Quake.
В этой статье мы попробуем разобраться с данным хаком, математически вывести эту самую константу и попробовать обобщить данный метод для вычисления произвольных степеней от -1 до 1.

Да, понадобится немного математики, но школьного курса будет более, чем достаточно.
Читать дальше →

Описание алгоритмов сортировки и сравнение их производительности

Время на прочтение24 мин
Охват и читатели761K

Вступление


На эту тему написано уже немало статей. Однако я еще не видел статьи, в которой сравниваются все основные сортировки на большом числе тестов разного типа и размера. Кроме того, далеко не везде выложены реализации и описание набора тестов. Это приводит к тому, что могут возникнуть сомнения в правильности исследования. Однако цель моей работы состоит не только в том, чтобы определить, какие сортировки работают быстрее всего (в целом это и так известно). В первую очередь мне было интересно исследовать алгоритмы, оптимизировать их, чтобы они работали как можно быстрее. Работая над этим, мне удалось придумать эффективную формулу для сортировки Шелла.

Во многом статья посвящена тому, как написать все алгоритмы и протестировать их. Если говорить о самом программировании, то иногда могут возникнуть совершенно неожиданные трудности (во многом благодаря оптимизатору C++). Однако не менее трудно решить, какие именно тесты и в каких количествах нужно сделать. Коды всех алгоритмов, которые выложены в данной статье, написаны мной. Доступны и результаты запусков на всех тестах. Единственное, что я не могу показать — это сами тесты, поскольку они весят почти 140 ГБ. При малейшем подозрении я проверял и код, соответствующий тесту, и сам тест. Надеюсь, что статья Вам понравится.
Читать дальше →

Перехватываем запуск любого приложения в Windows и пытаемся ничего не сломать

Время на прочтение14 мин
Охват и читатели56K

Если вы много занимаетесь отладкой приложений под Windows — вы, возможно, слышали о таком замечательном механизме, как Image File Execution Options (IFEO). Одна из предоставляемых им возможностей позволяет отлаживать приложение в условиях, более приближенных к боевым. Записав в нужное место в реестре специальный ключик, мы можем вместо программы автоматически запускать её отладчик, позволяя ему делать свои отладочные дела. Однако кто сказал, что этот механизм (фактически — перехвата запуска чего угодно) можно использовать только в подобных целях? Эта статья вовсе не об использовании вещей по назначению.


Под катом рассказ о том, как я попытался выжать побольше из этого механизма в своих добрых целях, и какие подводные камни мне встретились на пути. А у меня тут хорошие, отборные камни.

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

Введение в октодеревья

Время на прочтение31 мин
Охват и читатели43K


Что такое октодеревья? Если вам совершенно неизвестно это понятие, то рекомендую прочитать статью в Википедии (это займёт около пяти минут). Она даёт достаточное представление, но едва ли её будет достаточно, чтобы понять, для чего они используются и как их реализовать.

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

Как я боролся с комарами. Личный опыт и тесты на себе

Время на прочтение8 мин
Охват и читатели324K

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


Самодельные домашние батареи на 30-100 кВтч делают из аккумуляторов выброшенных ноутбуков

Время на прочтение3 мин
Охват и читатели125K


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

Вторая версия Powerwall хранит до 13,5 кВтч, чего должно хватить на несколько часов (стандартная мощность 5 кВт, а в пике 7 кВт). Проблема лишь в том, что оригинальная версия от Tesla стоит аж $5500 (плюс $700 за сопутствующее оборудование, итого $6200, плюс работы по установке стоят от $800 до $2000) — очень дорого. DIY-мейкеры решили эту проблему с помощью бэушных батареек, которые лежат бесплатно в выброшенных ноутбуках.

Своими руками можно собрать блок с лучшими характеристиками, чем у Tesla (например, на 30-100 кВтч) — и намного дешевле.
Читать дальше →

Искусственный интеллект помогает ученикам обманывать учителя

Время на прочтение7 мин
Охват и читатели36K
image

Дэниз Гарсия [Denise Garcia] знает, что иногда её ученики обманывают её, но вскрытая ею в феврале ситуация оказалась совершенно необычной. Гарсия, учительница математики в Вест-Хартфорде, Коннектикут, случайно включила нетипично сложное уравнение в набор задач для своего класса, изучающего математику по институтской программе. Однако каким-то образом несколько человек из класса, где занимаются 15 учеников, сумели правильно решить его. Эти ученики продемонстрировали свои работы с решением уравнения, опровергнув обычную схему разоблачения списывания.

Гарсия была сбита с толку, но затем она вспомнила один разговор, происходивший за несколько лет до того. Некоторые из бывших учеников рассказали ей про онлайн-инструмент Wolfram|Alpha, способный за несколько секунд расправляться со сложными уравнениями. Он даёт как ответы, так и последовательные шаги для достижения ответов, поэтому обманщиков никак нельзя было отловить на копировании результата в домашнюю работу.
Читать дальше →

Метаклассы в C++

Время на прочтение5 мин
Охват и читатели27K
В этой статье мы поговорим о новом предложенном расширении языка С++ — метаклассах. Герб Саттер с коллегами работал над этим предложением около 2 лет и, наконец, этим летом представил его общественности.

Итак, что же такое «метакласс» с точки зрения Герба Саттера? Давайте вспомним наш С++ — самый прекрасный в мире язык программирования, в котором, однако, веками десятилетиями существуют примерно одни и те же сущности: переменные, функции, классы. Добавление чего-то фундаментально нового (вроде enum classes) занимает очень много времени и рассчитывать дождаться включения чего-то нужного вам здесь и сейчас в стандарт — не приходится. А ведь кое-чего и правда не хватает. Например, у нас всё ещё нет (да, наверное, и не будет) интерфейсов как таковых (приходится эмулировать их абстрактными классами с чисто виртуальными методами). Нет properties в полном их понимании, нет даже value-типов (чего-то такого, что можно было бы определить как набор переменных простых типов и сразу использовать во всяких там контейнерах/сортировках/словарях без определения для них разных там операций сравнения, копирования и хеширования). Да и вообще постоянно чего-то кому-то не хватает. Разработчикам Qt вот не хватает метаданных и кодогенерации, что заставляет их использовать moc. Разработчикам C++/CLI и C++/CX не хватило способов взаимодействия со сборщиком мусора и своими системами типов. Ну и т.д.

А давайте на секунду представим, что мы сами можем вводить в язык новые сущности. Ну или пусть не прямо «сущности», а правила проверки и модификации классов.

10 бесплатных и крутых шрифтов

Время на прочтение5 мин
Охват и читатели81K
Сегодня рассказываем про шрифты, которые часто используют наши дизайнеры — все они бесплатные, минималистичные и удобные в использовании. Надеемся, наша подборка пригодится вам при выборе шрифтов.

Шрифт – часть фирменного стиля, которой нельзя пренебрегать. Форма и начертание букв – основа читабельности и настроения бренда. Текст окружает нас повсюду: название компании, слоган или реклама в журнале. Встречают по одежке. Притягательность текста зависит от того, зацепится ли взгляд за приятные очертания букв или излишние закорючки вызовут отторжение у читателя. Создание шрифтов – наука, но всемирная сеть предлагает неисчерпаемый источник публичных семейств от гуру типографики.

1. Open Sans


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

Шифр Хила. Подробный разбор

Время на прочтение4 мин
Охват и читатели106K
В этой публикации я попытаюсь максимально подробно описать шифрования и дешифрование по алгоритму Хилла. Итак, без лишних слов сразу к делу.
Читать дальше →

GraphQL запросы. От простого к более сложному

Время на прочтение3 мин
Охват и читатели76K

image


Привет, Мир! Много было сказано о сути GraphQL, но гораздо меньше о самих запросах. От простого к более сложному, я раскрою тему. Заинтересованным, — добро пожаловать под кат.

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

Введение в алгоритм A*

Время на прочтение10 мин
Охват и читатели215K
При разработке игр нам часто нужно находить пути из одной точки в другую. Мы не просто стремимся найти кратчайшее расстояние, нам также нужно учесть и длительность движения. Передвигайте звёздочку (начальную точку) и крестик (конечную точку), чтобы увидеть кратчайший путь. [Прим. пер.: в статьях этого автора всегда много интерактивных вставок, рекомендую сходить в оригинал статьи.]


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

C++ Debugger Visualizers: отображение типов в отладчике из Boost, wxWidgets, TinyXML и TinyXML2

Время на прочтение2 мин
Охват и читатели8.4K
imageС незапамятных времен в Visual Studio существовала возможность написания визуализаторов для своих C++ типов, что позволяет изменить способ отображения типов в окнах отображающих содержимое переменных в отладчике (такие как auto, watch, locals и всплывающие подсказки для переменных). В Visual Studio 2012 появилась возможность в расширениях к Visual Studio распространять визуализаторы в новом формате natvis.

Были конвертированы старые визуализаторы для Boost'а и мои старые для TinyXML, а также добавил новые визуализаторы для Boost, wxWidgets и TinyXML2. Получилось в итоге расширение к Visual Studio 2012 — C++ Debugger Visualizers
Читать дальше →

Учим нейронную сеть геометрии

Время на прочтение5 мин
Охват и читатели21K
Доброго времени суток, пользователи Хабра и просто гости. Хотел бы поделиться с Вами опытом работы с нейронными сетями.

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

Эти загадочные конденсаторы

Время на прочтение4 мин
Охват и читатели35K

Эта статья — об особенностях керамических конденсаторов, которые проявляются на высоких частотах (порядка десятков, сотен мегагерц и выше). Статья основана на материалах исследований, проводимых специалистами компании Johanson Technology.
Читать дальше →

Бумажный компьютер

Время на прочтение1 мин
Охват и читатели59K
Всем привет! В 15 лет я стал одержим идеей создания бумажной вычислительной машины — полноценного механического компьютера, созданного из бумаги, картона и зубочисток. Меня поразило то, что бумага существует уже более 2000 лет, но до сих пор никто не утруждал себя созданием бумажного компьютера.

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


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

Как искусственный интеллект формирует будущее интерактивных игр

Время на прочтение4 мин
Охват и читатели11K
Сегодня в блоге программы «Менеджмент игровых интернет-проектов», мы подготовили и перевели для вас статью, написанную главным редактором Kill Screen Заком Баджором про искусственный интеллект на примере игры The Suspect и фильма “Она”.


Нейросеть Deep Photo Style Transfer переносит стиль на фотографиях

Время на прочтение3 мин
Охват и читатели43K


Когда-нибудь в будущем мы сможем надеть очки — и ходить по городу, который рендерится в реальном времени в том стиле, какой нам нравится. Солнечный свет или лёгкая дымка, вечерний закат, что угодно. Независимо от того, насколько унылая архитектура — в очках она будет прекрасной. Такие возможности рендеринга с перенесением стилей открывает потрясающая программа Deep Photo Style Transfer, которая опубликована в открытом доступе, также как и научная работа, лежащая в её основе (arXiv:1703.07511).
Читать дальше →

Аутизм и мозг

Время на прочтение9 мин
Охват и читатели74K
Шелдон Купер, Шерлок по версии BBC и Эбед из "Сообщества" заходят в бар. Бармен поднимает взгляд и говорит: «Это что, будет анекдот про чрезмерное использование образа аутиста в кино?».

image
Симптомы аутизма: нестандартное обращение с игрушками; неумение налаживать отношение с другими; смех или плач невпопад; гиперактивность или пассивность; слишком большая или маленькая чувствительность к звукам; странная привязанность к объектам; плохая речь или её отсутствие; сложности с изменением привычек; невнимание к опасности.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Самара, Самарская обл., Россия
Дата рождения
Зарегистрирован
Активность