Search
Write a publication
Pull to refresh
13
0
Algorithm engineer @CrazyFizik

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

Send message

Мета-взгляд на проблемы (не)образованной молодежи

Reading time12 min
Views27K
Все мы учились в школе, а многие после школы в ВУЗе или университете, кто-то продолжил в аспирантуре. Очень многие продолжают учиться после этого: кто-то на курсах, а многие занимаются самообразованием. Многие сталкиваются с проблемами образования своих детей, а кто-то и внуков. И в принципе проблемы образования и специального обучения небезразличны всем, поскольку все хотят, чтобы врач, если пришлось к нему обратиться, был квалифицированным, а встречный водитель на дороге знал бы правила дорожного движения.


(Г. и А. Огородниковы)

Ну а некоторые причастны к образованию с другой стороны: кто-то преподает в школе, кто-то преподает в ВУЗе, кто-то просто учит своего ребенка читать и считать, кто-то делится своим опытом с молодым недавно пришедшим сотрудником и т.д. У меня очень скромный опыт преподавания, но он был удачным. Сейчас не преподаю и могу не знать современных тенденций. Но проблемами обучения интересуюсь еще и с точки зрения ИИ, разделяя мнение, что в обучении интеллекта искусственного во многом приходится копировать методы обучения интеллекта естественного, подобно тому, как копируют в ИИ свойства естественных нейронов. В соц.группу молодежи уже не вхожу. Однако, несмотря на это, волна Хабра-публикаций на тему «необразованной молодежи» меня, как и многих, заинтересовала настолько, что принял участие в обсуждениях. И наговорил столько, что решил сделать своеобразный дайджест из собственных автоповторов, добавив дополнительные пояснения и учитывая услышанные в обсуждениях возражения. Ниже предлагается этот взгляд стороннего наблюдателя. Думаю, что критики прозвучало уже предостаточно, поэтому сфокусируюсь на конструктивных идеях.
Читать дальше →

Реалистичное гравитационное линзование на Unity

Reading time4 min
Views28K
image
Эффект гравитационной линзы вызванный скоплением галактик RCS2 032727-132623

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

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

Обработка больших объемов данных в памяти на C#

Reading time7 min
Views90K
Хочу поделиться недавно приобретенным в C# опытом по загрузке и обработке в памяти больших объемов данных. Все нижеуказанное касается Visual Studio 2008 и .Net Framework 3.5.1, на случай каких-либо отличий в других версиях языка или библиотек.

Итак, у нас возникли следующие задачи:
1. Расположить в памяти до 100 миллионов записей, состоящих из строки, длиной 16 символов (уникальный ключ) и двух целочисленных значений, длиной 4 байта каждый;
2. Быстро находить и редактировать запись по ключу.

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

Создаём собственный физический 2D-движок: части 2-4

Reading time32 min
Views40K
image


Оглавление


Часть 2: ядро движка

  • Интегрирование
  • Метки времени
  • Модульная архитектура
    • Тела
    • Формы
    • Силы
    • Материалы
  • Широкая фаза
    • Отсечение дубликатов контактных пар
    • Система слоёв
  • Проверка пересечения полупространств

Часть 3: трение, сцена и таблица переходов

  • Трение
  • Сцена
  • Таблица переходов коллизий

Часть 4: ориентированные твёрдые тела

  • Математика вращения
  • Ориентированные формы
  • Распознавание коллизий
  • Разрешение коллизий

Геометрия данных 6. Граф-звезда

Reading time7 min
Views8.2K
Это заключительная статья серии о ди- и би-координатах. Рассмотрим граф простейшей структуры и используем его для небольшого исследования. В качестве данных используем множество целых чисел — это удобное поле для демонстрации идей.



Граф минимальной связности


Допустим, у нас есть набор элементов, которые выглядят независимыми друг от друга, и могут служить в качестве вершин (реперов) базиса некого пространства. Для того, чтобы на данном базисе можно было определить метрику, элементы должны быть как-то связаны между собой. Как должна выглядеть такая связь, чтобы все элементы оставались равноценными?
Читать дальше →

Геометрия данных 5. Преобразование базиса

Reading time9 min
Views13K
Под преобразованием базиса системы координат понимается замена одного набора базовых вершин (реперов) на другой. По сравнению с обычной системой координат на векторах изменение системы координат на точечном базисе имеет особенности, связанные с тем, что базисы могут принадлежать разным пространствам.



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

Геометрия данных 4. Пространство графа

Reading time12 min
Views12K
Особенность координатных систем на точечном базисе (ди- и би-координат) состоит в том, что их можно использовать как в обычном геометрическом пространстве, так и в пространстве графа.



Что такое пространство графа


Мерность пространства и мерность базиса


Мерность пространства графа определяется количеством его связанных вершин (будем считать, что все вершины графа связаны — однокомпонентный граф). Базис пространства задается как подмножество вершин графа с известными дистанциями между ними (метрикой). Подмножество может включать в себя как все вершины графа, так и только часть (подграф). В последнем случае мерность базиса меньше, чем мерность общего пространства графа.
Читать дальше →

Геометрия данных 3. Скалярное произведение пар

Reading time6 min
Views10K
Инвариант дистанции (квадрат расстояния) между элементами можно обобщить, если умножать разность элементов не на саму себя, а на другую разность элементов. Полученное значение будет отражать скалярное произведение упорядоченных пар.



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

Геометрия данных 2. Определение ди- и би-координат

Reading time10 min
Views6.6K
В первой статье определен метрический базис на элементах, — набор вершин симплекса или графа с известными значениями скалярных произведений (грамиан) или связей (лапласиан) между ними. Здесь рассмотрим, как на таком базисе определить координаты элементов.



Дистанционные координаты


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

Геометрия данных 1. Симплексы и графы

Reading time11 min
Views21K
Звездное небо напоминает, — точки являются фундаментальной абстракцией, основой окружающего пространства.



Введение


Это первая статья серии, посвященной описанию свойств базисов пространств на основе элементов (а не векторов). Базис определяет систему координат — описание элементов пространства в виде набора чисел, характеризующих положение элемента относительно базиса.
Читать дальше →

Бестиарий С++. Справочник по загадочным персонажам

Reading time9 min
Views33K


В C++ в изобилии встречаются подводные камни, ловушки, оговорки и западни. В подземельях С++ скрываются многочисленные подозрительные персонажи. Хэллоуин — правильное время для встречи с некоторыми представителями этой многочисленной своры чудовищ.

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

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

Reading time4 min
Views24K
Рециркуляционные нейронные сети представляют собой многослойные нейронные сети с обратным распространение информации. При этом обратное распространение информации происходит по двунаправленным связям, которые имеют в различных направлениях разные весовые коэффициенты. При обратном распространении сигналов, в таких сетях осуществляется преобразование их с целью восстановления входного образа. В случае прямого распространения сигналов происходит сжатие входных данных. Обучение рециркуляционных сетей производится без учителя.
Читать дальше →

Алгоритм обучения многослойной нейронной сети методом обратного распространения ошибки (Backpropagation)

Reading time19 min
Views299K
Тема нейронных сетей была уже ни раз освещена на хабре, однако сегодня я бы хотел познакомить читателей с алгоритмом обучения многослойной нейронной сети методом обратного распространения ошибки и привести реализацию данного метода.
Читать дальше →

Эволюционные вычисления: учим табуретку ходить

Reading time15 min
Views40K
image


Этот туториал посвящён эволюционным вычислениям, тому, как они работают и как реализовать их в своих проектах и играх. После прочтения статьи вы сможете овладеть мощью эволюции для поиска решений задач, решить которые вы не способны. В качестве примера в этом туториале будет показано, как эволюционные вычисления можно использовать для обучения простого существа ходьбе. Если вы хотите ощутить мощь эволюционных вычислений в браузере, оцените Genetic Algorithm Walkers.

Истинная реализация нейросети с нуля на языке программирования C#

Reading time10 min
Views163K

image


Здравствуй, Хабр! Данная статья предназначена для тех, кто приблизительно шарит в математических принципах работы нейронных сетей и в их сути вообще, поэтому советую ознакомиться с этим перед прочтением. Хоть как-то понять, что происходит можно сначала здесь, потом тут.


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

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

Нейросети для чайников. Часть 2 — Перцептрон

Reading time5 min
Views260K
image

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

Язык программирования, на этот раз — C#.
Заинтересовавшихся прошу под кат.
Читать дальше →

Нейросети для чайников. Начало

Reading time5 min
Views809K


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

В данной статье (цикле статей?) я попытаюсь осветить тему нейросетей с точки зрения человека непосвященного, простым языком, на простых примерах, раскладывая все по полочкам, а не «массив нейронов образует перцептрон, работающий по известной, зарекомендовавшей себя схеме».

Заинтересовавшихся прошу под кат.
Читать дальше →

Как Минковский во Flappy Bird играл

Reading time8 min
Views128K


Многие пробовали играть во Flappy Bird. Редко кому удается пролететь за 50 труб, очень немногие долетают до сотни-двух. Некоторые пробовали создать бота, в том числе на хабре. Удивительно, но даже у самого успешного бота, которого можно найти на просторах интернета, результаты не очень-то впечатляют – что-то около 160 очков. Возникает вопрос, а можно ли вообще играть во Flappy Bird бесконечно долго? Или всегда с некоторой, пусть и небольшой, вероятностью может встретиться последовательность препятствий, которую даже опытный игрок/идеальный бот не сможет преодолеть?

И тут на помощь приходит математика. Давайте найдем выигрышную стратегию для Flappy Bird.
Читать дальше →

Как работает Drag в физике Unity

Reading time4 min
Views32K
Осознавая что мои статьи похожи на восторг человека, впервые увидевшего какую-то (многим уже давно знакомую) вещь, все же решил написать очередную. Причина — заинтересовавший меня параметр drag у компонента Rigidbody. Объяснений и, тем более, формул — как он работает — руководства не дают. Поэтому разбираться придется самому.

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

Топ 15 бесплатных Unity ассетов для начинающего 2D разработчика

Reading time4 min
Views114K

Введение


Unity3D – безумно удобная среда, которая многое делает за нас. Именно поэтому она сейчас так востребована: разработка игр при правильном подходе становится не сложнее сборки конструктора.

Сама платформа Unity предоставляет широкий набор инструментов, но иногда не хватает и их. Тогда в дело вступает Asset Store с миллионами ассетов, моделей и примеров проектов.



Если у вас еще мало опыта в разработке приложений, имейте в виду: Asset Store – это огромный склад велосипедов, которые уже изобрели до вас. При этом там можно найти очень много бесплатного контента, или же контента по цене одной чашки кофе (сэкономьте на латте!).

Почему мы посвятили статью именно 2D играм? Посмотрите на рынок: 2D игры сейчас переживают ренессанс. Чтобы в этом убедиться, достаточно взглянуть на инди-сектор в Steam, Ketchapp и Zeptolab в мобильной разработке. 2D игры давно превратились из отжившего свое сектора в отдельную процветающую нишу рынка. Поэтому если вы решили делать 2D игру на Unity, сначала убедитесь, что у вас в арсенале есть все нужные инструменты, чтобы обеспечить должное качество продукта.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity