Pull to refresh
40
0
sysprg @sysprg

User

Send message

Нейросети без градиентов: спектральное моделирование и построение решений

Level of difficultyHard
Reading time19 min
Views6.1K

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

Читать далее

Как я делал генератор синуса на мосту Вина

Level of difficultyMedium
Reading time11 min
Views7.8K
Я люблю аналоговую электронику, мне нравится возиться с настройкой схем и изучением процессов, которые в них протекают. Давно хотел сделать источник качественного синусоидального сигнала для проверки качества усилительных каскадов. Выбор схемотехнических решений для создания спектрально чистого сигнала невелик. Годится генератор на колебательном контуре (LC) и генератор на цепи Вина (RC).


Создавать высокодобротную катушку индуктивности, пригодную для колебаний звуковой частоты, не очень хотелось. А вот схема на RC цепи Вина привлекала простотой изготовления, и хотелось разобраться, как именно она работает. Спойлер: и не сделал, и полноценно не разобрался, но! Мне кажется, что именно опыт, полученный в экспериментах, — самое ценное. И я постарался описать свои приключения не скучно.
Читать далее

Важнейшая модель теории вероятностей

Level of difficultyMedium
Reading time14 min
Views14K

Что объединяет частицу в воде, биржевой курс и кота Барсика, бродящего по району в поисках ларька с рыбой?


Всё это — примеры случайного блуждания. Эта простая модель из теории вероятностей помогает описывать самые разные явления: от диффузии молекул до принятия решений и работы алгоритмов. Она кажется интуитивной — но за ней скрывается множество нетривиальных и красивых свойств.

Мы начнём с истории открытия броуновского движения — от наблюдений Роберта Броуна до формулы Альберта Эйнштейна, которая связала наблюдаемое явление с атомной гипотезой. Покажем, как идея случайного движения превратилась из гипотезы в надёжный инструмент научного анализа.

Затем перейдём к математической модели случайных блужданий, разберём, как она устроена и где используется. Научимся с ней работать: найдём среднюю скорость удаления, обсудим задачу о разорении игрока и вернёмся к нашему коту Барсику.

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

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

Читать далее

JFET в роли регулируемого резистора

Level of difficultyMedium
Reading time8 min
Views6.4K

Привет, Хабр! Наверное, у многих словосочетание «регулируемый резистор» ассоциируется с обычным потенциометром.

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

Читать далее

Java Highload и сборка мусора

Level of difficultyMedium
Reading time12 min
Views3.7K

Разработка HL-решения со строгим SLA по RPS и latency затрагивает множество аспектов. В частности OLTP, мультиплексирование запросов, неблокирующий I/O и прочее. В данной статье хотел бы поговорить про сборку мусора. Мы не будем погружаться в цитирование спецификации. Напротив, взглянем на сборку глазами инженера, перед которым стоит задача оптимизировать процесс с минимальными издержками.

Читать далее

Борьба с мельницами — 1: интерполяционные сплайны

Reading time8 min
Views12K
В данной статье лирический герой бросает вызов оптимальной реализации классического полиномиального интерполятора Лагранжа (Фарроу), в процессе битвы случайно открывает и доказывает тривиальное никому не нужное математгическое заклинание, с помощью которого пытается потеснить противника, но по результатам всех раундов боя решением судей фиксируется ничья.

— Где вы видите великанов? — спросил Санчо Панса.
— Да вон они, с громадными руками, — отвечал его господин. — У некоторых из них длина рук достигает почти двух миль.
— Помилуйте, сеньор, — возразил Санчо, — то, что там виднеется, вовсе не великаны, а ветряные мельницы; то же, что вы принимаете за их руки, — это крылья: они кружатся от ветра и приводят в движение мельничные жернова.
— Сейчас видно неопытного искателя приключений, — заметил Дон Кихот, — это великаны. И если ты боишься, то отъезжай в сторону и помолись, а я тем временем вступлю с ними в жестокий и неравный бой…

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

Автоматически выделяем кусочно-линейные тренды временного ряда

Level of difficultyMedium
Reading time7 min
Views7.2K

Меня зовут Антон Сорока, я математик и аналитик данных.

Я хотел бы рассказать об алгоритме, который выделяет кусочно-линейный тренд из временного ряда и сам определяет точки изменения тренда. Другими словами, это алгоритм для автоматического кусочно-линейного приближения любой функции. Это может понадобиться, если вам важно анализировать линейные тренды ряда, но единственная линия явно недостаточно точно описывает ряд, и самостоятельно искать точки, где тренд менялся, неудобно. Реализация этого алгоритма есть в open-source библиотеке для анализа изменений временных рядов, написанной на Python.

