Pull to refresh
0
0
Никита Базалев @Nikita_Bazalev

User

Send message

Решение задачи линейной регрессии с помощью быстрого преобразования Хафа

Reading time7 min
Views17K

Введение


Друзья, рассмотрим нынче же задачу линейной регрессии в присутствии выбросового (некоррелированного с сигналом) шума. Эта задача часто возникает при обработке изображений (напр., при цветовой сегментации [1]), в том числе — акустических [2]. В случаях, когда координаты случайных величин можно грубо дискретизовать, а размерность задачи низка (2-3), кроме стандартных методов робастной регрессии можно воспользоваться быстрым преобразованием Хафа (БПХ) [3]. Попробуем сравнить этот последний метод по точности и устойчивости с «классическими».

Использование БПХ для линейной регрессии


Задача линейной регрессии на плоскости состоит в восстановлении линейной зависимости между двумя переменными, заданными в виде множества пар (x, y). Задавшись некоторым уровнем дискретизации координат, можно отобразить это множество на однобитном или целочисленном изображении (в первом случае мы отмечаем только факт наличия в исходных данных точки с примерно такими координатами, во втором — еще и их число). Фактически, речь идет о двумерной гистограмме исходных данных. Таким образом, неформально задача может быть сведена к поиску на изображении прямой, которая наилучшим образом описывает изображенное распределение точек.В обработке изображений в подобных случаях используется преобразование Хафа.

Преобразование Хафа является дискретным аналогом преобразования Радона и ставит в соответствие каждой прямой на изображении сумму яркостей пикселей вдоль нее (то есть одновременно вычисляет всевозможные суммы вдоль дискретных прямых). Можно ввести разумную дискретизацию прямых по сдвигам и наклонам так, чтобы параллельные дискретные прямые плотно упаковывали плоскость, а выходящие из одной точки на одном крае изображения прямые расходились по наклону на противоположном крае на целое число пикселей. Тогда таких дискретных прямых на квадрате n2 будет примерно 4 * n2. Для этой дискретизации существует алгоритм быстрого вычисления преобразования Хафа с ассимптотикой O(n2 * log n). Этот алгоритм является близким аналогом алгоритма быстрого преобразования Фурье, хорошо параллелизуется и не требует никаких операций, кроме сложения. В работе [3] можно прочитать об этом чуть больше, кроме того, там объясняется, почему преобразование Хафа от сглаженного гауссовским фильтром изображения вообще можно применять в задаче линейной регресии. Здесь же мы продемонстрируем устойчивость этого метода.
Читать дальше →
Total votes 43: ↑42 and ↓1+41
Comments5

Линейные модели: простая регрессия

Reading time7 min
Views75K
В прошлый раз мы подробно рассмотрели многообразие линейных моделей. Теперь перейдем от теории к практике и построим самую простую, но все же полезную модель, которую вы легко сможете адаптировать к своим задачам. Модель будет проиллюстрирована кодом на R и Python, причем сразу в трех ароматах: scikit-learn, statsmodels и Patsy.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments14

Как выбрать фреймворк для frontend-разработки

Reading time6 min
Views116K
Предлагаю вашему вниманию перевод статьи How To Pick a Frontend Web Framework c сайта top.fse.guru.

Привет, приятель!

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

Данная статья предназначена для того, что бы помочь тебе узнать и упорядочить список инструментов которые используются в сфере frontend-разработки. А так же, это неплохой список, из которого ты можешь выбрать то, что тебе придется по душе.
Читать дальше →
Total votes 44: ↑32 and ↓12+20
Comments62

Как мы использовали Git, CI и code review в учебном процессе

