В прошлой статье мы рассмотрели концептуально все слои и функции, из которых будет состоять будущая модель. Сегодня мы выведем формулы, которые будут отвечать за обучение этой модели. Слои будем разбирать в обратном порядке — начиная с функции потерь и заканчивая сверточным слоем. Если возникнут трудности с пониманием формул, рекомендую ознакомиться с подробным объяснением (на картинках) метода обратного распространения ошибки, и также вспомнить о правиле дифференцирования сложной функции.
Читать полностью »
Рубрика «математика на пальцах» - 2
Сверточная сеть на python. Часть 2. Вывод формул для обучения модели
2017-12-18 в 10:56, admin, рубрики: python, Алгоритмы, Блог компании Open Data Science, математика, математика на пальцах, машинное обучение, обработка изображений, сверточные нейронные сетиСверточная сеть на python. Часть 1. Определение основных параметров модели
2017-12-07 в 18:12, admin, рубрики: python, Алгоритмы, математика, математика на пальцах, машинное обучение, обработка изображений, Программирование, сверточные нейронные сети
Несмотря на то, что можно найти не одну статью, объясняющую принцип метода обратного распространения ошибки в сверточных сетях (раз, два, три, четыре, пять и даже дающих “интуитивное” понимание — шесть), мне, тем не менее, никак не удавалось полностью понять эту тему. Кажется, что авторы недостаточно внимания уделяют обычным примерам либо же опускают какие-то хорошо понятные им, но не очевидные другим особенности, и весь материал по этой причине становится неподъемным. Мне хотелось разложить все по полочкам для самого себя и в итоге конспекты вылились в статью. Я постарался исключить все недостатки существующих объяснений и надеюсь, что эта статья ни у кого не вызовет вопросов или недопониманий. И, может, следующий новичок, который, также как и я, захочет во всем разобраться, потратит уже меньше времени.
Читать полностью »
Корректирующие коды «на пальцах»
2017-05-09 в 21:15, admin, рубрики: алгебра, Алгоритмы, кодирование, корректирующие коды, линейные коды, математика, математика на пальцах, поля галуа, метки: корректирующие коды, линейные кодыКорректирующие коды — это коды, которые могут обнаружить и (если повезёт) исправить ошибки, возникшие при передаче данных. Даже если вы ничего не слышали о них, то наверняка встречали аббревиатуру CRC в списке файлов в ZIP-архиве или даже надпись ECC на планке памяти. А кто-то, может быть, задумывался, как так получается, что если поцарапать DVD-диск, то данные всё равно считываются без ошибок (конечно, если царапина не в сантиметр толщиной и не разрезала диск пополам).
Как нетрудно догадаться, ко всему этому причастны корректирующие коды. Собственно, ECC так и расшифровывается — «error-correcting code», то есть «код, исправляющий ошибки». А CRC — это один из алгоритмов, обнаруживающих ошибки в данных. Исправить он их не может, но часто это и не требуется.
Давайте же разберёмся, что это такое.
Для понимания статьи не нужны никакие специальные знания. Достаточно лишь понимать, что такое вектор и матрица, как они перемножаются и как с их помощью записать систему линейных уравнений.
Внимание! Много текста и мало картинок. Я постарался всё объяснить, но без карандаша и бумаги текст может показаться немного запутанным.
Одним из красивейших математических результатов можно смело считать теорему Эйлера, которая впервые появилась в журнале Петербургской Академии наук в работах Леонарда Эйлера «Элементы учения о телах» и «Доказательство некоторых замечательных свойств, которым подчинены тела, ограниченные плоскими гранями».
Читать полностью »
Измерение сопротивления и индуктивности двигателя постоянного тока
2016-11-06 в 14:39, admin, рубрики: c++, kill all humans, математика, математика на пальцах, Программирование, Разработка робототехники, робототехникаПостановка задачи
Есть двигатель постоянного тока. Задача — разработать, собрать и протестировать устройство, позволяющиее реализовать контур тока применительно к этому двигателю. Желаемое время переходного процесса на застопоренном двигателе (без противо-ЭДС) — не более 10мс. Интерфес связи с внешним управляющим контроллером — SPI.
Двигатель постоянного тока, коллекторный, максимальное напряжение 24В, рабочий ток до 5А.
Что значит — контур тока? Самые распространённые драйверы для управления двигателями это всякие вариации полумостов, которые усиливают напряжение. А мне хочется, чтобы драйвер брал на вход не напряжение, а силу тока. Сила, развиваемая электроприводом, прямо пропорциональна силе протекающего тока. А значит, и прямо пропорциональна ускорению на валу двигателя. Такой контур тока позволит избежать извращений, на которые нужно идти без него, как я это делал тут.
Я разбил этот текст на две статьи (вторая будет опубликована через несколько дней):
- 1. Измерение сопротивления и индуктивности двигателя
- 2. Разработка управляющего контура (скоро будет, оставайтесь на связи)
Вот так выглядит макет управляющего железа:
Математика на пальцах: давайте посчитаем хотя бы один ряд Фурье в уме
2016-08-25 в 15:33, admin, рубрики: Занимательные задачки, матан для пятого класса, математика, математика на пальцах, Разработка робототехники, ряд фурье, метки: матан для пятого класса, Ряд ФурьеНужно ли вам читать этот текст?
Давайте проверим. Прочтите следующее:
Тригонометрическим рядом Фурье функции  называют функциональный ряд вида
где
Страшно, но всё же хочется понять, что это значит?
Значит, вам под кат. Постараюсь формул не использовать.
Читать полностью »
Как работает метод главных компонент (PCA) на простом примере
2016-06-27 в 13:06, admin, рубрики: data mining, PCA, python, sklearn, Алгоритмы, главные компоненты, математика на пальцах, машинное обучение, эконометрика, метки: pca
В этой статье я бы хотел рассказать о том, как именно работает метод анализа главных компонент (PCA – principal component analysis) с точки зрения интуиции, стоящей за ее математическим аппаратом. Максимально просто, но подробно.
Читать полностью »
Разжёвываем линейно-квадратичный регулятор для управления перевёрнутым маятником
2016-05-20 в 12:59, admin, рубрики: lqr, Алгоритмы, ардуино головного мозга, Занимательные задачки, линейно-квадратичный регулятор, математика, математика на пальцах, наименьшие квадраты, программирование микроконтроллеров, Разработка робототехникиПреамбула
Продолжаю подробное описание использования линейно-квадратичного регулятора на примере управления перевёрнутым маятником. К слову сказать, термин «ЛКР» очень неточно отражает суть происходящего, как мне уже подсказали в комментариях, в русской школе теории управления этот подход называется «аналитическим конструированием регуляторов», что существенно точнее.
Как обычно, я стараюсь разжевать математику по-максимуму, чтобы материал был доступен заинтересованному школьнику. Я глубоко убеждён, что использование математики по-хорошему должно бы быть платным: любая формула должна быть использована только тогда, когда она призвана облегчить понимание, а не для того, чтобы выпендриваться.
Итак, это уже четвёртая статья, для лучшего понимания происходящего неплохо бы прочитать предыдущие три:
- 1. Методы наименьших квадратов
- 2. Линейно-квадратичный регулятор, вводная
- 3. Управление двигателем постоянного тока при помощи линейно-квадратичного регулятора
Вот фотография системы (кликабельно):
Математика на пальцах: ардуино головного мозга или линейно-квадратичный регулятор для управлением электродвигателем
2016-04-02 в 20:40, admin, рубрики: c++, lqr, Алгоритмы, ардуино головного мозга, линейно-квадратичный регулятор, математика, математика на пальцах, метод наименьших квадратов, программирование микроконтроллеров, Разработка робототехникиПостановка задачи: как со школьными знаниями дойти до выводов университетского уровня
Эта статья предполагает, что вы прочли мои статьи (ну или и без того знаете) про методы наименьших квадратов и про линейно-квадратичный регулятор.
Как я уже говорил в предыдущих статьях, мои знакомые студенты хотят построить обратный маятник, но умаялись подбирать коэффициенты ПИД-регулятора, поэтому я неспешно смотрю, что такое линейно-квадратичный регулятор, ну а заодно и вам пересказываю то, что прочитал. Задача для этой статьи — показать, как воплотить в железе одномерный пример из статьи про линейно-квадратичный регулятор. Грубо говоря, я хочу написать написать управление для сервомотора: у меня есть текущее положение оси привода и текущая скорость её вращения, я хочу её остановить в заданном положении. Я попытался было прочитать схожую статью на эту тему, но, признаться, ничего в ней не понял, поэтому сел разбираться самостоятельно, предпочтительно на пальцах и без страшных слов типа дифференциальных уравнений Лагранжа-Эйлера.
Продолжая рабочий эксгибиционизм, знакомлю вас с Bubble Bobble, который живёт у нас с коллегой в кабинете. Он рецензирует статьи для конференции SIGGRAPH.
Математика на пальцах: мендосинский двигатель и теорема Ирншоу
2016-03-26 в 21:04, admin, рубрики: задача дирихле, Занимательные задачки, магнитный подвес, математика, математика на пальцах, теорема ирншоу, уравнение лапласа, уравнения максвеллаПостановка задачи
На днях я увидел на просторах интернета крайне любопытную вещь: мендосинский двигатель. Ротор на подшипниках крайне низкого трения: оригинальный имел стеклянный цилиндр, подвешенный на двух иголках, современные имеют магнитный подвес оси. Двигатель бесколлекторный, на роторе подвешены солнечные батареи, которые выдают напряжение на катушки, намотанные на роторе. Ротор проворачивается в фиксированном магнитном поле статора, солнечная батарея уходит от направленного света, на её место приходит другая. Крайне элегантное решение, которое вполне под силу сделать дома каждому.
Вот на этом видео крайне подробно описан (на русском языке) принцип работы:
Но ещё больше самого двигателя мне показалась любопытной следующая вещь. В описании этого видео Дмитрий Коржевский написал следующую вещь: «Боковую опору заменить магнитом НЕВОЗМОЖНО!!! Не задавайте больше этот вопрос!»