Как стать автором
Обновить
69
0
Расим Ахунзянов @Brotherofken

Computer Vision, Machine Learning, Neural Networks

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

Лекция Дмитрия Ветрова о математике больших данных: тензоры, нейросети, байесовский вывод 

Время на прочтение2 мин
Количество просмотров49K
Сегодня лекция одного из самых известных в России специалистов по машинному обучению Дмитрия Ветрова, который руководит департаментом больших данных и информационного поиска на факультете компьютерных наук, работающим во ВШЭ при поддержке Яндекса.

Как можно хранить и обрабатывать многомерные массивы в линейных по памяти структурах? Что дает обучение нейронных сетей из триллионов триллионов нейронов и как можно осуществить его без переобучения? Можно ли обрабатывать информацию «на лету», не сохраняя поступающие последовательно данные? Как оптимизировать функцию за время меньшее чем уходит на ее вычисление в одной точке? Что дает обучение по слаборазмеченным данным? И почему для решения всех перечисленных выше задач надо хорошо знать математику? И другое дальше.



Люди и их устройства стали генерировать такое количество данных, что за их ростом не успевают даже вычислительные мощности крупных компаний. И хотя без таких ресурсов работа с данными невозможна, полезными их делают люди. Сейчас мы находимся на этапе, когда информации так много, что традиционные математические методы и модели становятся неприменимы. Из лекции Дмитрия Петровича вы узнаете, почему вам надо хорошо знать математику для работы с машинным обучением и обработкой данных. И какая «новая математика» понадобится вам для этого. Слайды презентации — под катом.
Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии16

Параллельное программирование с CUDA. Часть 3: Фундаментальные алгоритмы GPU: свертка (reduce), сканирование (scan) и гистограмма (histogram)

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

Содержание


Часть 1: Введение.
Часть 2: Аппаратное обеспечение GPU и шаблоны параллельной коммуникации.
Часть 3: Фундаментальные алгоритмы GPU: свертка (reduce), сканирование (scan) и гистограмма (histogram).
Часть 4: Фундаментальные алгоритмы GPU: уплотнение (compact), сегментированное сканирование (segmented scan), сортировка. Практическое применение некоторых алгоритмов.
Часть 5: Оптимизация GPU программ.
Часть 6: Примеры параллелизации последовательных алгоритмов.
Часть 7: Дополнительные темы параллельного программирования, динамический параллелизм.

Disclaimer
Эта часть в основном теоретическая, и скорее всего не понадобится вам на практике — все эти алгоритмы уже давно реализованы в множестве библиотек.

Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии2

Лекции Технопарка. 1 семестр. С/С++

Время на прочтение6 мин
Количество просмотров110K
Мы продолжаем наши еженедельные публикации учебных материалов Технопарка. Предыдущие лекции были посвящены web-технологиям в целом, а также алгоритмам и структурам данных. В третьем блоке лекций рассказывается о языках С и С++.

Лекция 1. Язык С. Основы организации и использования оперативной и сверхоперативной памяти


Лекция начинается с введения в язык С: рассказывается об истории его появления, особенностях, преимуществах и недостатках, о сферах применения. Описываются основы препроцессорной обработки, рассматриваются вопросы управления памятью (модели управления памятью, области видимости объектов хранения) и производительность программ на языке С. Обсуждается связывание объектов хранения и их инициализация. Затем рассказывается о классах памяти в языке С. Следующая часть лекции посвящена проблематике указателей, а также работе с одномерными массивами. В заключение рассматривается стандарт POSIX и вопросы переносимости.


Читать дальше →
Всего голосов 72: ↑70 и ↓2+68
Комментарии83

Введение в курс «Анализ изображений и видео». Лекции от Яндекса

Время на прочтение8 мин
Количество просмотров70K
Мы начинаем публиковать лекции Натальи Васильевой, старшего научного сотрудника HP Labs и руководителя HP Labs Russia. Наталья Сергеевна читала курс, посвящённый анализу изображений, в петербургском Computer Science Center, который создан по совместной инициативе Школы анализа данных Яндекса, JetBrains и CS клуба



Всего в программе — девять лекций. В первой из них рассказывается о том, как применяется анализ изображений в медицине, системах безопасности и промышленности, какие задачи оно еще не научилось решать, какие преимущества имеет зрительное восприятие человека. Расшифровка этой части лекций — под катом. Начиная с 40-й минуты, лектор рассказывает об эксперименте Вебера, представлении и восприятии цвета, цветовой системе Манселла, цветовых пространствах и цифровых представлениях изображения. Полностью слайды лекции доступны по ссылке.
Читать дальше →
Всего голосов 60: ↑54 и ↓6+48
Комментарии5

Memory management в ядре Linux. Семинар в Яндексе

Время на прочтение4 мин
Количество просмотров65K
Привет! Меня зовут Роман Гущин. В Яндексе я занимаюсь ядром Linux. Некторое время назад я провел для системных администраторов семинар, посвященный общему описанию подсистемы управления памятью в Linux, а также некоторым проблемам, с которыми мы сталкивались, и методам их решения. Большая часть информации описывает «ванильное» ядро Linux (3.10), но некоторая часть специфична для ядра, использующегося в Яндексе. Вполне возможно, семинар окажется интересен не только системным администраторам, но и всем, кто хочет узнать, как в Linux устроена работа с памятью.



Основные темы, затронутые на семинаре:
  • Задачи и компоненты подсистемы управления памятью;
  • Аппаратные возможности платформы x86_64;
  • Как описывается в ядре физическая и виртуальная память;
  • API подсистемы управления памятью;
  • Высвобождение ранее занятой памяти;
  • Инструменты мониторинга;
  • Memory Cgroups;
  • Compaction — дефрагментация физической памяти.

Под катом вы найдете более подробный план доклада с раскрытием основных понятий и принципов.
Читать дальше →
Всего голосов 113: ↑107 и ↓6+101
Комментарии15

Разыменовывание нулевого указателя приводит к неопределённому поведению

Время на прочтение6 мин
Количество просмотров54K
Silent NULL (Разыменовывание нулевого указателя приводит к неопределённому поведению)
Ненароком я породил большую дискуссию, касающуюся того, допустимо ли использовать в Си/Си++ выражение &P->m_foo, если P является нулевым указателем. Программисты разделились на два лагеря. Одни уверенно доказывали, что так писать нельзя, другие столь же уверенно утверждали, что можно. Приводились различные аргументы и ссылки. И я понял, что нужно внести окончательную ясность в этот вопрос. Для этого я обратился к экспертам Microsoft MVP и разработчикам Visual C++, общающимся через закрытый список рассылки. Они помогли подготовить эту статью, и я представляю её всем желающим. Для нетерпеливых: этот код не корректен.
Читать дальше →
Всего голосов 91: ↑88 и ↓3+85
Комментарии193

Arduino Leonardo как адаптер SegaMegaDrive Gamepad->USB

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

Предисловие


Недавно обнаружил у себя два давно забытых старых геймпада от SMD, сама приставка была давно утеряна и геймпады все это время пылились без дела, но они рабочие и выкинуть «живые» устройства как-то рука не поднимается. Решил подключить их к компьютеру, хоть какое-то им применение, а в качестве переходника используем Arduino Leonardo.
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии0

Нелинейное сжатие размерности, используя ограниченную машину Больцмана

Время на прочтение3 мин
Количество просмотров16K
Привет. В этом посте мы продолжим экспериментировать с ограниченной машиной Больцмана. В предыдущем посте о регуляризации в РБМ мы увидели как можно получить более локальные фичи, которые обладают большей обобщающей способностью. Но мы не оценили их робастность по сравнению с более простыми и быстрыми алгоритмами. Для этого эксперимента мы обратимся к линейному методу главных компонент (вы можете ознакомиться с этим методом и глянуть реализацию на c# в моем первом посте). Желающим ознакомиться с первоисточником по теории сжатия размерности с использованием РБМ рекомендую глянуть статьи Джеффри Хинтона тут и тут. Мы же продолжим тестирование на множестве печатных больших букв: обучим РБМ, построим главные компоненты, сгенерируем сжатые представления данных, а из них восстановим первоначальные изображения, и затем оценим разницу между оригинальными изображениями и восстановленными.

Читать дальше →
Всего голосов 38: ↑35 и ↓3+32
Комментарии5

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

Время на прочтение5 мин
Количество просмотров8.5K
        Доброго времени суток!
        Как известно, одной из важных задач, решаемых обработкой изображений (помимо сброса пары кг и укрывания дефектов кожи на аватарках), является поиск и распознавание нужных нам объектов на сцене. Но этот процесс весьма сложный и ресурсоемкий, что делает его неприменимым в системах реального времени. Сегодня мы и поговорим, нельзя ли каким-то образом решить эту проблему и ускорить процесс поиска нужного объекта на сцене, с минимальными потерями в точности (а может, и без них вовсе). И вообще, причем тут папоротники?
PS
Традиционно много картинок.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии11

Правильные многогранники. Часть 2. Четырёхмерие

Время на прочтение10 мин
Количество просмотров26K
Предыдущая публикация: Правильные многогранники. Часть 1. Трёхмерие

Вступление

image
Вижу, что на Хабре люди серьёзные собрались. Статью про трёхмерие на счёт «раз» разобрали. Однако пространствами постоянной кривизны никого не удивишь в наше время. Тем не менее всегда находятся желающие заглянуть выше, в четырёхмерие. Ну что ж, именно с такими любознательными коллегами мы продолжаем разговор и переходим на следующий уровень по размерности.

Моя задача не просто рассказать про разбиения пространств постоянной кривизны любой размерности на правильные многогранники, а сделать это так, чтобы материал поняли даже вчерашние школьники, окончившие 11 классов. Я люблю статьи на Хабре именно за их доходчивость, понятность, простоту, не смотря на сложность материала, и в таком же качестве стараюсь подавать сведения в публикациях. В ВУЗах и в отечественных публикациях предлагаемый материал возможно рассматривается, но, как мне кажется, не в таком виде. Думаю, что информация будет полезна и для студентов. В иностранной литературе данный материал есть, соответственно не на русском языке, в сильно сжатом виде и с использованием высшей математики. Тут я всё «разжёвываю» для школьников, без высшей математики, фактически на одной геометрической интуиции. Мы увидим в следующей статье, как будет сделан переход от 4D к 5D с помощью геометрии, наглядно, без высшей алгебры. Это будет самый сложный шаг, но кто его поймёт, тот поймёт и все остальные размерности от 6 и выше. Не уверен, что мне удалось всё основательно «разжевать», поэтому, если будут дополнительные вопросы — задавайте, это поможет мне улучшить статью.

В данной публикации идея выкладок полностью та же, что и в предыдущей статье, только на одну размерность выше
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии29

Авторизация пользователей с AngularJS и Firebase

Время на прочтение4 мин
Количество просмотров18K
В прошлой статье, я рассказывал о Firebase. Сегодня я хочу рассказать как я организовал авторизацию пользователей с использованием AngularJS и Firebase.

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

Для основы проекта я использую ngBoilerplate, так считаю его достаточно удачной сборкой не требующей каких-то особых доработок. В сборке предустановлены Twitter Bootstrap, Angular UI, Angular Bootstrap, Font Awesome и LESS. Также замечательно настроен Grunt и Bower. Для установки и запуска чистого приложения, нужно всего лишь выполнить следующие команды:
$ git clone git://github.com/joshdmiller/ng-boilerplate
$ cd ng-boilerplate
$ sudo npm -g install grunt-cli karma bower
$ npm install
$ bower install
$ grunt watch


Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии7

Именованные параметры в современном C++

Время на прочтение14 мин
Количество просмотров29K
Из Википедии: "Именованные параметры в языках программирования означают поддержку указания явных имен параметров в вызове функции. Вызов функции, принимающей именованные параметры, отличается от обычного вызова функции, в котором передаваемые аргументы ассоциируются с параметрами функции лишь только по их порядку в вызове функции"

Давайте посмотрим на пример:

createArray(10, 20); // Что это значит? Что за "10" ? Что за "20" ?
createArray(length=10, capacity=20); // О, вот теперь понятнее!
createArray(capacity=20, length=10); // И наоборот тоже работает.


И еще один пример на выдуманном псевдо-языке:
window = new Window {
   xPosition = 10,
   yPosition = 20,
   width = 100,
   height = 50
};


Этот подход особенно полезен для функций с большим количеством опциональных параметров, при вызове которых нужно изменить лишь некоторую часть дефолтных значений. Некоторые языки программирования поддерживают именованные параметры (C#, Objective-C, ...), но не С++. В этом посте мы рассмотрим пару классических способов эмуляции именованных параметров в С++, ну и попробуем придумать что-то новое.
Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии32

Ещё более современный C++

Время на прочтение6 мин
Количество просмотров49K
“C++11 feels like a new language.” – Bjarne Stroustrup

Не так давно Герб Саттер открыл на своём сайте новую страничку — Elements of Modern C++ Style, где он описывает преимущества нового стандарта и то, как они повлияют на код.
А под катом прячется вольный перевод содержимого этой странички.
Всего голосов 141: ↑135 и ↓6+129
Комментарии166

Вероятностные модели: сэмплирование

Время на прочтение10 мин
Количество просмотров35K
И снова здравствуйте! Сегодня я продолжаю серию статей в блоге Surfingbird, посвящённую разным методам рекомендаций, а также иногда и просто разного рода вероятностным моделям. Давным-давно, кажется, в прошлую пятницу летом прошлого года, я написал небольшой цикл о графических вероятностных моделях: первая часть вводила основы графических вероятностных моделей, во второй части было несколько примеров, часть 3 рассказывала об алгоритме передачи сообщений, а в четвёртой части мы кратко поговорили о вариационных приближениях. Цикл заканчивался обещанием поговорить о сэмплировании — ну что ж, не прошло и года. Вообще говоря, в этом мини-цикле я поведу речь более предметно о модели LDA и о том, как она помогает нам делать рекомендации текстового контента. Но сегодня начну с того, что выполню давнее обещание и расскажу о сэмплировании в вероятностных моделях — одном из основных методов приближённого вывода.

Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии9

Почему с нормальным распределением не все нормально

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

Нормальное распределение (распределение Гаусса) всегда играло центральную роль в теории вероятностей, так как возникает очень часто как результат воздействия множества факторов, вклад любого одного из которых ничтожен. Центральная предельная теорема (ЦПТ), находит применение фактически во всех прикладных науках, делая аппарат статистики универсальным. Однако, весьма часты случаи, когда ее применение невозможно, а исследователи пытаются всячески организовать подгонку результатов под гауссиану. Вот про альтернативный подход в случае влияния на распределение множества факторов я сейчас и расскажу.
Читать дальше →
Всего голосов 78: ↑72 и ↓6+66
Комментарии31

Идеальная передача и универсальные ссылки в C++

Время на прочтение9 мин
Количество просмотров158K
Недавно на isocpp.org была опубликована ссылка на статью Eli Bendersky «Perfect forwarding and universal references in C++». В этой небольшой статье есть простой ответ на простой вопрос — для решения каких задач и как нужно использовать rvalue-ссылки.
Узнать этот ответ
Всего голосов 56: ↑56 и ↓0+56
Комментарии28

Расширение Visual Studio для визуализации пользовательских классов в режиме отладки

Время на прочтение7 мин
Количество просмотров20K
Доброго времени суток,

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

Предыстория


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

Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии5

ВВП, денежная масса и динамическое равновесие

Время на прочтение2 мин
Количество просмотров7.2K
В статье «Сбалансированная денежная единица и многосторонний клиринг» я описывал модель международных расчетов, построенную на клиринге и СДЕ — сбалансированной денежной единице.

Здесь я попробую численно смоделировать экономику отдельно взятого государства, участвующего с такой системе.

Начну с описания численной модели.

Пусть в экономике страны участвуют 20 независимых субъектов.
Каждый производит некий абстрактный продукт — на сумму 100 СДЕ в единицу времени.
Задана начальная сумма денег у каждого субъекта.
Будем проводить три испытания — с начальными суммами соответственно 50, 100 и 150 единиц национальной валюты.
Начальный курс СДЕ к национальной валюте положим равным 1.
В каждую единицу времени каждый субъект может продать от 0 до 15 процентов (случайное число) продукта за границу и заработать на этом денег.
Остальной продукт потребляется.
Так же субъект может потратить от 0 до 15 процентов (случайное число) своих денег на приобретение импортных товаров.

Начальный баланс страны в клиринговой системе равен нулю.

Рассмотрим три случая:
1. Курс СДЕ фиксирован.
2. Между клиринговым балансом страны и курсом СДЕ существует обратная связь, не зависимая от времени.
3. Зависимая от времени обратная связь.

Результаты численного моделирования под катом.

Читать дальше →
Всего голосов 9: ↑6 и ↓3+3
Комментарии23

От Facebook HackerCup 2011 до стажировки в Facebook

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

Всем привет! Часто, пробегая утром глазами заголовки на Хабре, я вижу статьи о том, как кто-то уехал учиться зарубеж. И каждый раз я думаю, что пора уже перестать лениться и описать свою историю о том, как я уехал стажироваться в Facebook.
Читать дальше →
Всего голосов 115: ↑111 и ↓4+107
Комментарии92

Информация

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