Saturday, September 20, 2014

Конференция AI Ukraine 2014

25 октября в Харькове будет очень крутое мероприятие – конференция AI Ukraine 2014, которая будет проводиться нашей компанией. Если вкратце, то это первая конференция по практическому применению искусственного интеллекта, машинному обучению и большим данным в Харькове, и одна из первых и крупнейших в Украине. Такое нельзя событие нельзя пропускать.

На конференции выступят как минимум 18 докладчиков (хотя благодаря дополнительным заявкам от спикеров сейчас речь идет об увеличении количества докладчиков до 21-го), которые будут разделены на 3 трека.

Итак, кто же выступит на конференции и чем они нас порадуют.

Прежде всего, на конференцию с докладами приедут представители украинских офисов Microsoft, IBM и ABBYY. Microsoft планирует рассказать о своём новом сервисе Windows Azure Machine Learning, IBM расскажет про своё видение больших данных и работе с ними, а доклад ABBYY будет посвящен описанию ABBYY SDK, позволяющим программистам получить доступ к технологиям распознавания текстов и прикладной лингвистики.

Дмитрий Новицкий расскажет про естественные и искусственные нейронные сети, спайковые нейросети и феномен памяти. Еще в одном докладе Артём Чернодуб из ZZWolf расскажет про глубокие рекуррентные нейронные сети и области их применения.

Из доклада Сергея Шельпука (V.I.Tech, Львов) вы узнаете о проблеме управления и её решении методами искусственного интеллекта на примере датацентров и электрических сетей.

Наш гость из Санкт-Петербурга Сергей Николенко (НИУ ВШЭ), разработавший рекоммендательные алгоритмы SurfingBird, расскажет о том, как строить рекоммендательные системы.

Блок докладов, посвященных Natural Language Processing, составят доклады Марьяны Романышин (Grammarly) об автоматическом синтаксическом анализе, а также Леонида Литвиненко и Дмитрия Кана (авторы сервиса Youscan) об автоматическом определении тональности текста (Sentiment Analysis). Кроме того,Александр Панченко (Digital Society Laboratory, Москва) расскажет об анализе текста в социальных сетях и различных целях подобного анализа.

О применении Machine Learning в банковской сфере расскажут Дмитрий Вороненко (Scorto, Харьков), чей доклад посвящен использованию нейросетей и других алгоритмов для кредитного скоринга, а также Андрей Кислый (iBPM, Киев), который планирует рассказать об анализе данных социального профиля пользователя.

Kristoffer Rolf Deinoff (Itera Consulting, Киев) покажет на практике, как использовать данные фитнес-устройств вместе с календарем и погодными данными для определения расписания тренировок и задания целей и стимулов.

Заведующий кафедрой КНУ Юрий Крак расскажет об анализе и синтезе систем жестовой коммуникации для глухих людей и других перспективах этого направления. А доклад Данилы Дорофеева (Samsung R&D, Киев) будет посвящен бесконтактному детектору пульса с помощью камеры.

Дмитрий Сподарец (RootUA Media, Одесса) расскажет о возможностях платформы FlyElephant для агрегации и проведения высокопроизводительных вычислений.

И, наконец, среди докладчиков будут и члены харьковского клуба ИИ. Николай Павлов (Biomech), который уже выступал с 2 докладами на наших встречах, расскажет о своем новом волонтерском проекте — сенсоре для выявления огневых точек противника, разрабатываемого для украинской армии, а мой доклад будет посвящен тому, как спрогнозировать цены на авиабилеты, используя временные ряды.

Даже если вы не используете алгоритмы ИИ в вашей работе прямо сейчас, я уверен, что многим будет просто интересно послушать доклады. Как-никак, это же искусственный интеллект, а это всегда интересно и круто :)

Узнать больше о расписании конференции, каждом докладе и докладчике, а также зарегистрироваться на конференцию можно на сайте AI Ukraine 2014. Для преподавателей и аспирантов вузов действует специальная скидка, которую вы можете получить, связавшись с организаторами конференции (контактная информация указана на сайте). Все новости конференции публикуются на нашей страничке в Facebook: https://www.facebook.com/events/821937461170253/

Куда приводят мечты

Последний раз я писал в свой блог полтора года назад. За это время много чего произошло, как в личной, так и в профессиональной жизни. Если вкратце, то я ненадолго сходил в топ-менеджмент и вернулся назад, причем в совсем другом качестве. Теперь я занимаюсь тем, о чем мечтал с детства – искусственным интеллектом (а точнее, Machine Learning), а по совместительству возглавляю отдел Data Science в нашей компании, который потихоньку развивается. Другой мой любимый проект, харьковский клуб искусственного интеллекта, более-менее активно проводит встречи и различные другие инициативы.

В какой-то степени моё молчание эти полтора года было связано с тем, что я перестал заниматься программированием, а писать про менеджмент не очень интересно. Было очень много работы, но почти не было вдохновения и того самого зуда, который заставляет тебя сесть и строчить очередной пост, даже если уже давно за полночь. Сейчас я снова программирую, правда, мой стек сильно изменился. Теперь это языки R и Python, а Visual Studio я поменял на RStudio и другие инструменты. Хотя старый опыт всё еще помогает: как раз сейчас я занимаюсь реализацией разработанного нами алгоритма на C# :)

Machine Learning ортогонален обычному промышленному программированию. Прежде всего, это матстатистика и алгоритмы, а уже потом – программирование. Здесь почти нет технологий, нет особенностей мобильного или веб-программирования. Зато здесь есть самые разнообразные данные, куча направлений на любой вкус (от обработки текста до программирования интеллекта роботов), постоянная неопределенность, можно ли решить задачу или нет, куча научных статей, которые нужно читать, десятки и сотни экспериментов, и многое другое. И это очень классно и интересно, это не даёт заскучать.

А еще это очень перспективно и недешево. Зимой, еще работая на менеджерской должности, я написал небольшую статью на DOU, в которой постарался осветить применение искусственного интеллекта в Украине. В ней было приведено всего несколько примеров украинских компаний, которые занимаются ИИ, зато в комментариях к статье накидали еще целую пачку, что меня очень порадовало. Через два месяца мы стартовали новый отдел. Теперь же, немного исследовав существущий рынок и прогнозы крупных аналитических компаний, можно с уверенностью сказать, что задачи по ИИ наконец-то вышли из-под крыла университетов в дикую природу, а бизнес очень активно занимается их внедрением. В нашем маркетинговом исследовании мы нашли несколько десятков компаний по всему миру, которые занимаются предоставлением услуг по Machine Learning и Predictive Analytics, причем многие компании содержат большой штат специалистов и не оказывают услуг по обычной разработке. И это только те компании, которые нам удалось найти на данный момент.

В связи со всеми произошедшими изменениями, следует сказать, что техническая тематика блога с данного момента изменится – в основном я буду писать про свои текущие профессиональные интересы, а не про C# и .NET. По крайней мере, надеюсь, у меня будет время и, главное, желание писать в блог :)

А следующий пост я могу анонсировать прямо сейчас – он будет про конференцию AI Ukraine 2014.

Monday, January 14, 2013

Встреча AI Club, посвященная игровому ИИ

Я стараюсь не писать в этом блоге анонсы встреч нашего Kharkov AI Club, но случай особый, поэтому хочется донести его до общественности. В субботу 26 января у нас будет 4-я встреча, целиком посвященная искусственному интеллекту в играх. В докладчиках у нас на этот раз будут гости из Киева: Владимир Кожаев, аспирант Института кибернетики им. В.М.Глушкова, и Дмитрий Ясенев, ведущий программист в компании Vostok Games, сейчас работающий над онлайн шутером Survarium, а до того работавший в небезызвестной GSC Game World над ИИ в игре S.T.A.L.K.E.R.

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

Если вы занимаетесь разработкой любых типов игр, интересуетесь ИИ, любите играть или вам просто интересно узнать больше о внутренностях S.T.A.L.K.E.R. и Survarium непосредственно от разработчика – то приходите, эти доклады именно для вас!

Больше информации о докладах, а также форма регистрации на официальной страничке: http://aikharkov.wordpress.com/2013/01/13/75/

Немного информации для затравки:

Блог Владимира Кожаева: http://gamesdevandmath.blogspot.com/
Досье на Дмитрия Ясенева: http://eposurvarium.ru/dmitriy-neo-yasenev/
Интервью с Дмитрием: http://gsc-fan.com/?option=com_content&view=article&id=411

Tuesday, January 8, 2013

1000 км по австрийским дорогам

1000 км – это много или мало? По меркам России или США это сущий пустяк. По меркам Украины – уже не пустяк, но все еще немного: дорога из Харькова до горнолыжного курорта Буковель в Карпатах – это уже 1200 км, а ведь можно ехать и из Луганска в Ужгород. Но Австрия – небольшая, там можно проехать полстраны и вернуться в точку старта, проехав это расстояние.

Почему именно Восточная Империя (Austria = Österreich (нем.) = Öster + Reigh)? На самом деле, сначала планировалась поездка по Голландии или Германии, но с опытом вождения меньше года мы нашли вариант аренды авто только в Австрии. Второй причиной стали Альпы. В этом году мы так и не попали в поход, поэтому в горы тянуло неимоверно. Просмотр фотоотчетов из австрийских Альп в Интернете быстро доказал нам, что мы на верном пути.

Начиналось все как обычно. Сначала планирование маршрута: полтора дня в Вене, затем арендуем автомобиль и полетели по австрийским автобанам и обычным проселочным дорогам навстречу приключениям. В обязательных планах числились: Зальцбург, Санкт-Вольфганг, Гальштат, Мельк, Штайр. Дальше – как пойдет.

По факту маршрут получился таким:


View Larger Map

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

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

Вена

По рассказам друзей от Вены ожидали чего-то имперского и захватывающего дух. Имперское имеет место быть, да и город, безусловно, красивый, но дух не захватывает. Вена сбалансирована: центр и условно спальные районы выглядят одинаково хорошо. И там, и там можно получать удовольствие от прогулок, есть что посмотреть. Окраины, как и везде, загажены и исписаны граффити, но туда ведь можно и не ездить. Старый центр окружен Рингом – транспортным кольцом, по которому можно прогуляться пешком, прокатиться на трамвае либо велосипеде. В сувенирах преобладают три человека и их творчество: Моцарт, императрица Сисси и художник Густав Климт. Они буквально везде, начиная от статуэток и заканчивая кофе и конфетами.

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

IMG_8696IMG_9154IMG_9064

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

IMG_1569IMG_8845IMG_8875IMG_8929

Wednesday, December 5, 2012

Realtime ASP.NET with SignalR presentation

Для выступления в Сумах обновил презентацию по SignalR. Если кому интересно, то можно посмотреть здесь:

Sunday, November 18, 2012

Разработка real-time ASP.NET приложений с помощью SignalR

SignalR, на мой взгляд – одна из самых впечатляющих библиотек в ASP.NET, появившихся за последние пару лет. Я бы сказал, настоящее событие, своеобразная веха. И пока команда корпит над готовящимся релизом первой версии, самое время сделать ее небольшое описание. Однако прежде чем начать, стоит немного остановиться на том, зачем вообще кто-то придумывал эту библиотеку и какую проблему она решает.

Real-time веб приложения

Наверняка многие пользовались Facebook, Twitter или другими социальными сервисами и замечали, что когда приходят обновления новостей или статусов, страница обновляется в реальном времени и вы постоянно видите последнюю актуальную информацию. В Google Docs можно совместно редактировать документы, и все обновления синхронизированы и появляются у вас сразу же, как только их сделает другой пользователь. Это примеры сервисов, которые можно назвать real-time веб-приложениями. Основной их отличительной способностью является то, что они “ломают” привычную нам всем модель работы в вебе – запрос-ответ, благодаря чему пользователи видят обновление данных сразу же, как только они появляются на сервере.

Если не знать, насколько далеко вперед шагнули технологии за последние несколько лет, то можно предположить, что все подобные приложения реализованы при помощи периодического опрашивания сервера обычными Ajax-запросами, т.н. polling. Выглядит похоже, но это не так, в чем можно легко убедиться, просмотрев логи запросов из браузера на сервер в Firebug, Fiddler или Chrome developer tools.

Способы реализации

Итак, какие же есть способы реализации подобной функциональности, их достоинства и недостатки.

Техника Описание Преимущества Недостатки
Polling Постоянный опрос сервера Ajax-запросами + простота реализации
+ поддержка во всех современных браузерах
- задержка в результатах
- при уменьшении задержки существенно увеличивается нагрузка на сервер
Long Polling Ajax-запросы, идущие один за другим, но каждый запрос держится открытым в течение нескольких минут + сниженная нагрузка на сервер по сравнению с обычным Polling
+ уменьшенный трафик
+ поддержка во всех современных браузерах
- больше одновременно открытых соединений, т.к. каждый запрос живет дольше
Server-Sent Events Новый стандарт HTML5, работающий поверх HTTP. Позволяет создавать долгоживущее соединение с сервером, чтобы сервер мог отправлять данные на клиент + нет необходимости постоянно пересоединяться с сервером
+ нет изменений на стороне сервера, поэтому работает на всех современных веб-серверах
- не поддерживается в IE (даже в IE10)
- работает только в направлении сервер –> клиент (на сервер можно отправлять обычные Ajax запросы)
WebSockets Новый протокол (ws:// и wss://), работающий поверх TCP на одном уровне с HTTP. Позволяет создавать двустороннее долгоживущее соединение с клиентом + нет необходимости постоянно пересоединяться с сервером
+ работает в двустороннем режиме
- поддерживается не во всех веб-серверах (IIS8)
- поддерживается не во всех браузерах (в IE7-9, Android)

Для большей информации о Server-Sent Events и WebSockets советую посмотреть статью на HTML5 Rocks: http://www.html5rocks.com/en/tutorials/eventsource/basics/

Если посмотреть на достоинства и недостатки, то можно увидеть, что самый эффективный вариант – это WebSockets, но он не поддерживается во всех браузерах и будет поддерживаться лишь на IIS8 и выше. Server-Sent Events работает на более старых версиях IIS, но не поддерживается в IE, поэтому тоже подойдет далеко не всегда. Long Polling работает везде, но при этом далеко не так эффективен.

Идеальным решением было бы совмещение этих техник в разных случаях, но это сложно реализовать и поддерживать. Однако есть хорошая новость – это решение уже реализовано в библиотеке SignalR.

Введение в SignalR

SignalR – это библиотека для создания многопользовательских real-time ASP.NET (и не только) приложений. Она состоит из набора серверных и клиентских библиотек, и представляет собой абстракцию над целым набором транспортов. Все это добро – open source, лежащий на GitHub: https://github.com/SignalR, поэтому вы всегда можете пойти и посмотреть, что там внутри, какие есть баги и т.д. Кроме того, в разделе Wiki есть много информации о SignalR и примеров: https://github.com/SignalR/SignalR/wiki

SignalR был придуман и реализован двумя разработчиками Microsoft: Damian Edwards и David Fowler. В своих твиттерах они часто пишут полезную информацию о SignalR и сообщают о новостях. Также David ведет блог, в котором описывает все изменения в новых версиях. Если вы решите использовать библиотеку, то советую подписаться.

На момент написания этой статьи SignalR находится в предрелизном состоянии (версия 1.0 alpha2). Еще планируются один или несколько RC, после чего продукт будет выпущен в RTM.

Транспорты

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

image

То есть если сервер и клиент поддерживают WebSockets, то будет установлено WebSockets-соединение и все будут счастливы. Если же нет – то далее будет проверка, поддерживает ли клиент SSE, и если да – будет установлено это соединение. В случае IE сразу же будет испробован подход Forever Frame (невидимо висящий iframe устанавливает соединение и получает JS-инструкции с сервера) – это IE-хак, т.к. даже 10-я версия IE не поддерживает SSE. Молодцы, нечего сказать.

И в конце-концов, если клиент не поддерживает ни один из этих способов, или произошла ошибка, то SignalR откатится до самого надежного способа – Long Polling, который работает практически везде.

Архитектура

Архитектура SignalR очень проста. На сервере реализованы 2 вида API: низкоуровневый (PersistentConnection API) и высокоуровневый (Hub API), причем Hub опирается на PersistentConnection. Вы можете использовать любой из них, но в большинстве случаев вам будет достаточно возможностей, предоставляемых Hub API.

image

В альфе официально поддерживаются JavaScript (браузер), .NET 4 и WinRT клиенты. Windows Phone и Silverlight были в предыдущей версии, но в альфу не попали. Их обещают допилить ближе к релизу.

Также в альфу не попала библиотека для self hosting. Вместо нее обещают поддержку http://owin.org/.

Простое SignalR приложение

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

1) Открываем VS и создаем ASP.NET MVC приложение

2) Инсталлируем пакет Microsoft.AspNet.SignalR через NuGet:

Install-Package Microsoft.AspNet.SignalR

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

После инсталляции вы увидите несколько изменений в проекте:

  1. В References добавятся библиотеки SignalR
  2. В Scripts добавятся библиотеки jQuery.SignalR
  3. В папке App_Start появится класс RegisterHubs, который занимается регистрацией рута ~/signalr/hubs

3) Создаем класс MoveHub в папке Controllers (может быть и другая папка, например, Hubs, но хабы – тоже своеобразные контроллеры):

using Microsoft.AspNet.SignalR.Hubs;

namespace SignalR_test.Controllers
{
	public class MoveHub : Hub
	{
		public void MoveShape(int x, int y)
		{
			Clients.All.shapeMoved(Context.ConnectionId, x, y);
		}
	}
}

Обращение Clients.All обозначает, что мы хотим отправить сообщение всем клиентам, которые подписались на события, происходящие в хабе. Метод MoveShape будет вызываться с клиента и вызывать метод shapeMoved во всех браузерах, открывших страницу с параметрами x, y (положение квадрата) и Context.ConnectionId (уникальный идентификатор клиента, отправившего запрос на сервер). Объект Clients.All (и другие) – dynamic, поэтому мы можем вызывать любые методы с любыми параметрами без опасения ошибок компиляции. В то же время это обозначает и то, что нам нужно быть предельно внимательными с именами методов и параметров, включая регистр – никакой проверки компиляции здесь нет.

4) Добавляем метод контроллера, который будет отображать нашу страничку Shape.cshtml:

public class HomeController : Controller
{
	...
	
	public ActionResult Shape()
	{
		return View();
	}
}

Здесь все просто, комментировать нечего.

5) Добавляем Shape.cshtml view, в котором ссылаемся на несколько JS файлов.






Сначала подключаем jQuery и jQuery.UI (для реализации draggable), затем библиотеку jQuery.SignalR, и в конце – обращение к JS-файлу с хабами. Это то место, где происходит вся магия SignalR. Файл генерируется на лету инфраструктурой библиотеки на основании всех хабов, которые есть в вашем коде. Если заглянуть в этот файл из браузера, то можно увидеть, как в нем регистрируются объекты и методы, использующиеся впоследствии из JavaScript-кода.

6) Кладем во view кусок JS-кода. В настоящем приложении JS-код лучше вынести в отдельный файл, но для наших целей и такого кода достаточно.


В JavaScript мы делаем следующее:

  1. Регистрируем метод shapeMoved, который будет “вызываться” из серверного кода. В методе двигаем фигуру, если мы сами не являемся источником запроса
  2. Стартуем соединение с сервером
  3. По успешному подключению регистрируем обработчик события draggable у фигуры, который будет вызывать серверный метод moveShape, находящийся в нашем хабе

7) Запускаем приложение, открываем страницу в двух разных браузерах (или на двух разных машинах), и смотрим, как при движении фигуры в одном из браузеров, она автоматически двигается в другом.

Группы

Очень полезной возможностью SignalR является поддержка групп. Группы используются для объединения подключений и последующего их группового использования. Например, когда у вас есть разные объекты (комнаты чатов, аукционы и т.д.) и необходимо, чтобы оповещения получали лишь те пользователи, которые просматривают именно этот объект.

С группами очень просто работать:

// Add connection to group "foo"
Groups.Add(Context.ConnectionId, "foo");

// Call send on everyone in group "foo"
Clients.Group("foo").send(message);

// Call send on everyone else but the caller in group "foo"
Clients.OthersInGroup("foo").send(message);

// Call send on everyone in "foo" excluding the specified connection ids
Clients.Group("foo", Context.ConnectionId).send(message);

Другие возможности SignalR

В целом, SignalR реализует следующие сценарии:

  1. клиент вызывает метод на сервере
  2. сервер вызывает метод на клиенте/клиентах
  3. передача состояния с клиента на сервер и обратно
  4. поддержка передачи сложных объектов (JSON сериализация)
  5. определение соединения, отсоединения и пересоединения клиентов
  6. обращение к клиентам извне хаба при помощи специального интерфейса (то есть любой код на сервере может оповестить клиенты о событии)
  7. асинхронные сценарии

В официальной документации можно посмотреть более подробное описание всех API и их возможности, как на сервере, так и на клиентах:

Веб-ферма

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

Разработчики позаботились об этом и на данном этапе предлагают 3 решения:

  1. Поддержка Windows Azure Service Bus (идеально подходит для развертывания в Azure)
  2. Поддержка Service Bus for Windows Server
  3. Поддержка Redis

Если у вас не Azure, то остается два последних варианта. Из них лично я бы посоветовал Redis, т.к. он очень прост в установке и конфигурировании (его почти нет), в то время как Service Bus for Windows Server потребует от вас недюженных усилий.

Redis – это key-value storage, изначально разработанный для Linux, но под Windows существует несколько портов. Официально поддерживающийся порт и его настройка описаны в документации SignalR. Неофициальный, но по всей видимости более взрослый порт можно найти здесь: https://github.com/dmajkic/redis. Решение, как запустить его как Windows Service, описано здесь: https://github.com/kcherenkov/redis-windows-service.

Со временем обещают поддержку и других шин.

Полезные ссылки

Если вы хотите посмотреть пример приложения на SignalR, то вы можете скачать пример приложения, показывающего обновляющиеся биржевые котировки с GitHub (https://github.com/SignalR/SignalR-StockTicker), либо зайти на http://jabbr.net и попробовать вживую пример, реализующий чат. Кстати, на Jabbr в комнате, посвященной SignalR довольно часто бывает David Fowler, и у него можно спросить любой вопрос, который вас интересует.

Спасибо за внимание и успешной разработки!

Tuesday, September 25, 2012

Вторая встреча Kharkov AI Club

Лето наконец-то закончилось и нам удалось организовать вторую встречу Kharkov AI Club. Пройдет она в несколько необычном формате. Мы послушаем один доклад по машинному обучению, а остальное время посвятим питчам гостей.

1) “Машинное обучение. Распознавание рукописных цифр”

Докладчик: Бабий Андрей, преподаватель ХНУВД (Харьковский национальный университет внутренних дел)

Описание: Доклад будет посвящен одному из методов машинного обучения распознаванию цифр. Для примера будет использовано одно из соревнований по интеллектуальному анализу данных сайта Kaggle http://www.kaggle.com/c/digit-recognizer. В докладе будут рассмотрены особенности подготовки данных, метод распознавания и идеи по его улучшению.

2) Серия 5-10 минутных питчей, в которых приглашаются принять участие все желающие. Расскажите всем о своей работе, интересах, проектах в сферах AI, ML, CV, AR, робототехнике и др. с целью найти единомышленников и, возможно, помощников. Формально или неформально, с подготовкой или без – возможны любые варианты.

В заключение мы сможем немного пообщаться о развитии сообщества.

Дата: вторник, 2 октября 2012 г.
Время: 19:00
Место: офис Ciklum, ул. Отакара Яроша 18-Д, ТЦ «Движение», 3-й этаж(там же, где проходила первая встреча)

Пожалуйста, заполните форму регистрации на официальной странице Kharkov AI Club. Там же укажите, будете ли вы участвовать в питче, и если да, на какую тему. Спасибо.