Monday, January 16, 2012

Про ML-class

Об одном из первых онлайн-курсов Stanford University  ML-class c профессором Andrew Ng. Недавно всем окончившим курс выслали Statements of Accomplishment (сертификаты) с результатами. Кстати, почти у всех моих знакомых результат был 80/80 за Review Questions и 800/800 за Programming Exercises. И ещё, занятная статистика  у них на сайте написано, что за advanced track (review questions и programming exercises) выдано 12195 сертификатов, а за basic track (только review questions)  только 1034. Т.е. почти все выбирали advanced track.

В целом, курс прошёл очень хорошо. С задачей, которую они себе поставили, они справились превосходно.

Сначала о формате. Мне кажется, такой формат можно брать за образец для онлайн обучения. Каждую неделю выкладывался один или два блока лекций. Каждый блок состоит из 5-10 маленьких лекций (от 5 до 15 минут). Причём лекции интерактивные  внутри каждой лекции вставлены вопросы на понимание. И в плеере на страницах с лекциями есть кнопки ускорения в 1.2 и в 1.5 раза, чтобы не унывать на особо скучных моментах. Всё это  маленькая длина лекций, вопросы внутри лекций и кнопки ускорения  позволяет не засыпать и следить за материалом.

К каждому блоку лекций прилагается 5 контрольных вопросов на оценку (review questions), каждый вопрос считается за 1 балл. Вопросы несложные, если внимательно слушать лекции (или даже просто быть в теме), то ответить на них не составит труда. А если с первого раза не получилось ответить на всё правильно, после 10-минутного перерыва можно попробовать ещё раз. Проверка автоматическая. Basic track на этом, в общем-то, и заканчивался.

А вот для advanced track нужно было ещё выполнять задания на программирование (programming exercises), которые тоже прилагались к каждому блоку лекций. Использовался язык Octave (open-source аналог MatLab), изучению которого был также посвящён целый блок лекций. Задания представляли собой небольшие проекты, в которых решалась какая-нибудь задача машинного обучения (например, оценка стоимости квартиры в зависимости от её площади и других параметров или распознавание цифр на изображениях). В этих проектах было по несколько нереализованных мест, в которых надо было вставить свой код. И каждый проект снабжался PDF-кой страниц на 15, в которой детально описывалось, что в проекте происходит, что и как нужно реализовать. Задания были очень хорошо подготовлены, организаторы, должно быть, потратили на них кучу времени. Хорошо хоть, что проверка тут тоже автоматическая.

Ещё на сайте работал форум, в котором студенты могли задавать свои вопросы и команда курса на них отвечала. За всё время на форуме создали около 6000 тем.

А вот теперь обратная сторона медали. И заодно хочется сравнить этот курс с  курсом по машинному обучению в ШАДе, который читает К.В. Воронцов.

Основные темы, которые рассказывались на ML-class,  это линейная регрессия, логистическая регрессия, регуляризация, нейронные сети, SVM, кластеризация, понижение размерности, обнаружение аномалий. Практически все они покрываются в первом семестре курса Воронцова. Причём не просто покрываются, Воронцов их охватывает намного глубже. И ещё у Воронцова есть второй семестр, в который входят достаточно перспективные направления машинного обучения, не вошедшие в ML-class  композиции алгоритмов (например, boosting), отбор признаков, логические алгоритмы (решающие деревья и др.).

Первое, что могли заметить студенты, начав проходить ML-class,  курс очень простой. Первое задание можно было сделать за 5 минут, не смотря лекции. Все остальные задания были не намного сложнее. А на лекциях иногда так сильно разжёвывались некоторые места, что можно было заснуть, даже не смотря на кнопку ускорения в 1.5 раза. Как я уже сказал, команда курса отлично справилась с поставленной задачей. Вот только в самой задаче есть некоторая проблема. Они хотели, чтобы курс был как можно доступнее. Чтобы его можно было пройти даже без какого-либо математического образования. В результате им даже самим пришлось вставить блок лекций по самым-самым основам линейной алгебры. Во всех лекциях опускались математические подробности (а ведь в машинном обучении некоторые математические подробности очень важны), не было никаких доказательств, только готовые рецепты. Для прикладных задач это, наверно, хорошо, но вот ничего нового так не придумаешь.

Вот чем ML-class превосходит курс в ШАДе — это семинарским материалом (условно "семинарским", ведь в ML-class нет разделения на лекции и семинары). Лекции в ML-class были очень наглядными, они сопровождались обильными примерами (иногда, правда, чересчур обильными), визуализацией различных графиков. Также порадовали очень полезные разделы "X. Advice for Applying Machine Learning" и "XI. Machine Learning System Design", в которых объяснялось, когда каким вещам нужно уделять внимание ("Deciding What to Try Next" и "Prioritizing What to Work On"). В этом семинаристам ШАДа (в число которых я уже не вхожу) предстоит ещё совершенствоваться.

Остаётся только сказать спасибо профессору Andrew Ng и команде ML-class за этот курс, а также Stanford University за то, что не перестаёт радовать новыми онлайн-курсами.

Sunday, July 10, 2011

Weekend 7/2—7/4. Seattle, BeerFest, Fireworks

В субботу, после того, как забрали машину, мы поехали сначала в Bellevue (это между Сиэтлом и Редмондом). Там немного посидели с нашими знакомыми яндексоидами, которые приехали сюда на конференцию. Затем поехали в Сиэтл, где просто немного погуляли и сходили в аквариум.



В воскресенье мы собрались русской компанией (которая самообразовалась в MSR) и пошли на BeerFest. Я на таких мероприятиях раньше не был. Приятная атмосфера, живая музыка, много народа.


Вход на территорию — $25. За это дают 10 билетиков, за которые наливают пиво. Сортов пива очень-очень много, все не попробуешь. Некоторые сорта стоят по 1 билетику за стакан (4 oz, т.е. около 120 мл), некоторые — два-три билета, а есть даже те, которые 7 стоят. Билеты, конечно, можно докупать, по доллару за штуку. Но нам 10 начальных билетиков вполне хватило для веселья.


После BeerFest мы пошли погулять по одной из достопримечательностей Сиэтла — Pike Place Market. Народу на этом рынке немерено, как в московском метро. Но стоит хороший запах, и устраивают мини-представления, на которых бросаются рыбой.

Потом пошли в суши-ресторан (где мне, кстати, не очень понравилось). И, ещё немного погуляв, закончили день в Starbucks.


4 июля в Америке большой праздник — день независимости. Это чем-то напоминает наше 9 мая. Мы собрались компанией уже побольше и сперва погуляли по University of Washington. Там достаточно красиво снаружи. А внутри этот университет вообще не сравнится с российскими (не по красоте, а по общему состоянию). Поесть мы решили во Вьетнамском ресторане, где традиционным блюдом является Phở. Вполне съедобно.

Ну и наконец, сам салют (fireworks). Я не знаю, может быть, я просто не смотрю на салюты в Москве и поэтому не видел такого же красивого, как здесь. Но тут это действительно здорово выглядит, ещё и под музыку. Стреляют из озера, а вокруг собираются толпы людей на это смотреть.




Wednesday, July 6, 2011

Welcome to Microsoft Research. Welcome to US

Итак, после двух собеседований в январе меня взяли на стажировку в Microsoft Research в Редмонде (родине Microsoft). 29 июня, после почти суток перелётов, я прибыл в аэропорт Seattle-Tacoma International Airport. Перелёт включал в себя пересадку в аэропорту JFK в Нью-Йорке. Аэропорт, надо сказать, отвратный, очередь на CBP (таможне) была ужасной. Бардак у них там.

Кроме меня, из Яндекса сюда приехал Лёша Городилов.

Апартаментами нас снабжает Microsoft по сниженной цене ($900 в месяц за 1-bedroom, $625  за 2-bedroom). Мы оба просили нам по 1-bedroom. Лёше так и дали. Но я приехал в самую позднюю дату, в которую можно было приехать, и на меня уже таких апартаментов не осталось. Поселили в 2-bedroom. Мой сосед — португалец, живёт в Амстердаме. Прекрасно говорит по-английски.

Мой сосед

А это мои апартаменты:


На утро после приезда я пошёл оформляться на работу. Процесс этот у меня не совсем стандартный, т.к. я начал работать не в начале недели, как все, а, что называется, out of cycle. Поэтому мне просто оформили какие-то бумаги, сделали пропуск и познакомили с моим ментором (начальником).

Мой ментор  Alex Bocharov  тоже закончил мехмат МГУ. О работе мы с ним говорим по-английски, в остальных случаях  в основном, по-русски.


Alex Bocharov

Всем новым работникам в первый день устраивают orientation-день, на котором рассказывают о жизни в компании. У меня же этот день был только 5 июля. Поэтому в первый день предварительную ориентацию со всей ответственностью провёл для меня Alex. Затем мы немного поговорили о нашем проекте, после чего он отпустил меня домой (у меня тогда был сильный jet lag).

Мы относимся к группе Machine Learning Department. Сидит эта группа не вместе  она раскидана по зданию. Мой проект связан с прогнозированием (а точнее, прогнозируемостью) временных рядов.
Лёша тоже относится к нашей группе, но сидит на другом этаже и занимается другим проектом.

Программа стажировок тут достаточно отлаженная. Есть разные бенефиты, такие как бесплатный проездной, $350 долларов на покупку велосипеда или машина на прокат, бесплатный спортзал. Часто проводят MSR Talk Series (a.k.a., tech-talks, научные семинары). Когда я пришёл, у меня уже было своё рабочее место с настроенным компьютером. Естественно, на компьютере стоит Windows, и основное средство коммуникации  Outlook. Ну ещё какой-то communicator вместо корпоративного джаббера. Ноутбуков не выдают. В отличие от Яндекса, тут нет единого места с информацией  ни вики, ни стаффа. Есть много разрозненных сайтов. Ещё тут непросто установить на компьютер open-source программы, т.к. лицензия GPL имеет сильные ограничения. Установку таких программ надо согласовывать с начальством.

Моё рабочее место

Кампус Microsoft здесь очень большой, порядка ста зданий. Есть даже своё футбольное поле. И вместо одной вкусной столовой по зданиям раскидана куча кафетериев с различными кухнями: мексиканской, китайской, индийской, тайской и т.д. Такого места, где можно было бы спокойно обедать каждый день, мы пока не нашли. Видимо, обычная здоровая еда здесь только в более дорогих ресторанах.

Внутри нашего здания

Редмонд  это скорее деревня (town), чем город. На улицах людей мало, всё очень аккуратно и зелено. Машины ездят очень спокойно, пешеходов не просто пропускают, а останавливаются метров за 10, даже на перекрёсток не выезжают.


Приглянулись в магазине автоматические кассы:



До Сиэтла ехать не очень долго, около получаса. Там уже совсем городская жизнь, много людей, есть, что поделать. Что интересно, парковки бесплатные только по воскресеньям и праздникам. Там нельзя, как в Москве, встать в произвольном свободном месте  везде, где можно парковаться, стоят специальные механизмы для оплаты парковки. Пробок, кстати, почти не бывает.

Я заказал у Microsoft машину на прокат, мне это стоит $375 в месяц (плюс бензин), остальное они оплачивают. В субботу утром я её забрал. Это оказалась чёрная KIA Optima. Мне она всем нравится, в том числе, и в внешним видом. Только парктроника не хватает.


Ещё я купил себе местную сим-карту от T-Mobile. Тариф стоит $30 в месяц и включает 1500 минут разговоров или смс и 30 Мб трафика. Но, как оказалось, смс включены только на американские номера. За смски на российские номера пришлось ещё доплатить, 20 центов за сообщение.

Ждите продолжения.

Ещё фотографии.

Monday, May 9, 2011

Зачем мне iPad

Осенью, полгода назад, я приобрёл себе iPad. С тех пор меня не раз спрашивали, как его можно использовать. Вот как его использую я.

Чтение
Ещё до того, как я купил iPad, я долгое время думал купить себе какую-нибудь электронную читалку. Когда iPad анонсировали, естественно, я стал задумываться об этой альтернативе. То есть изначальным мотивом для покупки его было как раз желание получить читалку с дополнительными бонусами. Ничуть не жалею о своём выборе. Читать на нём удобно, все нужные форматы поддерживаются (в читалках меня часто не устраивало отсутствие поддержки формата djvu), не говоря уж о наличии цветного экрана.
Постоянно носить с собой несколько книжек или статей тяжело, а на iPad-е они всегда с собой. В этом году, например, я ходил в аспирантуре на английский и философию, и там он мне очень пригодился.

Быстрый доступ к браузеру, почте, заметкам, календарю и т.д.
Тут выигрыш именно в быстроте  в отличие от ноутбука, который полминуты будет "просыпаться" и потом ещё может тормозить из-за фоновых процессов, на iPad-е можно за секунды зайти на любой сайт или проверить почту. Как на телефоне, только удобнее. Конечно, какие-нибудь хитрые действия на нём делать уже неудобно, но, например, ответить на письмо вполне можно.

Новости
Не так давно стал читать Twitter и Google Reader только с iPad-а. Полностью на него пересесть мне помогли, во-первых, официальный клиент Twitter, во-вторых, приложение Flipboard. С первым твиттер стало читать намного удобнее. Второй для меня сравним с web-интерфейсом Google Reader, в чём-то хуже, в чём-то красивее. И в обоих приложениях есть интеграция с Instapaper на случай, если захочется отложить чтение новости до более удобного времени. На компьютере же я теперь могу заниматься делом, не отвлекаясь,  рука не тянется всё время открыть в браузере эти сайты.

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

Игры
Я не большой любитель играть, но на iPad-е есть увлекательные и красивые игры, которые могут доставить удовольствие (Cut the Rope, например).

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

Об энергопотреблении
Заряд он держит достаточно долго. В моём режиме использования он держится примерно 3-4 дня. Если использовать не слишком много, то он и неделю продержится. Наверно, при большом желании его можно посадить за день, но мне это пока не удавалось. Преимущество перед ноутбуками и другими планшетами налицо. Читалки держатся дольше из-за технологии электронных чернил, но это едва ли можно считать недостатком iPad-а  в течении трёх дней всегда можно где-нибудь найти розетку (в поход его всё равно жалко брать).

Про Android
iPad у меня появился почти одновременно с телефоном на Android. Первое впечатление было в пользу последнего  функций, вроде, больше, открытая файловая система, виджеты на главном экране, в Android Market больше бесплатных приложений. Сейчас же моё мнение поменялось на противоположное  удобство и надёжность (и большее время работы) iPad-а затмевают плюсы Android-а. И интеграция с гугловскими сервисами в iOS, кажется, ничуть не хуже. Скорее всего, следующим моим телефоном станет iPhone. Единственное, в плане удобства, iPad/iPhone проигрывают отсутствием джойстика, который очень помогает при наборе текста возможностью легко переместить курсор.

Вывод
В общем, конечно, iPad стоит в первую очередь воспринимать именно как игрушку, дорогую качественную игрушку. На нём можно много всего делать с удобством, но для работы его вряд ли удастся эффективно использовать (хотя бы по причине отсутствия клавиатуры и мышки). Наличие приложений для Remote Desktop тут не помогает.
Отсутствие открытой файловой системы в нём можно и не замечать, если установить Dropbox и в качестве бонусов получить возможность быстро перекачивать на него файлы и открывать многие форматы.

Sunday, November 29, 2009

Инвайты на Google Wave

Есть 30 инвайтов. Могу раздать знакомым. Кто-нибудь хочет?

Wednesday, March 18, 2009

Супер-задача про узников

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

Итак задача:

Есть бесконечно много узников (счётное число), пронумерованных натуральными числами. Каждый узник знает все номера, в том числе свой. Узники умеют бесконечно быстро думать, и у них бесконечно много памяти. Сначала у них есть время на обсуждение алгоритма.
Их выстраивают по порядку, так что первый смотрит в спину второго, второй в спину третьего и т.д. На них одновременно надевают колпаки двух цветов. Каждый узник видит, какие колпаки надеты на узниках с большими номерами (первый видит все колпаки, кроме своего, второй — все, кроме своего и первого и т.д.). Никакой информацией они уже не обмениваются. Дальше каждый из них должен одновременно со всеми сказать, какой на нём колпак. Кто не угадает — того расстреливают. Как сделать так, чтобы лишь конечное число узников расстреляли?

Tuesday, August 5, 2008

WYSIWYG

Всё-таки принцип WYSIWYG — это хорошо. Сейчас, просматривая набираемую мной статью (в dvi), нашёл место, которое нужно исправить. Так ведь банально лень лезть в tex-файл, искать нужное место там и исправлять его. А был бы WYSIWYG-редактор, это можно было бы сделать в одно действие.
Да и в процессе набора статьи чувствую, что вся эта последовательность действий (набор — компиляция — Alt+Tab — просмотр) утомляет.