Рейтинг
0.00

REG.ru Хостинг

20 читателей, 499 топиков

Взлом капчи за 0.05 секунд с помощью Машинного Обучения



Оказывается, нейросети уже давно могут «притворяться» людьми — рассказываем про новую модель генеративно-состязательной сети (GAN), которая распознаёт системы CAPTCHA на 32 посещаемых веб-сайтах.
Автор: Roberto Iriondo, Machine Learning Department of Carnegie Mellon University

ДИСКЛЕЙМЕР

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

Никто не любит капчи (в смысле, никто из людей, ведь у ботов нет эмоций) — надоедливые картинки с трудно читаемым текстом, который вы должны ввести для доступа к чему-либо в интернете. CAPTCHA (Completely Automated Public Turing tests to tell Computers and Humans Apart) разработана для того, чтобы автоматические программы не могли злонамеренно использовать онлайн-контент (заполнять формы, запрашивать доступ к закрытым файлам, многократно заходить на один и тот же сайт и т. д.). Она должна убедиться, что вы человек, а не бот. Тем не менее, в прошлом были попытки доказать несовершенство систем CAPTCHA. Но ни одна из них не была настолько же точной и быстрой, как алгоритм машинного обучения, предложенный группой исследователей из университета Ланкастера, Северо-Западного университета и Пекинского университета.

Схема алгоритма:


Исследователи используют небольшой набор несинтезированных капч для обучения синтезатора CAPTCHA. Синтезатор (1) используется для генерации синтетических CAPTCHA (2), которые применяются для обучения базового решателя (base solver) (3). Base solver затем совершенствуется для создания точно настроенного решателя (fine-tuned solver) несинтезированных капч.
Одним из первых известных людей, которые продемонстрировали уязвимость CAPTCHA, был Эдриан Роузброк. В своей книге «Deep Learning for Computer Vision with Python» Эдриан рассказывает, как он обошёл системы CAPTCHA на сайте E-ZPass New York. Для обучения своей глубокой модели он использовал большой набор изображений с примерами CAPTCHA.

Основное отличие решения Адриана от подхода учёных из Ланкастера, Северо-Западного университета и Пекина — последние не использовали набор данных с примерами, а синтезировали CAPTCHA с помощью генеративно-состязательной сети (GAN). Почти вся обучающая выборка состояла из сгенерированных капч, и лишь небольшая часть — из реальных.

Генеративно-состязательные сети, представленные Яном Гудфеллоу вместе с другими учёными — это глубокие архитектуры, состоящие из двух нейросетей. Эти сети «соревнуются» друг с другом в игре с нулевой суммой (zero-sum game) и синтезируют образцы, близкие к подлинным. Это может быть очень полезно в случае, когда модель не имеет доступа к большому набору данных.

Исследователи оценили свой подход с помощью 33 текстовых схем CAPTCHA, 11 из которых в настоящее время используют 32 самых популярных веб-сайта по данным Alexa. Туда входят схемы Google, Microsoft, eBay, Wikipedia, Baidu и многие другие. Модели, создаваемой для работы с этими системами, понадобилось всего 500 реальных капч, в то время как другим (в том числе модели Эдриана) требовались миллионы примеров.

Сеть GAN инициализируется с учётом параметров безопасности капчи, показанных на рисунке:


Затем она генерирует партию CAPTCHA, чтобы обучить синтезатор с помощью 500 реальных изображений из различных схем капч:

Список текстовых схем капчи, используемых в качестве обучающих данных для синтезатора и тестовых данных для решателя

Исследователи использовали 20 тыс. капч для обучения модели Preprocessing и 200 тыс. сгенерированных капч для обучения базового решателя.

Прототип создан с помощью Python, модель Preprocessing построена в приложении Pix2Pix, которое реализовано с помощью TensorFlow. Точно настроенный решатель сделан с помощью Keras.

Реальные Google CAPTCHA и сгенерированные версии, созданные синтезатором CAPTCHA

После обучения GAN со сгенерированными и реальными капчами, решатель CAPTCHA использовался для атаки на системы защиты таких сайтов как Megaupload, Blizzard, Authorize, Captcha.net, Baidu, QQ, reCaptcha, Wikipedia и т. д. Большинство капч было определено с точностью около 80%, а на сайтах Blizzard, Megaupload и Authorize.net — 100%. Этот метод оказался более точным, чем все предыдущие решения, в которых использовались большие несинтезированные наборы обучающих данных.

Сравнение решателя CAPTCHA с четырьмя другими методами

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

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

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

www.reg.ru

Как начать работу с Keras, Deep Learning и Python



Специально для тех, кто только начинает осваивать Deep Learning и нейронные сети, мы подготовили перевод очень полезной статьи. Из неё вы узнаете, как использовать библиотеку Keras для обучения своей первой нейронной сети с собственным набором изображений, а также сможете создать свёрточную нейронную сеть (CNN).

Большинство учебных пособий по Keras основаны на работе со стандартными датасетами, такими как MNIST (распознавание рукописного ввода цифр) или CIFAR-10 (распознавание базовых объектов). Они помогут вам начать использовать Keras, но не смогут научить работать с собственными наборами изображений — вы просто будете вызывать вспомогательные функции для загрузки предварительно скомпилированных датасетов.

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

Содержание
1. Установка Keras и другого необходимого ПО
2. Загрузка ваших данных с диска
3. Разбиение их на обучающую и тестовую выборки
4. Определение архитектуры вашей модели Keras
5. Компиляция вашей модели
6. Обучение модели
7. Оценка модели на тестовой выборке
8. Распознавание изображений с использованием обученной модели
9. Бонус: обучение свёрточной нейронной сети
www.reg.ru/blog/keras/

7 необычных доменных имён, которые вы можете зарегистрировать прямо сейчас



Нейминг проекта — сложная задача. Особенно, когда нужно придумать красивое название для сайта быстро. Вы можете потратить часы или даже дни на выбор домена, который запомнится пользователям. Или вам достаточно ознакомиться с новым выпуском «Охотников за доменами», выбрать свободный адрес и сэкономить время.

