Нейронные сети

 

 

 

Модели компьютерной обработки информации

 

Две модели обработки информации (принципиально разныt):

  • последовательная обработка символов,

  • параллельное распознавание образов.

Символы и образы можно рассматривать в качестве «слов» некоторого языка (функционального, коммуникативного).

Размер (информационный) образа многократно больше размера символа.

Сложность работы с образами возрастает нелинейно при увеличении их разрядности.

Для символов (относительно коротких) можно описать все возможные над ними операции и создать процессор, который предсказуемым образом обрабатывает все входящие символы, исполняющие роль команд или данных. Для образов это невозможно, поскольку подобное описание будет расти экспоненциально.

Любой процессор, предназначенный для обработки образов:

  • содержит лишь часть возможных входных образцов и соответствующих им действий

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

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

 

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

Впервые термин ввел Ричард Беллман применительно к общей задаче динамического программирования.

 

 

Нейроны (биологические)

 

Нейрон (от др.-греч. волокно) — специализированная сложноустроенная клетка нервной системы.

Кора головного мозга человека порядка 100 000 000 000 нейронов.

В нейроне (условно!) выделяют:

  • ядро,

  • тело клетки,

  • отростки: дендриты и  аксоны (обычно только один аксон).

Концевые участки аксона — терминали ветвятся и контактируют (посредством синапсов) с другими  клетками (нервными, мышечными или железистыми).

Взаимосвязанные нейроны образуют нейронную сеть.

Один нейрон может иметь связи с десятками тысяч других нейронов.

 


 

Зеркальные нейроны (mirror neurons) — нейроны головного мозга, которые возбуждаются как при выполнении определённого действия, так и при наблюдении за выполнением этого действия другим существом.

Предполагаемые функции зеркальный нейронов (предмет научных споров):

  • эмпатия (осознанное сопереживание текущему эмоциональному состоянию другого человека)

  • понимание действий других людей

  • овладение речью и освоение языка,

  • освоение новых навыков путём имитации.

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

Нет достойной вычислительной модели функционирования зеркальных нейронов.

 

20.06.2020 Сравнение мозга с нейронной сетью
 

 

 

Искусственные нейроны

 

Искусственный нейрон (формальный нейрон, математический нейрон Маккалока — Питтса) — модель естественного нейрона (очень ... очень упрощенная).

Искусственный нейрон имеет один выхо (аксон) сигнал с которого может поступать на произвольное число входов других нейронов.

Схема искусственного нейрона

1. Нейроны, выходные сигналы которых поступают на вход данному

2. Сумматор входных сигналов

3. Вычислитель передаточной функции

4. Нейроны, на входы которых подаётся выходной сигнал данного

5. Веса входных сигналов

 

Искусственный нейрон (математически) - нелинейная функция линейной комбинации входных сигналов. 

Полученный результат посылается на единственный выход.

 

 

 

Искусственные нейронные сети

 

Искусственная нейронная сеть - модель соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов).

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

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

Практически нейронная сеть была реализована Фрэнком Розенблаттом в 1958 году как компьютерная программа, а впоследствии как электронное устройство — перцептрон.

Искусственная нейронная сеть состоит из нескольких слоев нейронов:

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

  • одного или нескольких внутренних (скрытых) слоев (нейроны этих слоев выполняют основные вычислительные операции),

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

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

Во внутренних слоях нейронов устанавливаются ассоциативные связи между входными и выходными сигналами нейронной сети.

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

Пороги чувствительности устанавливаются и корректируются в процессе обучения нейронных сетей.

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

 

 

 

Искусственные и биологические нейронные сети

 

 

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

Искусственные нейронные сети (даже третьего поколения: сверточные сети, автокодировщики, глубинные машины Больцмана) не имеют ничего общего с биологическими (кроме названия).

Утверждение: "нейронные сети моделируют работу мозга" - некорректно, т.к.:

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

 

 

 

История нейронных сетей в СССР

 

История нейронных сетей в СССР

 

 

 

Brain Projects

Blue Brain Project   — проект (IBM и Швейцарского Федерального Технического Института Лозанны) по компьютерному моделированию неокортекса человека с использованием суперкомпьютера Blue Gene.

Начался в июле 2005 года. Удалось смоделировать одну колонку неокортекса молодой крысы. При этом использовался один компьютер Blue Gene и было задействовано 8192 процессора для моделирования 10000 нейронов (один процессор моделировал один нейрон).

Human Brain Project (https://www.humanbrainproject.eu/en/) - европейский проект цифровой карты человеческого мозга с целью создания модели мозга грызунов (... и человека).

Начат в 2013, бюджет $1,6 млрд. до 2023. Сотни ученых из 26 стран мира и 135 институтов.

29.03.2016 Международная группа нейробиологов опубликовали самую полную из существующих карт нейронных сетей в коре головного мозга

17.08.2019 Пока не удалось смоделировать даже мозг грызуна. Возможно, лучшим решением было бы закрыть Human Brain Project еще в 2014-м

 

 

 

Обучение нейронных сетей

Нейронные сети не программируются (в привычном смысле этого слова), они обучаются.

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

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

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

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

Обучение нейронных сетей:

  • с математической точки зрения — многопараметрическая задача нелинейной оптимизации,

  • с точки зрения кибернетики - решение проблемы адаптивного управления,

  • с точки зрения развития программирования — решение проблемы эффективного параллелизма.

См. Machine Learning

 

 

 

Перцептрон

 

Перцептрон (perceptron, нем. perzeptron, от лат. perceptio — восприятие) — кибернетическая модель мозга.

Предложена Фрэнком Розенблаттом и реализованная в виде электронной машины «Марк-1», который был способен распознавать некоторые буквы английского алфавита.

Теорема сходимости перцептрона Розенблатта:

  • под любую обучающую выборку можно подобрать архитектуру и веса нейронной сети с одним внутренним слоем, такую чтобы обучающая выборка классифицировалась с 100% точностью.

Перцептрон стал одной из первых моделей нейросетей, а «Марк-1» — первым в мире нейрокомпьютером.

Перцептроны могут быть классифицированы как искусственные нейронные сети с одним скрытым слоем и прямым распространением сигнала.

Анализ принципиальные ограничений перцептронов привел в 1970-е годы к смещению интереса исследователей искусственного интеллекта в противоположную от нейросетей область символьных вычислений и

 

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

Системы символьных вычислений = системы компьютерной алгебры.

Теория перцептронов представляет собой базовую основу для всех последующих видов искусственных нейронных сетей. Её сложность и отсутствие общепринятой терминологии породили множество заблуждений.

Марвин Минский изучая свойства параллельных вычислений (частным случаем которых был перцептрон) переизложил теорию перцептронов на язык предикатов.:

  • множеству сигналов от S-элементов была сопоставлена переменная X;

  • каждому A-элементу был сопоставлен предикат φ(X) (фи от икс), названный частным предикатом;

  • каждому R-элементу был сопоставлен предикат ψ (пси), зависящий от частных предикатов;

  • перцептрон - устройство, способное вычислять все предикаты типа ψ.

 

 

 

К истории нейронных сетей

 

Искусственные нейронные сети за свою полувековую историю испытывали периоды стремительных взлетов и  равнодушия:

  • 1943 — У. Маккалок и У. Питтс формализуют понятие нейронной сети в фундаментальной статье о логическом исчислении идей и нервной активности.

  • 1948 — Н. Винер вместе с соратниками публикует работу о кибернетике. Основной идеей является представление сложных биологических процессов математическими моделями.

  • 1949 — Д. Хебб предлагает первый алгоритм обучения.

  • 1958 Ф. Розенблатт изобретает однослойный перцептрон и демонстрирует его способность решать задачи классификации

  • 1960 - Уидроу  совместно со своим студентом Хоффом на основе дельта-правила (формулы Уидроу) разработали Адалин (адаптивный сумматор), который сразу начал использоваться для задач предсказания и адаптивного управления.

  • 1963 - А. П. Петров в Институте проблем передачи информации АН СССР исследовал задачи «трудные» для перцептрона, что открыло новый этап моделирования искусственных нейронных сетей.

  • 1969 - М. Минский публикует формальное доказательство ограниченности перцептрона и показывает, что он неспособен решать некоторые задачи (проблема «чётности» и «один в блоке»), связанные с инвариантностью представлений. Интерес к нейронным сетям резко спадает.

  • 1972 - Т. Кохонен и Дж. Андерсон[en] независимо предлагают новый тип нейронных сетей, способных функционировать в качестве памяти.

  • 1973 - Б. В. Хакимов предлагает нелинейную модель с синапсами на основе сплайнов и внедряет её для решения задач в медицине, геологии, экологии.

  • 1974 — Пол Дж. Вербос и А. И. Галушкин одновременно изобретают алгоритм обратного распространения ошибки для обучения многослойных перцептронов. Изобретение не привлекло особого внимания.

  • 1975 — Фукусима представляет когнитрон — самоорганизующуюся сеть, предназначенную для инвариантного распознавания образов, но это достигается только при помощи запоминания практически всех состояний образа.

  • 1982 — после периода забвения, интерес к нейросетям вновь возрастает. Дж. Хопфилд показал, что нейронная сеть с обратными связями может представлять собой систему, минимизирующую энергию (так называемая сеть Хопфилда). Кохоненом представлены модели сети, обучающейся без учителя (нейронная сеть Кохонена), решающей задачи кластеризации, визуализации данных (самоорганизующаяся карта Кохонена) и другие задачи предварительного анализа данных.

  • 1986 — Дэвидом И. Румельхартом, Дж. Е. Хинтоном и Рональдом Дж. Вильямсом и независимо и одновременно С. И. Барцевым и В. А. Охониным (Красноярская группа) переоткрыт и существенно развит метод обратного распространения ошибки. Начался взрыв интереса к обучаемым нейронным сетям.

  • 2007 Джеффри Хинтоном в университете Торонто созданы алгоритмы глубокого обучения многослойных нейронных сетей.

Глубокое обучение по Хинтону — это очень медленный процесс. Необходимо использовать много примеров распознаваемых образов (например, множество лиц людей на разных фонах). После обучения получается готовое быстро работающее приложение, способное решать конкретную задачу (например, осуществлять поиск лиц на изображении). Технология глубокого обучения активно используется интернет-поисковиками при классификации картинок по содержащимся в них образам. Применяемые при распознавании искусственные нейронные сети могут иметь до 9 слоев нейронов, их обучение ведётся на миллионах изображений с отыскиваемым образом.

  • В наши дни нейронные сети в зените славы благодаря изобретению метода предобучения «без учителя» на основе (Restricted Bolzmann Machines, Ограниченных Больцмановских Машин ), что позволяет обучать глубокие нейронные сети (с десятками тысяч нейронов) и успехам глубоких нейронных сетей в практических задачах распознавания образов (в .т.ч. устной речи и рукописного текста).

Кстати, распознавание речи в Android реализовано именно на глубоких нейронных сетях.

 

 

 

Нейрокомпьютеры

 

На принципе последовательных вычислений на ограниченных по длине символах основаны компьютеры, реализованные по традиционной архитектуре фон Неймана с алгоритмическими программами.

Нейрокомпьютер — устройство переработки информации на основе принципов работы нейронных систем (параллельные вычисления и распознавание образов).

У нейрокомпьютеров :

  • нет разделения на активный процессор и пассивную память,

  • вычисления и обучение распределены по всем элементарным процессорам — нейронам, которые функционируют параллельно.

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

Первым нейрокомпьютерам был перцептрон Розенблатта: Марк-1 (1958)

Современные нейрокомпьютеры — это вычислительные системы с параллельными потоками одинаковых команд и множественным потоком данных (MSIMD-архитектура).

Искусственная нейронная сеть может передаваться от нейрокомпьютера к нейрокомпьютеру, так же как и компьютерная программа. На её основе могут быть созданы специализированные быстродействующие аналоговые устройства.

03.05.2014

В Стэнфордском университете разработана материнская плата NeuroGrid, которая эмулирует сеть из 1000 000 нейронов и миллиарды синаптических связей и несёт на себе 16 микросхем Neurocore особой конструкции, каждый чип которых содержит 65 536 искусственных нейронов.
Специфические вычисления с эмуляцией нейросети компьютер с NeuroGrid выполняет в 9000 раз быстрее, чем обычный ПК, при этом потребляет в 100 000 раз меньше энергии. Для сравнения, нейрочипы производства IBM эмулируют всего лишь 256 нейронов. Разработкой нейроморфных микросхем занимается также Qualcomm, но готовых образцов ещещ нет. У мозга человека в 100 000 раз больше нейронов (чем эмулирует Neurogrid), мозг потребляет всего втрое больше энергии (чем Neurogrid).

 

 

 

Области применения нейронных сетей

 

Искусственные нейронные сети используются:

  •  для решения задач в сфере искусственного интеллекта,

  • в качестве основы нейрокомпьютеров.

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

В числе задач, решение которых доверяют искусственным нейронным сетям:

  • прогнозирование,

  • принятие решений,

  • рекомендательные системы,

  • распознавание образов (в том числе: распознавание устной речи и письменного текста),

  • управление роботами,

  • семантический поиск,

  • медицинская диагностика.

  • контекстная реклама,

  • фильтрация спама,

  • системы безопасности,

  • компьютерный перевод,

  • тематизация текстов...

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

  • многослойных персептронов (Multilayer Perceptron, MLP)

  • радиальных базисных функций (Radial Basis Function network, RBF).

 

 

 

Эффективность нейронных сетей

 

В США было подсчитано, что потери бюджета от мошенничеств в области здравоохранения составляют около $730 000 000 в год.

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

Для настройки нейронной системы были применены также методы нечеткой логики.


Нейросетевой продукт SelectCast от Aptex Software, Inc. позволяет определять область интересов пользователей Интернета на основе анализа тематики текстовых сообщений и предлагать им рекламу соответствующей тематики, что увеличило эффективность рекламы от 2 до 5

 

 

 

Правила использования нейронных сетей

 

Нейронные сети по своей природе являются вероятностными моделями.

К ним не применим подход: «запрограммировал, работает – значит, работает всегда».

 

Золотое правило: Если есть возможность не использовать нейронные сети – не используйте!

Правила использования нейронных сетей:

  • Сложность нейронных сетей должна быть адекватна сложности задачи.

  • Данные для обучения должны быть репрезентативными. Обучающая выборка должна полно и разносторонне представлять описываемый феномен, включать в себя различные возможные ситуации. Хорошо, когда данных много, но это само по себе тоже не всегда помогает. В узких кругах широко распространен анекдот, когда к распознавальщику приходит геолог, выкладывает перед ним кусок минерала и просит разработать по нему систему распознавания такого вещества. «А можно ли еще примеров данных?» — спрашивает распознавальщик. «Конечно!» — отвечает геолог, достает кирку и раскалывает свой кусок минерала еще на несколько штук. Никакой новой информации такая увеличившаяся выборка в себе не несет.

  • Выборка должна "перемешиваться". После того, как входные и выходные векторы данных собраны, если измерения независимы между собой – поменяйте порядок следования векторов произвольным образом. Это критично для корректного разделения выборки на Train/Test/Validation и всех методов обучения типа «пример-за-примером» («sample-by-sample»).

  • Данные должны нормироваться и центрироваться. Для многослойных персептронов, и для многих других моделей значения входных данных должны лежать в пределах [-1;1]. Перед тем, как подавать их на нейросеть, вычтите из данных среднее и поделите все значения на максимальное значение. 

  • Регуляризация (техника, позволяюшая избежать переобучения нейросети во время обучения, даже если данных мало. Признак переобучившейся нейросети – большие значения весов, порядка сотен и тысяч, такая нейросеть не будет нормально работать на новых, не виденных ранее, данных

  • Использование новых алгоритмов обучения: Левенберга-Марквардта, BFGS, Conjugate Gradients и др. наряду с методом обратного распространения ошибки (backpropagation) их 70-х.

 

 

 

Слепые пятна нейронных сетей

 

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

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

Искажения, приводящие к ошибкам, сохраняют свои свойства при переходе к другой архитектуре сетей и при смене обучающей выборки.

Это важно, однако:
  1. Пользователю (а не исследователю) нейросети важно не где конкретно она ошибается, а насколько часто. Общее качество работы нейросетей (и способы его оценки) не ставятся под сомнение.

  2. Любая система распознавания никогда не работает на 100%, в ней всегда есть ошибки. Никогда нельзя делать действия на основе одного отдельного показателя датчика, всегда нужно брать плавающее окно значений.

 

 

 

Майкл Джордан о нейронных сетях

 

Майкл Джордан (проф. университета Беркли, мировой эксперт по теме машинного обучения):

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

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

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

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

  • Люди способны обрабатывать беспорядочные события. Они могут делать выводы в зависимости от обстановки: «Что произойдет, если я на это сяду? Что если я положу вот этот предмет на этот?» Эти задачи очень далеки от возможностей современных машин. Глубинное обучение хорошо подходит для некоторых видов распознавания изображений, например, для ответа на вопрос: «Что это за предмет?»

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

  • У Google есть группа, занимающаяся только естественным языком, так как они осознали, что недостаточно хороши в некоторых аспектах. Например, использование «не» – люди хотят пользоваться частицей «не»: «Какой город не стоит на реке?» На сегодняшний день поисковая система Google обрабатывает эту ситуацию недостаточно хорошо.

  • Я думаю, что произойдет медленное накопление знаний в областях связанных с речью, зрением и естественным языком. Думаю, что момент, когда мы скажем: «Теперь во вселенной есть еще одно интеллектуальное существо» не наступит в какой-то определенный узкий промежуток времени. Думаю, что системы вроде Google уже показывают определенный уровень искусственного интеллекта. Не думаю, что многие считают тест Тьюринга четким разграничением. Мы все узнаем интеллект, когда видим его, и он зарождается во всех устройствах вокруг нас. Ему не обязательно принимать форму единого организма. Я могу только заметить, что инфраструктура вокруг меня стала гораздо более интеллектуальной (как синоним "полезной"). Все из нас со временем это замечают.

  • Что наше поколение находит удивительным, так это то, что компьютер в каком-то роде распознает наши нужды и желания – дети наших детей найдут это менее удивительным. Предполагается, что наше окружение адаптивно, предсказуемо и надежно. Появится возможность взаимодействовать с вашим окружением на естественном языке. В какой-то степени вы будете удивлены возможностью побеседовать с окружением. Прямо сейчас мы можем сделать это частично, внутри очень ограниченных областей. Например, мы можем получить доступ к банковским счетам. Такие технологии очень примитивны, но с течением времени мы увидим, как они становятся все умнее, надежнее и шире. В какой-то момент мы скажем: «Ух ты, все было по-другому, когда я был ребенком». Тест Тьюринга помог области сдвинуться с места, но, в конце концов, он перестанет быть чем-то действительно важным, и станет не более чем событием для СМИ...

 

 

 

 

Inceptionism

 

 

Инсепционизм - визуализация работы 22-слойной нейросети Dreams, которая лежит в основе Inception - системы машинного распознавания образов.

В 2015 году Google опубликовала рассказ группы исследователей (в их числе российский разработчик Александр Мордвинцев) об эксперименте с искусственными нейронными сетями для распознавания изображений: получив фотографию или рисунок, они выясняют, какие именно объекты на ней изображены посредством распознавания закономерностей на картинках: глаз, животных, зданий и др.

Такие нейросети состоят из 10–30 связанных слоев, которые работают последовательно: получив картинку, они анализируют ее и «сообщают» результаты анализа следующему слою.

Например:

  • первые слои могут искать на изображении края и углы,

  • средние — интерпретировать наборы особенностей в отдельные объекты (например, двери или листья).

  • финальные слои объединяют все эти интерпретации воедино и делают выводы о том, что изображено на картинке — например, здание или дерево.

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

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

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

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

Инцепционизм-генератор: http://deepdreamgenerator.com/

Другой генератор (с фильтрами и разными галереями): https://dreamdeeply.com/
 

 

 

Моделируя фотоизображения лиц

 

Генеративно-состязательная сеть от Nvidia,  генерирует фотографии несуществующих людей.

Обновлять страницу получаем уникальное реалистичное изображение (иногда с изъянами).

Генеративно-состязательная сеть -  комбинация двух нейросетей. Одна из них (генератор) учится создавать что-либо (модели лиц), а вторая (дискриминатор) пытается определить подлинность изображения. Процесс продолжается до тех пор, пока первая сеть не научится «обманывать» вторую...  разработчик проверяет результат и при необходимости корректирует алгоритмы.

 

 

 

Нейронные сети для начинающих:

 

Григорий Сапунов из Intento дает базовую терминологию и понимание, что к чему в области нейросей и как это использовать.
Сначала небольшое введение про то, что такое нейрон, нейросеть, глубокая нейросеть, потом про важные тренды, что происходит в этой области. Затем про архитектуры нейросетей, 3 основных их класса. После обзор фреймворков и библиотек для работы с нейросетями:

 

 

kmp