Reading time4 min
Views13K
В Академическом университете постоянно внедряются новые подходы к обучению. Программы, задания и сам процесс меняются таким образом, чтобы предоставить студенту наиболее полные и актуальные знания, а преподавателю – возможность попробовать более эффективные методы. Так и в прошлом семестре вместо того, чтобы принимать ДЗ по Java "на А4 и по ГОСТу", мы с bintree решили сделать все "как у больших дядей": использовать Git, CI и code review. В этой заметке я поделюсь с вами возникшими проблемами, их решениями, плюсами-минусами такого подхода, а также некоторыми соображениями на будущее.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments10

How-to: Как строится инфраструктура хостинг-провайдера

Reading time3 min
Views22K
image

Бизнес хостинг-провайдеров является крайне технологичным — для того, чтобы обеспечить бесперебойную работу даже не самых крупных и популярных сайтов необходимо создание мощной инфраструктуры. Сегодня мы расскажем об архитектуре внешних систем проекта 1cloud.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments14

Как разработчику «влиться» в тему DevOps

Reading time5 min
Views26K


Сегодня мы решили взглянуть на ситуацию с Java- и Python-разработчиком, который задумался о «погружении» в тему DevOps в тот момент, когда он начал все больше отдаляться от привычных инструментов в пользу работы с Oracle Weblogic и shell-скриптами. Он решил совместить свой опыт в области разработки с новым опытом в работе с процессами.

Мы посмотрели на основные советы экспертов в области DevOps на Quora и дополнили рассказ примерами из опыта команды 1cloud.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments17

Список ресурсов по машинному обучению. Часть 2

Reading time11 min
Views48K


Продолжим (1, 2) рассматривать тему машинного обучения. Вашему вниманию вторая часть (первая тут) адаптированной подборки полезных материалов.
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments0

Анонс онлайн-курсов Технопарка, Техносферы и Технотрека на Stepic

Reading time4 min
Views23K


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


Со временем количество курсов будет увеличено.

Зачем мы это делаем? Вполне очевидно: далеко не каждый желающий может стать слушателем наших проектов, ведь участие могут принять лишь учащиеся из трех московских вузов. А благодаря онлайн-обучению столь полезные для начинающих IT-специалистов знания смогут получить и многие другие талантливые студенты. В рамках онлайн-курсов учащиеся смогут смотреть интересный им контент и выполнить практические задания на проверку усвоенного материала. Кроме того, у них будет возможность общаться друг с другом, обсуждать задачи и задавать вопросы онлайн. По итогам успешного прохождения курса будет выдаваться сертификат. А теперь подробнее о доступных дисциплинах.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments15

Ресурсы для дизайнеров и front-end-разработчиков

Reading time5 min
Views64K
Ниже представлена подборка инструментов для дизайнеров и front-end-разработчиков. Мы настоятельно рекомендуем вам просмотреть их все. Надеемся, что вы найдете для себя что-то полезное.

Читать дальше →
Total votes 41: ↑30 and ↓11+19
Comments7

Оптоволоконные кабели связи. Как это делается

Reading time11 min
Views100K
В нескольких своих постах, опубликованных более года назад, я поднял такую интересную для многих и чем-то захватывающую тему, как магистральные оптоволоконные кабели связи, в частности, тему «подводной» оптики. Информация в данных публикациях была неполной, торопливой и разрозненной, так как статьи писались «на коленке» во время обеденного перерыва. Сейчас я бы хотел поделиться структурированным и, насколько это возможно, полным материалом по теме оптики, с максимумом вкусных подробностей и гик-порно, от которых на душе любого технаря станет тепло.

Внутри схемы, гифки, таблицы и много интересного текста.

Вы готовы?

image
Давай уже сюда свой пост
Total votes 65: ↑60 and ↓5+55
Comments15

Поддельная базовая станция за $1400 позволяет точно определить местонахождение телефона в 4G/LTE сети

Reading time3 min
Views50K


Исследователи разработали недорогой способ обнаружения точного местоположения смартфона, работающего в LTE/4G сотовой сети. Эта разработка дает понять, что мобильные сети новых поколений так же уязвимы к некоторым типам атак, как и сети, работающие по прежним, уже устаревшим, стандартам связи и спецификациям.

Новая атака использует уязвимость в LTE протоколе. Этот стандарт к концу года будет обеспечивать связь для 1,37 млрд абонентов. Для проведения атаки требуется собрать систему из элементов, общая стоимость которых составляет около $1400. В качестве ПО используется Open Source софт. Система, узел NodeB, позволяет определить местонахождение телефонов, совместимых с LTE-стандартом, с точностью до 10-20 метров. В некоторых случаях это оборудование позволяет узнать и GPS-координаты устройств, хотя атака такого типа может быть обнаружена пользователем смартфона. Разработан и еще один способ определения координат смартфонов, при этом атаку практически невозможно обнаружить. Этот метод позволяет определить местонахождение заданного устройства в пределах пары квадратных километров.
Читать дальше →
Total votes 44: ↑37 and ↓7+30
Comments20

Научиться программировать сложнее, чем кажется

Reading time12 min
Views119K

Просто «El clasico»

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

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

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

«Согласно данным Научного Совета, к 2030 году количество специалистов в сфере информационно-коммуникационных технологий вырастет на 39%, а в отчете О2 за 2013 год отмечалось, что для удовлетворения спроса на такого рода специалистов в период до 2017 года потребуется порядка 745 000 новых сотрудников.

Кроме того, по результатам исследований, проведенных в прошлом году City & Guilds, три четверти работодателей из сферы IT, компьютерных и информационных услуг отметили явную нехватку квалифицированных кадров, в то время как 47% опрошенных заявили о неспособности действующей системы образования подготовить хороших специалистов».
Читать дальше →
Total votes 76: ↑68 and ↓8+60
Comments196

Нейросеть на Python, часть 2: градиентный спуск

Reading time16 min
Views60K
Часть 1

Давай сразу код!


import numpy as np
X = np.array([ [0,0,1],[0,1,1],[1,0,1],[1,1,1] ])
y = np.array([[0,1,1,0]]).T
alpha,hidden_dim = (0.5,4)
synapse_0 = 2*np.random.random((3,hidden_dim)) - 1
synapse_1 = 2*np.random.random((hidden_dim,1)) - 1
for j in xrange(60000):
    layer_1 = 1/(1+np.exp(-(np.dot(X,synapse_0))))
    layer_2 = 1/(1+np.exp(-(np.dot(layer_1,synapse_1))))
    layer_2_delta = (layer_2 - y)*(layer_2*(1-layer_2))
    layer_1_delta = layer_2_delta.dot(synapse_1.T) * (layer_1 * (1-layer_1))
    synapse_1 -= (alpha * layer_1.T.dot(layer_2_delta))
    synapse_0 -= (alpha * X.T.dot(layer_1_delta))

Часть 1: Оптимизация


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

Суть происходящего в том, что обратное распространение не вносит в работу сети оптимизацию. Оно перемещает неверную информацию с конца сети на все веса внутри, чтобы другой алгоритм уже смог оптимизировать эти веса так, чтобы они соответствовали нашим данным. Но в принципе, у нас в изобилии присутствуют и другие методы нелинейной оптимизации, которые мы можем использовать с обратным распространением:
Читать дальше →
Total votes 33: ↑28 and ↓5+23
Comments5

По ту сторону игры: открытый курс по геймдизайну

Reading time1 min
Views28K
Уже сейчас на образовательной платформе «Универсариум» можно записаться на онлайн-курс «Гейм-дизайн: по ту сторону игры». Слушатели курса изучат основные этапы разработки дизайн-документа компьютерной игры, выяснят, какими навыками должен обладать геймдизайнер, и узнают, от чего зависит успех проекта.

Преподаватель курса – Алексей Калинин, исполнительный продюсер СООО «Гейм Стрим», минского центра разработки Wargaming, автор 30 настольных и 10 компьютерных игр.


Читать дальше →
Total votes 25: ↑22 and ↓3+19
Comments11