1. IVANOVA.BLOG (стоимость — 1 832 рубля, продление — 2 987 рублей). Распространённую фамилию «Иванова» мы поставили для примера: вместо неё вы можете подставить свою фамилию или имя и использовать этот адрес для своего блога.

2. FALAFEL.CAFE (стоимость — 1 954 рубля, продление — 3 186 рублей). Фалафель — распространённое восточное блюдо, у которого также много фанатов в России.

3. ICE-AND-FIRE.RU (стоимость — 199 рублей, продление — 899 рублей). Сериал «Игра престолов», основанный на цикле книг «Песнь Льда и Пламени», совсем скоро закончится. Тем не менее, по словам представителей телеканала HBO, ещё будут выходить спин-оффы. Поэтому такой домен отлично подойдёт для фанатского сайта саги или специализированного новостного ресурса.

4. MIXFIGHT.FANS (стоимость — 4 071 рубль, продление — 6 638 рублей). Смешанные боевые искусства — популярный вид спорта. У него огромная армия фанатов, и каждый значительный бой пристально освещают даже непрофильные СМИ.

5. JAZZBROTHERS.BAND (стоимость — 1 531 рубль, продление — 2 496 рублей). Отлично название для сайта джаз-бэнда!

6. KOTLIN.MONSTER (стоимость — 709 рублей, продление — 1 156 рублей). Домен подойдёт использующему язык Kotlin разработчику, который желает, чтобы все узнали, насколько он хорош в своём деле.

7. VR-AR.DIGITAL (стоимость — 1 832 рубля, продление — 2 987 рублей). Адрес подойдёт как для профильного сайта программистов, разрабатывающих VR- и AR-приложения, так и для развлекательного или новостного ресурса.

⌘⌘⌘

Если вы не нашли в подборке подходящий домен для вашей сферы, пишите в комментарии. В следующем выпуске «Охотников за доменами» мы обязательно найдём что-нибудь подходящее.

www.reg.ru

Облачные вычисления на GPU NVIDIA: новые тарифы и открытое бета-тестирование!



Облачные вычисления на GPU NVIDIA: новые тарифы и открытое бета-тестирование!
Облачные вычисления на GPU — программно-аппаратная платформа на базе мощных графических ускорителей NVIDIA Tesla V100, разработанных специально для машинного обучения, анализа больших массивов данных и высоконагруженных вычислений. REG.RU запускает бета-тест новых тарифов данной услуги. Ключевые критерии выбора — объём данных клиента и необходимая мощность GPU. Чем больше память GPU, тем больший объём она способна переработать. В зависимости от задачи, каждый сможет найти подходящее решение.
www.reg.ru/cloud-services/cloud_gpu

Облачные вычисления на GPU NVIDIA от REG.RU: новые тарифы и переход в открытое бета-тестирование



Крупнейший российский хостинг-провайдер и регистратор доменов REG.RU в формате открытого бета-тестирования запускает новые тарифы для услуги «Облачные вычисления на GPU». Инфраструктурный партнёр продукта — производитель графических ускорителей NVIDIA.

Облачные вычисления на GPU — программно-аппаратная платформа на базе мощных графических ускорителей NVIDIA Tesla V100, разработанных специально для машинного обучения, анализа больших массивов данных и высоконагруженных вычислений. В течение последнего года REG.RU тестировал услугу, изучал пользовательский опыт и спрос, идентифицировал потребности клиентов и в результате запускает бета-тест новых тарифов для облачных вычислений.

Ключевые критерии выбора тарифа — объём данных клиента и необходимая мощность GPU. Чем больше память GPU, тем больший объём она способна переработать. GPU-7 и GPU-8 позволяют использовать сразу несколько графических ускорителей для максимально быстрых расчётов. В зависимости от задачи, каждый сможет найти подходящее решение: владельцы стартапов и предприниматели, программисты и разработчики, студенты, научные сотрудники и многие другие.

Через панель управления услугой клиент может самостоятельно разворачивать и удалять серверы, выбирать преднастроенные шаблоны виртуального окружения с Ubuntu или Windows и производить базовые действия с услугой. Благодаря режиму почасовой оплаты можно включать вычисления только на тот период, на который требуется графический ускоритель (GPU). На время бета-тестирования, до 1 июня 2019 года, стоимость составит от 90 рублей за час работы.

Подробнее о тарифных планах можно узнать на странице услуги: www.reg.ru/cloud-services/cloud_gpu Если ни один из них по каким-то причинам не подходит, можно оставить заявку в специальной форме и менеджеры создадут индивидуальную конфигурацию и тариф.

Выбирая облачные вычисления на GPU от REG.RU, пользователи получают доступ к NVIDIA GPU Cloud — каталогу программных инструментов для искусственного интеллекта, машинного обучения, НРС и используют мощность GPU NVIDIA на локальных и облачных системах. Предварительно интегрированные контейнеры включают в себя рекордный программный стек NVIDIA AI, в том числе NVIDIA CUDA Toolkit, библиотеки глубокого обучения NVIDIA и ведущие интеллектуальные программные инструменты.

Облачные вычисления на GPU — это во многом эксперимент, который показал отличные результаты! В течение года мы тестировали продукт, предоставляли его участникам хакатонов, изучали спрос и отклики. Разработка понятной и устойчивой тарифной сетки и выход в открытое бета-тестирование — это ещё один шаг в развитии нашей услуги
комментирует генеральный директор REG.RU Алексей Королюк.

Мощные вычислительные платформы сегодня востребованы не только в сфере исследований, но и в бизнесе. Доступ к вычислениям в облаке и наличие необходимых программных инструментов обеспечивают компании разного масштаба всеми необходимыми ресурсами для реализации самых смелых идей
отмечает Дмитрий Конягин, руководитель направления Enterprise-решений в NVIDIA Россия



www.reg.ru/cloud-services/cloud_gpu

Мёд или жизнь: как AI-пчела понимает абстрактные концепции



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

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

Обучение абстрактным понятиям
Модель даёт достаточно точное представление о том, как реальные пчёлы воспринимают абстрактные понятия независимо от способа обработки информации.

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

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

Задачи «совпадает с образцом» («Match-To-Sample», MTS) разработаны для оценки обучения невербальному восприятию одинаковых и разных объектов. Животным сначала показывают один образец (стимул), а через некоторое время — два новых: первый соответствует изначальному, а второй нет. Чтобы изучить, какая продолжительность «рабочей памяти» («working memory») необходима для выполнения задачи, новые объекты показывались с задержками различной длины. Это называется «Delayed-Match-To-Sample» (DMTS).

Тесты, где животным надо наоборот выбирать не совпадающие с оригиналом предметы, называются «не совпадает с образцом» («NotMatch-To-Sample», NMTS или DMTS). Но этих задач недостаточно для демонстрации обучения абстрактным понятиям. Необходимо показать, что если животное научилось определять совпадающие или несовпадающие объекты, то оно сможет применить принцип сходства или различия и в новом контексте. Обычно это делается с помощью проверки на новом наборе образцов и называется трансферным тестом.

Исследования показали, что медоносные пчёлы могут учиться как DMTS, так и DNMTS-задачам и обобщать их на новые объекты. В опыте использовался лабиринт в форме буквы Y с исходным стимулом на входе и двумя разными объектами в каждом из ответвлений. Пчёлы прошли 60 испытаний, чтобы освоить эти задачи — это намного дольше, чем изучение простых обонятельных или визуально-ассоциативных навыков, для которых им требуется всего 3 испытания.

Показатели точности при этом не были идеальными — средняя эффективность составила около 75%, но это лучше, чем шанс простого «угадывания».

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

Модель строго ограничена установленными нейрофизиологическими и нейроанатомическими особенностями поведения настоящих пчёл. Мозг пчелы структурирован в виде отдельных областей нейропиля (зоны синаптического контакта). Особенности их взаимодействия хорошо изучены и описаны. Обучение происходит с помощью грибовидных тел (corpora penduculata) — они обрабатывают обонятельные, зрительные и механосенсорные данные.

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

Модель сети на основе мозга пчелы
Схема модели и основные принципы



A — нейроанатомия: MB (Mushroom Bodies) — грибовидные тела; AL (Antennal Lobe) — гломерулы антенной доли (круги); ME и LO — нейропили глубоких частей зрительной доли (Medulla и Lobula). Соответствующие нейронные пути помечены для сравнения с моделью.
B — упрощённая модель. Классы нейронов указаны справа.
C — полная модель, отражающая соединения и приблизительное число нейронов каждого типа. Цветовая маркировка и метки сохраняются на всех диаграммах.

Основные типы нейронов: KC (Kenyon Cells) — Клетка Кеньона, PCT (Protocerebellar Tract neurons) — протоцеребеллярный тракт нейронов, IN (Input Neurons) — входные нейроны (обонятельные или зрительные), EN (Extrinsic Neurons) — внешние нейроны грибовидных тел из субпопуляций GO и NOGO.

Грибовидное тело смоделировано как ассоциативная сеть из трёх слоёв. Входные нейроны IN обеспечивают обработку обонятельных, визуальных и механосенсорных данных. Слой клеток Кеньона KC выполняет разреженное кодирование (sparce-coding) сенсорной информации для эффективной классификации образцов. И, наконец, внешние нейроны грибовидного тела EN связаны с премоторной корой и активируют различные возможные поведенческие реакции. Для простоты мы рассматриваем EN как две субпопуляции, контролирующие только ответы «go» или «no-go» при выборе между различными вариантами объектов. Связи между выходом KC и EN модифицируются синаптической пластичностью и могут поддерживать изученные изменения в поведенческих реакциях на стимулы.

Как упоминалось выше, нам требуются два вычислительных механизма для решения задачи DMTS/DNMTS. Первый — находит средство для сохранения идентичности стимула, и второй — учится использовать эту идентичность для управления поведением и решения задачи.

Более того, результат обучения должен распространяться на новые стимулы, что требует большой вычислительной сложности.

У клеток Кеньона есть особенность, выполняющая требование обнаружения новизны — сенсорная аккомодация. У медоносных пчёл, даже при отсутствии вознаграждения или наказания за правильные или неправильные решения, KC резко снижают активность между начальными и повторными образцами до 50%. Этот эффект сохраняется в течение нескольких минут и может влиять на поведение во время испытания, но вряд ли повлияет на последующие опыты.

Теперь нам необходим второй механизм, который может использовать это свойство KC для управления поведением при выборе направления Y-лабиринта. При этом надо учесть, что пчёлы должны решать как DMTS, так и DNMTS-задачи, и не столкнуться с противоречием. Например, постсинаптическое обучение пропорционально увеличивает как более слабую (повторную) стимулирующую активность в субпопуляции GO EN, так и более сильную (единичную). Чтобы выбрать «go», активность GO для текущего стимула должна быть выше, чем активность NOGO, которая остаётся фиксированной. Это подойдёт для задачи DMTS, но в DNMTS должен применяться обратный принцип — ни одно правило постсинаптического обучения не удовлетворяет этому требованию.

Поэтому для решения DMTS и DNMTS задач необходим отдельный набор нейронов, которые могут выступать в роли переключателя между KC и поведением. Наиболее подходящий кандидат — тормозящие нейроны (inhibitory neurons), образующие протоцеребеллярный тракт (PCT). Они участвуют в регулировании входных данных для KC, и мы предполагаем, что они также могут регулировать активность популяций EN в выходные области KC с помощью синаптической пластичности. Если мы предположим, что при высоком пороге активности нейронов PCT повторные стимулы не будут их активировать, а единичные будут, тогда станет возможной синаптическая пластичность от PTC к EN. Это позволит решить DMTS и DNMTS задачи и передать это обучение новым стимулам.

Итак, мы представляем две модели, основанные на анатомии и свойствах мозга медоносной пчелы. Первая модель — упрощённая демонстрация того, что вышеизложенные принципы могут решать задачи DMTS и DNMTS и обобщать обучение для новых наборов образцов. Но эта модель не может продемонстрировать, что ассоциативное обучение в синапсах от KC до EN не препятствует обучению в синапсах от PCT до EN или наоборот. Поэтому вторая модель будет более полной и сможет решать как DMTS и DNMTS с переходом к новым стимулам, так и набор других ассоциативных задач.

Упрощённая модель
Упрощённая модель показана на рисунке (B). Входные узлы S1 и S2 — альтернативные стимулы, где KC для простоты разделены на два непересекающихся узла, поэтому нам не нужно отдельно моделировать входные нейроны IN. Узел I (который соответствует нейронам PCT, опять же в упрощённом виде) — это тормозящие нейроны, связанные с выходами GO и NOGO. Узлы S1 и S2 проецируются на узлы I, GO и NOGO с фиксированной возбуждающей взвешенной связью. I проецируется на GO и NOGO с помощью пластичных тормозящих взвешенных связей. Он имеет пороговое значение, поэтому реагирует только на новые стимулы.

Модель регулирует веса между I и GO, чтобы изменить вероятность выбора несоответствующего стимулу объекта. При этом веса от I до GO/NOGO инициализируются половиной максимального значения веса. Поскольку условия для изменения весов выполняются, когда для «go» выбирается единичный стимул, модель учится только на неудачных попытках для DMTS (увеличение веса) или успешных попытках для DNMTS (уменьшение веса).

Полная модель
Полная модель также изображена на рисунке ©. Ниже показана эффективность обеих моделей:


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

На области D изображена эффективность полной модели для первого блока обучения. Здесь тоже наблюдается смещение в сторону единичных образцов при обучении только по пути PCT. Это смещение уменьшается при наличии ассоциативного обучения по пути KC и не зависит от количества этапов предварительного обучения.

Область C отражает результаты обучения по пути от PCT к EN. Мы попытались подтвердить, что это позволило обеспечить обобщение результатов на новые наборы стимулов. Здесь из модели выборочно исключены: ассоциативное обучение по пути KC, обучение по пути PCT и полное обучение (синаптические веса остаются неизменными). На рисунке видно, что обучение по пути PCT является необходимым условием обобщения, в то время как обучение только по пути KC не влияет на эффективность этой задачи по сравнению с полностью исключённым обучением.

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

Экспериментальная установка Y-лабиринта изображена на рисунке ниже. Модель пчелы перемещается между набором состояний — различными местоположениями лабиринта: на входе, в центре справа, в центре слева, в правой ветви, в левой ветви.



Находясь у входа, пчела видит исходный стимул. В центральной камере перед ней два входа с объектами, из которых надо выбрать один согласно испытанию (DMTS или DNMTS).

В упрощённом Y-лабиринте модель пчелы может занять одно из трёх положений: на входе, в точке выбора перед левой ветвью, в точке выбора перед правой ветвью. В каждом положении для неё доступны два выбора: идти или не идти («go» и «no-go»). На входе всегда выбирается «go» — если пчёлы отказываются входить в лабиринт, то не участвуют в эксперименте. После этого случайно выбирается одна из ветвей: левая или правая. Если модель выбирает «no-go», то процедура повторяется, пока она не выберет «go». Поскольку на этом этапе обучения не происходит, модель может постоянно перемещаться между двумя входами, никогда не выбирая «go». Чтобы этого избежать, мы вводим равномерно распределённое случайное смещение в канал «go», которое увеличивается с числом раз, когда модель выбирает «no-go».

Нейроны IN делятся на непересекающиеся группы по 8 нейронов, каждая из которых представляет собой стимул:
  • Z: стимул для предварительного обучения
  • A, B: обучающие стимулы
  • C, D: стимулы для трансферного теста
  • E, F: стимулы для повторного трансферного теста

Нейроны в каждой из групп равны нулю, когда стимул отсутствует, и определённому значению, когда стимул активен. Это значение согласуется для каждой пчелы, но не между ними.

Предварительное обучение
Как и в опытах с реальными пчёлами, сначала мы знакомим наши простые модели с экспериментальным аппаратом. Мы проводим 10 этапов обучения с «поощрением» пчелы, которая входит в Y-лабиринт, без использования стимулов. После этого модель обучается ещё 10 этапов, чтобы перемещаться к каждой из ветвей лабиринта. В этом случае пчела не выбирает между «go» и «no-go», поскольку цель обучения — дать ей достаточное поощрение, чтобы потом она заходила в лабиринт и могла участвовать в дальнейшем эксперименте.

Обучение
Процедура состоит из 60 испытаний, разделённых на блоки по 10 испытаний. Опыт включает набор повторяющихся четырёх этапов: по два испытания с разными стимулами на входе в лабиринт. В каждом из испытаний объекты на левой и правой ветви менялись местами. Если модель решает задачу MTS, то она награждается за выбор объекта, совпадающего со стимулом, и наказывается за выбор другого. В задаче DMTS — наоборот.

Трансферный тест
В трансферном тесте мы не используем вознаграждение или наказание, а тестируем модели с помощью процедуры обучения, заменяя обучающие стимулы на тестовые. Используется два набора трансферных стимулов и 4 повторения (с заменой объектов в левой и правой ветви) для каждого из них.

Другие ассоциативные эксперименты
Теперь мы должны подтвердить, что наша модель может решать задачи обусловливания. Важный момент — они выполняются с точно такими же параметрами модели, как в DMTS/DNMTS; и характеристиками, обнаруженными в экспериментах на реальных пчёлах. Мы выбрали четыре опыта, включая эксперимент по обонятельному обучению с использованием рефлекса удлинения хоботка (proboscis extension reflex, PER), и визуальное обучение со свободно летающими пчёлами.

Обучение/переучивание
Эти эксперименты проводятся так же, как и DMTS, но с одним отличием — для первых 15 испытаний поощряется выбор одной соответствующей стимулу ветви (за неправильный выбор нет наказания), а после 15 испытания — другой соответствующей ветви. При этом не проводится никакого предварительного обучения, и данные анализируются для каждого опыта, а не для блоков по 10. В эксперименте используются 200 виртуальных пчёл.

Рефлекторное удлинение хоботка (PER)
Рефлекс удлинения хоботка — классический опыт с неподвижными пчёлами. В этом эксперименте пчёлы находятся в маленьких металлических трубках, открыты только голова и усики. Им подносят обонятельный стимул (условный раздражитель) и дают вознаграждение в виде раствора сахарозы (безусловный раздражитель). Для экспериментов PER мы разделяем нейроны IN так же, как было описано. Но так как пчёлы неподвижны, запахи представляются в заранее определённом порядке, и выбор пчелы на него не влияет.

Обучение одному запаху
В экспериментах с одним запахом обучение и тестирование происходят одновременно. Реальным пчёлам дают запах и с некоторой задержкой награждают раствором сахарозы. Если насекомое расширяет хоботок в течение задержки, его считают отреагировавшим, если нет — его всё равно награждают, но считают не отреагировавшим. Чтобы соответствовать этому плану, эффективность модели записывалась в каждом испытании, при этом NOGO — отсутствие реакции на стимул, GO — ответ на стимул. Награда давалась независимо от эффективности модели.

Положительное/отрицательное упорядочивание
Обучение делится на блоки, каждый из которых содержит четыре представления о запахе или комбинации запахов. При положительном упорядочивании мы не вознаграждаем отдельные запахи A и B, а только комбинацию AB (A -, B -, AB +). При отрицательном упорядочивании — наоборот (A +, B +, AB -). В обоих случаях объединённый запах используется дважды для каждого представления отдельных запахов, поэтому блоком для положительного упорядочивания является, например, [A -, AB +, B -, AB +], а для отрицательного: [A +, AB -, В +, AB -]. Эффективность оценивается так же, как при обучении одному запаху.

Результаты экспериментов показали, что полная модель способна успешно выполнять эти задачи. Количественная эффективность показана на рисунке ниже и почти соответствует экспериментам с реальными пчёлами.


Здесь A — обучение одному запаху, B — обучение/переучивание, C и D — положительное/отрицательное упорядочивание.

Использование модели
Упрощённая модель построена в GNU Octave, а полная модель создана с помощью набора инструментов SpineML и SpineCreator GUI (всё ПО с открытым исходным кодом). Входные векторы для нейронов IN и механизм состояний для навигации по Y-лабиринту моделируются с помощью сценария на Python через соединение TCP/IP.

Исходный код доступен на github.

Установите SpineML_2_BRAHMS, как описано здесь. Для простоты мы рекомендуем использовать Ubuntu Linux.

Клонируйте репозиторий с github и измените файл scripts/setup.py, добавив ваш путь к репозиторию и путь к SpineML.

Модель можно протестировать на разных экспериментах с помощью batch_X.py, а для анализа данных можно запустить сценарий process_data.py.

Если вы хотите визуализировать модель, то сделать это можно в SpineCreator GUI (инструкция по установке). Откройте файл .proj в каталоге /model с помощью меню File/Open Project в SpineCreator. Модель можно запускать из SpineCreator, но перед этим убедитесь, что вы запустили правильный файл scripts/world_X.py.

Упрощённую модель можно найти в каталоге /matlab_model и запустить в GNU Octave или Matlab.

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

С оригинальной статьёй можно ознакомиться на портале biorxiv.org

Придумать идею для стартапа: гид по рабочим методикам



Что самое сложное в бизнесе? Искать инвесторов, обходить конкурентов или вести бухгалтерию — трудно, но это обязательные составляющие. Самое сложное для предпринимателя — найти идею, ради которой захочется работать 24 часа в сутки. Идею, которая будет вдохновлять не только тебя, но и окружающих. Из которой вырастет перспективный бизнес.

Чтобы генерировать такие идеи, не надо быть Илоном Маском или Николой Теслой. Достаточно замечать проблемы и использовать готовые алгоритмы. В этой статье мы расскажем, как получить бесконечный список идей для бизнеса.

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

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

1. Шесть шляп мышления Эдварда де Боно

Случалось вам садиться за ноутбук с целью придумать новый бизнес, продукт или решение давней проблемы, а в итоге вы отвлекались на другие задачи? Просто ваше мышление — это хаос и это нормально. Чтобы добиться результата, Эдвард де Боно предложил разбить мышление на шесть режимов, фокусируясь только на одном из них, решая конкретную задачу. Чтобы было нагляднее, для каждого режима придумали цветную шляпу (шляпа может быть как образной, так и самой настоящей — всё на ваше усмотрение).
  • Синяя шляпа — управление и координация. Надевается в начале, чтобы обозначить стратегию и периодически по ходу мышления, чтобы контролировать процесс.
  • Белая шляпа — информация и факты. Анализируем, каких данных не хватает и где их можно найти. Смотрим, какие цифры уже устарели, соответствует ли статистика действительности.
  • Красная шляпа — эмоции и чувства. Высказывания делаются на основании личных переживаний и предпочтений, хорошо подходит для оценки дизайна и эстетической стороны решения.
  • Чёрная шляпа — критическое мышление. Выявляются возможные риски, опасности и препятствия. Хорошо тормозит поток сознания красной шляпы, но надевать раньше нее нельзя, чтобы не испортить творческий запал.
  • Жёлтая шляпа — оптимистичность. Позитивные ожидания и предположения.
  • Зелёная шляпа — креативность. Необычные творческие идеи и даже провокационные решения. Полёт мысли, который часто применяют после черной шляпы, чтобы найти интересное решение обозначенных проблем.

Чтобы решения и особенности шляп не противоречили друг другу, а главное — не урезали общую эффективность мозгового штурма, методика Боно подразумевает разные порядки, в которых надеваются шляпы:
  1. Разработка идей на старте — Синяя, Белая, Зелёная, Синяя.
  2. Выбор из альтернатив — Синяя, Белая, (Зелёная), Жёлтая, Чёрная, Красная, Синяя.
  3. Выбор решения — Синяя, Белая, Чёрная, Зелёная, Синяя.
  4. Быстрая обратная связь — Синяя, Чёрная, Зелёная, Синяя.
  5. Стратегическое планирование — Синяя, Жёлтая, Чёрная, Белая, Синяя, Зелёная, Синяя.
  6. Усовершенствование процесса — Синяя, Белая, Белая (мнения других участников), Жёлтая, Чёрная, Зелёная, Красная, Синяя.
  7. Решение проблем — Синяя, Белая, Зелёная, Красная, Жёлтая, Чёрная, Зелёная, Синяя.
  8. Обзор результатов — Синяя, Красная, Белая, Жёлтая, Чёрная, Зеленая, Красная, Синяя.

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

2. Идеи, которые осталось заметить

В своей статье Юрий Лифшиц из образовательного стартапа для предпринимателей EarlyDays. io говорит, что создавать идеи — это навык, который нужно тренировать. Для этого важна привычка видеть возможности для запуска новых бизнесов во всём, что вас окружает. Например, замечать боли людей или собственные проблемы, а потом решать их. Не нравится медленный лифт — придумайте быстрый, надоел пьяный сосед — придумайте супертонкий звукоизолятор. Для этого Лифшиц предлагает несколько методик:
  1. Живите в будущем. Читайте фантастику, придумайте то, чего вчера не существовало, читайте о новых изобретениях и думайте, как бы вы их улучшили.
  2. Подумайте, где взять дешевле и кому подороже продать. Развивающиеся страны предоставляют доступную рабочую силу, а государства Старого и Нового света — обеспеченных клиентов.
  3. Копируйте и развивайтесь. Позаимствуйте чужую идею. Позаимствуйте, а потом сделайте её немного лучше. Поднимитесь на носочки, загляните за забор. Иногда идеи десятилетиями медленно переползают океан.
  4. Путешествуйте. Привычная манера жизни в одной стране может быть революционной в другой стране. Самое главное — она отличается и это можно протестировать. Общайтесь с умными людьми, будьте открыты к чужому мнению.

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

3. Матрица стартапов
Мозговые штурмы и недельные моделирования не про вас? Для таких стартаперов Эрик Стромберг разработал матрицу с идеями. Она описывает по вертикали потребительские рынки, а по горизонтали — возможные тактики. На пересечении получается потенциальная стратегия выхода на рынок. Посмотреть таблицу вы можете в гугл-документе. Он доступен для просмотра всем пользователям.

4. Теория решения изобретательских задач (ТРИЗ)
Теорию решения изобретательских задач разработал советский ученый Генрих Альтшуллер. Он проанализировал более 40 000 изобретений и создал свои алгоритмы, следуя которым можно находить небанальные решения в, казалось бы, безвыходных ситуациях. Кроме того, с помощью этой методики можно не только разработать инновационный продукт, но и улучшить существующие процессы в вашем бизнесе.

Вот некоторые методики ТРИЗ:
  • Принцип вынесения. Отделить от целого ту часть, которая мешает больше всего (проблема, которую надо решить). Например, проанализируйте на что вы больше всего тратите время, занимаясь бизнесом, и выделите ту деятельность, которая не является для вас основной. Рассмотрите возможность передать эту деятельность на аутсорсинг.
  • Принцип асимметрии. Например, применяйте различные стратегии для каждого класса потребителей.
  • Принцип универсальности. Например, вы можете привлечь для разработки вашего сайта fullstack-разработчика, который будет разрабатывать дизайн и писать код.
  • Принцип наоборот. Поощряйте клиентов оставлять негативные отзывы. В обычной ситуации вы бы не стали такое делать, но жалобы клиентов помогут выявить недостатки вашего продукта или сервиса.
  • Принцип проскока. Старайтесь ускорить некоторые трудные или вредные процессы производства до максимальной скорости.

⌘⌘⌘

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

www.reg.ru

Всё для бизнеса и крутых проектов в главных акциях апреля



Скидка 50% на Расширенную защиту от спама!
Только до 30 апреля 2019 года для всех клиентов REG.RU действует супервыгодное предложение: активируйте промокод ANTISPAM19 и подключите Расширенную защиту от спама за полцены!
www.reg.ru/company/promotions/5168

Хостинг бесплатно при переносе сайта в REG.RU!
Перенесите свои сайты на обслуживание к хостинг-провайдеру №1 в России и получите в подарок 1 месяц бесплатного виртуального хостинга или VPS. Убедитесь лично в надёжности наших услуг
и сэкономьте!
www.reg.ru/company/promotions/5165

Веб-адрес в зоне .ONLINE всего за 1 рубль!
Уникальная акция продлена до конца апреля: спешите зарегистрировать новый веб-адрес в зоне .RU и получить такой же в зоне .ONLINE всего за 1 рубль! Используйте их для привлечения максимального количества пользователей!
www.reg.ru/company/promotions/5167

Домены в зонах .RU и.РФ в подарок к хостингу!
Подключите хостинг на срок от 12 месяцев и получите бесплатно домены в самых популярных зонах Рунета. Акция действует для всех клиентов, кроме партнёров REG.RU.
www.reg.ru/company/promotions/4584

Адрес .INFO за 99 рублей: пусть весь мир узнает о вас!
Ваш онлайн-проект заслуживает особого внимания и стоит того, чтобы о нём узнали как можно больше пользователей. Стирайте любые границы и делитесь интересным контентом с доменом .INFO за 99 рублей.
www.reg.ru/company/promotions/5111

Экономьте больше с Клубными тарифами REG.RU!
Станьте участником Клуба REG.Friends и получите доступ к постоянным скидкам и специальным условиям, а также дополнительным сервисам.
www.reg.ru/club/tariffs
www.reg.ru/company/promotions/

Только 5 апреля: домены .RU за 177 рублей!



Первой национальной доменной зоне совсем скоро исполнится 25 лет.
В честь праздника компания REG.RU, регистратор №1 в России, представляет акцию: 5 апреля зарегистрировать домен .RU можно будет всего за 177 рублей. В подарок, как всегда, вас ждут полезные бонусы: SSL-сертификат и хостинг на 2 месяца бесплатно.

Главная онлайн-площадка страны
Неважно, речь о бизнесе или некоммерческом проекте, — зона .RU по-прежнему остаётся главной в Рунете. Количество зарегистрированных в ней доменов превышает 5 миллионов.
А это миллионы крутых сайтов, вдохновляющих идей и онлайн-площадок, где люди продвигают свои компании, находят единомышленников, выбирают подарки для самых близких и узнают что-то новое. Именно вы, обычные пользователи и увлечённые своим делом владельцы сайтов, по-настоящему творите Рунет и делаете его невероятным. Спасибо, что выбрали для этого REG.RU.

Условия акции
Акция будет действовать 5 апреля 2019 года с 00:00:00 до 23:59:59 по московскому времени. Специальная цена распространяется только на регистрацию новых доменов .RU и доступна для всех клиентов и партнёров REG.RU, чей тариф в этой зоне превышает 177 рублей. Количество регистраций от одного пользователя неограниченно, а значит, самое время выбрать веб-адреса для всех ваших идей!

www.reg.ru/domain/new/RU/

Повышение разрешения изображения с помощью AI


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

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

В этой статье мы расскажем о SRGAN — генеративно-состязательной сети (Generative Adversarial Network, GAN) для повышения разрешения изображений (image superresolution). На сегодняшний день это первое решение, способное восстанавливать исходные текстуры из изображений, уменьшенных в четыре раза. Средняя экспертная оценка (MOS — mean opinion score) показывает значительный прирост качества при использовании SRGAN: результаты оказались близки к значениям оригинальных изображений с высоким разрешением, чего не удавалось достичь с помощью других современных методов. Вы сможете сами убедиться в этом, если после ознакомления с принципами работы SRGAN обучите нейросеть или же воспользуетесь готовой моделью.


1. Описание модели
Методы, направленные на качественное увеличение разрешения исходного изображения, называются super-resolution (SR). Мы рассмотрим работу с одним изображением (Single Image Super-Resolution, SISR) и не будем затрагивать тему восстанавливления высокого разрешения из нескольких снимков.

Первые подходы к решению проблемы SISR основывались на прогнозировании. Например, линейная фильтрация, бикубическая фильтрация, фильтрация Ланцоша. Эти методы работают быстро, но выдают решения с чрезмерно гладкими текстурами. Более мощные подходы нацелены на создание сложного отображения между снимками с низким (Low Resolution, LR) и высоким (High Resolution, HR) разрешением и обычно основаны на данных обучения. Такие методы полагаются на примеры пар LR-HR, то есть на те тренировочные шаблоны LR, для которых известны подходящие аналоги HR.

Более глубокие сетевые архитектуры сложнее обучить, однако они могут моделировать сложные отображения, а значит — существенно повысить точность реконструкции. Для эффективного обучения таких сетей часто используется пакетная нормализация, чтобы избежать внутреннего ковариационного сдвига. Глубокие сетевые архитектуры также увеличивают эффективность SISR.

Для многих подходов часто применяются попиксельные (pixel-wise) функции потерь (например, среднеквадратичная ошибка), которые пытаются справиться с неопределённостью при восстановлении текстуры изображения. Минимизация ошибки позволяет находить средние вероятностные решения для каждого пикселя, но они получаются слишком гладкими и, следовательно, имеют низкое качество восприятия, как показано на рисунке ниже. Основными критериями качества в задаче SR являются пиковое отношение сигнала к шуму (peak signal-to-noise ratio, PNSR) и индекс структурного сходства (structure similarity, SSIM), также указанные на рисунке.


Для решения проблемы сглаженных пикселей можно использовать генеративно-состязательные сети (GAN) и применять, например, функции потерь, основанные на евклидовых расстояниях, вычисленных в пространстве признаков нейронных сетей в сочетании с состязательным обучением. Также можно использовать признаки, извлечённые из предварительно обученной VGG (Visual Geometry Group) нейросети, формулируя функцию потерь как евклидово расстояние между картами этих признаков. Результаты, полученные с применением этих подходов, показали высокую эффективность как при работе с SR, так и при передаче художественного стиля (artistic style-transfer).

GAN обеспечивают мощную основу для создания правдоподобных SR-изображений с высоким качеством восприятия. В этой статье мы описываем глубокую архитектуру ResNet, использующую концепцию GAN для фотореалистичного SISR. Основные особенности:
  • увеличение разрешения изображения с высокими коэффициентами масштабирования (4x);
  • использование функции потерь восприятия (perceptual loss function), рассчитанной с помощью карт признаков VGG сети, которые более инвариантны к изменениям пикселей;
  • высокие результаты средней экспертной оценки MOS на общедоступных наборах данных.

2. Архитектура сети
Цель SISR — реконструировать изображение с высоким разрешением (SR) из входного изображения с низким разрешением (LR), которое является уменьшенной копией изначального снимка (HR). Изображения HR доступны только во время обучения, а LR создаются применением к ним фильтра Гаусса с последующей операцией понижения дискретизации (downsampling) и описываются с помощью действительного тензора.

Задача состоит в том, чтобы обучить генеративную функцию, которая для входного LR-изображения оценивает соответствующий HR аналог. Для этого мы обучаем GAN как cвёрточную нейронную сеть (convolutional neural network, CNN) прямого распространения с оптимизацией специфичной для SISR функции потерь восприятия.

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

Далее мы определяем дискриминаторную сеть (Discriminator Network, дискриминатор) и последовательно оптимизируем её вместе с генеративной сетью (генератором) для решения состязательной проблемы min-max. Общая идея заключается в том, чтобы обучить генеративную модель «обманывать» дискриминатор, который обучен отличать SR изображения от реальных. С помощью такого подхода генератор может научиться создавать решения, очень похожие на реальные изображения, и, следовательно, трудно классифицируемые дискриминатором.

В основе генеративной сети находятся B остаточных блоков с идентичной компоновкой. В каждом блоке находятся два свёрточных слоя с небольшими ядрами 3×3 и 64 картами признаков, за которыми расположены слои пакетной нормализации. В качестве функции активации используется PReLU (Parametric Rectified Linear Unit). Входное изображение увеличивается попиксельно с помощью двух свёрточных слоев.

