Search
Write a publication
Pull to refresh
0
Пётр Жалыбин @papagenoread⁠-⁠only

User

Send message

Обзор наиболее интересных материалов по анализу данных и машинному обучению №3 (обзор онлайн курсов)

Reading time7 min
Views27K

Данный выпуск обзора наиболее интересных материалов по анализу данных и машинному обучению полностью посвящен онлайн-курсам по тематике Data Science. В прошлом выпуске был представлен список онлайн-курсов, стартующих в ближайшее время. В данном выпуске я постарался собрать наиболее интересные онлайн-курсы по теме анализа данных. Стоит отметить, что некоторые курсы уже закончились, но у большинства таких курсов можно посмотреть архив всех учебных материалов.
Начинается обзор с набора курсов от Johns Hopkins University на Coursera, которые объединены в одной специализации «Data Science Specialization», поэтому имеет смысл рассмотреть их отдельно от остальных курсов. Это 9 официальных курсов специализации и два дополнительных Mathematical Biostatistics Boot Camp 1 и 2, которые официально не входят в специализацию. Важно отметить, что весь набор данных курсов регулярно начинается заново и в общем-то можно достаточно гибко построить свой график продвижения по специализации. Большинство курсов длятся 4 недели. Язык R является основным языком программирования в данном наборе курсов. Далее идет список курсов из специализации Data Science от Johns Hopkins University:
Читать дальше →

Использование разделяемой памяти в Java и off-heap кеширование

Reading time6 min
Views60K
На прошлой неделе состоялся успешный эксперимент по запуску нового решения для download-сервиса. Один достаточно скромный сервер (2 x Intel Xeon E5620, 64 GB RAM) под управлением Java-приложения собственной разработки принял на себя нагрузку восьми Tomcat'ов, обслуживая более 70 тысяч HTTP-запросов в секунду общей пропускной способностью 3000 Mb/s. Таким образом, весь трафик Одноклассников, связанный с пользовательскими смайликами, обрабатывался одним сервером.

Вполне естественно, что высокие нагрузки требовали нестандартных решений. В цикле статей о разработке высоконагруженного сервера на Java я расскажу о проблемах, с которыми нам пришлось столкнуться, и о том, как мы их преодолели. Сегодня речь пойдет о кешировании изображений вне Java Heap и об использовании Shared Memory в Java.
Читать дальше →

Беззнаковая арифметика в Java

Reading time5 min
Views95K
Как известно, в Java нет беззнаковых типов. Если в Си вы могли написать unsigned int (char, long), то в Java так не получится. Однако нередко возникает необходимость в выполнении арифметических операций именно с числами без знака. На первый взгляд кажется, что беззнаковые типы в принципе-то и не особо нужны (подумаешь, MaxInt для чисел со знаком меньше в два раза, если нужны числа больше, я просто возьму long и далее BigInteger). Но основное различие на самом деле не в том, сколько различных неотрицательных чисел можно положить в signed или unsigned int, а в том, как над ними производятся арифметические операции и сравнения. Если вы работаете с бинарными протоколами или с двоичной арифметикой, где важен каждый используемый бит, нужно уметь выполнять все основные операции в беззнаковом режиме. Рассмотрим эти операции по порядку:

Преобразование byte в short (int, long)


Обычный каст (int) myByte выполнит расширение до 32 бит со знаком — это означает, что если старший бит байта был установлен в 1, то результатом будет то же самое отрицательное число, но записанное в 32-битном формате:

0xff -> 0xffffffff (-1)

Часто это не то, чего бы мы хотели. Для того, чтобы выполнить расширение до 32 бит без знака и получить 0x000000ff, в Java можно записать:

int myInt = myByte & 0xff;
short myShort = myByte & 0xff;

Сравнение без учёта знака


Для беззнакового сравнения есть лаконичная формула:

int compareUnsigned(int a, int b) {
    return Integer.compare( a ^ 0x80000000, b ^ 0x80000000 );
}

Для byte, short и long, соответственно, константы будут 0x80, 0x8000 и 0x8000000000000000L.
Читать дальше →

Дайджест статей по анализу данных №2 (26.05.2014 — 8.06.2014)

Reading time5 min
Views20K
Добрый день, уважаемые читатели.
Представляю вашему вниманию дайджест новостей и полезных материалов из мира анализа данных. Предыдущий дайджест пользовался большой популярностью и поэтому я решил сделать их регулярными. Периодичность таких подборок будет 1 раз в 2 недели.

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

Читать дальше →

А что действительно скрывают нейронные сети?

Reading time7 min
Views56K
Несколько дней назад на хабре вышла статья Что скрывают нейронные сети?. Она является вольным пересказом английской статьи The Flaw Lurking In Every Deep Neural Net, а та в свою очередь рассказывает о конкретном исследовании некоторых свойств нейронных сетей (Интригующие свойства нейронных сетей).

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

Дайджест статей по анализу данных и big data

Reading time2 min
Views33K
Частенько читаю Хабр и заметил что в последнее время появились Дайджесты новостей по многим тематикам, таким как веб-разработка на php, разработка на Python, мобильные приложения, но не встретил ни одного подборки по популярному сейчас направлению, а именно анализу данных и big data.

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

Кого заинтересовала данная тема прошу подкат. А также жду замечаний, пожеланий и дополнений, буду очень рад обратной связи.

Читать дальше →

Майское хабрасоревнование: делаем свой ГЛОНАСС

Reading time5 min
Views29K
Шла холодная зима 2063 года… Вы, сидя в избушке в сибирских степях, попивая горячий чай, из ностальгических побуждений достали свой любимый раритетный смартфон образца 2014 года с поддержкой ГЛОНАСС — однако он почему-то не нашел ни одного спутника. Вдруг тишину разрезал пронзительный звонок красного правительственного телефона — голос на той стороне затараторил: оказалось все спутники ГЛОНАСС вышли из строя из-за неизвестного сбоя… (ТЗЧ? Закладки? Кто теперь разберет....)

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

Анализ утечек PermGen памяти в Java

Reading time7 min
Views58K

О чем речь?


Кто занимался веб-разработкой на Java, наверняка сталкивался с такой проблемой как java.lang.OutOfMemoryError: PermGen space. Возникает она, как правило, после перезапуска веб-приложения внутри сервера без перезапуска самого сервера. Перезапуск веб-приложения без перезапуска сервера может понадобиться в процессе разработки, чтобы не ждать лишнее время запуска самого сервера. Если у вас задеплоено несколько веб-приложений, перезапуск всего сервера может быть гораздо дольше перезапуска одного веб-приложения. Или же весь сервер просто нельзя перезапускать, так как другие веб-приложения используются. Первое решение, которое приходит на ум – увеличить максимальный объем PermGen памяти, доступный JVM (сделать это можно опцией -XX:MaxPermSize), но это лишь отсрочит падение, после нескольких перезапусков вы снова получите OutOfMemoryError. Хорошо было бы иметь возможность сколько угодно раз перезапускать и передеплоивать веб-приложение на работающем сервере. О том, как побороть PermGen, и пойдет дальнейший разговор.

Читать дальше →

Прогресс в разработке нейросетей для машинного обучения

Reading time3 min
Views44K
В пятничном номере NY Times опубликована статья о значительных успехах, который демонстрируют в последние годы разработчики алгоритмов для самообучаемых нейросетей. В глубоких структурах есть несколько скрытых слоёв, которые традиционно тяжело было обучать. Но всё изменилось с использованием стека из машин Больцмана (RBM) для предварительной тренировки. После этого можно удобно перенастраивать веса, применяя метод обратного распространения ошибки (backpropagation). Плюс появление быстрых GPU — всё это привело к существенному прогрессу, который мы наблюдаем в последние годы.

Сами разработчики не делают громких заявлений, чтобы не поднимать ажиотаж вокруг нейросетей — такой, как в 1960-е годы поднялся вокруг кибернетики. Тем не менее, можно говорить о возрождении интереса к исследованиям в этой области.
Читать дальше →

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

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

Читать дальше →

Регуляризация в ограниченной машине Больцмана, эксперимент

Reading time6 min
Views20K
Привет. В этом посте мы проведем эксперимент, в котором протестируем два типа регуляризации в ограниченной машине Больцмана. Как оказалось, RBM очень чувствительна к параметрам модели, таким как момент и локальное поле нейрона (более подробно обо всех параметрах можно прочитать в практическом руководстве в RBM Джеффри Хинтона). Но мне для полной картины и для получения шаблонов наподобие таких вот, не хватало еще одного параметра — регуляризации. К ограниченным машинам Больцмана можно относиться и как к разновидности сети Маркова, и как к очередной нейроной сети, но если копнуть глубже, то будет видна аналогия и со зрением. Подобно первичной зрительной коре, получающей информацию от сетчатки через зрительный нерв (да простят меня биологи за такое упрощение), RBM ищет простые шаблоны во входном изображении. На этом аналогия не заканчивается, если очень малые и нулевые веса интерпретировать как отсутствие веса, то мы получим, что каждый скрытый нейрон RBM формирует некоторое рецептивное поле, а сформированная из обученных RBM глубокая сеть формирует из простых образов более комплексные признаки; чем-то подобным, в принципе, и занимается зрительная кора головного мозга, правда, вероятно, как то посложнее =)

Читать дальше →

Новый набор в Школу анализа данных Яндекса и разбор вступительного экзамена

Reading time7 min
Views80K
16 апреля открылся новый набор в Школу анализа данных Яндекса, который продлится до 15 мая. В этом посте я хочу рассказать вам, как сложилась судьба тех, кто уже закончил ШАД, а также впервые публично разберу все задания нашего письменного вступительного экзамена. Как всегда, желающим надо будет заполнить анкету и выполнить задание на сайте Школы, сдать письменный экзамен и пройти собеседование.

Кстати, если у вас есть знакомые или их дети, которым рано идти в ШАД, но которые подают надежды, расскажите им о факультете Computer Science, который открывается в этом году в Высшей школе экономики при участии Яндекса. Во многом он будет расти из Школы анализа данных, но в неё мы принимаем студентов и выпускников. Поэтому если вы абитуриент, то приходите 27 апреля на презентацию этого факультета, где ректор НИУ ВШЭ Ярослав Кузьминов и сооснователь Яндекса Аркадий Волож расскажут о нём все подробности. Мы всех приглашаем.

Истории: одна о гуглере и одна — о сотруднике Яндекса

С момента создания ШАД её закончили 260 специалистов в области computer science. Мы попросили двух выпускников Школы рассказать о том, что им дало обучение в ней, и дать несколько советов тем, кто решил поступать.

Андрей Петров, разработчик в мюнхенском офисе Google.
imageКогда я был студентом, у меня сложилась иллюзия, что программировать я уже умею, а Computer Science — это просто. Действительно, ведь я создавал сайты с динамическим контентом, писал игры, получал призы на олимпиадах и без проблем сдавал экзамены в университете. Однако это было лишь хобби, а я был любителем. Чтобы начать путь профессионала, я пошёл в школу Яндекса.
Читать дальше →

Предобучение нейронной сети с использованием ограниченной машины Больцмана

Reading time9 min
Views55K
Привет. Как и планировалось в прошлом посте об ограниченных машинах Больцмана, в этом будет рассмотрено применение RBM для предобучения обыкновенной многослойной сети прямого распространения. Такая сеть обычно обучается алгоритмом обратного распространения ошибки, который зависит от многих параметров, и пока не существует точного алгоритма выбора этих самых параметров обучения, как и оптимальной архитектуры сети. Разработано множество эвристик, позволяющих сократить пространство поиска, а также методик оценки качества выбранных параметров (например, кросс-валидация). Мало того, оказывается, и сам алгоритм обратного распространения не так уж хорош. Хотя Румельхарт, Хинтон и Вильямс показали сходимость алгоритма обратного распространения (тут еще более математическое доказательство сходимости), но есть небольшой нюанс: алгоритм сходится при бесконечно малых изменениях весов (т.е. при скорости обучения, стремящейся к нулю). И даже это не все. Как правило, этим алгоритмом обучают небольшие сети с одним или двумя скрытыми слоями из-за того, что эффект обучения не доходит до дальних слоев. Далее мы поговорим подробнее о том, почему же не доходит, и применим технику инициализации весов с помощью обученной RBM, которую разработал Джеффри Хинтон.

Читать дальше →

JSR 133 (Java Memory Model) FAQ (перевод)

Reading time25 min
Views153K
Добрый день.
В рамках набора на курс «Multicore programming in Java» я делаю серию переводов классических статей по многопоточности в Java. Всякое изучение многопоточности должно начинаться с введения в модель памяти Java (New JMM), основным источником от авторов модели является «The Java Memory Model» home page, где для старта предлагается ознакомится с JSR 133 (Java Memory Model) FAQ. Вот с перевода этой статьи я и решил начать серию.
Я позволил себе несколько вставок «от себя», которые, по моему мнению, проясняют ситуацию.
Я являюсь специалистом по Java и многопоточности, а не филологом или переводчиком, посему допускаю определенные вольности или переформулировки при переводе. В случае, если Вы предложите лучший вариант — с удовольствием сделаю правку.
Этот статья также подходит в качестве учебного материала к лекции «Лекция #5.2: JMM (volatile, final, synchronized)».

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Ну и да, приходите учиться ко мне!


JSR 133 (Java Memory Model) FAQ


Jeremy Manson и Brian Goetz, февраль 2004

Содержание:
Что такое модель памяти, в конце концов?
Другие языки, такие как C++, имеют модель памяти?
Что такое JSR 133?
Что подразумевается под «переупорядочением» (reordering)?
Что было не так со старой моделью памяти?
Что вы подразумеваете под «некорректно синхронизированы»?
Что делает синхронизация?
Как может случиться, что финальная поля меняют значения?
How do final fields work under the new JMM?
Что делает volatile?
Решила ли новая модель памяти «double-checked locking» проблему?
Что если я пишу виртуальную машину?
Почему я должен беспокоиться?
Читать дальше →

Каким образом вы узнали то, что вы знаете?

Reading time5 min
Views2.6K
Я получил это электронное письмо сегодня от Марка…

Привет Джо,
Во-первых я хотел бы поблагодарить вас за всю информацию, которую вы опубликовали на asp.net. Я почерпнул оттуда очень многое. Так же я слежу за вашими твиттами и меня заинтересовало, с чего вы начинали, как накапливали опыт для того, что бы стать Senior Program Manager в Microsoft. Если у вас будет возможность ответьте мне, я бы был очень благодарен.
Заранее спасибо,
Марк


Я получаю сообщения, подобные этому, один раз в несколько недель и вот наконец-то, я решил ответить всем, кому это интересно.

Читать дальше →

1000+ часов видео по Java на русском

Reading time7 min
Views1.3M
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
  1. Java Core
  2. Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
  3. Multicore programming in Java.


Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

В следствии этого у меня скопилось значительно количество ссылок на видео на русском языке по Java как моего авторства, так и моих коллег.

(GolovachCourses.com)


Здесь собраны несколько вариантов записи моего курса Java Core.
Модуль #1 (Procedural Java):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #1, #2, #3, #4
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3, #4
Набор октябрь 2012: #1, #2, #3, #4.
Читать дальше →

Песнь о Java

Reading time1 min
Views15K
Привет, Хабр!

Хорошо когда есть друзья, которые отвлекают тебя от рутинных дел и толкают в море фана и трэша. Иногда рождается такое. Это клип, который мы сделали для сообщества java разработчиков jug.ru.


музыка Влад Горелов
производство — студия Лекториум

А теперь серьёзно

Обзор докладов конференции JPoint 2014

Reading time7 min
Views9.2K
Всем привет!

Как знают многие джавахабровцы, через 10 дней в Москве состоится конференция JPoint, которая соберёт более 800 Java-разработчиков из России и ближнего зарубежья. Все доклады — на русском языке. Сначала мы думали, как обычно, разбавить конференцию несколькими англоязычными докладчиками, но в итоге решили от этой идеи отказаться, ибо и без того нам удалось собрать экспертов почти по всем интересным нам областям.

FAQ по конференции я уже публиковал на хабре полтора месяца назад. Сейчас — самое время пройтись по докладам и мастер-классам конференции и посмотреть, что же нас ожидает.

Все доклады конференции можно разбить на три категории:
  • Прикладной
  • Из первых рук
  • Взрыв мозга




18 докладов, 5 тренингов и голосовалка

Программа курса «Multicore programming in Java»

Reading time3 min
Views53K
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией. Мы занимаемся онлайн курсами программирования.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Хотелось бы услышать мнение сообщества по поводу
  1. программы курса «Multicore programming in Java»
  2. литературы к курсу

Кратко о курсе: стартует 28 апреля (в связи с майскими праздниками старт перенесен на 15 мая), ведется в режиме вебинаров дважды в неделю в 19.00-22.00, состоит из 16 лекций по 2.5 часа (=40 лекционных часов), к каждой лекции дается расширенное задание, рассчитан на Java Junior/Middle.
Читать дальше →

Новое в Java 8

Reading time15 min
Views515K
Java еще не умерла — и люди начинают это понимать.

Добро пожаловать в ведение по Java 8. Этот материал шаг за шагом познакомит вас со всеми новыми фичами языка. Вы научитесь использовать методы интерфейсов по умолчанию (default interface methods), лямбда-выражения (lambda expressions), ссылки на методы (method references) и повторяемые аннотации (repeatable annotations). Все это будет сопровождаться короткими и простыми примерами кода. В конце статьи вы познакомитесь с наиболее свежими изменениями в API, касающихся потоков, функциональных интерфейсов, расширений для ассоциативных массивов, а также с изменениями в API работы с датами.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity