Search
Write a publication
Pull to refresh
3
0
Евгений Даниленко @JekaMas

Golang и распределенные системы

Send message

How linear algebra is applied in machine learning

Reading time5 min
Views14K

When you study an abstract subject like linear algebra, you may wonder: why do you need all these vectors and matrices? How are you going to apply all this inversions, transpositions, eigenvector and eigenvalues for practical purposes?


Well, if you study linear algebra with the purpose of doing machine learning, this is the answer for you.


In brief, you can use linear algebra for machine learning on 3 different levels:


  • application of a model to data;
  • training the model;
  • understanding how it works or why it does not work.

drawing
Read more →

Как участвовать в соревнованиях по машинному обучению. Лекция в Яндексе

Reading time12 min
Views13K
Многие из постоянных посетителей ML-тренировок придерживаются обоснованного мнения, что участие в конкурсах — самый быстрый способ попасть в профессию. У нас даже была статья на эту тему. Автор сегодняшней лекции Артур Кузин на собственном примере показал, как можно за пару лет переквалифицироваться из сферы, вообще не связанной с программированием, в специалиста по анализу данных.


— Всем привет. Меня зовут Артур Кузин, я lead data scientist компании Dbrain.

Как стать React разработчиком в 2018 году

Reading time17 min
Views77K


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

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

План Адама представляет собой список основных пунктов, которые вам нужно изучить самостоятельно. Мы добавили описание, а в некоторых сложных моментах указали ссылки на дополнительные справочные материалы, с помощью которых вы получите ответ на вопрос: «Что я должен узнать как React-разработчик?».
Читать дальше →

Как мы сдавали экзамен Certified Kubernetes Administrator

Reading time7 min
Views27K


В прошлом году у организации CNCF (Cloud Native Computing Foundation), помогающей развиваться таким Open Source-проектам, как Kubernetes и Prometheus, появилась программа сертификации CKA (Certified Kubernetes Administrator). В начале этого лета мы решили в ней поучаствовать и получили первые сертификаты для своих сотрудников. О том, что это, зачем и как происходит, с удовольствием рассказываем всем любопытствующим читателям хабры.
Читать дальше →

Обзор техник реализации игрового ИИ

Reading time55 min
Views61K
image

Введение


Эта статья познакомит вас с широким диапазоном концепций искусственного интеллекта в играх («игрового ИИ»), чтобы вы понимали, какие инструменты можно использовать для решения задач ИИ, как они работают совместно и с чего можно начать их реализацию в выбранном движке.

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

Что же такое «игровой ИИ»?


Игровой ИИ в основном занимается выбором действий сущности в зависимости от текущих условий. В традиционной литературе по ИИ называет это управлением "интеллектуальными агентами". Агентом обычно является персонаж игры, но это может быть и машина, робот или даже нечто более абстрактное — целая группа сущностей, страна или цивилизация. В любом случае это объект, следящий за своим окружением, принимающий на основании него решения и действующий в соответствии с этими решениями. Иногда это называют циклом «восприятие-мышление-действие» (Sense/Think/Act):

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

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

Reading time11 min
Views5.9K


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

Весь код, документы в формате notebook и прочие материалы, включая Dockerfile, можно найти здесь.
Читать дальше →

Анатомия рекомендательных систем. Часть первая

Reading time14 min
Views85K
Я работаю дата-саентистом в компании CleverDATA. Мы занимаемся проектами в области машинного обучения, и один из наиболее частых запросов на разработку основанных на машинном обучении маркетинговых решений — это разработка рекомендательных моделей.

В данной статье я расскажу о рекомендательных системах, постараюсь дать максимально полный обзор существующих подходов и на пальцах объясню принципы работы алгоритмов. Часть материала базируется на неплохом курсе по рекомендательным системам лаборатории MovieLens (которая большинству знакома по одноименному датасету для тестирования рекомендаций), остальное – из личного опыта. Статья состоит из двух частей. В первой описана постановка задачи и дан обзор простых (но популярных) алгоритмов рекомендаций. Во второй статье я расскажу о более продвинутых методах и некоторых практических аспектах реализации.

Источник
Читать дальше →

Как подготовиться к собеседованию в Google и не пройти его. Дважды

Reading time15 min
Views130K


Заголовок статьи звучит как epic fail, но на самом деле все не так однозначно. Да и в общем и целом эта история закончилась весьма позитивно, хоть и не в Google. Но это уже тема для другой статьи. В этой же статье я расскажу о трех вещах: каким образом проходил мой процесс подготовки, каким образом проходили интервью в Google и почему же на мой взгляд все не так однозначно, как может показаться.
Кому интересно, прошу под кат.

Прогнозирование продаж недвижимости. Лекция в Яндексе

Reading time5 min
Views6.8K
Успех в проектах по машинному обучению обычно связан не только с умением применять разные библиотеки, но и с пониманием той области, откуда взяты данные. Отличной иллюстрацией этого тезиса стало решение, предложенное командой Алексея Каюченко, Сергея Белова, Александра Дроботова и Алексея Смирнова в конкурсе PIK Digital Day. Они заняли второе место, а спустя пару недель рассказали о своём участии и построенных моделях на очередной ML-тренировке Яндекса.


Алексей Каюченко:
— Добрый день! Мы расскажем о соревновании PIK Digital Day, в котором мы участвовали. Немного о команде. Нас было четыре человека. Все с абсолютно разным бэкграундом, из разных областей. На самом деле, мы на финале познакомились. Команда сформировалась буквально за день до финала. Я расскажу про ход конкурса, организацию работы. Потом выйдет Сережа, он расскажет про данные, а Саша расскажет уже про сабмишен, про финальный ход работы и про то, как мы двигались по лидерборду.

Анализ графиков бинарных опционов или как я в очередной раз доказал себе, что халявы не существует

Reading time6 min
Views72K


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


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

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

Spectre и Meltdown больше не самые опасные атаки на CPU Intel. Исследователи сообщили об уязвимости Foreshadow

Reading time3 min
Views66K


В начале этого года информационное пространство потрясли новости о Spectre и Meltdown — двух уязвимостях, использующих спекулятивное исполнение кода для получения доступа к памяти (статьи и переводы на эту тему на Хабре: 0, 1, 2, 3, 4, 5, 6, 7, 8 и в поиске можно найти еще десяток других). Примерно в тоже время, когда техническое сообщество активно обсуждало снижение производительности процессоров Intel и проблемы архитектуры современных процессоров в целом, которые и позволяют эксплуатацию подобных дыр, две группы исследователей независимо друг от друга стали внимательнее исследовать вопрос спекулятивного исполнения кода на процессорах Intel.

Как итог, обе группы пришли к тому, что использование этого вектора атаки позволяет не только получить доступ к кэшу процессора, но и считывать/изменять содержимое защищенных областей Intel SGX (1, 2), в расшифровке — Intel Software Guard Extensions. Таким образом еще более серьезной атаке подвержены новейшие чипы от Intel на архитектурах Sky Lake (шестое поколение) и Kaby Lake (седьмое и восьмое поколение). И все было бы не так печально, если бы SGX использовалась только системой, но к этим областям обращаются и пользовательские приложения.

Многорукие бандиты в рекомендациях

Reading time9 min
Views24K

Всем привет! Меня зовут Миша Каменщиков, я занимаюсь Data Science и разработкой микросервисов в команде рекомендаций Авито. В этой статье я расскажу про наши рекомендации похожих объявлений и о том, как мы улучшаем их при помощи многоруких бандитов. С докладом на эту тему я выступал на конференции Highload++ Siberia и на мероприятии «Data & Science: Маркетинг».


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

Распределенные структуры данных [часть 1, обзорная]

Reading time5 min
Views14K

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


Современные же приложения стремятся использовать все имеющиеся ресурсы, в частности, все доступные CPU.


К сожалению, использовать стандартные структуры данных при многопоточной обработке не представляется возможным, поэтому в Java 5 появились потокобезопасные структуры данных,
т.е. функционирующие исправно, при использовании из нескольких потоков одновременно, и расположились они в пакете java.util.concurrent.


Про Vector...

На самом деле, потокобезопасные, но неэффективные, структуры данных, как, например, Vector и Hashtable, появились еще в Java 1.0.
В настоящий момент, они не рекомендуются к использованию.


Однако, не взирая на всю технологическую мощь, заложенную в пакет java.util.concurrent, обработка информации потокобезопасными коллекциями возможна лишь в рамках одного компьютера, а это порождает проблему масштабируемости.


А что если нужно, в реальном времени, обрабатывать информацию о 100 миллионах клиентов,
когда датасет занимает 100Тб, а каждую секунду нужно совершить 100+ тысяч операций?
Вряд ли это возможно, даже на самом крутом современном железе, а если и возможно — только представьте себе его стоимость!


Намного дешевле добиться такой же вычислительной мощности объединив множество обычных компьютеров в кластер.



Остается лишь вопрос межкомпьютерного взаимодействия привычными средствами, схожими по API с потокобезопасными коллекциями из пакета java.util.concurrent и дающими те же гарантии, но не на одном компьютере, а на всем кластере.


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

Поиск объекта на изображении при помощи перцептивного хэша

Reading time3 min
Views9.7K
image

В те времена, когда я еще верил, что программируя для себя на обеденном перерыве или после работы, можно создать свой стартап, у меня был один проект. И проект требовал такого алгоритма поиска объекта на изображении, чтобы и обучить его было быстро на новый объект, и чтобы он много вычислительных ресурсов не потреблял. Почитав статьи про перцептивный хэш (раз статья и два), я решил, а почему бы не использовать его для ограничения количества исследуемых областей изображения? И начал строить свой велосипед, вместо того чтобы использовать признаки Хаара. использовать перцептивный хэш, как фильтр областей изображения, чтобы после фильтра оставались лишь те участки, где вероятнее всего находится искомый объект. В конце статьи есть ссылка на код на C++ с использованием библиотеки OpenCV.

Не бойся микросервиса: Алексей Баитов об использовании микросервисной архитектуры на практике

Reading time16 min
Views18K
Для одних микросервисы — это возможность переделать и отрефакторить приложение под условно современный стиль. Другим это архитектурное решение не подходит из-за особенности взаимодействия различных частей приложения. В любом случае, выбирая архитектуру, полезно изучить чужой опыт перехода от монолита к набору сервисов.

Мы попросили поделиться своим кейсом разработки и доставки микросервисов Алексея Баитова, ведущего инженера 2ГИС. Поговорим на тему архитектурных решений, деплоя и возможности масштабирования. Расспросим про трендовые и просто удобные инструменты для работы.


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

Решение цветных японских кроссвордов со скоростью света

Reading time17 min
Views77K

Японские кроссворды (также нонограммы) — логические головоломки, в которых зашифровано пиксельное изображение. Разгадывать кроссворд нужно с помощью чисел, расположенных слева от строк и сверху от столбцов.


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


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


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

Завещание Баффета или о чём молчат финконсультанты

Reading time4 min
Views64K
У. Баффет завещал жене после своей смерти вложить все средства  в биржевой фонд ETF на S&P 500 (VOO) и жить в своё удовольствие. Однако книги, интернет и финконсультанты призывают нас составлять диверсифицированные портфели с обязательным включением в них облигаций. К слову, о диверсификации Баффет тоже отзывается не лестно и призывает все яйца хранить в одной корзине, просто внимательно за ней присматривать.

В данной статье мы попробуем разобраться, стоит ли верить оракулу из Омахи или прислушаться к финансовым консультантам. А поможет нам в этом Python и Quantopian.
Читать дальше →

Как я осознал, что такое распределенные системы

Reading time12 min
Views14K
Привет, Хабр!

В скором времени у нас выходит изысканная новинка для разработчиков высшего класса — "Реактивные шаблоны проектирования".

Автор книги Роланд Кун — звезда первой величины в области распределенных систем, один из разработчиков Akka. Под катом предлагаем перевод его программной статьи о распределенных системах и акторной модели, размещенной на сайте GitHub
Читать дальше →

Обзор актуальных протоколов достижения консенсуса в децентрализованной среде

Reading time19 min
Views16K
Эта статья посвящена поверхностному обзору ключевых подходов к достижению консенсуса в децентрализованной среде. Материал позволит разобраться с задачами, которые решают рассмотренные протоколы, областью их применения, особенностями проектирования и использования, а также позволит оценить перспективы их развития и имплементации в децентрализованных системах учета.
Читать дальше →

Управляемые токенами реестры 1.0

Reading time15 min
Views4.5K


Идея управляемых токенами реестров (TCR) зародилась в блокчейн-сообществе не менее года назад. По крайней мере, эта статья была опубликована автором еще в сентябре 2017 года. А недавно я был на конференции DappCon 2018 в Берлине и увидел большой интерес к этой теме, а также несколько ранних набросков на основе TCR. Поэтому предполагаю, что пик интереса еще впереди.


Мне TCR-контракты представляются крайне интересными, поскольку они являют собой пример наиболее простой замкнутой системы, управляемой децентрализованно и на основе экономических стимулов. Если немного пофантазировать, становится понятно, что на основе этой идеи можно децентрализовать очень многое, возможно даже всё в нашей социально-экономической жизни. И это уже не просто галлюцинации сумасшедших криптанов, а вполне неплохо сформулированный протокол. Более подробно читайте под катом.

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

Information

Rating
10,502-nd
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Distributed systems
Lead
From 150,000 $
BlockChain
Ethereum
Bitcoin
Solidity
Golang
Rust