Чтобы отличить реальные HR-снимки от сгенерированных образцов SR, необходимо обучить дискриминаторную сеть, используя функцию активации LeakyReLU и избегая формирования подвыборочных слоёв во всей нейросети. Дискриминаторная сеть содержит 8 свёрточных слоёв с возрастающим числом ядер фильтра 3×3 (с 64 до 512, каждый раз увеличиваясь в 2 раза, как в VGG сети). Пошаговые свёртки используются для уменьшения разрешения изображения каждый раз, когда число признаков удваивается. Полученные 512 карт признаков сопровождаются двумя плотными слоями и конечной сигмоидной функцией активации, чтобы получить вероятность классификации объекта.

Архитектуры обеих сетей показаны на рисунке.


3. Функция потерь восприятия
Определение функции потерь важно для эффективной работы генеративной сети. Обычно функция моделируется на основе среднеквадратичной ошибки, но в этой работе используется её улучшенный вариант. Мы оцениваем решение с учётом значимых характеристик восприятия — взвешенной суммы потерь содержания и состязательных потерь.

Потери содержания определяются на основе слоёв активации ReLU предварительно обученной VGG сети и определяются как евклидово расстояние между признаками восстановленного и опорного изображений.

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

4. Эксперименты
Эксперименты проводились на трёх широко используемых наборах данных Set5, Set14 и BSD100, тестовом наборе BSD300. Все опыты выполнены с коэффициентом 4x между снимками с низким и высоким разрешением. Это соответствует 16-кратному уменьшению пикселей изображения. Для достоверного сравнения все измеренные значения PSNR [дБ] и SSIM были рассчитаны на Y-канале с центральным кадрированием и удалением полосы шириной в 4 пикселя у каждой границы изображения.

Обучение проводилось на графическом процессоре NVIDIA Tesla M40 с использованием случайной выборки из 350 тысяч изображений, взятых из базы данных ImageNet. Изображения LR были получены путём понижения дискретизации HR-изображений (BGR) с использованием бикубического ядра.

Для каждого мини-пакета обрезаются 16 случайно выбранных частей HR-изображения с разрешением 96×96 (мы можем применить генеративную модель к снимкам произвольного размера, так как она полностью является свёрточной). Далее входные LR-изображения масштабируются в диапазоне [0, 1], а HR — в диапазоне [-1, 1]. Таким образом, потери среднеквадратичной ошибки рассчитываются в диапазоне интенсивностей [-1, 1].

Для оптимизации используется алгоритм Adam (adaptive moment estimation). В качестве инициализации при обучении сети GAN использовалась ранее обученная нейросеть SRResNet, чтобы избежать нежелательных локальных минимумов.

Все варианты SRGAN прошли обучение с 105 обновляемыми итерациями со скоростью обучения 10−4, и затем ещё с 105 итерациями с более низкой скоростью 10−5, при этом чередуя обновления для генеративной и дискриминаторной сети. Генеративная сеть имеет 16 идентичных (B=16) остаточных блоков. Во время тестирования обновления пакетной нормализации отключены, чтобы получить результат, зависящий только от исходных данных.

5. Оценка качества и результаты
Для количественной оценки способности различных подходов восстанавливать высокое разрешение изображений был выполнен тест MOS. В тесте участвовали 26 оценщиков; они присваивали балл от 1 (плохое качество) до 5 (отличное качество) восстановленным SR-изображениям. Калибровка проводилась на 20 парах изображений с низким и высоким разрешением из набора BSD300. Оценщики сравнили 12 версий каждого изображения из Set5, Set14 и BSD100 для различных упомянутых выше подходов SISR, а также для оригинальных HR-изображений. Каждый оценщик протестировал 1128 экземпляров (12 версий 19 изображений плюс 9 версий 100 изображений) в случайном порядке. Результаты показали хорошую надёжность и никаких существенных различий между оценками идентичных изображений, что продемонстрировано на рисунке ниже.


Качественные оценки потерь для различных методов на визуальном примере:


Количественные оценки:

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

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


6. Обучение собственной нейросети для SISR
Используя материалы из этой статьи, вы можете обучить свою нейросеть для получения изображений с высоким разрешением. Исходный код доступен на github. Для начала работы вам необходимо:

Подготовить данные и предварительно обученную нейросеть VGG
  • Загрузите предварительно обученную VGG сеть отсюда.
  • Подготовьте изображения с высоким разрешением для обучения.

В качестве эксперимента использовались изображения из соревнования DIV2K — bicubic downscaling x4 competition, поэтому параметры обучения в файле config.py установлены в соответствии с этим набором данных. Если ваш датасет будет больше, то вы можете уменьшить число эпох обучения.

Также можно использовать набор данных Yahoo MirFlickr25k, загрузив их прямо из main.py:
train_hr_imgs = tl.files.load_flickr25k_dataset(tag=None)

Если вы хотите использовать собственные изображения, укажите путь к папке с ними в файле
config.py с помощью config.TRAIN.hr_img_path

Запустить программу
Установите папку с изображениями в config. py (если вы используете датасет DIV2K — ничего не меняйте):
config.TRAIN.img_path = "your_image_folder/"
Ссылки на набор DIV2K: <a href="https://data.vision.ee.ethz.ch/cvl/DIV2K/validation_release/DIV2K_test_LR_bicubic_X4.zip">test_LR_bicubic_X4</a>, <a href="https://data.vision.ee.ethz.ch/cvl/DIV2K/DIV2K_train_HR.zip">train_HR</a>, <a href="https://data.vision.ee.ethz.ch/cvl/DIV2K/DIV2K_train_LR_bicubic_X4.zip">train_LR_bicubic_X4</a>, <a href="https://data.vision.ee.ethz.ch/cvl/DIV2K/validation_release/DIV2K_valid_HR.zip">valid_HR</a>, <a href="https://data.vision.ee.ethz.ch/cvl/DIV2K/DIV2K_valid_LR_bicubic_X4.zip">valid_LR_bicubic_X4</a>

Начните обучение:
python main.py

Начните оценку (можете воспользоваться предварительно обученной на DIV2K моделью):
python main.py --mode=evaluate

Теперь вы можете использовать нейросеть для восстановления высокого разрешения изображений.

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

С оригинальной статьёй можно ознакомиться на портале arxiv.org.