Читать далее

Бикубическая интерполяция, теория и практическая реализация

Reading time7 min
Views46K
Возникла задача визуализировать результаты некоторых замеров на 2-мерной карте, были известны результаты в узловых точках на равномерной сетке, соответственно, задача свелась к интерполяции полученных данных. Основное требование было — качество полученной картинки и минимальное количество артефактов интерполяции, поэтому выбор пал на бикубическую интерполяцию. Статьи в Вики мне показались суховатыми (по крайней мере для человека, который математикой не занимался со школьной скамьи), но там же нашлась ссылка на потрясающую статью, детально описывающую алгоритм. Здесь мы рассмотрим практическое применение данного алгоритма и разберем статью.
Далее

Циркулярные кривые 2-го порядка

Reading time4 min
Views10K
Как известно, кривыми Безье нельзя построить дугу окружности или эллипса. В этой статье рассматриваются кривые, лишённые такого недостатка.


Дальше будут картинки и анимации

Что у меня за распределение

Level of difficultyMedium
Reading time14 min
Views2.1K

Привет! Меня зовут Василий, я ML инженер центра ML-экспертизы в обслуживании. В Т-Банке мы прогнозируем нагрузку на колл-центр: сколько придет обращений, какой длительности и некоторые другие характеристики. 

Нужно уметь переводить эту нагрузку в количество людей на линии. Для этого мы реализовали симулятор колл-центра. Для работы симулятора нужно понимать, как распределены те или иные случайные величины, и иметь численные характеристики соответствия наблюдаемых значений теоретическим распределениям. Это называется задачей (критериями) согласия: к какому теоретическому распределению вероятностей принадлежит данная выборка.

«Используй Колмогорова — Смирнова, да и все тут», — скажут мне. В принципе, да, но нет. Мы пойдем чуть дальше и попытаемся разобраться, как все устроено и какие есть ограничения. Расскажу, почему нельзя просто так применять критерии согласия, к каким это приводит ошибкам и как с этим быть.

Читать далее

Решето дельт — простой способ раскладывать числа на множители, о котором вам не рассказывали

Level of difficultyMedium
Reading time10 min
Views6.9K

Что вы скажете, если я расскажу вам, что знаю метод разложения чисел на множители, который не так сложен, как алгоритмы QS и GNFS, основывается не на магии, а на логике и простых арифметических принципах, легко реализуется, его легко распараллелить для ускорения вычислений, он не требует много памяти и при этом зачастую в разы эффективнее метода Ферма́? Заинтересовало?

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

Примеры, объяснения, таблицы — всё на месте. Даже если вы забыли, что такое \bmod, вы всё равно поймёте, как это работает.

Читать далее

Генератор синусоиды из LC-контура и отрицательного сопротивления

Reading time14 min
Views4.6K

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

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

Поэтому мы обсудим альтернативу - с использованием "отрицательного сопротивления" - подключая к нему LC-контур прямо в том виде в каком он нарисован в учебнике, мы сразу получаем рабочий осциллятор и с широчайшим диапазоном по частоте!

Мы проверим эту идею на практике! Подключим LC-контур к двум типам схем с отрицательным сопротивлением - сперва к "лямбда-диоду" (на транзисторах), а потом к "транзитрону" (на электронной трехсеточной лампе - пентоде).

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

Читать далее

Самодельный балансировщик «Колибри»

Level of difficultyMedium
Reading time5 min
Views13K

Всем привет! Хочу поделиться результатами своего многолетнего исследования и разработки прибора для динамической балансировки в собственных опорах. Эта работа началась в 2015 году, когда передо мной встала задача балансировки промышленного вентилятора. На предприятии, где я работал, отсутствовали необходимые компетенции, поэтому пришлось осваивать новую для себя область — вибродиагностику.

Началось всё с того, что я задумался о возможности создания собственного прибора для балансировки. Как оказалось, это задача не из лёгких. Она потребовала глубокого погружения в такие области, как микроконтроллеры, цифровая обработка сигналов (ЦОС), программирование, разработка печатных плат, компоновка корпуса и многое другое.

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

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

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

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

Балансировка — процедура, в ходе которой проводится оценка распределения масс ротора и, при необходимости, их корректировка для минимизации дисбаланса и вибрации.

Читать далее

Дискретные тригонометрические функции, машинный эпсилон и автоматическое дифференцирование

Level of difficultyHard
Reading time7 min
Views5.6K

Попалась мне недавно статья Синус, косинус, квадратный корень FixedPoint. Автор размышляет как можно не затратно рассчитывать координаты и углы в микроконтроллере. Попробовал я подсказать автору пару аппроксимаций, но он оказался разговорчив только на тему "упадка автоматизации в РФ", а по делу как то не сложился диалог. Посмотрел, такие статьи не редкость. Например, очень хорошая статья Как посчитать синус быстрее всех на Xабре. В общем разгрузил себе голову на майских праздниках от главного хобби - геометрической алгебры.

В процессе изучения всего этого, возник у меня вопрос - а зачем вообще нужно аппроксимировать sin,cos, arctan и еще и в привязке к числу в двоичной системе, если есть декартовы координаты?

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

Автоматическим дифференцированием можно назвать любую конечную разность, например dy=(y(x+ε)-y(x-ε))/(2*ε). Разность взята центральная, так как она дает меньшую погрешность.

 ε это машинный ноль. За счет округления до младшего бита его главное свойство: ε^2=0.

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

Читать далее

Быстрый алгоритм fulltext-поиска без токенизации

Level of difficultyHard
Reading time10 min
Views4.1K

Меня зовут Дмитрий Ольшанский, я ведущий инженер Т-Банка. Расскажу о новом (насколько мне известно) алгоритме поиска текста по шаблону. Такая задача возникла в рамках проекта Sage — observability-платформы от Т-Банка, для которой мы строим новый бэкэнд для структурированных логов, SageDB. 

Читать далее

Триангуляция по косточкам

Level of difficultyMedium
Reading time5 min
Views9.5K

Всё началось невинно. Шёл 2009 год, и я просто хотел портировать Earcut на Flash - для своей мини-игры. Тогда это сработало, но с годами стало понятно: простые решения перестают работать, как только хочешь выжать из них максимум.

Триангулировать

Откуда берется золото? Подсказки, полученные из данных НАСА

Level of difficultyEasy
Reading time5 min
Views6K

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

«Это довольно фундаментальный вопрос с точки зрения происхождения сложной материи во Вселенной, — говорит Анирудх Патель, докторант Колумбийского университета в Нью-Йорке. — Это интересная головоломка, которая до сих пор [полностью] не решена».

Патель возглавил исследование, в котором на основе архивных данных 20-летней давности, полученных с телескопов НАСА и ЕКА, были найдены доказательства удивительного источника большого количества этих тяжелых элементов: вспышки от сильно намагниченных нейтронных звезд, называемых магнетарами. Исследование опубликовано в журнале The Astrophysical Journal Letters.

Читать далее

Псевдослучайный рандом в Python

Level of difficultyMedium
Reading time6 min
Views4.8K

В этой статье хочу рассказать про нерандомность модуля random в стандартной библиотеке Python. С точки зрения криптографии и математики числа, генерируемые этим модулем, случайные лишь на вид — они порождаются детерминированным алгоритмом, что делает их псевдослучайными. Рассмотрим, как устроен генератор на основе алгоритма Mersenne Twister (MT19937), почему его выходы «нерандомны» в формальном смысле и какие практические следствия это имеет.

написано для новичков и плохо посвященных в тему людей…

Читать далее

Реализация базового метода Стёрмера-Верле

Level of difficultyEasy
Reading time5 min
Views5.4K

Используем силу уравнений Ньютона и численных методов для моделирования динамики простых плоских мешей в реальном времени! В конце вы сможете моделировать падение ножниц ✂️ как на анимации

Читать далее

ACID, BASE, CAP: Фундамент архитектуры распределенных систем

Level of difficultyMedium
Reading time7 min
Views8.1K

Современная разработка ПО – это почти всегда про распределенные системы. Микросервисы, облака, глобальный охват – все это стало нормой. Но за красивыми диаграммами и модными словами скрывается фундаментальная сложность. Как заставить кучу разрозненных компонентов работать вместе надежно? Как гарантировать, что данные, размазанные по сети, останутся корректными и доступными? Эта головная боль знакома любому, кто проектировал системы сложнее калькулятора, будь то в требовательном финтехе, динамичном e-commerce или где-либо еще.

И вот тут на помощь (или, скорее, для обозначения поля боя) приходят три понятия: ACID, BASE и теорема CAP. Может показаться, что это сухая теория, но игнорировать их – все равно что выходить в море без компаса и карты. Эти концепции описывают фундаментальные компромиссы, с которыми приходится иметь дело каждому архитектору. Понимание их – не гарантия успеха, но его необходимое условие. Давайте погрузимся в их суть и посмотрим, как они влияют на реальные архитектурные решения.

Читать далее

Information

Rating
Does not participate
Date of birth
Registered
Activity