Рецепт приготовления нейронных сетей

Года три назад в своих Записках я опубликовал историю из научно-популярной лекции «ШАМАНСТВО» В АНАЛИЗЕ ДАННЫХ доцента ВМК МГУ имени М.В. Ломоносова, д.ф.-м.н. А.Г. Дьяконова. В ней внятно объясняется слово «шаманство» по отношении к обработке больших данных и необходимость наличия у исследователя некоторого эмпирического опыта, а не только знания строгостей математики. Вопрос соотношения детерминизма и хаоса в любых природных процессах волновал меня ещё со студенческой скамьи, а что-бы преодалеть хаос в нейронных сетях и заставить их работать должным образом творец должен их одухотворить.

С тех пор много воды утекло и накопился некоторый опыт по поводу эксплуатации и приготовления нейронных сетей, а на глаза случайно попалось эссе A Recipe for Training Neural Networks Andrej Karpathy, мысли которого с некоторыми дополнениями и комментариями созвучны моим, а выпускница магистратуры пожаловалась на низкую вероятность прогноза дефектов керамических изоляторов высоковольтных линий электропередач и всё сложилось в кучку. Так и появилась эта записка с рецептом практического приготовления нейронных сетей. Начинаем… Вперёд и вниз ↓

Есть пара фактов, которые подвигли написать этот рецепт.
Читать далее «Рецепт приготовления нейронных сетей»

40+ приложений технологии машинного обучения для бизнеса

Перевод поста Филиппа Ходжетта, выступавшего на конференции Hollywood Professional Association Tech Retreat. Надеюсь, собранный в одном месте список актуальных сервисов, готовых к интеграции в ваши проекты, и примеров работающего бизнеса на основе машинного обучения будет полезен разработчикам. Предлагаю делиться вашими собственными результатами успешного внедрения проектов, связанных с глубинным обучением.
Читать далее «40+ приложений технологии машинного обучения для бизнеса»

Вспомни молодость или как раскрасить черно‑белое фото из прошлого века

В жаркую последнюю субботу весны 2021 года, когда на улице за 30°С, природа с озёрами и горами далеко, а кондиционер вместе с увлажнителем создаёт в квартире комфортную обстановку и совершать телодвижения лениво, посмотрел юношеские чёрно‑белые фотографии. В то время, когда я учился в школе, у меня по наследству было три фотоаппарата — ФЭД (Феликс Эдмундович Дзержинский), собранный бывшими малолетними беспризорниками в колонии, которой командовал Макаренко А.С. в начале 30-х годов прошлого века, найденный в деревне, но исправно выполнявший свою работу в 70-х; Зенит-Е, один из первых зеркальных фотоаппаратов СССР образца 1966 года и моя любимая Смена-8М, как говорили раньше «мыльница», не отличающаяся качеством оптики и соответственно качественной фотографий, но свободно помещающаяся в карман. В нашем классе мало у кого не было своего фотоаппарата. В конце этих записок вы увидите галерею старых раскрашенных фотографий, большинство из которых сделаны именно «мыльницами».

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

Этот проект целью своей имеет автоматическое преобразование старых черно-белых фотографий в цветные с помощью Python, используя библиотеки OpenCV, DNN и Caffe. Написанный и отлаженный скрипт Python bw2c-ru.py принимает черно-белое изображение на входе и автоматически возвращает цветное изображение на выходе.
Читать далее «Вспомни молодость или как раскрасить черно‑белое фото из прошлого века»

Урок 1. Распознавание изображений и обнаружение объектов

Начинаю серию уроков (мини-курс) о распознавании изображений и обнаружении объектов.

В первой части краткое объяснение понятий распознавание изображений с использованием традиционных методов компьютерного зрения. Я называю методы, не основанные на глубоком обучении, традиционными методами компьютерного зрения, потому что они быстро заменяются методами, основанными на глубоком обучении. Тем не менее, традиционные подходы к компьютерному зрению используются по-прежнему во многих приложениях. Многие из этих алгоритмов также доступны в библиотеках компьютерного зрения, таких как OpenCV, и очень хорошо работают «из коробки».
Читать далее «Урок 1. Распознавание изображений и обнаружение объектов»

Кто умеет, делает; кто не умеет, учит других

Драматург и романист Джордж Бернард Шоу — выдающийся критик, человек потрясающе острого ума и языка, похожего на лезвие бритвы…

В 1925 году, когда ему присудили Нобелевскую премию по литературе, Шоу заявил, что это всего лишь «знак благодарности за то облегчение, которое он доставил миру, ничего не напечатав в текущем году». Драматург отказался от денежной премии, после чего его буквально завалили письмами с предложениями отдать деньги другим людям, если они ему не нужны. Шоу по этому поводу ехидно заметил: «Альфреду Нобелю еще можно простить изобретение динамита. Но только враг рода человеческого мог изобрести Нобелевскую премию».
Читать далее «Кто умеет, делает; кто не умеет, учит других»

С Python прочитаем любые штрих- и QR‑коды

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

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

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

Для начала я расскажу вам, как считывать и декодировать штрих-коды, а также находить их на изображении. Потом вы узнаете, как сгенерировать и прочитать QR-коды в Python с помощью библиотек qrcode и OpenCV.
Читать далее «С Python прочитаем любые штрих- и QR‑коды»

Лучшие инструменты Python ETL на 2021 год

При создании хранилища данных, для их перемещения в это хранилище обязательно встанет вопрос об ETL (от англ. Extract, Transform, Load — дословно «извлечение, преобразование, загрузка»). Первоначально данные извлекаются из массивов различных источников. Затем необходимо сделать преобразования в формат, который нужен для использования данных в дальнейшем, и, наконец, происходит загрузка в свое хранилище данных.

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

Исходя из этих соображений, вот вам лучшие инструменты Python ETL на 2021 год. Некоторые из них позволяют управлять каждым этапом процесса ETL, в то время как другие превосходны только на отдельных этапах. Для того, что бы было легче сравнивать они разделены на группы.
Поехали!