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

Компания NIX временно не ведёт блог на Хабре

Сначала показывать

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

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


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

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

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

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

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


Обратите внимание: мы заключили в кавычки только примеры эвристики — для того, чтобы подчеркнуть кустарный характер эвристики по сравнению со строгостью теоретических основ. Ни один из примеров эвристики не является универсальным для всех случаев, но они работают в достаточном количестве ситуаций, чтобы применяющие их разработчики получали рабочий код без полного понимания его работы.
Читать дальше →
Всего голосов 35: ↑29 и ↓6+23
Комментарии21

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

Время на прочтение5 мин
Количество просмотров15K
Перевод Demystifying Convolutional Neural Networks.


Свёрточные нейросети.

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

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

Вдохновлённые этим, математики разработали систему, в которой эмулируются группы нейронов, срабатывающие на разные свойства изображения и взаимодействующие друг с другом для формирования общей картины.
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии5

Проект «Прометей»: поиск пожаров с помощью ИИ

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


Перевод Project Prometheus — An AI-powered fire finding solution

Мы с коллегами работаем в проекте Prometheus («Прометей») — это решение для раннего обнаружения пожаров, в котором объединены ИИ, компьютерное зрение, автоматические дроны и сервисы прогноза погоды. Этот комплекс предназначен для выявления пожаров в дикой природе, прежде чем они перерастут в настоящее бедствие. Мы хотим рассказать о проекте поподробнее, как он работает и какой теоретический аппарат лежит в его основе. Материал будет подан как можно более независимо от конкретных технологий, так что если вас интересуют конкретные особенности реализации (CNTK, Faster R-CNN, контейнеры Docker, Python, фреймворк .NET и т. д.), то заходите в наш GitHub-репозиторий. А здесь мы лишь упомянем использованные технологии.

Небольшое введение:

Всего голосов 22: ↑22 и ↓0+22
Комментарии6

Нейросетевой синтез речи с помощью архитектуры Tacotron 2, или «Get alignment or die tryin'»

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


Нашей команде поставили задачу: повторить результаты работы искусственной нейронной сети синтеза речи Tacotron2 авторства DeepMind. Это рассказ о тернистом пути, пройденном нами в ходе реализации проекта.
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии3

Архитектуры нейросетей

Время на прочтение12 мин
Количество просмотров62K
Перевод Neural Network Architectures

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


Сравнение популярных архитектур по Top-1 one-crop-точности и количеству операций, необходимых для одного прямого прохода. Подробнее здесь.
Читать дальше →
Всего голосов 30: ↑28 и ↓2+26
Комментарии7

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

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


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


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

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

В ноябре, а именно 18 числа, мы проводим большую Никсовую мультиконференцию. ThinkPHP, Sync.NET, ThinkAndroid, WordPress Kharkiv, RubyRoars, ThinkPM — все эти направления в один день, на одной площадке, на одной волне.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

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

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


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

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

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


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

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

В первой части мы рассмотрели очистку данных, разведочный анализ, конструирование и выбор признаков. Во второй части изучили заполнение отсутствующих данных, реализацию и сравнение моделей машинного обучения, гиперпараметрическую настройку с помощью случайного поиска с перекрёстной проверкой и, наконец, оценку получившейся модели.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии1

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

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


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

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

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

Весь код проекта лежит на GitHub, а здесь находится второй блокнот, относящийся к текущей статье. Можете использовать и модифицировать код по своему усмотрению!
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии4

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

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


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

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

Чтобы у вас в голове наконец сложилась цельная картина, мы предлагаем разобрать от начала до конца проект применения машинного обучения с использованием реальных данных.
Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии4

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

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


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

Что мы будем делать? Мы попробуем создать простую и совсем маленькую нейронную сеть, которую мы объясним и научим что-нибудь различать. При этом не будем вдаваться в историю и математические дебри (такую информацию найти очень легко) — вместо этого постараемся объяснить задачу (не факт, что удастся) вам и самим себе рисунками и кодом.
Начнем.
Всего голосов 41: ↑37 и ↓4+33
Комментарии17

Инструкция по работе с TensorFlow Object Detection API

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

Перевод TensorFlow Object Detection API tutorial — Training and Evaluating Custom Object Detector.

Мы все умеем водить машину, ведь это довольно легко, правда? Но что вы будете делать, если кто-то попросит вас сесть за штурвал самолета? Совершенно верно — вы прочитаете инструкцию. Аналогично, руководство, которое вы найдете ниже, поможет вам настроить API и наслаждаться приятным полетом.
Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии5

Памятки по искусственному интеллекту, машинному обучению, глубокому обучению и большим данным

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


В течение нескольких месяцев мы собирали памятки по искусственному интеллекту, которыми периодически делились с друзьями и коллегами. В последнее время сложилась целая коллекция, и мы добавили к памяткам описания и/или цитаты, чтобы было интереснее читать. А в конце вас ждёт подборка по сложности «О большое» (Big-O). Наслаждайтесь.

UPD. Многие картинки будут читабельнее, если открыть их в отдельных вкладках или сохранить на диск.
Читать дальше →
Всего голосов 51: ↑47 и ↓4+43
Комментарии9

Как ИИ учится генерировать изображения кошек

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


Перевод How AI can learn to generate pictures of cats.

Опубликованная в 2014-м исследовательская работа Generative Adversarial Nets (GAN) стала прорывом в сфере генеративных моделей. Ведущий исследователь Янн Лекун назвал состязательные сети (adversarial nets) «лучшей идеей в машинном обучении за последние двадцать лет». Сегодня благодаря этой архитектуре мы можем создать ИИ, который генерирует реалистичные изображения кошек. Круто же!


DCGAN в ходе обучения
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии1

27 отличных open source-инструментов для веб-разработки

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


Перевод 27 Amazing Web Development Tools for the Past Year (v.2018)

В 2017-м мы сравнили около 7 500 open source-инструментов для веб-разработки, из которых выбрали 27 лучших (0,4%). Это крайне конкурентный список, в который вошли инструменты, библиотеки и проекты, опубликованные в течение 2017-го. Mybridge AI оценивает их качество на основании популярности, заинтересованности и новизне. Чтобы было понятно, у выбранных продуктов среднее количество звёзд на Github — 5260.

Open source-инструменты могут почти даром повысить вашу продуктивность. Также вы можете чему-то научиться, читая исходный код и создавая что-нибудь на основе этих проектов. Так что рекомендуем уделить время и поэкспериментировать с инструментами из нашей подборки, возможно, какие-то из них прошли мимо вас.
Читать дальше →
Всего голосов 70: ↑55 и ↓15+40
Комментарии10

Как в React избавиться от сложности в управлении состоянием — отчёт по итогам поездки на React Amsterdam

Время на прочтение5 мин
Количество просмотров9.7K
В апреле посчастливилось побывать на очень крутом мероприятии — React Amsterdam. Кроме приятных организационных моментов было ещё и много интересных докладов. Они были, в основном, прикладного характера. Поскольку стек технологий в принципе устоялся, докладчики рассказывали о способах решения практических проблем, а не продвигали что-то незнакомое и революционное. Здесь я расскажу подробнее о выступлении “setState MachineМикеле Бертоли из Facebook.

Основная проблема, которой был посвящен доклад, — сложность в управлении состоянием в React.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии3

Как машины анализируют большие данные: введение в алгоритмы кластеризации

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


Перевод How Machines Make Sense of Big Data: an Introduction to Clustering Algorithms.

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


Закончили?
Всего голосов 19: ↑19 и ↓0+19
Комментарии7

Я сделал PWA и выложил в трёх магазинах приложений. И вот что я выяснил

Время на прочтение12 мин
Количество просмотров48K
Перевод I built a PWA and published it in 3 app stores. Here’s what I learned.

Недавно я опубликовал прогрессивное веб-приложение Chavah Messianic Radio, музыкальный проигрыватель вроде Pandora, и выложил его в трёх магазинах приложений (Google Play, iOS App Store, Windows Store).







Процесс выкладывания был тяжёлый и поучительный. Вот что я выяснил.
Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии61

Анонс митапа RubyRoars #1 в Харькове

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


Большой опыт проведения митапов Sync.NET, ThinkPHP, ThinkJava, WordPress Kharkiv и iThink привел нашу команду к логичному вопросу — а не пора ли нам создать и Ruby-сообщество? Пора, именно поэтому мы приглашаем всех Ruby-разработчиков на стартовую встречу RubyRoars, призванную положить начало новому большому сообществу от NIX Solutions :).
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Анонс митапа Sync.NET #6 в Харькове

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


Шестая встреча Sync.NET-комьюнити уже ждет вас, друзья! А вместе с ней и крутые доклады, общительные и опытные спикеры, подарки и подарки-поступки, а также бесконечный запас вкуснейшего кофе и угощений :).
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии2