Как стать автором
Обновить
113
3.2
Влад Ефименко @Doctor_IT

Главный редактор

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

Как мы впервые делали инженерный «хакатон» и что из этого вышло

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

Привет, Хабр! Не так давно, у себя в блоге мы анонсировали студенческий инженерный «хакатон» YADRO SoC Design Challenge по проектированию современных микропроцессоров на базе архитектуры RISC-V. Теперь будет логично поделиться подробным рассказом, как это было. Спойлер: первый блин не комом, а кое в чём мероприятие даже приятно удивило. Детали читайте под катом.

Приятного чтения!
Всего голосов 16: ↑16 и ↓0+16
Комментарии2

Тест на доверчивость: зачем мы отправляем фишинг-сообщения сотрудникам

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

Сотрудник компании, который не соблюдает или не знает правил информационной безопасности, — потенциальное слабое звено для злоумышленников. По данным «Ростелеком-Солар», 75% кибератак начинаются с фишинга.

Мы в Selectel нашли способ повышения грамотности сотрудников в сфере ИБ в виде боевых учений. Делимся профилактическими кейсами, где мстительный Георгий собирает данные о сотрудниках, притворяясь LAZZON, а финансовый директор рассылает письма с ложного домена.

Дисклеймер: используемые названия предприятий LAZZON и «Пенькофф» вымышлены, любые совпадения с реальными компаниями случайны.

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

Anonymous покушаются на бургеры. DDoS-2022: ждать ли новые серии атак

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

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

На Хабре и других порталах опубликованы десятки новостей о DDoS-атаках за февраль, март и апрель. Показатели DDoS-атак рекордные и заслуживают внимания. 

В этой статье мы постарались прояснить ситуацию с помощью данных систем безопасности Selectel, провайдеров security-сервисов и СМИ. За цифрами приглашаем под кат.

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

Реставрация 100-летнего фильма с помощью ИИ

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

Генеральный директор проекта neuro.love Денис Ширяев поделился удачными практиками и алгоритмами для восстановления и улучшения качества старых фильмов. Для самостоятельных экспериментов требуются базовые знания Abode Premiere или After Effects, но результат того стоит. Подробности — под катом.

Читать далее
Всего голосов 25: ↑23 и ↓2+24
Комментарии19

Где работать в ИТ в 2022: Selectel

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

Наша рубрика «Где работать в ИТ» — это интервью с интересными айти-компаниями, в которых они делятся подробностями о процессах своей работы. Представители индустрии отвечают на вопросы о найме, условиях, командах и технологиях. 

В этом выпуске мы расскажем вам о компании Selectel — провайдере облачной инфраструктуры и услуг дата-центров. 

Читать далее
Всего голосов 40: ↑36 и ↓4+47
Комментарии15

Объясняем на пальцах принцип действия оптимизаторов для нейронных сетей: основные алгоритмы, и зачем они нужны

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

Оптимизаторы — важный компонент архитектуры нейронных сетей. Они играют важную роль в процессе тренировки нейронных сетей, помогая им делать всё более точные прогнозы. Специально к старту нового потока расширенного курса по машинному и глубокому обучению, делимся с вами простым описанием основных методик, используемых оптимизаторами градиентного спуска, такими как SGD, Momentum, RMSProp, Adam и др. 

Читать далее
Всего голосов 8: ↑7 и ↓1+9
Комментарии9

Объемные планеты в 2D через шейдер

Время на прочтение7 мин
Количество просмотров58K
А помните, как вы просили меня про шейдеры написать? Помните? Нет? А вот я помню и даже написал. Милости просим, поговорим о прекрасном.

Сегодня я поведу речь о том, как я делал объемные вращающиеся планеты для нашей игры blast-off. Тоесть они, конечно, совершенно плоские, всего пара треугольников, но выглядят как объемные.



Заинтересовало? Прошу под кат. Картинок прилично.
Читать дальше →
Всего голосов 77: ↑75 и ↓2+73
Комментарии39

Скорость звука: каков ее предел?

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


Одна из основных задач какой-либо точной науки заключается в измерении и объяснении тех или иных процессов, а также их участников. За многие годы исследований, расчетов и споров научное сообщество пришло к пониманию того, что существуют определенные ограничения в некоторых явлениях. К примеру, скорость света в вакууме равна 299 792 458 м/с. Согласно специальной теории относительности, ничто не может двигаться быстрее. Другими словами, мы имеем верхний скоростной лимит для света. Однако такой лимит для скорости звука пока не был установлен. Ученые из Лондонского университета королевы Марии (Англия, Великобритания) провели расчеты, результатом которых стало открытие верхнего предела скорости звука. Что стало основой расчетов, каковы их результаты, и в каких областях можно применить новообретенные знания? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+38
Комментарии23

Основы линейной регрессии

Время на прочтение13 мин
Количество просмотров186K
Здравствуй, Хабр!

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

! Осторожно, трафик! В статье присутствует заметное число изображений для иллюстраций, часть в формате gif.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии38

Основы фотографии: выдержка, диафрагма, ГРИП, светочувствительность

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

Введение


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

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

Изначально я планировал написать одну статью, но по ходу дела понял, что объем получается слишком большой и решил разбить ее на несколько частей. В этой главе рассмотрю такие понятия как выдержка, диафрагма, ГРИП и светочувствительность, как эти параметры влияют на результат съемки. На очереди статья про типы и параметры объективов, работу со вспышками и советы по съемке в различных условиях.
Читать дальше →
Всего голосов 272: ↑232 и ↓40+192
Комментарии378

Воссоздаем Minecraft-подобную генерацию мира на Python

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

Minecraft, самая продаваемая игра в мире, наиболее известная своими пикселизированными блоками и бесконечными мирами, содержит потрясающий процедурный генератор ландшафта — с пещерами, водоёмами, и даже различными биомами.

Процедурная генерация является важной частью компьютерной графики — она используется в основном в играх и в фильмах. Она помогает создавать случайные структуры, не вызывающие ощущения «машинного» стиля.

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

В детстве мне нравилось играть в Minecraft, и мне всегда было интересно, как эта игра генерирует бесконечные миры. В данной я статье я попытаюсь воссоздать это на Python.

Прим. переводчика. Осторожно, в статье много иллюстраций (в том числе анимированных)

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

Шпаргалка по сортировке для Data Science

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

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

Выбор библиотеки и типа алгоритма сортировки не всегда прост, а нововведения меняются в быстром темпе. На данный момент документация Pandas не соответствует коду (хотя лично мое PR-обновление сортировочных опций было самым последним).

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

UPD 17 июля 2019: В результаты оценки теста скорости теперь входят реализации GPU PyTorch и TensorFlow. TensorFlow также включает в себя результаты CPU как при tensorflow==2.0.0-beta1, так и при tensorflow-gpu==2.0.0-beta1. Интересные наблюдения: графический процессор PyTorch буквально летает, а GPU TensorFlow оказался медленнее CPU TensorFlow.

Контекст


Базовых алгоритмов сортировки существует множество. Одни из них имеют высокую производительность и занимают меньше места, другие хорошо работают с большим числом данных. Для некоторых алгоритмов важно взаимное расположение элементов данных. На диаграмме в начале статьи можно увидеть ситуацию по времени и объему для самых распространенных алгоритмов.
Читать дальше →
Всего голосов 14: ↑8 и ↓6+7
Комментарии2

Сэмплирование и точность вычислений

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

Ряд моих коллег сталкиваются с проблемой, что для расчета какой-то метрики, например, коэффициента конверсии, приходится кверить всю базу данных. Или нужно провести детальное исследование по каждому клиенту, где клиентов миллионы. Такого рода квери могут работать довольно долго, даже в специально сделанных для этого хранилищах. Не очень-то прикольно ждать по 5-15-40 минут, пока считается простая метрика, чтобы выяснить, что тебе нужно посчитать что-то другое или добавить что-то еще.


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


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

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

Методы имитационного моделирования вероятностных распределений на языке программирования Python

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

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

Все методы моделирования данного исследования представлены на программном языке Python. Этот язык является распространённым инструментов в сфере научных исследований и сфере обучения.

В дальнейших этапах исследования, которые будут представлены в будущих статьях, перейдём к более сложным экспериментам: рассмотрим вероятностные распределения, которые не вошли рамки данной статьи, рассмотрим имитационное моделирования систем и сетей массового обслуживания, и также продемонстрируем программирование подобных моделей с использованием параллельных вычислений.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии3

Зачем нужен алгоритм Хо-Кашьяпа?

Время на прочтение4 мин
Количество просмотров19K
Недавно на Хабре появилась публикация про алгоритм Хо-Кашьяпа (Ho-Kashyap procedure, он же — алгоритм НСКО, наименьшей среднеквадратичной ошибки). Мне она показалась не очень понятной и я решил разобраться в теме сам. Выяснилось, что в русскоязычном интернете тема не очень хорошо разобрана, поэтому я решил оформить статью по итогам поисков.

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

Проблема такого подхода в том, что даже если входные данные линейно разделимы, то получившийся классификатор может их не разделять. Например, для набора точек X = [(6, 9), (5, 7), (5, 9), (10, 1)], y = [1, 1, -1, -1] получим разделяющую прямую (0.15x_1 - 0.43x_2 + 3.21) = 0 (пример позаимствован из (1)):

Latex


Встаёт вопрос — можно ли как-то избавиться от этой особенности поведения?
Под катом немного теории и код на python
Всего голосов 55: ↑50 и ↓5+45
Комментарии2

Алгоритм НСКО (алгоритм Хо-Кашьяпа)

Время на прочтение1 мин
Количество просмотров12K
Зачастую, во время работы с нейронными сетями, перед нами встает задача в построении линейных решающих функций (ЛРФ) для разделения классов, содержащих наши образы.


Рисунок 1. двумерный случай

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

Интерес данный алгоритм представляет не только в том, что он помогает построить необходимые нам ЛРФ, а в том, что при возникновении ситуации, когда классы линейно неразделимы, мы можем построить ЛРФ, где ошибка неправильной классификации стремится к минимуму.
Читать дальше →
Всего голосов 29: ↑24 и ↓5+19
Комментарии8

Нескучный туториал по NumPy

Время на прочтение19 мин
Количество просмотров235K
Меня зовут Вячеслав, я хронический математик и уже несколько лет не использую циклы при работе с массивами…

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

Не забываем про

import numpy as np

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

Нейронные сети, фундаментальные принципы работы, многообразие и топология

Время на прочтение9 мин
Количество просмотров45K
Нейронные сети совершили революцию в области распознавания образов, но из-за неочевидной интерпретируемости принципа работы, их не используют в таких областях, как медицина и оценка рисков. Требуется наглядное представление работы сети, которое сделает её не чёрным ящиком, а хотя бы «полупрозрачным». Cristopher Olah, в работе «Neural Networks, Manifolds, and Topology» наглядно показал принципы работы нейронной сети и связал их с математической теорией топологии и многообразия, которая послужила основой для данной статьи. Для демонстрации работы нейронной сети используются низкоразмерные глубокие нейронные сети.

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

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

Рассмотрим принцип работы сети на примере
Читать дальше →
Всего голосов 49: ↑42 и ↓7+35
Комментарии40

Вычисления на GPU – зачем, когда и как. Плюс немного тестов

Время на прочтение12 мин
Количество просмотров90K
Всем давно известно, что на видеокартах можно не только в игрушки играть, но и выполнять вещи, никак не связанные с играми, например, нейронную сеть обучить, криптовалюту помайнить или же научные расчеты выполнить. Как так получилось, можно прочитать тут, а я хотел затронуть тему того, почему GPU может быть вообще интересен рядовому программисту (не связанному с GameDev), как подступиться к разработке на GPU, не тратя на это много времени, принять решение, нужно ли вообще в эту сторону смотреть, и «прикинуть на пальцах», какой профит можно получить. 


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

Что такое Хэширование? Под капотом блокчейна

Время на прочтение11 мин
Количество просмотров82K
Очень многие из вас, наверное, уже слышали о технологии блокчейн, однако важно знать о принципе работы хэширования в этой системе. Технология Блокчейн является одним из самых инновационных открытий прошлого века. Мы можем так заявить без преувеличения, так как наблюдаем за влиянием, которое оно оказало на протяжении последних нескольких лет, и влиянием, которое оно будет иметь в будущем. Для того чтобы понять устройство и предназначение самой технологии блокчейн, сначала мы должны понять один из основных принципов создания блокчейна.
Читать дальше →
Всего голосов 22: ↑13 и ↓9+4
Комментарии5

Информация

В рейтинге
1 140-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Работает в
Дата рождения
Зарегистрирован
Активность