Pull to refresh
9
0
Евгений Бовыкин @missingdays

Kotlin Developer

Send message

С помощью Python создаём математические анимации, как на канале 3Blue1Brown

Reading time 6 min
Views 30K

Вы наверняка когда-то испытывали трудности в понимании математических концепций алгоритмов машинного обучения и для лучшего понимания темы пользовались обучающим ресурсом 3Blue1Brown. 3Blue1Brown — известный математический YouTube-канал, который ведёт Грант Сандерсон. Многим нравится 3Blue1Brown за прекрасные объяснения Гранта и великолепные анимации.

21 мая стартует новый поток курса о математике для Data Science. Специально к его запуску мы делимся переводом, в котором автор решил рассказать, как делать анимации, подобные анимациям на канале 3Blue1Brown, чтобы вы могли иллюстрировать свои идеи и рассуждения о математике и не только.

Читать далее
Total votes 42: ↑42 and ↓0 +42
Comments 3

Работа с базами данных глазами разработчика

Level of difficulty Easy
Reading time 20 min
Views 12K

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

Написание SQL миграции → написание кода → тестирование → релиз → мониторинг.

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

Поскольку мы в компании работаем с PostgreSQL, а серверный код пишем на Java, то примеры будут основаны на этом стеке, хотя большинство идей не зависят от используемой БД и языка программирования.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 17

10 песен про IT: от Столлмана до исходников

Reading time 9 min
Views 17K


Мне интересны и IT, и музыка, поэтому я всегда обращал внимание на их пересечение: песни айтишников. Порой это пародии на известные хиты с переделанным текстом, порой — полностью оригинальные сочинения. Одни из них примечательны автором (самый известный — Ричард Столлман), другие форматом (самый нестандартный — пение кода).


Обычно такие песни несерьёзные, так что пятница — подходящий день для подборки из них. Но заодно это и повод разобраться: какими они вообще бывают и чем различаются?


Я не рассматривал случаи, когда компьютерную тематику затрагивали известные музыканты, никогда не работавшие в IT. Здесь только хардкор — песни, написанные теми, кто и код писать умеет! Дополняйте в комментариях теми, которые запомнились вам.

Читать дальше →
Total votes 28: ↑25 and ↓3 +22
Comments 31

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

Reading time 4 min
Views 124K


На Хабре много статей о том, как самостоятельно изучать английский язык. Но вот вопрос, а как оценить свой уровень при самостоятельном изучении? Понятно, что есть IELTS и TOEFL, но эти тесты почти никто не сдает без дополнительной подготовки и эти тесты, как говорят, оценивают не сколько уровень владения языком, а скорее умение проходить эти самые тесты. Да и использовать их для контроля самообучения будет накладно.

В этой статье я собрал различные тесты, которые проходил сам. При этом я сверяю свою субъективную оценку владения языком с результатами тестов. А также сравниваю результаты между разными тестами.
Читать дальше →
Total votes 99: ↑95 and ↓4 +91
Comments 62

Создание Android приложения с использованием Anko Layouts и Anko Coroutines

Reading time 9 min
Views 11K

image


Примерно год назад я начал использовать Kotlin в своих Android проектах. Мне хотелось попробовать что-то новое, что было бы интересно изучать. Тогда я и наткнулся на Anko. К тому времени писать UI на xml порядком осточертело. Мне всегда нравилось писать интерфейс руками, не прибегая к WYSIWYG и xml-разметке, используемой в Android Studio. Единственный минус заключается в том, что для проверки любого изменения придется перезапускать приложение. Можно использовать плагин, который показывает как будет выглядеть ui не запуская приложения, но мне он показался довольно странным. Так же у него есть крутая возможность конвертирования xml в Anko Layouts DSL.


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

Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Comments 19

Responsive design: сохранение формы элементов разметки

Reading time 3 min
Views 6.3K
Одним из приемов адаптивного веб-дизайна является установка размеров элементов разметки
в процентах относительно размеров контейнера их содержащего. Тем самым достигается пропорциональное изменение размеров всех элементов при изменении размеров окна браузера. Если задаются только горизонтальные размеры, как, например, при верстке страницы, когда важно правильно разместить элементы по горизонтали, мы можем очевидным образом предсказать, каковы будут действительные горизонтальные размеры элементов. При этом однако, наверное, мы ничего заранее не можем сказать об их вертикальных размерах (конечно, если высоты не заданы явно). Отсюда вытекает следующая задача — как сохранять пропорции элементов?

Простой пример из практики. Страница состоит из трех колонок: левое вертикальное меню, картинка, правое вертикальное меню.

При изменении размеров окна картинка должна растягиваться (сжиматься), оставаясь в пространстве между левым и правым меню. В свою очередь пункты меню должны быть представлены квадратными областями, которые при изменении размеров окна должны оставаться квадратными:

image
Читать далее
Total votes 24: ↑18 and ↓6 +12
Comments 3

Как поступить на PhD программу по машинному обучению

Reading time 26 min
Views 33K

1. Введение


Этот текст — небольшое обобщение моего опыта подачи заявок на Computer Science PhD с уклоном в machine learning в Северной Америке. Я постарался собрать в этом гайде свои просчеты (учиться лучше на чужих ошибках) и более-менее универсальные вещи, полезные всем. Но все равно нужно понимать, что это довольно индивидуальный опыт, поэтому ваша личная стратегия может отличаться. Например, в случае выбора вузов/научных руководителей или в написании statement of purpose. Ну или вы находитесь в других стартовых условиях по сравнению со мной (оценки, статьи, рекомендации).


Имейте в виду, что основная часть гайда писалась до получения результатов, потому что мне хотелось избежать «ошибки выживших» (survivorship bias) и проанализировать свой опыт безотносительно того, поступил я или нет. В конце руководства есть мои результаты: я поступил в 2 из 11 вузов, в которые подавался. На мой взгляд, все равно стоит избегать ошибок, которые я здесь буду описывать. Ну и нужно понимать, что в процессе подачи на ML PhD очень много шума, поэтому можно сделать все хорошо и пролететь и наверное даже наоборот.


image
Читать дальше →
Total votes 58: ↑57 and ↓1 +56
Comments 14

От веб-разработчика до специалиста по машинному обучению

Reading time 12 min
Views 40K

Не у каждого хватает смелости поменять освоенную профессию, в которой уже достиг каких-то вершин. Ведь это требует больших усилий, а положительный результат не гарантирован. Полтора года назад мы рассказывали, как один из наших тимлидов серверной разработки переквалифицировался в iOS-программиста. И сегодня мы хотим рассказать о ещё более «крутом повороте»: Алан Chetter2 Басишвили, занимавшийся frontend-разработкой, настолько увлёкся машинным обучением, что вскоре превратился в серьёзного специалиста, стал одним из ключевых разработчиков популярного проекта Artisto, а теперь занимается распознаванием лиц в Облаке Mail.Ru. Интервью с ним читайте под катом.

Total votes 70: ↑66 and ↓4 +62
Comments 18

Материалы летней школы Deep|Bayes по байесовским методам в глубинном обучении

Reading time 3 min
Views 25K

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


Многие современные исследовательские статьи активно используют байесовский формализм в сочетании с глубокими нейросетями, приходя к интересным результатам. Мы – исследовательская группа BayesGroup с помощью наших друзей из Сколтеха, а так же при поддержке Высшей Школы Экономики, Сбербанка, Яндекса, Лаборатории Касперского, JetBrains и nVidia – решили поделиться накопленным опытом и устроить летнюю школу по байесовским методам в глубинном обучении Deep|Bayes, где подробно рассказать, что такое байесовские методы, как их комбинировать с глубинным обучением и что из этого может получиться.


Отбор на школу оказался весьма сложным занятием – мы получили более 300 заявок от сильных кандидатов, но вместить смогли только 100 (приятно, что среди участников были не только жители Москвы и Петербурга, но и студенты из регионов, а так же русскоговорящие гости из-за границы). Пришлось отказать многим сильным кандидатам, поэтому для смягчения этого прискорбного факта мы решили сделать доступными максимальное количество материалов, которыми и хотим поделиться с хабраюзерами.

Читать дальше →
Total votes 65: ↑64 and ↓1 +63
Comments 5

37 причин, почему ваша нейросеть не работает

Reading time 9 min
Views 41K
Сеть обучалась последние 12 часов. Всё выглядело хорошо: градиенты стабильные, функция потерь уменьшалась. Но потом пришёл результат: все нули, один фон, ничего не распознано. «Что я сделал не так?», — спросил я у компьютера, который промолчал в ответ.

Почему нейросеть выдаёт мусор (например, среднее всех результатов или у неё реально слабая точность)? С чего начать проверку?

Сеть может не обучаться по ряду причин. По итогу многих отладочных сессий я заметил, что часто делаю одни и те же проверки. Здесь я собрал в удобный список свой опыт вместе с лучшими идеями коллег. Надеюсь, этот список будет полезен и вам.
Читать дальше →
Total votes 37: ↑37 and ↓0 +37
Comments 11

Генеративные модели от OpenAI

Reading time 13 min
Views 37K


Эта статья посвящена описанию четырех проектов, объединенных общей темой усовершенствования и применения генеративных моделей. В частности, речь пойдет о методах обучения без учителя и GAN.
 
Помимо описания нашей работы, в этой статье мы хотели бы подробнее рассказать о генеративных моделях: их свойствах, значении и возможных перспективах развития.
Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 2

Как научить свою нейросеть генерировать стихи

Reading time 10 min
Views 54K
Умоляю перестань мне сниться
Я люблю тебя моя невеста
Белый иней на твоих ресницах
Поцелуй на теле бессловесном

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

Вернее, нейронная сеть нужна лишь для первого этапа — расстановки слов в правильном порядке. С рифмовкой справляются правила, применяемые поверх предсказаний нейронной сети. Хотите узнать подробнее, как мы это реализовывали? Тогда добро пожаловать под кат.
Читать дальше →
Total votes 76: ↑75 and ↓1 +74
Comments 30

Парсим русский язык

Reading time 8 min
Views 70K

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

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

"Мама мыла раму":

(предложение
    (именная гр. (сущ мама))
    (глаг. гр. (глаг мыла)
        (именная гр. (сущ раму)))
    (. .)))


Это называется синтаксическим деревом предложения. В графическом виде его можно представить следующим образом (в упрощенном виде):

Читать дальше →
Total votes 128: ↑124 and ↓4 +120
Comments 97

Вся правда про Google Summer of Code — часть 4

Reading time 11 min
Views 7.8K
Часть 1
Часть 2
Часть 3

1. Как дожить до финального отчета (Final evaluation deadline)?

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

Читать дальше →
Total votes 78: ↑61 and ↓17 +44
Comments 11

Спортивный анализ данных, или как стать специалистом по data science

Reading time 17 min
Views 60K
Меня зовут Пётр Ромов, я — data scientist в Yandex Data Factory. В этом посте я предложу сравнительно простой и надежный способ начать карьеру аналитика данных.

Многие из вас наверняка знают или хотя бы слышали про Kaggle. Для тех, кто не слышал: Kaggle — это площадка, на которой компании проводят конкурсы по созданию прогнозирующих моделей. Её популярность столь велика, что часто под «кэглами» специалисты понимают сами конкурсы. Победитель каждого соревнования определяется автоматически — по метрике, которую назначил организатор. Среди прочих, Kaggle в разное время опробовали Facebook, Microsoft и нынешний владелец площадки — Google. Яндекс тоже несколько раз отметился. Как правило, Kaggle-сообществу дают решать задачи, довольно близкие к реальным: это, с одной стороны, делает конкурс интересным, а с другой — продвигает компанию как работодателя с солидными задачами. Впрочем, если вам скажут, что компания-организатор конкурса задействовала в своём сервисе алгоритм одного из победителей, — не верьте. Обычно решения из топа слишком сложны и недостаточно производительны, а погони за тысячными долями значения метрики не настолько и нужны на практике. Поэтому организаторов больше интересуют подходы и идейная часть алгоритмов.



Kaggle — не единственная площадка с соревнованиями по анализу данных. Существуют и другие: DrivenData, DataScience.net, CodaLab. Кроме того, конкурсы проводятся в рамках научных конференций, связанных с машинным обучением: SIGKDD, RecSys, CIKM.

Для успешного решения нужно, с одной стороны, изучить теорию, а с другой — начать практиковать использование различных подходов и моделей. Другими словами, участие в «кэглах» вполне способно сделать из вас аналитика данных. Вопрос — как научиться в них участвовать?
Хардкор
Total votes 71: ↑66 and ↓5 +61
Comments 13

Векторные модели и русская литература

Reading time 8 min
Views 28K

image


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


А сейчас всё это (кроме собственно чтения) можно сделать автоматически.

Читать дальше →
Total votes 64: ↑60 and ↓4 +56
Comments 42

Учим TensorFlow рисовать кириллицу

Reading time 7 min
Views 14K
Привет Хабр! За последние годы новые подходы в обучении нейронных сетей позволили существенно расширить сферы практического применения машинного обучения. А появление большого количества хороших высокоуровневых библиотек дало возможность проверить свои навыки специалистам разного уровня подготовки.

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

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

В качестве библиотеки был выбран TensorFlow. А за задачей и её решением прошу под кат…
Читать дальше →
Total votes 59: ↑58 and ↓1 +57
Comments 7

Геометрия машинного обучения. Разделяющие гиперплоскости или в чём геометрический смысл линейной комбинации?

Reading time 13 min
Views 45K
Во многих алгоритмах машинного обучения, в том числе в нейронных сетях, нам постоянно приходится иметь дело со взвешенной суммой или, иначе, линейной комбинацией компонент входного вектора. А в чём смысл получаемого скалярного значения?

В статье попробуем ответить на этот вопрос с примерами, формулами, а также множеством иллюстраций и кода на Python, чтобы вы могли легко всё воспроизвести и поставить свои собственные эксперименты.
Читать дальше →
Total votes 15: ↑13 and ↓2 +11
Comments 9

Метод наборов

Reading time 3 min
Views 6.8K
Читая книгу «Конкретная математика», одновременно набираясь знаний и осознавая свою некомпетентность в вопросе, ещё в самой первой главе я наткнулся на метод наборов, который авторы используют для решения Задачи Иосифа Флавия. Метод они не объясняют, сочтя его слишком элементарным, так что пришлось искать информацию о нём самому. В рускоязычном сегменте интернетов достаточно подробного описания не нашел, поэтому воспользовался ответом с math.stackexchange.com, который позже перевёл, и теперь представляю его вам, дабы те, кто тоже не понял метод инстинктивно, смогли проникнуться.
Далее — перевод от первого лица.
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 3

Открытый курс машинного обучения. Тема 1. Первичный анализ данных с Pandas

Level of difficulty Easy
Reading time 15 min
Views 1M


Открытый курс машинного обучения mlcourse.ai сообщества OpenDataScience – это сбалансированный по теории и практике курс, дающий как знания, так и навыки (необходимые, но не достаточные) машинного обучения уровня Junior Data Scientist. Нечасто встретите и подробное описание математики, стоящей за используемыми алгоритмами, и соревнования Kaggle Inclass, и примеры бизнес-применения машинного обучения в одном курсе. С 2017 по 2019 годы Юрий Кашницкий yorko и большая команда ODS проводили живые запуски курса дважды в год – с домашними заданиями, соревнованиями и общим рейтингом учаcтников (имена героев запечатлены тут). Сейчас курс в режиме самостоятельного прохождения.

Читать дальше →
Total votes 44: ↑43 and ↓1 +42
Comments 61

Information

Rating
Does not participate
Date of birth
Registered
Activity