Математика и секс
Апрель 20th, 2012

Coursera и Udacity

Продолжаю кстати слушать онлайновые курсы по Computer Science. С момента как я в последний раз о них писал, они здорово видоизменились.

Во-первых, Себастьян Тран и компания запустили собственный проект Udacity. На самом деле этот проект несколько пока разочаровывает. Я прослушал (на самом деле прокрутил довольно быстро, выполнив всего пару заданий) курсы «Building a serach engine» (CS101) и «Programming a robotic car» (CS373, его просмотрел не до конца), и впечатление сложилось негативное.

CS101 оказался на редкость примитивным и мне показалось, что слишком уж примитивны он будет даже для новичка. То есть посоветовать никому я этот курс не могу на самом деле, хотя конечно мне сложно судить — сам с программированием я познакомился много лет назад, и рассуждать что лучше для новичка, не имея преподавательской практики, я конечно не вправе. Но то что курс не тянет на «top university level», как они себя позиционируют — это по-моему очевидный факт даже для CS101. Максимум — уровень среднеобразовательной школы (единственный плюс — изучается Python, а не какой-нибудь Basic или Pascal, как в России).

Домашние задания даже нельзя назвать тривиальными. Пяток программ типа «print 2+3» за неделю — это реально смешно. То есть никакой наработки практических навыков программирования курс не дает, для меня он оказался 100% бесполезным, что странно даже для CS101 — обычно лекторы в любой курс вставляют хотя бы какие-то факультативные факты, которые и для опытного разработчика оказываются новыми. Тут не было вообще ничего.

Короче я не доволен.

CS373 был чуть лучше, но тоже не особо. Задания крайне примитивные и часто вообще не на CS, а на какие-то отвлеченные вещи. Например, домашнее задание на реализацию фильтра Кальмана сводилось к тому, чтобы догадаться о размерности перемножаемых матриц, а смысл самих матриц даже в общих чертах не объяснялся — это полностью убило мою мотивацию слушать лекции Себастьяна далее. Никакой математики почти не рассматривается, а там где она вдруг появляется, она быстро пробегается мимо как что-то очень сложное, а затем опять разжевываются тривиальные вещи.

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

А вот Coursera произвела совершенно противоположное впечатление. Во-первых, к проекту присоединился целый ряд университетов, и помимо Стэнфорда свои курсы публикуют так же Princeton University, University of Michigan, Universoty of California, Berkley и University of  Pennsylvania. Сам состав курсов тоже значительно расширился: теперь это не только Computer Science и Enterpreneurship, но и медицина, история, социология, экономика, какая-то даже математика.

Из всех курсов, увы, я оказался спобен заниматься только Natural Language Processing. Качаю и остальные, конечно, но выполнять задания не успеваю — восьмичасовой рабочий день банально не позволяет слушать большее количество лекций. Начинал слушать Probabilistic Graphical Models, но не успевал и сконцентрировался на одном только курсе.

Вот эти курсы действительно оказались близки к «top university level». Во-первых, сам материал актуальный, интересный и не тривиальный. Курс составлен очень качественно и продуманно. Но помимо лекций, важны еще и домашние задания.

Одно из последних домашних заданий требовало находить в тексте имена людей. Это на самом деле нетривиальная задача: многие слова имеют двоякий смысл, например «Victoria» может быть именем девушки, а может означать победу, и если это слово стоит в начале предложения, то проверка того имя это или нет сильно затруднено. Так же могут использоваться клички и псевдонимы, которые тоже надо вычленять из текста как имена собственные.

В итоге используется вероятностная модель текста, которая для каждого слова проверяет набор признаков, и сравнивает различные варианты классификаций этого слова по данным признакам с разными весами. Весы подбираются эмпиричеки, в ходе чего решается оптимизационная задача — целевая функция в этой задаче имеет порядка 250000 параметров (плюс-минус сотня тысяч в зависимости от того каких признаков и сколько вы нагенерили).

Мне это сразу напомнило курс методов оптимизации в МИФИ. Там мы градиентным методом поиска искали экстремум функции $latex f(x, y) = x^2 + y^2$. Причем я не шучу — это на полном серьезе называлось словом «лабораторная работа». В других институтах насколько я знаю ситуация с контентом курсов хоть и лучше, но тоже фатальна.

Курс NLP хорош тем, что дает реальные практические навыки в задачах, приближенных к реальным условиям (в отличие от курса CS101 Udacity, например, где мне плакать хотелось, особенно учитывая то что я когда-то немного читал учебник по Information Retrieval), и дает почувствовать масштаб реальных задач.

Еще полезный аспект — реальное применение каких-то математических концепций в Computer Science. Математика там конечно исключительно примитивная (логарифмы, вероятность, производная), но все равно забавно как применение какой-нибудь базовой теории вероятностей порой может кардинально повысить точность в сравнении с чем-нибудь совсем простым и очевидным. Если бы подобные курсы читались в технических ВУЗах, то ни у кого бы не возникало вопроса «а зачем мне это надо».

Ну и сами задания по программированию интересны. Я как-то писал, что в большинстве случаев довольно глупо требовать от учеников решения задачек — вместо этого надо выполнять проекты. Курс NLP почти целиком следует этому подходу (следовать ему целиком — сложная задача разработчика курса, и вероятно не всегда решаемая). В половине Programming Assignments не существует верного ответа, и вы можете рассчитывать лишь на некоторую точность работы вашей модели, выраженную в процентах (вернее, там почти всегда используется F1-мера, но это уже детали). У вас не получится догадаться какое должно быть решение и у вас не получится нащупать какой-то один заранее запланированный путь — вы именно сидите и думаете над реальной задачей, где решение не определено, а ваш балл получается не за ошибки в решении, а за его реальную применимость в жизни. И это очень круто (на самом деле существование решения конечно предполагается, и вам оно примерно известно из лекций, но и собственная творческая работа там довольно обширна).

Кстати, занятно, что многие из тех алгоритмов, которые рассматриваются в курсе, были разработаны еще годах в шестидесятых, но в те времена они не имели применений из-за отсутствия необходимых мощностей и объемов текстов в электронном виде. Сейчас это направление становится актуальным, и если предположить, что вычислительные мощности будут расти, эти направления скоро станут крайне актуальными и востребованными, и я например смогу рубить больше бабла. И это тоже хорошо.

Но это в общем-то главным образом про NLP. Остальные курсы я смотрел лишь мельком — там не везде есть Programming Assignments, но лекции тем не менее производят приятное впечатление. Так что всем рекомендую.

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

Но собственно все это я написал, чтобы как-то прорекламировать. Всем настоятельно рекомендую. Coursera — это пожалуй наиболее полезный и интересный курс, который мне до сих пор приходилось слушать. Очень жалею, что не успеваю больше.

P.S. Очень извиняюсь перед всеми, кому не успеваю отвечать на почту или ВКонтакте. Меня жутко раздражают люди, игнорирующие письма, я это считаю довольно высокомерным и не приятным поведением, но я сам теперь стал таким. Пишут мне много, и я банально не успеваюсь, особенно на фоне того

35 комментариев »

  1. Скажи, как ты видишь перед собой перспективы развития в сторону академической CS? Не староват ли еще для студенческой скамьи?

    Comment by Ursus Russus — 20.04.2012 @ 17:46
  2. @ Ursus Russus:
    Сложно сказать. Академическая CS — дисциплина средней сложности на самом деле, по сравнению с физикой или математикой, поэтому вполне можно заняться я думаю.

    Comment by Хеллер — 20.04.2012 @ 17:50
  3. Я скорее о том — как, зачем, и что потом с этим делать.
    Скажем, это почти однозначно значит уехать на какое-то время к буржуям — т.к. этой дисциплину у нас фактически нет. (Или есть?)
    Второе — на какую программу, магистерскую, PhD?
    Ну и главное — что потом? Заниматься наукой на самом деле, или, как водится у студентов КалТеха или MIT, запустить к четвёртому курсу стартап на сто миллионов? :)

    Comment by Ursus Russus — 20.04.2012 @ 17:59
  4. @ Ursus Russus:
    В России насколько я знаю Computer Science действительно нет, так что только за бугор. Магистерская программа мало интересует, потому что не подразумевает серьезной исследовательской работы все же.

    Бизнесом заниматься мне не хочется — это не мое, а вот чистой наукой было бы интересно.

    Comment by Хеллер — 20.04.2012 @ 18:12
  5. Вот отсюда и вопрос — не староват ли ты ещё для чистой науки? Про физику сейчас говорят — если до тридцати ничего не сделал, аллес швах.

    Comment by Ursus Russus — 20.04.2012 @ 18:31
  6. CS, конечно, не физика, но всё же.

    Comment by Ursus Russus — 20.04.2012 @ 18:42
  7. @ Ursus Russus:
    Ну «ничего не сделал» — это очень относительно. 99% людей с phD ничего не сделали, но по крайней мере могут получать довольно интересные научные места.

    Comment by Хеллер — 20.04.2012 @ 18:45
  8. Это да, теоретически всё как я сказал, а практически людей вроде Брайана Грина или Митио Каку — единицы, а студней на ПХД сидит сотни тысяч, если не миллионы.

    Comment by Ursus Russus — 20.04.2012 @ 18:52
  9. @ Ursus Russus:
    Ты так говоришь, как будто сам какой-то значительный вклад в науку внёс.
    Про физику так говорят, скорее всего, в том плане, что если ты за 13 лет после поступления в ВУЗ так нихуя и не сделал, то, очевидно, уже и не сделаешь.
    А CS вполне себе можно заниматься в России. Уезжают чаще всего ради возможности работать под крылом у какого-нибудь гуру в своей области. Ну, это не считая тех, кому лишь бы «свалить из сраной рашки».

    Comment by Anonymous — 20.04.2012 @ 19:47
  10. @ Anonymous:
    Так без работы под крылом чьим-то нормально CS и не займешься. Мало того, что сложно самому постигать и разрабатывать науку, если тебя не направляет человек, разбирающийся хорошо в передовых методах, так для многих задач требуется доступ к большим университетским базам данных и/или компьютерным кластерам (многая статистика в NLP так и делается). В России с этим никак вообще.

    Comment by Хеллер — 20.04.2012 @ 20:19
  11. Привет!
    (я нашла твой блог, когда искала информацию о НМУ, теперь читаю его иногда)

    Я бы хотела вставить пару слов в защиту udacity. Я прослушала оба курса (правда, в CS101 я больше задачки решала, сам он действительно очень прост и скучен). А вот CS373 хорош, на мой взгляд. И алгоритмы там разбираются вдумчиво, и общую картину дает. Хочу теперь сделать-таки свою самоездящую машинку (вообще, начала слушать этот курс, т.к. до этого со знакомым хотели сделать беспилотный вертолет, но знаний не хватало. Он летал, но периодически падал). Я этим курсом очень довольна.

    Ursus Russus:
    Посмотри Питерский университет:
    http://mit.spbau.ru/faq
    Его очень хвалят, я бы туда поступала (но муж, все дела..).

    Еще есть магистерские программы по cs в МФТИ:
    http://cs.mipt.ru/index.php?id=33
    и МГУ:
    http://graphics.cs.msu.ru/ru ( у них я смотрела лекции по компьютерному зрению, мне понравились )
    А на физтехе еще есть кафедра при ABBYY, кстати, у них в ближайшие дни проводится олимпиада:
    http://habrahabr.ru/company/abbyy/blog/142151/#habracut
    И вот:
    http://www.speechpro.ru/career/learn-itmo

    И еще есть ШАД, школа анализа данных от yandex. Очень клевая, буду туда поступать летом.
    http://shad.yandex.ru/
    Там анализ данных и биоинформатика.

    Comment by Elena — 20.04.2012 @ 20:23
  12. @ Хеллер:
    Конкретно про NLP не знаю, но, полагаю, в ABBY, Яндексе или Google вполне можно найти себе и научрука, и интересную работу.
    Про базы довольно смешной аргумент — договориться о доступе к ним при наличии работы не должно быть проблемой. Или я что-то упускаю?

    Comment by Anonymous — 20.04.2012 @ 20:52
  13. @ Anonymous:
    В России весь CS обслуживает интересы отдельных компаний — ШАД, кафедры ABBYY в МФТИ, лаборатории Miscrosoft, etc. Это какая-то очень коммерческая наука. Это всё равно, что работать в R&D этих компаний.

    Comment by measure_0 — 20.04.2012 @ 21:25
  14. Да, кстати, никакого другого CS, который нужен этим компаниям (куски ML, NLP, IR) в России нет. Невозможно, например, заниматься семантикой или теорией сложности. Ну и смысл, конечно, не столько в научруке, сколько в энвайронменте, который дает университет: куча других студентов, специалистов из различных областей, воркшопов и конференций.

    Comment by measure_0 — 20.04.2012 @ 21:37
  15. *кроме того, который нужен

    Comment by measure_0 — 20.04.2012 @ 21:37
  16. measure_0 написал:

    Это какая-то очень коммерческая наука. Это всё равно, что работать в R&D этих компаний.

    Так это же самое интересное, не? Обычно наоборот ноют, если «область коммерчески не востребована в России».
    measure_0 написал:

    Невозможно, например, заниматься семантикой или теорией сложности.

    ИСП РАН, ВЦ РАН, Яндекс, Parallels? Это не говоря уже о том, что никто не мешает заниматься по произвольному направлению CS в любом техническом ВУЗе, списываясь по ходу дела с авторами работ по данной тематике.
    Про атмосферу, конечно, не поспоришь — но несколько странно об этом заговаривать, когда до российского-то окружения ещё не дорос.

    Comment by Anonymous — 21.04.2012 @ 00:36
  17. @ Anonymous:
    Parallels насколько я знаю в России не занимаются наукой — тут кодеры только сидят. Насчет ИСП РАН и ВЦ РАН ничего не знаю. Яндекс насколько мне известно вполне себе укомплектован научными кадрами, и заинтересованы они только в талантливых программистах. Там никто не будет тебя учить или слушать твоего мнения по каким-то научным вопросам. Могу ошибаться, но это то что слышал.

    Про любой технический ВУЗ вы загнули — в России сколько-либо адекватных специалистов крайне сложно найти. В МИФИ ни одного не видел, например, за все время учебы.

    Comment by Хеллер — 21.04.2012 @ 01:00
  18. >>> Так это же самое интересное, не? Обычно наоборот ноют, если «область коммерчески не востребована в России».

    Обычно ноют, что это вообще какая-то бессмысленная фигня :)
    Я же говорю, что это все равно, что работать в R&D. То есть, не то, чтобы плохо, но и резко отличается от работы в нормальном университете.

    >>> ИСП РАН, ВЦ РАН, Яндекс, Parallels

    Очень сомневаюсь, что там есть в достаточном для научной деятельности специалисты должного уровня.

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

    Comment by measure_0 — 21.04.2012 @ 09:04
  19. @ Хеллер:
    Кстати, а как тебе старый CS101, который по structure and interpretation of computer programs?

    Comment by measure_0 — 21.04.2012 @ 12:35
  20. @ measure_0:
    SICP очень крутой, правда я не смотрел самих лекций, а только читал книжку. Но вот там действительно я получил удовольствие.

    Comment by Хеллер — 21.04.2012 @ 21:11
  21. @ measure_0:
    Ты кстати еще в Москве? Так и не договорились пересечься, а было бы не плохо.

    Comment by Хеллер — 21.04.2012 @ 21:11
  22. @ Хеллер:
    Да, я еще тут. Я теперь в Москве надолго :)
    Думаю на следующей неделе получится. Я напишу ближе к.

    Comment by measure_0 — 22.04.2012 @ 12:51
  23. Роман, я так понял, ты нашёл себе деву для деторождения и эмигрировать не собираешься?
    И в НМУ не ходишь, потому что некогда, а работу фултайм менять на другую не хочешь ради науки?

    Comment by Сергей — 25.04.2012 @ 19:17
  24. @ Сергей:
    С девой все не так радужно, увы. Насчет эмиграции планы имеются, но на данный момент да, все плохо в этом направлении. В институты не берут, времени ни на что нет. Работу менять ни на что другое да, не хочу.

    Comment by Хеллер — 25.04.2012 @ 19:54
  25. @ Хеллер:

    Куда конкретно и почему не берут?

    Comment by Ursus Russus — 25.04.2012 @ 21:33
  26. Сведем к математике?
    Дано: получить образование плюс иметь котирующийся (желательно зарубежом?) сертификат или диплом.
    Мешает: 8-ми часовая занятость, связаннвя с потребностью зарабатывать деньги.
    Решение: открой свой ВУЗ, обучай студентов по математике так, чтобы их образование котировалось в т.ч. зарубежом, получай с них деньги за образование, чтобы хватало на жизнь, и выдавай свой сертификат по его окончании.
    А когда раскрутишься — все равно придется нанять препода по информатике, и он не удивится, что ректор-математик решил повысить свою квалификацию в прикладной к «родной» для себя дисциплине!

    Comment by vkahovsky — 10.05.2012 @ 00:40
  27. «В России насколько я знаю Computer Science действительно нет, так что только за бугор» — есть, 2404 называется, дают вполне достаточный общий алгоритмический базис.
    И вообще, я вам сейчас байку одну расскажу. Из жизни… Когда американцы собрались бомбить Милошевича, они думали: «if (пригрозить бомбежкой) than (он сдастся) or (у него не останется танков)». А Милошевич думал по-другому: «бомбежка — процесс не одномоментный, а растянутый по времени на недели и месяцы». Начал гонять танки по всей стране, и в результате не только сохранил 40% техники (достаточно, чтобы с ним считались), но еще и затянул компанию по состояния астрономической дороговизны доя противника!
    Смысл сей байки таков: рассуждая об образовании, вы думаете как будто по-английски, if-else. А надо мыслить по-славянски, в стиле «река течет».
    Качественное образование сегодня в России можно получить ровно в 2,5 вузах страны: МГУ, Бауманка, возможно еще МФТИ. А вот котируются дипломы уже минимум четырех вузов: есть еще МАИ (который с некоторых пор теперь — тоже университет). Т.о. диплом можно относительно ненапряжно получить в МАИ (причем не один, а сразу два, т.к. с 4-того курса институт предлагает второе параллельное экономическое образование), а необходимые знания — у конкретных преподавателей как там, так и где угодно еще. Например, если изучить математические работы по гиперкомплексной математике, то это сразу выводит на фронтир научной мысли в мире, причем непьющих ученых (которые бескорыстно все объяснят из чистого интереса теме и желания привлечь толкого сторонника) можно найти тут, в Москве. Достаточно только сходить на ближайший семинар Институти Гиперкомплексных систем (который проводится в симпатичном домике на природе, возле которого они выстроили… пирамиду для проверки расчетов).
    P.S. Sorry за опечатки: набиралось в темпе на айпаде.

    Comment by vkahovsky — 10.05.2012 @ 00:59
  28. Прохожу сейчас курсы и на Coursera и на Udacity.
    Вот только не понял, получу ли я сертификат по Udacity, когда закончу ?
    Курс то уже давно начался и уже как-бы сроки прошли.
    Может кто в курсе?

    Comment by Тэтчер — 17.09.2012 @ 18:38
  29. @ Тэтчер:
    Если с момента, когда я там в последний раз был, ничего не изменилось, то для получения сертификатов необходимо вовремя сдавать все курсы.

    Comment by Хеллер — 17.09.2012 @ 22:03
  30. @ Хеллер:
    Тоесть, если я начну проходить курс сейчас, сертификат не получу уже ?

    Comment by Тэтчер — 17.09.2012 @ 22:23
  31. @ Тэтчер:
    Нет. Но по идее они его должны перезапускать, почитайте на сайте. Coursera так и делает. Но вообще там ценнее не сертификат а то, чему они научить могут. Сертификаты их прямо скажем никому не нужны (во всяком случае Udacity).

    Comment by Хеллер — 17.09.2012 @ 22:28
  32. @ Хеллер:

    Спасибо за помощь.

    Comment by Тэтчер — 18.09.2012 @ 08:20
  33. интересно, а сейчас кто самый тру?
    https://www.quora.com/NovoEd-Can-you-please-list-all-MOOC-providers-like-Udacity-edX-Coursera-etc

    Comment by eugensk00 — 07.09.2016 @ 18:45
  34. @ eugensk00:
    Спасибо за ссылку! Не заметил сразу комменатрий, обязательно посмотрю. Честно говоря сам я лично ничего кроме edX, Udacity и Coursera и не знал. Расклад между этими тремя как я понимаю остался примерно тем же, разве что Coursera начала потихоньку портиться — новый интерфейс фактически убил форумы, сама организация контента менее удобная и меньше располагает к длительному кропотливому прохождению какого-то курса. Остальные посмотрю, ничего не могу сказать пока.

    Comment by Heller — 22.09.2016 @ 14:05
  35. @ Heller:
    Мне этих трех хватит до конца дней, плюс Udemy (с испанским и немецким). Каждый приколен по своему. Coursera конечно идёт первой, Райгородский на https://www.coursera.org/learn/modern-combinatorics — это супер, потом edX, с курсами MITx.

    Comment by Евгений — 11.07.2017 @ 12:52

RSS feed for comments on this post. TrackBack URI

Оставить комментарий

This work is licensed under GPL - 2009 | Powered by Wordpress using the theme aav1
SEO Powered by Platinum SEO from Techblissonline