Рубрика «Блог компании NIX Solutions»

Предложения относительно уязвимостей и защиты моделей машинного обучения - 1

В последнее время эксперты все чаще затрагивают вопрос безопасности моделей машинного обучения и предлагают различные способы защиты. Самое время детально изучить потенциальные уязвимости и средства защиты в контексте популярных традиционных систем моделирования, таких как линейные и древовидные модели, обучаемые на статических датасетах. Хотя автор статьи не эксперт по безопасности, он очень внимательно следит за такими темами, как отладка (debugging), объяснение (explanations), объективность (fairness), интерпретируемость (interpretability) и конфиденциальность (privacy) в машинном обучении.

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

Теория вместо эвристики: становимся лучше как frontend-разработчики - 1

Перевод Becoming a better front-end developer using fundamentals instead of heuristics

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

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

  • «Используй $(document).ready(function(){}) для инициализации кода на jQuery-сайтах»
  • «Конструкция var self = this необходима для вызова метода в функции обратного вызова»
  • «У стрелочных функций нет операторов return»

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

Обратите внимание: мы заключили в кавычки только примеры эвристики — для того, чтобы подчеркнуть кустарный характер эвристики по сравнению со строгостью теоретических основ. Ни один из примеров эвристики не является универсальным для всех случаев, но они работают в достаточном количестве ситуаций, чтобы применяющие их разработчики получали рабочий код без полного понимания его работы.
Читать полностью »

Перевод Demystifying Convolutional Neural Networks.

Демистифицируем свёрточные нейросети - 1
Свёрточные нейросети.

В прошлом десятилетии мы наблюдали удивительный и беспрецедентный прогресс в сфере компьютерного зрения. Сегодня компьютеры умеют распознавать объекты на изображениях и кадрах видео с точностью до 98 %, уже опережая человека с его 97 %. Именно функции человеческого мозга вдохновляли разработчиков при создании и совершенствовании методик распознавания.

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

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

Перевод Neural Network Architectures

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

Архитектуры нейросетей - 1
Сравнение популярных архитектур по Top-1 one-crop-точности и количеству операций, необходимых для одного прямого прохода. Подробнее здесь.
Читать полностью »

Большая конференция NIXMultiConf (Харьков) - 1

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

А еще мы много чего знаем в IT и делимся нашими знаниями вот уже больше 6 лет. Только представьте, первая конфа — ThinkPHP #1 — в линейке Никсовых конференций прошла 30 мая 2012-го! Да-да, это когда доллар был по 8, а айтишников только привыкали называть айтишниками, а не компьютерщиками :).

С тех пор мы обросли 8 направлениями, провели 35 конференций, презентовали около 105 докладов, ответили в среднем на 315 вопросов из зала, совершили 2 переезда на новую локацию, и вот теперь готовы не только к залу побольше, но и к формату поудобнее.

В ноябре, а именно 18 числа, мы проводим большую Никсовую мультиконференцию. ThinkPHP, Sync.NET, ThinkAndroid, WordPress Kharkiv, RubyRoars, ThinkPM — все эти направления в один день, на одной площадке, на одной волне.
Читать полностью »

Конференция ThinkJava #8 в Харькове - 1

Мы не станем рассказывать про уникальность нашего мероприятия, так как собираемся презентовать доклады, а не единорогов. Не будем заманивать вас плюшками в стиле сертификатов и промокодов. Не запилим смешной сайт и не закажем кофебрейк на Копи Лювак. Мы слишком заняты тем, что готовимся к восьмой “Джаве”, репетируем доклады, следим, чтобы в них не было воды, а только максимум информации по делу и исключительно на основе реальных проектов. Так вот, если вам интересны знания, на ThinkJava #8 ими будут делиться 2 спикера :).
Читать полностью »

Делаем проект по машинному обучению на Python. Часть 3 - 1

Перевод A Complete Machine Learning Walk-Through in Python: Part Three

Многим не нравится, что модели машинного обучения представляют собой чёрные ящики: мы кладём в них данные и безо всяких объяснений получаем ответы — часто очень точные ответы. В этой статье мы постараемся разобраться, как созданная нами модель делает прогнозы и что она может рассказать о решаемой нами задаче. И завершим мы обсуждением самой важной части проекта по машинному обучению: задокументируем сделанное и представим результаты.

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

Делаем проект по машинному обучению на Python. Часть 2 - 1

Перевод A Complete Machine Learning Walk-Through in Python: Part Two

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

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

Весь код проекта лежит на GitHub, а здесь находится второй блокнот, относящийся к текущей статье. Можете использовать и модифицировать код по своему усмотрению!
Читать полностью »

Делаем проект по машинному обучению на Python. Часть 1 - 1

Перевод A Complete Machine Learning Project Walk-Through in Python: Part One.

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

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

Создаём простую нейросеть - 1

Перевод Making a Simple Neural Network

Что мы будем делать? Мы попробуем создать простую и совсем маленькую нейронную сеть, которую мы объясним и научим что-нибудь различать. При этом не будем вдаваться в историю и математические дебри (такую информацию найти очень легко) — вместо этого постараемся объяснить задачу (не факт, что удастся) вам и самим себе рисунками и кодом.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js