Поиск с возвратом в решении типичных задач на собеседовании
Поиск с возвратом — это эффективный метод для решения алгоритмических задач, обычно задаваемых на собеседовании. Данный вид поиска ищет решения в глубину и, достигнув...
От Spotify к собственной рекомендательной системе
Каждый понедельник моя жизнь озаряется одним событием. И учёба или работа здесь ни при чём — я говорю об еженедельном обновлении чудесного плейлиста “Открытия недели” на...
Python: как заменить циклы For на Map, Filter и Reduce
Вы когда-нибудь смотрели на свой код и видели водопад из циклов for? Вам приходилось щурить глаза и наклоняться к монитору, чтобы рассмотреть его поближе?
Я...
Теория графов в кратком и практичном изложении
Графы являются очень полезной в программировании структурой, поскольку зачастую задачи компьютерной науки можно представить в виде графа и решить с помощью одной из его...
Статистические типы данных, используемые в машинном обучении
Введение в статистику
Статистика — это наука об изучении данных. Знания в этой области позволяют использовать подходящие методы сбора и анализа данных, а также эффективно представлять результаты...
Продвинутый взгляд на рекурсию
Рекурсия является одним из наиболее мощных подходов в программировании. С ее помощью можно решать чрезвычайно сложные задачи, печатая при этом невероятно малый объем кода.
Не учите машинное обучение
Примечание: следующие рассуждения основаны на моих личных наблюдениях за командами, работающими над машинным обучением, а не академическом обзоре отрасли.
Как разработчик, вы, вероятно, хотя бы...
Python 3: 3 функции, которые следует помнить
Многие разработчики, особенно новички, уже активно пишут на Python 3. И хотя в этой версии появилось множество новых функций, многие из них неизвестны или...
Моделирование связей графа в DynamoDB
В основе Koan лежат его цели и то, как эти цели взаимосвязывают людей и команды внутри компании. Эти связи зачастую оказываются сложными, потому что...
Инновационный алгоритм глубокого обучения в Google Translate
Современный Google Translate просто потрясает своими возможностями. Для реализации способности выполнять перевод между любой парой из десятков поддерживаемых языков создатели этого инструмента очень находчиво...
От продвинутой к эффективной аналитике
За последнюю декаду в компаниях произошел фундаментальный сдвиг в философии принятия решений. Лидеры ушли из среды, где был важен личный опыт и интуиция, в...
Метод опорных векторов: примеры на Python
Метод опорных векторов (далее МОВ) — это техника машинного обучения с учителем. Она используется в классификации, может быть применена к регрессионным задачам.
Метод определяет границу...
Deepnote - новая IDE для специалистов по данным
Дисклеймер: автор никак не связан с Deepnote или его участниками.
Deepnote — это бесплатный онлайн-блокнот для специалистов по данным, фокусирующийся в основном на совместном использовании в реальном...
DetectoRS - новейшее средство обнаружения объектов от Google Research
В области компьютерного зрения не прекращается поиск новых техник, алгоритмов и сквозных обучаемых конвейеров для задач по обнаружению объектов и сегментации изображений. Каждый год...
Почему в базе данных происходит взаимоблокировка?
Круг вопросов для обсуждения
Попробуем объяснить, что такое взаимная блокировка и почему она возникает в базе данных.
Напишем SQL-инструкции и искусственно вызовем взаимоблокировку, а также обсудим...
Слабо контролируемое обнаружение объектов - сквозной цикл обучения
Обнаружение объектов — широко известная задача компьютерного зрения, по которой было проведено огромное число исследований. Методы же контролируемого обнаружения объектов стали в этой области...
Под покровом капустного листа: шаблон Декоратор
Я родилась в городке, расположенном на западном берегу реки Амур на Дальнем востоке России. Эта область известна своим влажным континентальным климатом, для которого характерны...
Наглядное объяснение алгоритма Беллмана-Форда
Алгоритм Беллмана-Форда находит в ориентированном графе кратчайшие пути от исходной вершины до всех остальных. В отличие от алгоритма Дейкстры, в алгоритме Беллмана-Форда могут быть...
Обзор шаблонов SnapML и их возможностей в Lens Studio
В июне 2020 года Snapchat выпустил Lens Studio 3.0. — крупное обновление своего ПО для создания эффектов дополненной реальности (далее AR). Среди всего изобилия новшеств релиза...
Выбор оптимального алгоритма поиска в Python
Когда дело касается обучения, мы, как правило, используем один из двух основных подходов: идём либо вширь и стараемся охватить как можно больший спектр области,...
Графы: основы теории, алгоритмы поиска
Возможно, вы уже знакомы с понятием спортивного программирования и знаете, что оно помогает развить навыки решения проблем и прокачать технические знания о структурах данных...
Почему мы создали платформу для инженерии машинного обучения, а не науки о данных
Около года назад некоторые из нас начали работать над платформой машинного обучения с открытым исходным кодом Cortex. Наша мотивация была проста: создание приложения из...
5 секретов наилучшего использования кортежей в Python
Python, являясь языком программирования общего назначения, предоставляет набор встроенных типов данных, включая int, str, tuple, list, dict и set. Четыре последних считаются контейнерами, так...
Как работает GPT3
Обученная языковая модель генерирует текст. В качестве входных данных при желании ей можно также передать некоторый текст, влияющий на выходные данные. Выходные данные генерируются...
Утиная типизация в Python - 3 примера
Утиная типизация
Опытным программистам концепция утиной типизации наверняка знакома. Для новичков же это словосочетание может звучать довольно странно: какое отношение имеют утки к программированию?
Эта концепция...
Python в 2021: расписание релизов и основные функции
На данный момент мы используем Python 3.8, а последняя стабильная версия 3.8.4 была выпущена совсем недавно. Python 3.9 уже находится на стадии бета-тестирования, а...
Python: 5 ошибок в применении охвата списка
Охват списка, (далее ОС), бесспорно, самая мощная возможность Python, которая может оказаться невероятно эффективным инструментом, но может и сильно снизить читаемость кода. Рассмотрим несколько...
Гениально или глупо? Самая неоднозначная нейросеть
Некоторые считают нейронную сеть экстремального обучения (ELM) одной из самых удачных нейросетей — изучению её архитектуры даже посвящена отдельная конференция. Сторонники ELM утверждают, что для выполнения...
Не используйте ID, сгенерированные базой данных для доменных сущностей
Вы, вероятно, позволяли базам данных генерировать ID для сущностей по крайней мере один раз.
Но что, если я скажу вам, что при разработке приложений есть...
Метод подсчёта количества решений
Линейные алгебраические уравнения — одни из самых простых уравнений, которые мы можем решить. Если в уравнении только одна переменная, решение тривиально, в то время как для...
Связный список в деталях
Определение и пояснение??
Когда мы будем говорить “связный список”, то подразумеваться будет однонаправленный связный список. Чтобы получше понять эту структуру данных, давайте рассмотрим ее отличительные...
Автоматизация Doom с глубоким Q-обучением: реализация в Tensorflow
Введение
Методы онлайнового обучения машин (ОО) — это семейство динамических алгоритмов обучения с подкреплением, которое стоит за кулисами многих достижений во всей области ИИ за последние десять...
10 трюков для мастеров Python
На первый взгляд Python может показаться простым языком, который любой может освоить, и многих удивляет, какого мастерства можно достичь в этом языке. Python один...
Глубокие свёрточные нейросети: руководство для начинающих
Перед прочтением
В этой статье предполагается, что у читателя уже есть базовые знания о глубоких нейронных сетях (нейронных сетях прямого распространения). О них подробно рассказывалось...
Как сгенерировать настоящие случайные числа в Solidity с блокчейном
Если бы вы погуглили фразу “случайные числа в Solidity” (речь идёт об англоязычном поиске), то в самых популярных результатах выдачи было бы:
Solidity не может...
5 любопытных библиотек Python
Как один из наиболее популярных языков программирования, Python содержит огромное количество прекрасных библиотек, облегчающих разработку, таких как Pandas, Numpy, Matplotlib, SciPy и так далее.
Однако...
Пошаговое построение логистической регрессии в Python
Логистическая регрессия — это алгоритм классификации машинного обучения, используемый для прогнозирования вероятности категориальной зависимой переменной. В логистической регрессии зависимая переменная является бинарной переменной, содержащей данные, закодированные...
Стоит ли учить Julia?
Julia — это новейший IT-язык, поэтому я решил его попробовать. Вопрос в том, стоит ли добавлять его в арсенал специалиста по данным?
Установка
Первое, что стоит знать о...
7 способов раскрыть жульничество аналитика данных
Не имеет значения, являетесь ли вы крупным или малым предпринимателем, инвестором, частью менеджерского звена компании, судьёй на марафоне программирования или иным участником технологической индустрии,...
Как Jupyter превратился в полноценную IDE
Jupyter Notebook - удобный инструмент для поэтапного развития идей по разработке ПО. Специалисты по данным используют его для записи процесса своей работы, экспериментов с...
Почему люди подсаживаются на TikTok? Алгоритм ИИ, который вас подловил
Tick Tok стремительно завоёвывает мир. Согласно данным Sensor Tower, это приложение для коротких видео было загружено более 2 миллиардов раз с App Store и...
Как за секунды обрабатывать DataFrame с миллиардами строк
Анализ больших данных в Python переживает свой ренессанс. Всё началось с NumPy, которая тоже в каком-то смысле причастна к инструменту, с которыми я вас...
3 простых шага для оптимизации гиперпараметров в любом Python-скрипте
Итак, вы написали Python-скрипт, который обучает и оценивает модель машинного обучения. И теперь вам хочется оптимизировать гиперпараметры и повысить производительность модели.
Я помогу!
В данной статье...
Лучшие фреймворки для ИИ и машинного обучения в веб-разработке
Конкуренция на технологическом рынке чрезвычайно высока, и компании стремятся получить преимущество с помощью веб-дизайна и разработки.
Чтобы веб-приложение для бизнеса было современным и конкурентоспособным, при...
Что такое тензор?
Концепция тензора была создана в 1900 году двумя итальянскими математиками — Туллио Леви-Чивита и Грегорио Риччи-Курбастро, и, как это обычно бывает, основывалась на работе других математиков....
Анализ моделей машинного обучения при помощи Imandra
Расскажем о задачах классификации и регрессии. Данные, модели, условия и Imandra с её возможностями помогать прогнозировать рак и вред от лесных пожаров.
Введение
Проверка параметров изучаемых моделей — сложная...
Пять отличных Python-библиотек для data science
Python — это лучший друг специалистов по данным, а библиотеки значительно упрощают их жизнь. Работая над NLP-проектом, я открыл для себя пять отличных Python-библиотек, которые мне...
Глубокие нейросети: руководство для начинающих
Введение
ИИ уже успел достаточно нашуметь — о нейросетях сейчас знают и в научной среде, и в бизнесе. Вам наверняка случалось читать, что совсем скоро ваши рабочие...
4 способа обработки ошибок для стеков
Обработка ошибок — это часть рабочих будней каждого программиста. Всегда были и будут ситуации, когда по какой-либо причине код не заработает, и наша задача — следить за тем,...
В поисках лучшей среды для Julia: Juno или Jupyter?
Одним из важнейших факторов, влияющих на производительность программирования, является среда разработки. Особенно это относится к науке о данных, так как специалисты, работающие в этой...
Моделирование логистического роста
Часть 1, Часть 2
В прошлой статье мы рассмотрели пример моделирования первой вспышки коронавируса с помощью экспоненциального роста. Следующая ступень анализа — логистический рост. Воспользуйтесь Python notebook...
Подробное руководство по свёрточным нейронным сетям
Искусственный интеллект существенно развился на своём пути сокращения разрыва между возможностями людей и машин. Разработчики наравне с энтузиастами работают над великим множеством аспектов в...
Переживут ли творческие профессии революцию искусственного интеллекта?
Людьми нас делает наш разум, а искусственный разум — продолжение нашего.
Ян Лекун
Люди великолепно развили свои способности. Из куска мрамора мы изваяли прекрасные статуи, написали живущие в...
Эйнштейн и самая красивая из всех теорий
Британский физик-теоретик Поль Дирак (1902–1984), один из основоположников квантовой механики, однажды написал:
«Было трудно примирить ньютоновскую теорию гравитации, в соответствии с которой гравитационное взаимодействие распространяется...
8 базовых понятий статистики для науки о данных
Статистика — это разновидность математического анализа, использующая количественные модели и репрезентации для анализа экспериментальных или реальных данных. Главное преимущество статистики — простота представления информации. Недавно я пересматривала материалы...
3 случая, когда линейная модель может ошибаться
Введение
В этой статье я покажу три случая, когда линейные модели могут привести к неверным результатам. Основное внимание будет уделено сравнению линейных моделей с моделируемыми...
Сможет ли Julia занять место рядом с Python
Julia и Python —языки программирования, которыми я очень дорожу. Использование Julia вместо Python обладает множеством преимуществ, таких как меньшее время написания кода и более...
Почему логарифмы так важны в машинном обучении
Если бы вы жили на 10-м этаже, вы бы поднимались по лестнице или пользовались лифтом? Цель в обоих случаях одна: вы хотите вернуться домой...
Как искусственный интеллект меняет финансовый сектор?
Анализ акций и других ценных бумаг обычно кажется нам крайне трудоёмким процессом. Эффективное управление рисками требует масштабных исследований и анализа моделей, данных и отраслевых...
Почему 0,99999… равно 1
Давайте разберёмся, почему математики говорят, что 0,(9)=1. То есть ноль целых девять в периоде равно одному. Объяснение простое, но красивое.
Об изображении: это не просто...
14 проектов по науке о данных для вашего 14-дневного карантина
Проекты по визуализации
Возможно, самые короткие по срокам проекты визуализации данных! Ниже приведены три интересных набора данных, с помощью которых вы сможете пополнить свои портфолио,...
Моделирование экспоненциального роста
Чтобы лучше усвоить материал, рекомендуем вам использовать данные для примера и Python Notebook.
Почему именно экспоненциальный рост?
Экспоненциальный рост — это математическая функция, которая может использоваться в нескольких...
Введение в теорию информации
Индонезийские пещеры острова Борнео дают представление о самой примитивной зарегистрированной форме коммуникации. Около 40000 лет назад, ещё до развития письменного языка, физические иллюстрации на...
Реализация base64 на Rust
Практически каждый разработчик так или иначе использует base64. Но каков механизм работы этого алгоритма? Я считаю, что самый простой способ по-настоящему понять, как работает...
Сканер документов на основе технологии машинного зрения
В последнее время, когда я работал с OpenCV, мне пришла в голову идея написать фреймворк для преобразования изображений. Такое приложение будет полезно каждый день...
Квантовые вычисления для всех
Квантовые вычисления. Наряду с квантовой запутанностью и квантовой телепортацией это модное учёное словечко широко распространено в научной фантастике и научно-популярных СМИ. Но что оно...
Какие десять книг про науку о данных и искусственный интеллект стоит прочитать в 2020
Чтобы стать экспертом в какой-либо области, нужно взять на себя обязательство учиться и быть последовательным в достижении своих целей. И это справедливо для всех...
Создаем YouTube видео из кода
Если вы когда-либо задумывались о создании видео, содержащего компьютерную анимацию, эта статья для вас. Я предполагаю, что у вас уже есть код, или вы...
NoSQL убивает SQL?
На прошлой неделе мой друг переслал мне письмо от успешного предпринимателя, который утверждает, что “SQL мёртв”.
Предприниматель убеждён, что чрезвычайно популярные NoSQL базы данных, такие...
Вычисление π: моделирование методом Монте-Карло
Каждый год 14 марта любители математики отмечают День числа пи! Есть много способов вычислить это легендарное число π, которое примерно равно 3,14159…
Обсудим все эти...
Apache Spark: гайд для новичков
Что такое Apache Spark?
Специалисты компании Databricks, основанной создателями Spark, собрали лучшее о функционале Apache Spark в своей книге Gentle Intro to Apache Spark (очень рекомендую...
Исследование операций: что, когда и как
Несколько расплывчатый термин “исследование операций” был придуман в Первую мировую войну. Британские военные собрали группу ученых для распределения недостаточных ресурсов — например, еды, медикаментов, оружия, войск...
Все модели машинного обучения за 6 минут
Все модели машинного обучения разделяются на обучение с учителем (supervised) и без учителя (unsupervised). В первую категорию входят регрессионная и классификационная модели. Рассмотрим значения...
Анализ текста средствами языка программирования R
“Люди часто восхваляют классические произведения, даже не читая их”, — Марк Твен.
Надеюсь, что ваш опыт опровергает это высказывание Марка Твена, а также верю, что вы всё-таки...
Анализ аудиоданных с помощью глубокого обучения и Python (часть 2)
Предыдущая часть: Часть 1
Сверточные нейронные сети (CNN) схожи с обычными нейронными сетями: они состоят из нейронов с обучаемыми весами и сдвигами. Каждый нейрон получает...
Анализ аудиоданных с помощью глубокого обучения и Python (часть 1)
Введение
Аудиоанализ - область, включающая автоматическое распознавание речи (ASR), цифровую обработку сигналов, а также классификацию, тегирование и генерацию музыки - представляет собой развивающийся поддомен приложений...
Как вино может быть слегка острым и резким?
Как можно о вине сказать, что оно острое, резкое, яркое или плотное? Описания вин (особенно те, которые делают сомелье) часто состоят из как будто...
Монада - программируемая точка с запятой
Монады — программируемые точки с запятой. Именно так. Монада предоставляет функции, позволяющие упорядочивать действия. Более того, между каждыми двумя действиями выполняется определённый фрагмент кода....
Развёртывание модели машинного обучения в виде REST API
В статье вы узнаете, как разворачивать модели машинного обучения и составлять прогнозы при помощи любого языка программирования, который вам нравится. Конечно, за основу вы...
Bamboolib — изучайте и используйте Pandas без написания кода
Установка Bamboolib
Установка достаточно проста:
pip install bamboolib
Чтобы Bamboolib работал с Jupyter и Jupyterlab, нужно установить дополнительные расширения. С помощью следующей команды устанавливаются расширения для Jupyter...
Бета-распределение: интуиция, примеры, вывод
Часть 1, Часть 2, Часть 3
Бета-распределение — это распределение вероятностей по вероятностям. Мы можем использовать его для моделирования вероятностей: рейтинг кликов вашей рекламы, коэффициент конверсии клиентов,...
Байесовский вывод - интуиция и примеры
Часть 1, Часть 2, Часть 3
Зачем кто-то вообще изобрел байесовский вывод?
Чтобы обновлять вероятность по мере поступления новых данных.
Суть байесовского вывода в том, чтобы объединить...
Сопряженное априорное распределение
Часть 1, Часть 2, Часть 3
1. Что такое априорное распределение?
Априорная вероятность — это вероятность события до того, как мы получили дополнительные данные. В байесовском выводе априорное распределение — это...
Рекуррентная нейронная сеть с головы до ног
Нейрон — строительный элемент человеческого мозга. Он анализирует сложные сигналы за микросекунды и отправляет ответы нервной системе, которая решает сложные задачи. У всех нейронов одна и...
3 функции Pandas, которые стоит использовать чаще
Используемый набор данных
Мы будем использовать знаменитый набор данных Titanic. Импортируем его и получаем следующее:
1. idxmin() and idxmax()
Эти функции возвращают индексную позицию определенной записи. В...
Как построить модель машинного обучения, если под рукой нет доступных данных
Перед решением любой задачи науки о данных, такой как исследовательский анализ или построение модели, нужно ответить на следующие вопросы:
Что вы хотите узнать или обнаружить...
7 советов по улучшению анализа данных в Python
#1: Pandas Profiling
Преимущества этого инструмента очевидны. Анимация ниже создана с помощью вызова метода df.profile_report():
С помощью этого инструмента можно с легкостью устанавливать и импортировать пакет...
Как работает случайный лес?
Как и почему работает случайный лес? Разбираемся
Важная часть машинного обучения — это классификация. Мы хотим знать, к какому классу (или группе) принадлежит значение. Возможность...
Гамма-функция - интуиция, определение, примеры
Почему это интересно?
Многие распределения вероятностей определяются с использованием гамма-функции, я перечислю лишь некоторые: гамма-распределение, бета-распределение, распределение Дирихле, распределение хи-квадрат, т-распределение Стьюдента и так далее.
Для...
Завораживающая последовательность Фибоначчи
Занимаясь изучением обработки данных, расчётами, а также другими компьютерными и математическими операциями, мы сталкиваемся со многими алгоритмами. Несмотря на то, что иногда мы недолюбливаем...
Объясняем производящую функцию моментов
1. Начнем с главного — что такое “момент” в вероятности и статистике?
Скажем, нас интересует случайная переменная X.
Моменты — это ожидаемые значения X, например, E(X), E(X²), E(X³) и т.д.
...
Анализ автоаварий в Барселоне с использованием Pandas, Matplotlib и Folium
Open Data Barcelona - это сервис, предоставляющий наборы данных Барселоны, который содержит около 400 наборов, охватывающих широкий спектр тем, таких как население, бизнес и...
Быстрая сборка и развертывание дашборда со Streamlit
Со Streamlit разработка дашборда для решения машинного обучения становится невероятно простой.
Streamlit — это фреймворк с открытым кодом, специально разработанный для инженеров машинного обучения, работающих с Python....
Алгоритм поиска A*
Пошаговый разбор алгоритма поиска А*
Поиск короткого пути — это то, чем каждый занимается ежедневно. Алгоритм А *— один из самых популярных методов решения задач на поиск кратчайшего...
Условная независимость - основа байесовской сети
1. Восприятие условной независимости
Скажем, A — рост ребенка, а B — количество слов, которые он знает. Кажется, что если A высокий, то B, соответственно, тоже.
Однако существует информация, которая...
Обработка естественного языка для анализа отзывов онлайн-покупателей
Цель использования обработки естественного языка в описываемом проекте — анализ обзоров на товары, оставленных онлайн-покупателями.
Я начал работу над этим проектом для достижения трех бизнес-целей:
Найти основные компоненты...
Персонализация контента с IBM Watson
В своём дипломном проекте я решил продолжить работать с естественным языком, фильмами и IBM Watson. В предыдущем проекте я визуализировал психологические профили персонажей фильмов,...
8 базовых алгоритмических задач на собеседованиях
Во время собеседования на должность в IT-сфере часто касаются вопросов применения алгоритмов. Наиболее популярными являются алгоритмы поиска и сортировки (строковые алгоритмы, бинарный поиск, алгоритм...
Экспоненциальное распределение
Мы всегда начинаем с вопроса “почему”, прежде чем переходить к формулам. Если вы понимаете, почему что-то работает, вы с большей вероятностью будете применять это...
Плотность вероятности - это не сама вероятность
Наибольшее значение вероятности — единица. Это общеизвестный факт! Однако для некоторых плотностей вероятности (например, плотности вероятности экспоненциального распределения на графике ниже), когда λ= 1.5 и ?...
Сайты с модальными диалоговыми окнами без JavaScript
Сайты, которые используют JavaScript для большей части таких элементов, как модальные диалоговые окна, выпадающее меню, мобильные меню-«гамбургеры», зачастую демонстрируют полный провал в плане удобства...
Топ-10 самых распространенных ошибок в проектах Go. Часть 1
Неизвестное значение enum
Рассмотрим простой пример:
type Status uint32
const (
StatusOpen Status = iota
StatusClosed
StatusUnknown
)
Enum создан с помощью iota, что приводит к следующему состоянию:
StatusOpen = 0
StatusClosed = 1
StatusUnknown =...
Хитрости объектно-ориентированного программирования. Часть 3: Смерть от аргументов
Это мини-серия статей по написанию поддерживаемого объектно-ориентированного кода без лишней нервотрепки.
Предыдущие части: Часть 1, Часть 2.
Аргументы, аргументы, аргументы
Длинные списки аргументов в функции крайне трудны для вызываемого...
Объясняем производящую функцию моментов
1. Начнем с главного — что такое “момент” в вероятности и статистике?
Скажем, нас интересует случайная переменная X.
Моменты — это ожидаемые значения X, например, E(X), E(X²), E(X³) и т.д.
...
Что важнее — промпт-дизайн или промпт-инжиниринг?
В сфере языковых моделей разграничивают такие аспекты, как “промпт-дизайн” и “промпт-инжиниринг”. Первый относят к искусству, второй — к науке. Какой же из них важнее? Ответ на этот вопрос определит как настоящее, так и будущее человекоориентированного ИИ.