Pull to refresh
0
0

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

Send message

Математические модели хаоса

Reading time11 min
Views30K

Введение


На Habr уже обсуждалась теория хаоса в статьях [1,2,3]. В этих статьях рассмотрены следующие аспекты теории хаоса: обобщённая схема генератора Чуа; моделирование динамики системы Лоренца; программируемые логическими интегральными схемами аттракторы Лоренца, Ресслера, Рикитаке и Нозе-Гувера.

Однако, техники теории хаоса используются и для моделирования биологических систем, которые, бесспорно, являются одними из наиболее хаотических систем из всех, что можно себе представить. Системы динамических равенств использовались для моделирования всего — от роста популяций и эпидемий, до аритмических сердцебиений [4].

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

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

Статья написана с целью обучения, но позволит, даже не имеющему опыта программирования читателю, используя приведенные программы, самостоятельно решить большинство новых учебных задач по теме моделирования явлений хаоса.
Читать дальше →
Total votes 33: ↑29 and ↓4+25
Comments10

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

Reading time6 min
Views11K
image

Введение


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

Для начала, по устоявшимся традициям, я приведу ссылки на предыдущие статьи:

Часть 1: пишем языковую ВМ
Часть 2: промежуточное представление программ

Для формирования в вашей голове полного понимания того, что в этих статьях мы пишем, вам стоит заранее ознакомиться с предыдущими частями.

Также мне стоит разместить сразу ссылку на статью о проекте, который был написан мной ранее и на основе которого идет весь этот разбор полётов: Клац сюды. С ним пожалуй стоит ознакомиться первым делом.

И немного о проекте:

Небольшой сайт проекта
GitHub репозиторий

Ну и также скажу сразу, что все написано на Object Pascal, а именно — на FPC.

Итак, начнем.
Читать дальше →
Total votes 30: ↑23 and ↓7+16
Comments22

Обучение с подкреплением на языке Python

Reading time12 min
Views41K
Привет, коллеги!



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

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

Приятного чтения!
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments2

Преобразование Фурье. The Fast and the Furious

Reading time6 min
Views24K
Зачастую при разработке алгоритмов мы упираемся в предел вычислительной сложности, который, казалось бы, преодолеть невозможно. Преобразование Фурье имеет сложность $O(n^2)$, а быстрый вариант, предложенный около 1805 года Гаусом1 (и переизобретенный в 1965 году Джеймсом Кули и Джоном Тьюки) $O(nlog(n))$. В данной статье хочу вам показать, что можно получить результаты преобразования за линейное время $O(n)$ или даже достичь константной сложности $O(1)$ при определенных условиях, которые встречаются в реальных задачах.

Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments16

Mixture Density Networks

Reading time12 min
Views13K

Всем привет!

Давайте поговорим о, как вы уже наверное смогли догадаться, нейронных сетях и машинном обучении. Из названия понятно, что будет рассказано о Mixture Density Networks, далее просто MDN, переводить название не хочу и оставлю как есть. Да, да, да… будет немного скучной математики и теории вероятности, но без неё, к сожалению, или к счастью, тут уж сами решайте, трудно представить мир машинного обучения. Но спешу вас успокоить, ее будет относительно мало и она будет не сильно сложная. Да и вообще ее можно будет пропустить, а просто посмотреть на небольшое количество кода на Python и PyTorch, все верно, сеть мы будем писать с помощью PyTorch, а так же на различные графики с результатами. Но самое главное то, что будет возможность немного разобраться и понять что же такое MD сети.

Что ж начнем!
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments9

Обзор основных методов математической оптимизации для задач с ограничениями

Reading time7 min
Views54K
Я долго готовился и собирал материал, надеюсь в этот раз получилось лучше. Эту статью посвящаю основным методам решения задач математической оптимизации с ограничениями, так что если вы слышали, что симплекс-метод — это какой-то очень важный метод, но до сих пор не знаете, что он делает, то возможно эта статья вам поможет.

P. S. Статья содержит математические формулы, добавленные макросами хабраредактора. Говорят, что они иногда не отображаются. Также есть много анимаций в формате gif.
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments20

Основы электробезопасности при проектировании электронных устройств

Reading time12 min
Views68K
Привет, Хабр!

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


Тема это большая и сложная, но я постараюсь выделить основные моменты — не в последнюю очередь на основании ошибок, которые я видел во всевозможных реальных устройствах и проектах, в том числе публиковавшихся на Хабре. Я не буду долго и нудно перечислять ГОСТы, но перечислю совсем базовые вещи, которые необходимо понимать и соблюдать, чтобы не убить хотя бы себя (если вы планируете не убивать также и окружающих, то после завершения этой статьи не поленитесь пролистать и релевантные ГОСТы).

Итак, вы собрались делать устройство, которое как минимум одним своим концом включается в розетку.
Читать дальше →
Total votes 172: ↑167 and ↓5+162
Comments281

Дорожная карта математических дисциплин для машинного обучения, часть 1

Reading time6 min
Views95K

Вместо предисловия


Допустим, сидя вечерком в теплом кресле вам вдруг пришла в голову шальная мысль: «Хм, а почему бы мне вместо случайного подбора гиперпараметров модели не узнать, а почему оно всё работает?»
Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments42

Реализация алгоритма Левенберга-Марквардта для оптимизации нейронных сетей на TensorFlow

Reading time23 min
Views29K

Это tutorial по библиотеке TensorFlow. Рассмотрим её немного глубже, чем в статьях про распознавание рукописных цифр. Это tutorial по методам оптимизации. Совсем без математики здесь не обойтись. Ничего страшного, если вы её совершенно забыли. Вспомним. Не будет никаких формальных доказательств и сложных выводов, только необходимый минимум для интуитивного понимания. Для начала небольшая предыстория о том, чем этот алгоритм может быть полезен при оптимизации нейронной сети.




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


Kushnir, D., Velker, N., Bondarenko, A., Dyatlov, G., & Dashevsky, Y. (2018, October 29). Real-Time Simulation of Deep Azimuthal Resistivity Tool in 2D Fault Model Using Neural Networks (Russian). Society of Petroleum Engineers. doi:10.2118/192573-RU


Одним вечером я показал, как keras реализовать простую нейронную сеть, и друг на работе запустил обучение на насчитанных данных. Через пару дней обсудили результат. С моей точки зрения он выглядел перспективно, но друг сказал, что нужны вычисления с точностью прибора. И если средняя квадратичная ошибка (mean squared error) получилась в районе 1, то нужна была 1е-3. На 3 порядка меньше. В тысячу раз.

Читать дальше →
Total votes 73: ↑70 and ↓3+67
Comments15

Xcode и продвинутая отладка в LLDB: Часть 2

Reading time3 min
Views4.2K
Добрый день, сегодня вашему вниманию предлагаю вторую часть статьи про отладку приложения в LLDB.

В первой части мы разобрались, как использовать брейкпоинты (breakpoints) в Xcode для изменения существующих свойств переменных и добавления строчки кода через команды-инструкции.

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

Если вы не изучили первую часть статьи, лучше начните с неё. Давайте я напомню вам важное правило этого туториала: До конца этой статьи вы не останавливаете компилятор и не перезапускаете приложение после самого первого запуска. Вы исправляете ошибки во время исполнения программы.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments0

Моделирование водной поверхности с применением БПФ и DSP-процессора NeuroMatrix

Reading time4 min
Views5.6K
Уже давно известное быстрое преобразование Фурье используется не только для решения задач цифровой обработки сигналов, распознавания объектов на изображении, но и в компьютерной графике. Джерри Тессендорфом была описана математическая модель, позволяющая синтезировать океанские волны и анимировать их в реальном времени. В основе этой модели лежит двумерное БПФ.

Когда мне была поставлена задача разработать приложение для DSP-процессора, визуализирующее работу БПФ, я понял, что моделирование волн отлично подойдет для этой цели.

Total votes 23: ↑21 and ↓2+19
Comments2

Архитектуры нейросетей

Reading time12 min
Views63K
Перевод Neural Network Architectures

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


Сравнение популярных архитектур по Top-1 one-crop-точности и количеству операций, необходимых для одного прямого прохода. Подробнее здесь.
Читать дальше →
Total votes 30: ↑28 and ↓2+26
Comments7

Правдоподобия, P-значения и кризис воспроизводимости

Reading time26 min
Views20K
Или: Как переход от публикации P-значений к публикации функций правдоподобия поможет справиться с кризисом воспроизводимости: личное мнение Элиезера Юдковского.

Если Монро нарисовал комиксы про 75% существующих интересных проблем, а четверть моих статей интересные, то какова вероятность, что рано или поздно мне придётся искать КДПВ где-то ещё?

Комментарий переводчика: Юдковский, автор HPMOR, создатель Lesswrong и прочая и прочая, изложил свою позицию по поводу пользы байесовской статистики в естественных науках в форме диалога. Прямо классический такой диалог из античности или эпохи возрождения, с персонажами, излагающими идеи, обменом колкостями вперемешку с запутанными аргументами и неизбежно тупящим Симплицио. Диалог довольно длинный, минут на двадцать чтения, но по-моему, он того стоит.

Дисклеймеры
  • Этот диалог был написан сторонником байесовского подхода. Реплики Учёного в нижеприведённом диалоге могут и не пройти идеологический тест Тьюринга на фреквентизм. Возможно, что они не отдают должное аргументам и контраргументам сторонников частотного подхода к вероятности.
  • Автор не рассчитывает, что описанные ниже предложения будут приняты широким научным сообществом в ближайшие десять лет. Тем не менее, это стоило написать.

Если вы ещё не знакомы с правилом Байеса, на сайте Arbital есть подробное введение.

Модератор: Добрый вечер. Сегодня в нашей студии: Учёный, практикующий специалист в области… химической психологии или чего-то типа того; его оппонент Байесовец, который намерен доказать, что кризис воспроизводимости в науке можно как-то преодолеть с помощью замены P-значений на что-то из Байесовской статистики…
Студент: Извините, как это пишется?
Модератор:… и, наконец, ничего не понимающий Студент справа от меня.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments41

Методы наименьших квадратов без слёз и боли

Reading time10 min
Views50K


Итак, очередная статья из цикла «математика на пальцах». Сегодня мы продолжим разговор о методах наименьших квадратов, но на сей раз с точки зрения программиста. Это очередная статья в серии, но она стоит особняком, так как вообще не требует никаких знаний математики. Статья задумывалась как введение в теорию, поэтому из базовых навыков она требует умения включить компьютер и написать пять строк кода. Разумеется, на этой статье я не остановлюсь, и в ближайшее же время опубликую продолжение. Если сумею найти достаточно времени, то напишу книгу из этого материала. Целевая публика — программисты, так что хабр подходящее место для обкатки. Я в целом не люблю писать формулы, и я очень люблю учиться на примерах, мне кажется, что это очень важно — не просто смотреть на закорючки на школьной доске, но всё пробовать на зуб.

Итак, начнём. Давайте представим, что у меня есть триангулированная поверхность со сканом моего лица (на картинке слева). Что мне нужно сделать, чтобы усилить характерные черты, превратив эту поверхность в гротескную маску?



В данном конкретном случае я решаю эллиптическое дифференциальное уравнение, носящее имя Симеона Деми Пуассона. Товарищи программисты, давайте сыграем в игру: прикиньте, сколько строк в C++ коде, его решающем? Сторонние библиотеки вызывать нельзя, у нас в распоряжении только голый компилятор. Ответ под катом.
Читать дальше →
Total votes 54: ↑54 and ↓0+54
Comments58

Открытый вебинар «Генеративные состязательные сети»

Reading time1 min
Views2.2K
Бобродня!

Представляем вам открытый урок по нашему курсу «Machine Learning». На занятии преподаватель и создатель курса Артур Кадурин знакомит с историей развития искусственного интеллекта и нейронных сетей в частности в первой части. А во второй более подробно разбирает устройство Генеративных Состязательных Сетей — процесс разработки и обучения сети в реальном времени.



Если у вас есть какие-то вопросы и комментарии по вебинару, то вы их можете задать тут или напрямую Артуру, зайдя к нему на день открытых дверей.
Total votes 11: ↑8 and ↓3+5
Comments0

Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 28 — 29

Reading time3 min
Views7K

предыдущие главы


Кривые обучения


28 Диагностирование смещения и разброса: Кривые обучения


Мы рассматривали несколько подходов к разделению ошибок на избегаемое смещение и на разброс. Мы делали это оценивая оптимальную долю ошибок вычисляя ошибки на тренировочной выборке алгоритма и на валидационной выборке. Давайте обсудим более информативный подход: графики кривой обучения.
Графики кривых обучения представляют из себя зависимости доли ошибки от количества примеров тренировочной выборки.


image

Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments0

Микроинтеракции в iOS. Лекция Яндекса

Reading time14 min
Views5K
Несколько недель назад в офисе Яндекса прошло специальное мероприятие сообщества CocoaHeads — более масштабное, чем традиционные митапы. Разработчик Антон Сергеев выступил на этой встрече и рассказал о модели микроинтеракций, которой обычно пользуются UX-дизайнеры, а также о том, как применить заложенные в ней идеи на практике. Больше всего внимания Антон уделил анимации.


— Для меня очень важно, что именно мне выпала честь встречать гостей. Я вижу здесь тех, с кем я знаком очень давно, тех, с кем знаком совсем недавно, и тех, с кем еще не знаком. Добро пожаловать на CocoaHeads.
Total votes 19: ↑19 and ↓0+19
Comments1

iOS runtime mobile exploration with Objection, или Хакаем собственное приложение

Reading time4 min
Views6.6K


Автор: Андрей Батутин, Senior iOS Developer, DataArt.

Не раз и не два, придя на работу (или просто встав с кровати), я обнаруживал в почте гневное письмо, суть которого сводилось к тому, что в аппсторовской сборке приложения ничего не работает, и все надо срочно чинить.

Иногда причиной были мои косяки. Иногда — моих коллег. А иногда — даже самого Apple Inc.

Но самые убийственные сценарии были связаны с багами, которые воспроизводились только на аппсторовских/релизных сборках. Ничто так не ставит в тупик и не заставляет выть перед макбуком, как невозможность подключить дебагер к собственному приложению и посмотреть, что же там происходит.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments12

Новая реализация любопытства у ИИ. Обучение с вознаграждением, которое зависит от сложности предсказать результат выдачи

Reading time8 min
Views11K

Прогресс в игре «Месть Монтесумы» многими рассматривался как синоним достижений в области исследования незнакомой среды

Мы разработали метод случайной дистилляции сети (Random Network Distillation, RND) на основе прогнозирования, который поощряет агентов обучения с подкреплением исследовать окружение благодаря любопытству. Этот метод впервые превысил средние результаты человека в компьютерной игре «Месть Монтесумы» (если не считать анонимную заявку в ICLR, где результат хуже нашего). RND демонстрирует ультрасовременную эффективность, периодически находит все 24 комнаты и проходит первый уровень без предварительной демонстрации и не имея доступ к базовому состоянию игры.
Total votes 26: ↑26 and ↓0+26
Comments19

Information

Rating
Does not participate
Registered
Activity