Линейный поиск — это алгоритм оптимизации, который может использоваться для целевых функций с одной или несколькими переменными. Он предоставляет возможность использовать алгоритм одномерной оптимизации, например поиск методом деления пополам (бисекции) для многомерной целевой функции, работая с линейным поиском для определения оптимального размера шага в каждом измерении от известной точки до оптимума. Мы уже делились переводами Джейсона Браунли, например статьёй о смешанных ансамблях, а в этом учебном руководстве, которое мы перевели к старту курса о машинном и глубоком обучении, рассказывается об основах: вы узнаете, как на Python с помощью линейного поиска выполнить оптимизацию.
Рептилоид
5 разных библиотек Python, которые сэкономят ваше время
В этой подборке, переводом которой мы решили поделиться к старту курса о машинном и глубоком обучении, по мнению автора, каждая библиотека заслуживает отдельной статьи. Всё начинается с самого начала: предлагается библиотека, которая сокращает шаблонный код импортирования; заканчивается статья пакетом удобной визуализации данных для исследовательского анализа. Автор также касается работы с картами Google, ускорения и упрощения работы с моделями ML и библиотеки, которая может повысить качество вашего проекта в области обработки естественного языка. Посвящённый подборке блокнот Jupyter вы найдёте в конце.
Стаи рыб следуют алгоритмам композиционного обучения
Группа животных — это больше, чем сумма всех членов группы. Поведение одинокого муравья трудно назвать осмысленным, но их колония способна построить прочную и хорошо вентилируемую муравьиную кучу. Одинокий журавль может легко заблудиться в небе, но стая журавлей безошибочно выбирает правильный путь миграции. Во многих сложных когнитивных процессах мы регулярно наблюдаем отличия в поведении группы от поведения её отдельных членов. Как это возможно? Даже автор статьи, кандидат наук, не может понять, как примитивные рыбы — золотые нотемигонусы, абсолютно безмозглые существа, собираясь в стаи, способны эффективно уклоняться от хищников. Автор прочитал десятки статей и учебников, проводил эксперименты, анализировал данные и консультировался с теоретиками, пытаясь понять, почему, когда речь идёт о рыбах, 1 плюс 1 получается не 2, а 3.
К старту курса о машинном и глубоком обучении мы перевели материал о том, как групповое поведение связано с композиционным (ансамблевым) обучением, где вы найдёте как кратко изложенную теорию со ссылками, так и вопросы, которые сегодня стоят перед наукой о коллективном поведении.
Биография основателя DEF CON и Black Hat Джеффа Мосса (Dark Tangent)
К старту курса об этичном хакерстве мы перевели размещённую на сайте Black Hat биографию основателя этой серии мероприятий по кибербезопасности. Джефф Мосс родился в Калифорнии, США, в январе 1975 года, он — эксперт по компьютерной и интернет-безопасности, хакер. Первый опыт работы с компьютером он получил в возрасте 10 лет и был восхищён возможностью общаться и вести взрослые разговоры с людьми по всему миру. У него ещё не было водительских прав, Джефф не мог голосовать, но мог общаться с людьми намного старше его, которых нисколько не волновали ни его возраст, ни внешность.
Sparkplug — неоптимизирующий компилятор JavaScript в подробностях
Создать компилятор JS с высокой производительностью означает сделать больше, чем разработать сильно оптимизированный компилятор, например TurboFan, особенно это касается коротких сессий, к примеру, загрузки сайта или инструментов командной строки, когда большая часть работы выполняется до того, как оптимизирующий компилятор получит хотя бы шанс на оптимизацию, не говоря уже о том, чтобы располагать временем на оптимизацию. Как решить эту проблему? К старту курса о Frontend-разработке делимся переводом статьи о Sparkplug — свече зажигания под капотом Chrome 91.
Как использовать Python для проверки протокола Signal
Galois работает над повышением удобства SAW, инструмента для верификации программ на C и Java, исходный код которого открыт. Основным способом взаимодействия пользователей с SAW является его спецификация и язык программирования сценариев. Чтобы сделать SAW как можно более доступным, в качестве языка программирования SAW теперь можно использовать Python! Для демонстрации этой новой возможности в Galois создали пример, выполнив проверку части реализации протокола Signal на языке С. В частности, как спецификация SAW определяются условия, при которых сообщение протокола Signal будет успешно аутентифицировано. К старту курса о Fullstack-разработке на Python мы перевели материал об этом примере.
История легендарной Денежной шахты острова Оук
«Раздражающий, чарующий, манящий — вы можете подобрать острову Оук любое прилагательное, и оно окажется верным», — считает Чарльз Баркхауз, историк, с которым для шоу «Проклятие острова Оук» работает History Channel. На шоу вот уже 8 сезонов ведётся хроника поисков сокровищ (с некоторыми результатами).
Так что же там в действительности: золото тамплиеров, пиратское хранилище, природная карстовая воронка или один гигантский обман? Согласно проклятию острова Оук, прежде чем он откроет свои сокровища, должны погибнуть семеро. Шесть искателей уже погибли в поисках золотых миллиардов, но опасность только подогревает исследования и предположения.
Тематическое исследование распознавания именованных сущностей в биомедицине
Не так давно у автора этой статьи возник вопрос: может ли простой метод сопоставления строк — в сочетании с некоторыми простыми оптимизациями — конкурировать с моделью, обученной с учителем, в биомедицинской задаче распознавания именованных сущностей (NER)? Автор сравнил эти два метода между собой и предположил, что при правильном подходе даже простые модели могут конкурировать со сложными системами, а мы к старту курса "Machine Learning и Deep Learning" перевели его статью.
Тождество Эйлера — самое красивое математическое уравнение
Мы уже писали об удивительном свойстве числа e, которое может помочь, когда вслепую из конечного числа вариантов нужно выбрать единственный вариант. Сегодня, в преддверии старта нового потока курса "математика для Data Science", давайте вспомним о тождестве Эйлера — по праву самом красивом уравнении, важное место в котором занимает число e, но не только оно. Представьте на секунду, что вы почти ничего не знаете о математике, только начинаете открывать её бесконечную красоту — и наслаждайтесь.
Лучшие экспериментальные протоколы для исследования реального мира
Золотым стандартом исследований в области машинного обучения служит «последовательная» модель эксперимента: у вас есть базовый уровень, ваш эксперимент и фиксированный, заранее определённый набор тестов. Вы оцениваете свой базовый уровень на наборе тестов, получаете базовое значение. Затем вы выполняете свой эксперимент на наборе тестов и получаете другое значение. Затем вы сравниваете эти два результата. Допустим, вы публикуете все эти артефакты и предположительно любой может воспроизвести данные результаты. Это пример хорошей науки. Но я люблю невоспроизводимые исследования.
Блеск и нищета open source платформы RawCMS. Причины провала и выводы
Автор этого поста начал разрабатывать сторонний проект с открытым исходным кодом в 2006 году, и это был секрет развития его карьеры. Благодаря его экспериментам того времени, он вырос как разработчик и теперь возвращает что-то сообществу Open Source. По его мнению, открытый исходный код — это драйвер роста компаний и разработчиков. Специально к старту нового потока курса «C#-разработчик», делимся с вами рассказом об опыте начавшейся в 2018 году работы над платформой low-code с открытым исходным кодом под названием RawCMS.
Советы по запуску кластера Kubernetes на Raspberry Pi
Этот небольшой пост — продолжение статьи о создании кластера Kubernetes на Raspberry Pi, где приводится описание полностью автоматизированной сборки с кодом. Хабравчан сложно удивить, но автор рассказывает о том, чего, как он надеется, вы не знали или о чём не задумывались до сегодняшнего дня. Пост приурочен к старту нового потока нашего курса по DevOps.
Бесшовная интеграция Microsoft Excel и Word с помощью Python
Хотя в среднем для каждодневных задач автоматизация не требуется, бывают случаи, когда она может быть необходима. Создание множества диаграмм, рисунков, таблиц и отчётов может утомить, если вы работаете вручную. Так быть не должно. Специально к старту нового потока курса Fullstack-разработчик на Python делимся с вами кейсом постройки конвейера на Python, с помощью которого Excel и Word легко интегрировать: нужно создать таблицы в Excel, а затем перенести результаты в Word, чтобы практически мгновенно получить отчёт.
Как я сломал и починил кластер Kubernetes, работающий на Raspberry Pi
В преддверии старта нашего курса по DevOps, делимся с вами продолжением статьи Как я собрал домашний кластер Kubernetes на базе Raspberry Pi.
Я доигрался с обновлениями и это привело к катастрофе: все ноды внезапно перестали видеть сетевые интерфейсы, и, сколько я ни бился, оживить кластер у меня не получилось.
Мой домашний кластерёнок вырос в зрелый кластер из шести нод (всё благодаря супруге, которая знала, что мне подарить на день рождения, — естественно, Raspberry Pi, и не один!), и я встал перед выбором — либо ещё раз выполнить собственные инструкции из статьи об установке кластера Kubernetes на Raspberry Pi, либо, применив системную инженерию (DevOps и SRE), полностью автоматизировать процессы переделки кластера и создания системы управления кластером.
Как я собрал домашний кластер Kubernetes на базе Raspberry Pi
Здесь есть поклонники Kubernetes? Я уже довольно давно пользуюсь им как на работе, так и в других местах, где занимаюсь частными проектами, но иногда мне нужно место, где можно быстро и без особых затрат разработать и протестировать новые функции или просто, как говорят, "поиграть с программой", скопировать данные в резервное хранилище, обменяться файлами или сделать что-либо подобное.
Я всё подсчитал и понял, что общая стоимость кластера получается ниже, чем стоимость облачных предложений аналогичной вычислительной мощности с таким же количеством нод. В преддверии старта нашего курса по DevOps, делимся с вами описанием сбора собственного домашнего кластера Kubernetes.
Как мы взломали шифрование пакетов в BattlEye
Недавно Battlestate Games, разработчики Escape From Tarkov, наняли BattlEye для реализации шифрования сетевых пакетов, чтобы мошенники не могли перехватить эти пакеты, разобрать их и использовать в своих интересах в виде радарных читов или иным образом. Сегодня, в преддверии старта нового потока курса Этичный хакер, на котором мы учим студентов искать уязвимости, делимся с вами кейсом взлома их шифрования за несколько часов.
Как удалить татуировку с помощью глубокого обучения
Глубокое обучение — интересная тема и моя любимая область исследований. Мне очень нравится играть с новыми исследовательскими разработками специалистов по глубокому обучению. Я только что наткнулся на удивительный репозиторий GitHub одного из моих товарищей по группе компьютерного зрения. Мне он так понравился, что я решил поделиться им. Основа репозитория — генеративно-состязательная сеть (GAN), которая способна удалять татуировки с тела. В преддверии старта нового потока курса по Machine Learning и Deep Learning, расскажу вам шаг за шагом, как применять упомянутый репозиторий на примере фотографии в Pexels.
Отслеживание лиц в реальном времени в браузере с использованием TensorFlow.js. Часть 6
Вот и финал этой серии статей (ссылки на предыдущие части — в конце этого материала), в которой мы создавали в браузере фильтры в стиле Snapchat, обучая модель ИИ понимать выражения лиц и добились ещё большего, используя библиотеку Tensorflow.js и отслеживание лиц.
Было бы здорово закончить, реализовав обнаружение движения на лицах? Позвольте показать, как по ключевым точкам лица определять, когда мы открываем рот и моргаем глазами, чтобы активировать события, происходящие на экране.
Отслеживание лиц в реальном времени в браузере с использованием TensorFlow.js. Часть 5
Носить виртуальные аксессуары – это весело, но до их ношения в реальной жизни всего один шаг. Мы могли бы легко создать приложение, которое позволяет виртуально примерять шляпы – именно такое приложение вы могли бы захотеть создать для веб-сайта электронной коммерции. Но, если мы собираемся это сделать, почему бы при этом не получить немного больше удовольствия? Программное обеспечение замечательно тем, что мы можем воплотить в жизнь своё воображение.
В этой статье мы собираемся соединить все предыдущие части, чтобы создать волшебную шляпу для обнаружения эмоций, которая распознаёт и реагирует на выражения лиц, когда мы носим её виртуально.
Отслеживание лиц в реальном времени в браузере с использованием TensorFlow.js. Часть 4
В 4 части (вы же прочли первую, вторую и третью, да?) мы возвращаемся к нашей цели – создание фильтра для лица в стиле Snapchat, используя то, что мы уже узнали об отслеживании лиц и добавлении 3D-визуализации посредством ThreeJS. В этой статье мы собираемся использовать ключевые точки лица для виртуальной визуализации 3D-модели поверх видео с веб-камеры, чтобы немного развлечься с дополненной реальностью.