Pull to refresh
103
0

Профессиональное сообщество

Send message

Машинное обучение в среде SQL Server

Reading time3 min
Views5.3K


Инструментарий ML внутри SQL Server

В этой статье описаны шаги по созданию процедуры, которая использует набор данных mtcars, входящий в состав R, на основе которой создается простая обобщенная линейная модель (ОЛМ), способная прогнозировать вероятность оснащения автомобиля механической коробкой передач. Вторая процедура предназначена для оценки — она вызывает модель, созданную в первой процедуре, для вывода набора прогнозов на основе новых данных.
Читать дальше →

Нейросети для предсказания возраста и пола

Reading time4 min
Views8.6K


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

  1. Обнаружение лиц на входном изображении.
  2. Извлечение интересующей области лица (ROI — Region of Interest) и применение алгоритма детектора возраста и пола человека.
Читать дальше →

Компьютерное зрение на страже конфиденциальности

Reading time7 min
Views3.3K


Профилактика – наше всё. Грамотная защита от утечек данных поможет предупредить негативные последствия, которые могут повлечь за собой многомиллионные потери. В современном мире каждая из организаций обрабатывает и хранит конфиденциальную информацию. Если речь идёт о крупных организациях, то объёмы конфиденциальной информации огромны. Состояние «безопасности» компьютера – это концептуальный идеал, достигаемый при соблюдении каждым пользователем всех правил информационной безопасности.

Находясь в офисе, любой сотрудник время от времени отлучается от своего компьютера, и тогда включённый компьютер оказывается без присмотра, зачастую с открытыми для доступа папками и файлами, поскольку многие сотрудники попросту забывают блокировать свой ПК, либо же не делают это намеренно, руководствуясь подобной фразой – «отошёл на пять метров, что его блокировать-то!?» К сожалению, такими моментами могут воспользоваться заинтересованные в материалах другие сотрудники.
Читать дальше →

Анализ сетей с использованием графов

Reading time13 min
Views16K

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

Любые сети состоят из отдельных участников (людей или вещей в сети) и отношений между ними. Сети очень часто визуализируются с помощью графов – структур, состоящих из множества точек и линий, отображающих связи между этими точками. Участники представлены в виде узлов сети, а их отношения представлены в виде линий, их связывающих. Такая визуализация помогает получить качественную и количественную оценку сетей:


Рис. 1. Направленный граф, изображающий денежный оборот между банками, формирующими валютный рынок (1). Красным отмечены банки ЕС, синим – Северной Америки, зелёным – других стран.


Рис. 2. Граф, отображающий сотрудничество партнеров по аудиту в Дании в 2010-2014 гг (2)

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

Выявляем признаки аудиомонтажа методами AI

Reading time4 min
Views2.8K

Одной из задач фоноскопической экспертизы является установление подлинности и аутентичности аудио записи — другими словами, выявление признаков монтажа, искажения и изменения записи. У нас возникла задача её проведения в целях установления подлинности записей – определения того, что на записи не осуществлялось никаких воздействий. Но как провести анализ тысяч, и даже сотен тысяч аудиозаписей?

Нам на помощь приходят методы AI, а также утилита по работе с аудио, о которой мы рассказывали в статье на сайте NewTechAudit «ОБРАБОТКА АУДИО С ПОМОЩЬЮ FFMPEG».

Как проявляются внесенные изменения в аудио? Как отличить файл, который изменили, от нетронутого файла?

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

Идеальный график отпусков. Естественные алгоритмы. Поведение роя пчёл

Reading time5 min
Views4.7K


Естественные (или эволюционные) алгоритмы – это направление в искусственном интеллекте, которое моделирует процессы естественного отбора, мутации и воспроизводства.

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


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

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

О котах и Process Mining

Reading time3 min
Views5.2K


«А выживет ли у меня дома кот? », — задался я вопросом, прежде чем забрать себе пушистого друга из приюта домашних животных. И решил проверить свою гипотезу средствами Process Mining, этого относительно нового, но активно развивающегося направления анализа процессов. Среди программных продуктов этой сферы есть достаточное количество альтернатив, в частности: Celonis, Disco, ProM, Apramore. Я же решил попробовать библиотеку языка Python — PM4PY (Process Mining for Python), первая версия которой появилась на GitHub чуть больше года назад, в конце 2018. Ее особенность в том, что это свободно распространяемое ПО, и оно не имеет ограничений как по объему загружаемых файлов, так и по количеству событий, рассматриваемых в логе (журнале событий). PM4PY также имеет обширную документацию, описывающую базовую функциональность — с примерами кода и справочной информацией можно ознакомиться на официальном сайте — pm4py.org.

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

Alpha-miner. Разбор построения модели для Process Mining

Reading time3 min
Views3.2K


Alpha-алгоритм — первый в технологии анализа процессов, который позволял находить так называемые Workflow nets из логов процессов. Алгоритм был разработан в 2013 году самим основателем методологии Process Mining профессором Will M.P. van der Aalst.

Что такое Workflow nets (далее WF)– это сеть, построенная на основе сетей Petri. Важно, WF на основе сетей Petri позволяет представлять и в дальнейшем анализировать рабочие процессы.
Читать дальше →

Computer Vision. Подсчет клиентопотока

Reading time2 min
Views1.7K


Стояла задача проанализировать и подсчитать поток клиентов в офисе. Для похожих задач существует множество решений, как с использованием сверточных нейронных сетей (Convolution Neural Network, CNN), таких как YOLO (You Only Look Once), SSD (Single Shot Detection), R-CNN и т.д. Но так как входными данными были видео фрагменты различного разрешения и формата, в зависимости от модели регистраторов и выставленных настроек, было принято решение попробовать метод Background Subtraction. Так же хотелось попробовать данный алгоритм, потому что до этого не сталкивался с ним и было интересно на что он способен.



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

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

Reading time5 min
Views3.2K


Задумывались ли Вы когда-нибудь, как компьютер находит нужные для обработки объекты из видеопотока? На первый взгляд, это выглядит задачей из разряда «высокого» программирования с применением огромного количества формул из математического анализа, дискретной математики и т.д., требует огромного количества знаний, чтобы написать хотя бы маленькую программу наподобие «Hello, world» в мире распознавания образов на видео. А если бы Вам сказали, что на самом деле сейчас осуществить вход в мир компьютерного зрения гораздо проще и после прочтения этой статьи Вы сможете написать свою программу, которая научит Ваш компьютер видеть и детектировать лица? Также в конце статьи Вас ждет бонус, который может повысить безопасность Вашего ПК с помощью компьютерного зрения.

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

  1. Компьютер;
  2. Web-камера;
  3. Python 3;
  4. Ваш любимый редактор кода (PyCharm, Jupyter и т.д.).

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

Нейронные сети на страже правил дорожного движения

Reading time3 min
Views4.3K

Нарушения правил дорожного движения (ПДД) водителями несут для организаций операционные, репутационные и правовые риски.

Ранее для выявления нарушений анализировали видеозаписи из служебных автомобилей. Это рутинный и трудоёмкий процесс, так как очень большие объёмы видео обрабатывались вручную. Было принято решение автоматизировать данный процесс и создать модель выявления нарушений ПДД для формирования риск-ориентированной подборки видео.

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

Для сегментации изображения и обнаружения дорожной разметки была использована свёрточная нейронная сеть архитектуры U-Net. Данная архитектура представляет собой последовательность слоёв свёртки и пулинга, которые сперва уменьшают пространственное разрешение картинки, а затем увеличивают его, предварительно объединив с данными картинки и пропустив через другие слои свёртки.
Читать дальше →

Подготовка данных для настройки и обучения нейросети по детекции объектов

Reading time5 min
Views13K
Подготовка данных для настройки и обучения нейросети по детекции объектов.

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

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

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

Используем DS для обработки отзывов клиентов с крупных сайтов

Reading time3 min
Views1.1K


В кейсе мы использовали библиотеки языка Python, такие как: Selenium, BeautifulSoup. Получилось около 27 тысяч отзывов, начиная с 2018 года. В среднем каждый отзыв занимал 2 абзаца листа А4. В 70 % отзывов была проставлена оценка клиентами, в оставшихся 30% — оценка не была проставлена. Полученные данные, у которых были проставлены оценки, мы решили использовать как исходные данные для построения модели обучения с учителем. Модель в дальнейшем нам нужна была, чтобы определить оценку у оставшихся 30% отзывов.

Проставленные оценки были от 1 до 5, но нам нужно было узнать, каким отзыв являлся по качеству, т. е. положительный он или отрицательный. Использовали логику школьных оценок в России: оценки 1,2 — отрицательные, их преобразовали в 0; оценки 3,4,5 – положительные, их преобразовали в 1. Тем самым задача свелась к бинарной классификации.
Читать дальше →

Настройка нейронной сети для детекции необходимых объектов

Reading time6 min
Views14K

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

В качестве примера для детекции объектов будем использовать алгоритм YOLOv3. Дополнительные материалы по статье вы сможете найти на github странице. Пример установки и настройки осуществляется на ОС Windows 10.

В первую очередь нам необходимо скачать или клонировать необходимые материалы для переобучения нейронной сети под определенный тип объекта с данной github страницы. Для того чтобы не возникало проблем с доступом или разрешениями, материалы лучше разместить в директории своей учетной записи, например: C:\Users\user_name\Documents\NN\.

1. Переходим в папку yolov3-master, вызываем терминал (командную строку) и выполняем команду pip install -U -r requirements.txt. При запуске команды некоторые из пакетов не установились, т.к в репозитории pip для windows, пакетов с таким названием не существует. Чтобы установка прошла успешно, в requirements.txt мы должны закомментировать несколько пакетов («torch >= 1.5» и «pycocotools»). Затем установить pytorch с помощью следующей команды:
Читать дальше →

Машинное обучение: с чего начать или как построить первую модель

Reading time8 min
Views14K


В качестве первой задачи для машинного обучения возьмем что-то понятное и простое, например, прогноз стоимости жилья. Готовый датасет можно найти на сайте kaggle. На первых шагах обучения не стоит брать датасеты с большим количеством переменных, например, «House Prices: Advanced Regression Techniques» состоит из 80 переменных и advanced regression, остановимся на «House Sales in King County, USA» с 21 параметром. Скачиваем данные и анализируем предоставленное описание. В наличии дата, цена, количество спален, ванных комнат, общая и жилая площадь, этажность, оценка вида, вид на море, оценка общего состояния, грейд (оценка строительства и дизайна), площадь над и под уровнем земли, год постройки, год последнего ремонта, код зоны, координаты (долгота и широта), данные о площади домов 15 соседей.

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

1. Работа с данными.

Сделаем отступление и отдельно отметим важность анализа данных. В настоящий момент все более-менее популярные алгоритмы уже написаны в виде библиотек и непосредственное построение модели сводится к нескольким строкам кода, например, k-ближайших соседей из sklearn в python:
Читать дальше →

Искусственный интеллект смотрит жалобы

Reading time3 min
Views2K

Любая финансовая организация — это живой организм и процессы в нем – несовершенны. Несовершенство процессов порождает недовольство от клиентов, которое может трансформироваться даже в жалобы. В данной статье мы расскажем о своем вкладе в процесс автоматизации работы, посредством реализации небольшого Machine Learning-проекта.

Любую сложную задачу можно попробовать решить простыми методами, и решение задачи Machine Learning не является исключением.

Обратная связь – это самая ценная информация, поэтому следует максимально подробно изучить каждый её бит. Анализируя жалобы от клиентов, мы объективно видим, в каких бизнес-процессах возникают проблемы. Поскольку процессы часто взаимосвязаны, их возможно сгруппировать и рассматривать как группу. Соответственно, мы приходим к стандартной задаче Machine Learning (ML) – «многоклассовая классификация». В результате данного анализа решается задача — сбор сводной аналитики по организации.

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

Снижаем размер ML модели без регистрации и смс

Reading time3 min
Views3.2K


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

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

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

Формальное доказательство и полную статью можно посмотреть здесь. Нас же интересует возможность практического применения. Вкратце, алгоритм следующий:

  1. Создаем модель, случайно инициализируем ее параметры
  2. Обучаем сеть j итераций
  3. Обрезаем те параметры сети, которые имеют наименьшее значение (самым простым будет задание какого-нибудь порогового значения)
  4. Сбрасываем оставшиеся параметры до их начальных значений, получаем нужную нам подсеть.

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

VKCup 2020 этап I. В долгий путь

Reading time4 min
Views713


Сегодня рассмотрим соревнование VkCup 2020 и задание первого отборочного этапа. Ребята из Зингера обещали, что на протяжении всех этапов будет сложно, но интересно. А что, собственно, ещё нужно?

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

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

Мы рассмотрим VKCup 2020, чемпионат по анализу данных от “ВКонтакте”, а именно, три его этапа, с финалом в Санкт¬-Петербурге. Начнём с первого отборочного. Ну что же, время есть, а Петербург, хоть и культурная столица, но опозданий и огрехов не любит. Так изволимЪ же поскорее управиться с делами, судари, господинЪ извозчикЪ ожидать не расположенЪ, а посему в долгий путь.


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

Использование распараллеливания при обработке данных в C#

Reading time4 min
Views7.5K


Всем добрый день! Я технический специалист, работающий в системе внутреннего аудита, в мои обязанности входит создание инструментов ETL на языке программирования C#.

Периодически источниками данных становятся жестко структурированные файлы формата xml, csv, json или любого другого формата. Иногда их количество становится достаточно большим и постоянно увеличивающимся. Например, в одной из моих задач количество файлов увеличивалось со средней скоростью обновления примерно 150 000 файлов в сутки. Если при этом обработка одного файла (считывание массива байт с жесткого диска в память, трансформация загруженных данных и запись их в базу данных) занимает секунду, то становится понятно, что обработка всех файлов займет более 40 часов. В этом случае мы не сможем обработать эти файлы до конца, так как скорость увеличения количества файлов будет явно выше скорости их обработки.

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

Что бы избежать этих сложностей компания Microsoft добавила в фреймоворк .Net библиотеку TPL (начиная с версии 4.0). Я расскажу, как используя возможности этой библиотеки решить данную проблему.

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

Сверточная нейронная сеть и ее интеграция в iOS (часть 2)

Reading time4 min
Views3.5K


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

Модернизация

Библиотека Keras предоставляется широкий набор инструментов для препроцессинга данных, особенно для изображений. Метод ImageDataGenerator (Рис.7) позволяет расширять набор данных искусственными преобразованиями.


Рис.7. – Генератор данных.

Первое число rotation_range – случайное число, для ротации изображений внутри генератора. Width_shift_range — показывает насколько можно уменьшить значения пикселей по ширине. Height_shift_range – коэффициент на который будет умножаться каждый пиксель для сжатия по высоте. Shear_range – интенсивность сдвига, угол сдвига в направлении против часовой стрелки в градусах. Zoom_range – диапазон для случайного масштабирования. Horizontal_flip – случайное отображение картинки по горизонтали. Vertical_flip – случайное отображение изображения по вертикали. Fill_mode – точки за пределами входных данных заполняются в соответствии с заданным режимом. Data_format – формат данных изображения. Таким образом, нейросеть будет обладать лучшим обобщением, ведь исходный датасет в основном обладает чистыми пикселями, цифры находятся по центру. На реальных фотографиях возможны другие ситуации, когда жест находится в углу или смазан. Процесс обучения переписывается с учетом новых данных.

На Рис.8 график Test, начал убывать, поэтому обучение было остановлено. Если бы для остановки не использовалась метрика val_acc, алгоритм бы продолжил свою работу, в результате получив переобученную нейронную сеть.
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity