Как стать автором
Обновить
2
0

Пользователь

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

Выработка уникальных идей для Data Science-проектов за 5 шагов

Время на прочтение8 мин
Количество просмотров8.1K
Вероятно, самое сложное в любом Data Science-проекте — это придумать оригинальную, но реализуемую идею. Специалист, который ищет такую идею, легко может попасться в «ловушку наборов данных». Он тратит многие часы, просматривая существующие наборы данных и пытаясь выйти на новые интересные идеи. Но у такого подхода есть одна проблема. Дело в том, что тот, кто смотрит лишь на существующие наборы данных (c Kaggle, Google Datasets, FiveThirtyEight), ограничивает свою креативность, видя лишь небольшой набор задач, на которые ориентированы изучаемые им наборы данных.

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



Как вырабатывать новые идеи? Для того чтобы найти ответ на этот вопрос, я совместила собственный опыт и результаты исследований креативности. Это привело к тому, что мне удалось сформировать 5 вопросов, ответы на которые помогают находить новые идеи. Тут же я приведу и примеры идей, найденных благодаря предложенной мной методике. В процессе поиска ответов на представленные здесь вопросы вы пройдёте по пути создания новых идей и сможете задействовать свои креативные возможности на полную мощность. В результате у вас будут новые уникальные идеи, которые вы сможете реализовать в ваших Data Science-проектах.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии2

Защита фото от систем распознавания лиц работает?

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

За последние полтора месяца (с начала августа 2020) уже довольно много изданий/платформ и ресурсов говорили/писали про Алгоритм Fawkes: https://sandlab.cs.uchicago.edu/fawkes/#press.

Среди которых и Habr, The New York Times, The Verge и т.д.
Читать дальше →
Всего голосов 35: ↑34 и ↓1+33
Комментарии26

Ruby Digest 2020·08·1

Время на прочтение7 мин
Количество просмотров3K
Большая подборка информации о Ruby, включая русскоязычные источники, с 1 по 15 августа:
новости, медиа, новинки, релизы, статьи, обучение.


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

Предсказание будущего: нейрокомпьютерная модель распознавания речи

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


Что есть речь человека? Это слова, комбинации которых позволяют выразить ту или иную информацию. Возникает вопрос, откуда мы знаем, когда заканчивается одно слово и начинается другое? Вопрос довольно странный, подумают многие, ведь мы с рождения слышим речь окружающих людей, учимся говорить, писать и читать. Накопленный багаж лингвистических знаний, конечно, играет важную роль, но помимо этого есть и нейронные сети головного мозга, разделяющие поток речи на составляющие слова и/или слоги. Сегодня мы с вами познакомимся с исследованием, в котором ученые из Женевского университета (Швейцария) создали нейрокомпьютерную модель расшифровки речи за счет предсказания слов и слогов. Какие мозговые процессы стали основой модели, что подразумевается под громким словом «предсказание», и насколько эффективна созданная модель? Ответы на эти вопросы ждут нас в докладе ученых. Поехали.
Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии2

База данных простых чисел до ста миллиардов на коленке

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

Самый известный алгоритм для нахождения всех простых чисел, не больших заданного, – решето Эратосфена. Он замечательно работает для чисел до миллиардов, может быть, до десятков миллиардов, если аккуратно написан. Однако каждый, кто любит развлекаться с простыми числами, знает, что их всегда хочется иметь под рукой как можно больше. Как-то раз мне для решения одной задачи на хакерранке понадобилась in-memory база данных простых чисел до ста миллиардов. При максимальной оптимизации по памяти, если в решете Эратосфена представлять нечетные числа битовым массивом, его размер будет около 6 гигабайт, что в память моего ноутбука не влезало. Существует модификация алгоритма, гораздо менее требовательная по памяти (делящая исходный диапазон чисел на несколько кусков и обрабатывающая по одному куску за раз) – сегментированное решето Эратосфена, но она сложнее в реализации, и результат целиком в память все равно не влезет. Ниже предлагаю вашему вниманию алгоритм почти такой же простой, как и решето Эратосфена, но дающий двукратную оптимизацию по памяти (то есть, база данных простых чисел до ста миллиардов будет занимать около 3 гигабайт, что уже должно влезать в память стандартного ноутбука).
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии28

Zip-файлы: история, объяснение и реализация

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


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

В статье очень подробно объясняется, как работают Zip-файлы и схема сжатия: LZ77-сжатие, алгоритм Хаффмана, алгоритм Deflate и прочее. Вы узнаете историю развития технологии и посмотрите довольно эффективные примеры реализации, написанные с нуля на С. Исходный код лежит тут: hwzip-1.0.zip.
Читать дальше →
Всего голосов 176: ↑175 и ↓1+174
Комментарии45

Генерирование псевдослучайных чисел с помощью клеточного автомата: Правило 30

Время на прочтение5 мин
Количество просмотров6.6K
Генераторы псевдослучайных чисел выдают числа детерминировано, но обычно такие числа выглядят непериодическими (случайными). По крайней мере, в большинстве случаев применения подобных чисел так обычно и происходит. Генератор принимает начальное значение (в идеале — истинное случайное число) и порождает последовательность чисел, работая как функция от начального значения и (или) от предыдущего числа последовательности. Подобные числа являются псевдослучайными (а не истинными случайными числами) из-за того, что если известно начальное значение, переданное генератору, эти числа можно сгенерировать снова алгоритмическим путём. Истинные случайные числа генерируют, используя специальное аппаратное обеспечение или некие физические явления — пульсовые колебания объёма крови, атмосферное давление, тепловой шум, квантовые процессы и так далее.



Существует множество способов генерирования псевдослучайных чисел. Например — алгоритм Блюма — Блюма — Шуба, метод средних квадратов, метод Фибоначчи с запаздываниями. Сегодня мы поговорим о генерировании случайных чисел с помощью Правила 30, которое использует неоднозначный подход, предусматривающий применение модели клеточного автомата. Этот метод прошёл множество стандартных тестов на случайность чисел и использовался в системе Mathematica для генерирования случайных целых чисел.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии0

Принцип единственной ответственности: глубокое погружение

Время на прочтение17 мин
Количество просмотров45K
Про принцип единственной ответственности (The Single Responsibility Principle, SRP) уже было написано множество статей. В большинстве из них даётся лишь поверхностное его описание мало чем отличающееся от информации в википедии. А те немногие статьи что затрагивают ключевые особенности SRP делают это вскользь, не акцентируя на них внимания и не развивая тему дальше.

Эта статья — попытка дать более глубокое объяснение принципу единственной ответственности, а также показать как его всё таки можно применять на практике. Кому интересно — добро пожаловать под кат.
Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии106

Как работают реляционные базы данных (Часть 1)

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

Привет, Хабр! Представляю вашему вниманию перевод статьи
"How does a relational database work".


Когда дело доходит до реляционных баз данных я не могу не думать, что чего-то не хватает. Они используются везде. Существует множество различных баз данных: от небольшого и полезного SQLite до мощной Teradata. Но есть только несколько статей, которые объясняют, как работает база данных. Вы можете искать сами по запросу "howdoesarelationaldatabasework" («как работают реляционные базы данных») чтобы увидеть, как мало результатов. Более того, эти статьи — короткие. Если же вы ищете последние модные технологии (BigData, NoSQL или JavaScript), вы найдете больше углубленных статей, объясняющих, как они работают.


Являются ли реляционные базы данных слишком старыми и слишком скучными, чтобы их можно было объяснить вне университетских курсов, исследовательских работ и книг?


image

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

«Чистый код» Роберт Мартин. Конспект. Как писать понятный и красивый код?

Время на прочтение9 мин
Количество просмотров59K
Я решил написать конспект книги, которая всем известна, а сам автор называет ее «Школой учителей Чистого кода». Пристальный взгляд Мартина как бы говорит:

«Я тебя насквозь вижу. Ты опять не следуешь принципам чистого кода?»

image
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии15

Коты в коробочках, или Компактные структуры данных

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

image


Как быть, если дерево поиска разрослось на всю оперативку и вот-вот подопрет корнями соседние стойки в серверной? Что делать с инвертированным индексом, жадным до ресурсов? Завязывать ли с разработкой под Android, если пользователю прилетает «Память телефона заполнена», а приложение едва на половине загрузки важного контейнера?


В целом, можно ли сжать структуру данных, чтобы она занимала заметно меньше места, но не теряла присущих ей достоинств? Чтобы доступ к хэш-таблице оставался быстрым, а сбалансированное дерево сохраняло свои свойства. Да, можно! Для этого и появилось направление информатики «Succinct data structures», исследующее компактное представление структур данных. Оно развивается с конца 80-х годов и прямо сейчас переживает расцвет в лучах славы big data и highload.


А тем временем на Хабре найдется ли герой, способный пересковоговорить три раза подряд
[səkˈsɪŋkt]?

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

Rhasspy — опенсорсный и полностью офлайновый речевой тулкит. Распознавание русского языка. Никаких утечек в облако

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

Фото из сравнения микрофонных массивов для DIY-устройств типа самодельной умной колонки

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

Вместо покупки коммерческой системы у корпораций типа Google, Amazon или «Яндекс», вы можете собрать аналогичную опенсорсную систему на базе Raspberry Pi 2-3 B/B+, персонального компьютера или ноутбука.

Rhasspy — безопасный голосовой помощник, который работает автономно. Он ничего не передаёт на удалённые сервисы, при этом успешно справлятся с распознаванием речи и голосовых команд.
Читать дальше →
Всего голосов 48: ↑44 и ↓4+40
Комментарии51

Простой классификатор P300 на открытых данных

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

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


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



Для того, чтобы заняться классификацией ЭЭГ, можно позвать друзей, написать игру про Енотов и Демонов в VR, записать собственные реакции и написать научную статью (об этом я расскажу как-нибудь в другой раз), но по счастью, учёные со всего мира уже провели некоторые эксперименты за нас и осталось только скачать данные.


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

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

Девелопишь на .NET Core? Го в Ubuntu, я создал

Время на прочтение3 мин
Количество просмотров35K
image
Photo by Kevin Horvat
Все 12 лет своей карьеры я работал с .NET и был крепко привязан к Windows и проприетарным инструментам разработки. Но, спасибо Microsoft, .NET Core все изменил и теперь разрабатывать для .NET можно почти на чем угодно и в чем угодно. Дело за малым — перетащить на Core свои проекты. Не так давно я решил и этот вопрос и завел трактор для полного переезда на Ubuntu.

Результат очень понравился — все взлетело, разрабатывать легко, а Docker и Kubernetes сделали процесс переезда намного легче. Но из-за слабого знания ОС, bash и запутанности вариантов установки некоторых инструментов (например, того же Docker) изначальная настройка заняла больше дня. То есть процесс довольно долгий и местами запутанный.

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

Если для вас это звучит полезно — добро пожаловать под кат.
Читать дальше →
Всего голосов 26: ↑21 и ↓5+16
Комментарии40

В самом популярном фрагменте кода за всю историю StackOverflow ошибка! 

Время на прочтение7 мин
Количество просмотров70K
Недавнее исследование «Использование и атрибуция сниппетов кода Stack Overflow в проектах GitHub» внезапно обнаружило, что чаще всего в опенсорсных проектах встречается мой ответ, написанный почти десять лет назад. По иронии судьбы, там баг.

Давным-давно…


Еще в 2010 году я сидел в своём офисе и занимался ерундой: развлекался код-гольфингом и накручивал рейтинг на Stack Overflow.

Моё внимание привлёк следующий вопрос: как вывести количество байт в удобочитаемом формате? То есть как преобразовать что-то вроде 123456789 байт в «123,5 МБ».


Старый добрый интерфейс 2010 года, спасибо The Wayback Machine
Читать дальше →
Всего голосов 164: ↑162 и ↓2+160
Комментарии79

Простые числа — насколько велико наше бессилие?

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

image

Эту метафору будет проще понять, если провести аналогию с черной дырой: мы не знаем, что находится под ее горизонтом событий, и чтобы это узнать нам нужно придумать способ, как туда добраться. Нечто подобное существует в мире математики. Данное уравнение — это настоящая «формула» простого числа, но чтобы ею пользоваться, нам нужно придумать, как искать подходящие {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, w, v, x, y, z}.

Черная дыра и данное уравнение — это предельные состояния чего-то реального и абстрактного. И, если о первом существует достаточно догадок и представлений, то о втором, практически ничего не известно. Но, что если это действительно «математическая» черная дыра? Разве вам не интересно что может произойти, если мы попадем под горизонт?
Под горизонт.
Всего голосов 154: ↑154 и ↓0+154
Комментарии82

Что нужно знать об интернете вещей: фундаментальный ликбез

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


Об IoT говорят сегодня чуть ли не из каждого («умного») утюга. При этом в таких разговорах обычно пропускают базовые вещи: что такое интернет вещей, из чего он состоит, и кто может отвечать на эти вопросы на правах «уполномоченного органа». А между тем, вопросы эти весьма актуальны. Вот, скажем, ваш (говорящий об IoT) «умный» утюг — он относится к интернету вещей? В этом посте мы расскажем об архитектуре интернета вещей: из каких компонентов он состоит, какие технологии имеют особое значение, какие решения позволяют упростить массовое внедрение, а также кто в мире главный по IoT.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии5

Коллективное движение: как ученые муравьиные пробки изучали

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


Как сейчас помню, утро буднего дня, спешишь на учебу. Подходишь к остановке общественного транспорта, смотришь на толпу людей, напоминающую в своих движениях марш пингвинов. Смотришь на дорогу, где велосипедист идет рядом со своим велосипедом быстрее, чем движутся машины. Понимаешь, что ловить тут нечего, разворачиваешься и идешь пешком. Пробки есть везде: на дорогах они тренируют буддийское терпение у водителей, а в общественном транспорте позволяют провести занятие по йоге, хотите вы того или нет. Основной причиной задержек в движении является наличие слишком большого числа транспорта или людей для конкретного пути движения, который не может справиться с таким потоком. Среди представителей дикой природы тоже случаются большие скопления особей, и каждый вид борется с пробками своим уникальным методом. Одними из лучших в вопросах организованности и кооперации по праву называют муравьев. Эти маленькие трудоголики живут в многотысячных, а то и в многомиллионных колониях, но при этом не испытывают никаких «прелестей» пробок. Естественно, возникает вопрос — как они это делают? Именно на этот вопрос искали ответ ученые из университета Аризоны (США) и Тулузы (Франция). Как именно муравьи борются с пробками и какие из их методов можно применить нам, а какие — нет? Об этом мы узнаем из доклада исследовательской группы. Поехали.
Всего голосов 15: ↑14 и ↓1+13
Комментарии2

Российские ученые восстановили образы из мыслей человека по электрической активности мозга

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


Ученые из россйской ГК «Нейробиотикс» и Лаборатории нейробототехники МФТИ сумели воссоздать изображения по электрической активности мозга. Правда, речь идет только о работе с изображениями, на которые смотрит человек, чей мозг анализируется.

Собственно, восстанавливать геометрические фигуры, на которые смотрит человек в определенный момент времени, по электрической активности его нервных клеток — вовсе не самоцель. Главное — понять, как мозг шифрует информацию, которую мы затем храним многие годы (ну или минуты, что не менее важно).
Всего голосов 77: ↑66 и ↓11+55
Комментарии37

Как проводить код-ревью

Время на прочтение18 мин
Количество просмотров52K
Из документации Google's Engineering Practices

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


См. также Руководство автора CL, в котором даются подробные советы разработчикам, чьи коммиты проходят ревью.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии17

Информация

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