Как стать автором
Обновить
48
0
Artemiy Ryabinkov @Flaker

Software Engineer

Отправить сообщение

Машинное обучение. Нейронные сети (часть 2): Моделирование OR; XOR с помощью TensorFlow.js

Время на прочтение6 мин
Количество просмотров16K
Статья является продолжением цикла статей, посвященных машинному обучению с использованием библиотеки TensorFlow.JS, в предыдущей статье приведены общая теоретическая часть обучения простейшей нейронной сети, состоящей из одного нейрона:

Машинное обучение. Нейронные сети (часть 1): Процесс обучения персептрона

В данной же статье мы с помощью нейронной сети смоделируем выполнение логических операций OR; XOR, которые являются своеобразным «Hello World» приложением для нейронных сетей.
В статье будет последовательно описан процесс такого моделирования с использованием TensorFlow.js.
Всего голосов 11: ↑10 и ↓1+9
Комментарии0

Тесты на статистическую значимость — это чудовищно ущербный инструмент

Время на прочтение6 мин
Количество просмотров9.3K

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

Вот мне хочется, чтобы кнопка была зеленой, просто потому что мне так больше нравится. А дизайнер говорит — «неважно, АБ-тесты показали, что на кнопку поносного цвета кликают на 0,2% чаще». Господи, дружище, ты десять лет прокачивал свой вкус и опыт, чтобы что? Чтобы наш продукт напоминал птичью какашку? Но бизнес говорит — раз есть цифры, значит мы обмажем этим все.

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

На прошлой неделе у нас в подкасте был Андрей Акиньшин, кандидат физ-мат наук и специалист в области перформанс-анализа. Он рассказал нам, почему у него тоже бомбит от современной математической статистики.

Читать дальше →
Всего голосов 27: ↑22 и ↓5+17
Комментарии5

Как я изучаю языки

Время на прочтение14 мин
Количество просмотров19K
image

Привет, хабровчане! Давным-давно, когда динозавры ходили по земле, a автор этих строк училась в шестом классе, на глаза мне попалась небольшая книжечка венгерской переводчицы Като Ломб «Как я изучаю языки». Я прочла её и — пропал калабуховский дом. Передо мной открылся совершенно новый мир, заворожила красота и логика построения разных языковых конструкций. А ещё было ясно с самого начала, что каждый новый язык — это новый шанс. Под катом я расскажу, какие шансы удалось использовать, а какие — нет и почему так вышло.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии13

Детальный разбор структуры зарплат IT-специалистов в Кремниевой Долине

Время на прочтение13 мин
Количество просмотров48K

О чем пойдет речь


image

В рамках пятничного безумия, давайте представим, что у Вас волшебным образом появилось разрешение на работу в США, и Вы уже готовы после завтрака телепортироваться в самый центр Маунтин-Вью, чтобы моментально найти работу в крупной IT-компании и начать зарабатывать свой первый взнос на дом в Кремниевой Долине. Но прежде, давайте попробуем разобраться из чего состоит заработная плата разработчика программного обеспечения, что обычно включено в социальный пакет IT-специалиста, и какие дополнительные льготы получают сотрудники крупных технологических компаний в США. Все эти знания пригодятся Вам, чтобы продать себя дороже, жить комфортнее и быстрее заработать на сарайчик в пригороде Сан-Франциско.

Если Вам проще воспринимать информацию на слух или в режиме видео-ролика, то специально для Вас готово 28-минутное видео с тайм-кодами в комментариях.

Три главных компонента


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

Так вот, в первую очередь нужно понимать, что сумма, которую заплатит Вам работодатель
формируется из трех компонентов:

  1. Сash — это деньги, которые Вы получаете непосредственно на карточку два раза в
    месяц (или же их присылают Вам бумажным чеком, который потом можно либо обналичить, либо положить на Ваш банковский счет.
  2. Non-cash — это акции в различных вариациях: RSA, RSU, PSU, PSA или ESPP.
  3. Benefits — все косвенные затраты работодателя на Вас, с которых Вы также имеете
    выгоду.

Когда речь заходит о зарплате, тут принято говорить о сумме за год до уплаты налогов. Эта сумма называется Total Compensation (TC) и включает в себя Cash и Non-cash компоненты.
Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии150

Экзамены TOEFL/IELTS как ориентир для развития. Фундаментальные апгрейды языка и их польза для разработчика

Время на прочтение13 мин
Количество просмотров18K


Экзамены английского языка вызывают у большинства разработчиков негативную реакцию. В сети или в курилке часто можно услышать утверждения о том, что TOEFL/IELTS проверяют не уровень владения языком, а умение соответствовать шаблонам. Разработчики цепляются за свой B1 или даже B2/C1, который им дали на внутреннем ассессменте в компании или при прохождении 10-минутного онлайн-теста. Далее, у нас есть 2 пути. Вы можете принять ваш уровень и не развиваться, думая что вам «не нужно», «не моё» и так далее. Можете найти 100 причин отрицать международные общепринятые тесты и даже обойти их при миграции. А можете согласиться с тем, что ваш уровень не достаточно хорош при объективной оценке по критериям, и подумать над развитием и пользе для карьеры разработчика. Статья будет именно про второй путь, а конкретно:

  1. Развитие скорости чтения и использование правого полушария мозга вместо левого
  2. Накрутка навыка письма через независимые эссе внутри Grammarly
  3. Турбонакрутка разговорной речи через комментирование своих действий в играх (RPG/RTS)
  4. Ускорение с помощью слепой печати
  5. Контроль промежуточных результатов через TOEFL GO
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии50

Юристы менеджерам в ИТ: советы при заключении сделок и оформлении контрактов (переписка, работа без договора, NDA)

Время на прочтение8 мин
Количество просмотров4.2K


Железный юрист Redmadrobot Марина Бутурлина рассказала про ситуацию, когда клиент готов заказать работы, а с подписанием договора всё сложно и постоянно откладывается. Если вам хочется понять, как действовать, чтобы ничего не упустить, но вы не юрист, то эти советы для вас.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии3

Что такое опционы и кому это нужно. Ликбез для гика, ч. 6

Время на прочтение17 мин
Количество просмотров51K
Меня зовут Михаил Андреев, я разработчик в нашем подразделении FX Derivatives Desk (на сленге отрасли позиция называется Quant Developer). В этом посте расскажу про опционы и все что с ними связано.

Эти инструменты не так близки простому обывателю, как, например, банковский вклад, но для современных финансовых рынков они важны. И их периодически обсуждают в неспециализированных СМИ, и я думаю, что составить общее представление об опционах и том, как с ними работают финансовые компании, полезно.


Кроме этого, эта тема связана с интересной математикой, вычислительными методами и разработкой программных систем — всё как мы любим.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии9

Минимальный WebGL в 75 строках кода

Время на прочтение6 мин
Количество просмотров7.8K
Современный OpenGL и, в более широком смысле, WebGL, сильно отличается от старого OpenGL, который я изучал в прошлом. Я понимаю, как работает растеризация, поэтому вполне разбираюсь в концепциях. Однако в каждом прочитанном мной туториале предлагались абстракции и вспомогательные функции, усложнявшие мне понимание того, какие части относятся к самим API OpenGL.

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

Во-первых, нужно поблагодарить создателя использованного мной туториала. Взяв его за основу, я избавлялся от всех абстракций, пока не получил «minimal viable program». Надеюсь, она поможет вам начать освоение современного OpenGL. Вот что мы будем делать:


Равносторонний треугольник, зелёный сверху, чёрный в нижнем левом углу и красный в нижнем правом, с интерполированными между точками цветами. Чуть более яркая версия чёрного треугольника [перевод на Хабре].
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии5

Подборка полезных инструментов маркетинга: Топ-5 сервисов для аналитики соцмедиа

Время на прочтение3 мин
Количество просмотров2.7K


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

Решить эту задачу помогают специализированные сервисы. В этой статье мы перечислим пять таких инструментов, о которых многие не знали, или не подозревали, что их можно использовать для аналитики соцмедиа.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии0

Чем различаются реализации неточного поиска в двоичных деревьях

Время на прочтение9 мин
Количество просмотров1.7K

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


Сравним стили реализации такого поиска:

  • GCC STL, Clang STL
  • Sestoft C5
  • OpenJDK Java TreeMap
  • Mozman bintrees


Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Цепи Маркова и Пайтон — разбираемся в теории и собираем генератор текстов

Время на прочтение5 мин
Количество просмотров25K

Понимаем и создаём


Хорошие новости перед статьей: высоких математических скиллов для прочтения и (надеюсь!) понимания не требуется.

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

Итак, поехали!
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии10

Архитектура — Декларативна. Реализация — Императивна. Все остальное — Бюрократия

Время на прочтение14 мин
Количество просмотров8.5K
Что такое Архитектура? Чем Архитектура отличается от Дизайна? Где граница между Архитектурой и Реализацией? Можно ли увидеть Архитектуру? Можно ли тестировать Архитектуру? Чем отличаются Инженерный и Эволюционный подходы к Архитектуре? Что такое Хорошая Архитектура? В чем состоит работа Архитектора? Чем она отличается от работы Разработчика? Какие инструменты доступны Архитектору? Можно ли менять Архитектуру отдельно от Реализации? Есть ли у Архитектуры ДНК?


Читать дальше →
Всего голосов 17: ↑15 и ↓2+13
Комментарии14

Продвинутый уровень визуализации данных для Data Science на Python

Время на прочтение7 мин
Количество просмотров47K
Как сделать крутые, полностью интерактивные графики с помощью одной строки Python

image

Когнитивное искажение о невозвратных затратах (sunk cost fallacy) является одним из многих вредных когнитивных предубеждений, жертвой которых становятся люди. Это относится к нашей тенденции продолжать посвящать время и ресурсы проигранному делу, потому что мы уже потратили — утонули — так много времени в погоне. Заблуждение о заниженной стоимости применимо к тому, чтобы оставаться на плохой работе дольше, чем мы должны, рабски работать над проектом, даже когда ясно, что он не будет работать, и да, продолжать использовать утомительную, устаревшую библиотеку построения графиков — matplotlib — когда существуют более эффективные, интерактивные и более привлекательные альтернативы.

За последние несколько месяцев я понял, что единственная причина, по которой я использую matplotlib, — это сотни часов, которые я потратил на изучение сложного синтаксиса. Эти сложности приводят к часам разочарования, выясняя на StackOverflow, как форматировать даты или добавить вторую ось Y. К счастью, это прекрасное время для построения графиков в Python, и после изучения вариантов, явным победителем — с точки зрения простоты использования, документации и функциональности — является библиотека plotly. В этой статье мы погрузимся прямо в plotly, изучая, как создавать лучшие графики за меньшее время — часто с помощью одной строки кода.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии10

Простой UDP hole punching на примере IPIP-туннеля

Время на прочтение4 мин
Количество просмотров9.6K
Доброе время суток!

В этой статье хочу рассказать как я реализовал (еще один) скрипт на Bash для соединения двух компьютеров, находящимися за NAT, с использованием технологии UDP hole punching на примере ОС Ubuntu/Debian.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии11

Архитектура нейронной сети RetinaNet

Время на прочтение6 мин
Количество просмотров22K
Данная статья посвящается объяснению устройства архитектуры нейронной сети RetinaNet. Обзор был проведён мною в ходе выполнения дипломной работы, а так как для его написания потребовалось обращаться исключительно к англоязычным источникам и собрать найденную информацию воедино, я решил, что полученный материал поможет кому-то сократить время на поиск нужной информации и упростить понимание устройства нейросетей для задачи Object Detection.

Введение


Архитектура свёрточной нейронной сети (СНС) RetinaNet состоит из 4 основных частей, каждая из которых имеет своё назначение:

a) Backbone – основная (базовая) сеть, служащая для извлечения признаков из поступающего на вход изображения. Данная часть сети является вариативной и в её основу могут входить классификационные нейросети, такие как ResNet, VGG, EfficientNet и другие;

b) Feature Pyramid Net (FPN) – свёрточная нейронная сеть, построенная в виде пирамиды, служащая для объединения достоинств карт признаков нижних и верхних уровней сети, первые имеют высокое разрешение, но низкую семантическую, обобщающую способность; вторые — наоборот;

c) Classification Subnet – подсеть, извлекающая из FPN информацию о классах объектов, решая задачу классификации;

d) Regression Subnet – подсеть, извлекающая из FPN информацию о координатах объектов на изображении, решая задачу регрессии.

На рис. 1 изображена архитектура RetinaNet c ResNet нейросетью в качестве backbone.


Рисунок 1 – Архитектура RetinaNet с backbone-сетью ResNet

Разберём подробно каждую из частей RetinaNet, представленных на рис. 1.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии50

Байесовские сети при помощи Питона — что и зачем?

Время на прочтение8 мин
Количество просмотров14K
Дисклеймер: данная статья является адаптированным переводом. Оригинал можно прочесть здесь.

Байесовские сети при помощи Питона — объяснение с примерами


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

Основываясь на данном факте, эта статья полностью посвящена работе Байесовских сетей и тому, как они сами могут не формировать проблемы, а применяться в их решении, даже если решаемые проблемы крайне запутаны.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии9

Учимся читать научные статьи у Эндрю Ына из Стэнфорда

Время на прочтение6 мин
Количество просмотров17K

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

Альберт Эйнштейн

Каждому, кто серьёзно занимается машинным обучением, необходимо научиться понимать то, что публикуется в научных статьях. Подобные публикации делают учёные, находящиеся на переднем крае исследований в соответствующих областях. Это — искусственный интеллект (AI, Artificial Intelligence), машинное обучение (ML, Machine Learning), глубокое обучение (DL, Deep Learning) и многие другие сферы.



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

Здесь вы найдёте руководство по эффективной работе с научными статьями. В частности, мы остановимся на следующих темах:

  • Систематический подход к чтению подборок публикаций для получения знаний в интересующей вас области.
  • Правила чтения научных статей.
  • Полезные интернет-ресурсы, которые могут помочь вам в поиске публикаций и важнейшей информации.
Читать дальше →
Всего голосов 40: ↑39 и ↓1+38
Комментарии11

Коды избыточности: простыми словами о том, как надёжно и дёшево хранить данные

Время на прочтение11 мин
Количество просмотров31K


Так выглядит избыточность


Коды избыточности* широко применяются в компьютерных системах для увеличения надёжности хранения данных. В Яндексе их используют в очень многих проектах. Например, применение кодов избыточности вместо репликации в нашем внутреннем объектном хранилище экономит миллионы без снижения надёжности. Но несмотря на широкое распространение, понятное описание того, как работают коды избыточности, встречается очень редко. Желающие разобраться сталкиваются примерно со следующим (из Википедии):



Меня зовут Вадим, в Яндексе я занимаюсь разработкой внутреннего объектного хранилища MDS. В этой статье я простыми словами опишу теоретические основы кодов избыточности (кодов Рида — Соломона и LRC). Расскажу, как это работает, без сложной математики и редких терминов. В конце приведу примеры использования кодов избыточности в Яндексе.


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


* Под термином «коды избыточности» в статье подразумевается инженерный термин «erasure codes».

Читать дальше →
Всего голосов 62: ↑58 и ↓4+54
Комментарии32

Как я веду Zettelkasten в Notion уже год: стартовый набор и полезные трюки

Время на прочтение8 мин
Количество просмотров171K

Zettelkasten — крутой метод хранения идей и знаний — сейчас на слуху, его уже обсуждали на Хабре. Я веду такой в Notion уже год, потому что Notion лучше всех воплощает три главных принципа Zettelkasten: взаимосвязанность, категоризацию, актуальность. Метод улучшил качество моего обучения и исследований, и без него как-то уже не так. 

Я почитал русскоязычные и англоязычные ресурсы и не нашел ни нормального шаблона для Notion, ни объяснения как реализовать главные преимущества метода Zettelkasten. Под катом и то, и другое. 

UPD: На текущий момент, статья безбожно устарела, потому что за еще один год я набрался опыта, помогая другим людям организовать их Цеттели и наблюдая за чужим опытом. А еще Notion выпустил несколько фич, заточенных именно под Цеттель. И теперь мне совестно, как новички страдают, разбираясь в теме после меня.

Эту статью можно почитать для понимания основ, но актуальные источники информации тут:

  • У меня в Психотронке можно следить за подготовкой обновленной версии, ну и написать мне за помощью. А можете не следить: версия 2.0 выйдет на Хабре.
  • В русскоязычном сообществе Zettelkasten в Телеграме сидят люди, которые хорошо разбираются в теме. Мы обожаем помогать новичкам.

Дисклеймер: ни Notion, ни автор метода мне за статью не платили.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+49
Комментарии88

Полный список вопросов с собеседований по Python для дата-сайентистов и инженеров

Время на прочтение14 мин
Количество просмотров93K
Snake and flowers 2 by pikaole

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

Команда Mail.ru Cloud Solutions перевела статью разработчика, который не раз попадал в такую ситуацию и на основе своего опыта составил список из 53 вопросов и ответов для подготовки к собеседованию. Большинство исследователей данных пишут много кода, поэтому такой список пригодится и дата-сайентистам, и инженерам. Он будет полезен и для соискателей, и для тех, кто проводит собеседования, и для тех, кто просто изучает Python.

Вопросы идут в случайном порядке. Поехали.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии24
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность