Как стать автором
Обновить
0
0
Никита Базалев @Nikita_Bazalev

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

Отправить сообщение

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

Время на прочтение7 мин
Количество просмотров17K

Введение


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

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


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

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

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

Время на прочтение7 мин
Количество просмотров75K
В прошлый раз мы подробно рассмотрели многообразие линейных моделей. Теперь перейдем от теории к практике и построим самую простую, но все же полезную модель, которую вы легко сможете адаптировать к своим задачам. Модель будет проиллюстрирована кодом на R и Python, причем сразу в трех ароматах: scikit-learn, statsmodels и Patsy.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии14

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

Время на прочтение6 мин
Количество просмотров116K
Предлагаю вашему вниманию перевод статьи How To Pick a Frontend Web Framework c сайта top.fse.guru.

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

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

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

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

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

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

Время на прочтение3 мин
Количество просмотров22K
image

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

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

Время на прочтение5 мин
Количество просмотров26K


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

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

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

Время на прочтение11 мин
Количество просмотров48K


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

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

Время на прочтение4 мин
Количество просмотров23K


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


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

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

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

Время на прочтение5 мин
Количество просмотров64K
Ниже представлена подборка инструментов для дизайнеров и front-end-разработчиков. Мы настоятельно рекомендуем вам просмотреть их все. Надеемся, что вы найдете для себя что-то полезное.

Читать дальше →
Всего голосов 41: ↑30 и ↓11+19
Комментарии7

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

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

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

Вы готовы?

image
Давай уже сюда свой пост
Всего голосов 65: ↑60 и ↓5+55
Комментарии15

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

Время на прочтение3 мин
Количество просмотров50K


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

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

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

Время на прочтение12 мин
Количество просмотров119K

Просто «El clasico»

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

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

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

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

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

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

Время на прочтение16 мин
Количество просмотров60K
Часть 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: Оптимизация


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

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

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

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

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


Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии11

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

Время на прочтение2 мин
Количество просмотров3.5K


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

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

Время на прочтение3 мин
Количество просмотров22K

Джордж Чёрч

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

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

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

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

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

Время на прочтение18 мин
Количество просмотров66K


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

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

Время на прочтение2 мин
Количество просмотров7.6K


Привет Хабр,

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

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

Спортивное программирование: «С чего начать?»

Время на прочтение1 мин
Количество просмотров93K
Под катом — список из 15 лучших ресурсов, посвящённых Спортивному Программированию.
Читать дальше →
Всего голосов 78: ↑66 и ↓12+54
Комментарии30

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

Время на прочтение12 мин
Количество просмотров38K

Немного воды


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

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Дата рождения
Зарегистрирован
Активность