Google нанимает специалистов в проект беспилотного автомобиля

Reading time2 min
Views3.5K


В ближайшем будущем беспилотные автомобили могут занять существенную долю на рынке, а пока они проходят тестирование у некоторых крупных технологических гигантов. Если Tesla уже выпустила некоторый аналог подобного функционала для последнего поколения автомобилей, то Google пока только занимается разработкой своего автомобиля.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments1

Американский генетик обещает решить проблему старения через пять лет

Reading time3 min
Views22K

Джордж Чёрч

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

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

Этот метод впервые был продемонстрирован в 2012 году. Он настолько уникален и революционен, что наверняка его первооткрыватели в скором времени удостоятся Нобелевской премии. При этом по словам Чёрча, его больше волнует вопрос излечивания людей от различных болезней, к списку которых он причисляет и старение.

Чёрч и его коллеги из лаборатории в Медицинской школе Гарварда уверены, что через 5-6 лет им удастся повернуть назад процесс старения организма. «Мы рассчитываем, что каждый человек сможет подвергнуться подобной терапии. И не только для лечения каких-то редких генетических и наследственных заболеваний вроде муковисцидоза, а для борьбы с распространёнными недугами – например, старением».
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments72

Архитектура open source-приложений: Как работает nginx

Reading time18 min
Views66K


Мы в «Латере» занимаемся созданием биллинга для операторов связи и рассказываем на Хабре о разработке своего продукта, а также публикуем интересные технические переводные материалы. И сегодня мы представляем вашему вниманию адаптированный перевод одной из глав книги «Архитектура open-source-приложений», в которой описываются предпосылки появления, архитектура и организация работы популярного веб-сервера nginx.
Читать дальше →
Total votes 36: ↑31 and ↓5+26
Comments10

Фестиваль данных в музее Москвы, или как Big Data помогает жить и работать

Reading time2 min
Views7.6K


Привет Хабр,

Если вам давно было интересно, как Big Data применяется в разных областях бизнеса, науки и государственного управления и это хотелось услышать от самих людей, которые этим занимаются, то добро пожаловать на Фестиваль Данных, который будет проходить 19 декабря на Выставке Высоких Технологий SMIT в Музее Москвы.

В течение нескольких часов работы Фестиваля ведущие эксперты отрасли из Yandex, Школы Данных «Билайн», Data-Centric Alliance, Авито, ГУП «НИ и ПИ Генплана Москвы, НИУ ВШЭ расскажут гостям выставки о перспективах использования анализа данных в ближайшие несколько лет.
Читать дальше →
Total votes 12: ↑9 and ↓3+6
Comments1

Вероятностное программирование – ключ к искусственному интеллекту?

Reading time12 min
Views38K

Немного воды


Уже более полутора лет назад прошла новость о том, что «DARPA намерено совершить революцию в машинном обучении». Конечно, DARPA всего лишь выделила деньги на исследовательскую программу, связанную с вероятностным программированием. Само же вероятностное программирование существует и развивается без DARPA достаточно давно, причем исследования ведутся, как в ведущих университетах, таких как MIT, так и в крупных корпорациях, таких как Microsoft. И вовсе не зря DARPA, Microsoft, MIT и т.д. обращают пристальное внимание на эту область, ведь она по-настоящему перспективна для машинного обучения, а, может, и для искусственного интеллекта в целом. Говорят, что вероятностное программирование для машинного обучения будет играть ту же роль, что и высокоуровневые языки для обычного программирования. Мы бы привели другую параллель – с ролью Пролога, которую он сыграл для старого доброго ИИ. Вот только в Рунете по данной теме до сих пор можно найти лишь единичные ссылки, и то в основном содержащие лишь описания общих принципов. Возможно, это связано с тем, что потенциал вероятностного программирования еще только начал раскрываться и оно не стало основным трендом. Однако на что же способны или будут способны вероятностные языки?
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments25

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity