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

advertisement
Технологическая сингулярность
Под технологической сингулярностью принято
понимать качественный скачок в развитии
технологической цивилизации, в результате
создания полноценного сильного ИИ,
самовоспроизводящихся машин, развития
биотехнологий и нанотехнологий, интеграции
человека с компьютерами.
По некоторым оценкам, ожидается наступление
технологической сингулярности в районе 2030 г.
Сторонниками теории ТС также постулируется
переход человеческого общества к
постчеловеческому, для которого неприменимы
современные социальные, нравственные нормы.
ИИ и массовая культура
Для популярной культуры характерен страх перед
созданием искусственного интеллекта и мыслящих
машин. Предполагается, что осознавший себя
искусственный интеллект также приходит к мысли
о своем превосходстве над людьми и стремиться
либо уничтожить человечество («Терминатор»),
либо использовать людей в качестве
инструментов для достижения своих целей
(«Матрица», «Гиперион»).
ИИ и массовая культура
Также в фантастике широко распространена
концепция общества, в котором после
столкновения со стремящимся к превосходству
ИИ, возникает запрет на создание и
использование мыслящих машин (зачастую
принимающий религиозный характер), например в
цикле «Дюна» (Ф. Герберт), где после т.наз.
«Бутлерианского Джихада» функции компьютеров
выполняют ментаты – люди с предельно
развитыми вычислительными и аналитическим
способностями.
ИИ и массовая культура
Аналогичная ситуация сложилась и во вселенной
«Warhammer 40000» после «Темной эры
технологий». Запрещено создание обладающих
разумом машин не на биологической основе, что
приводит к массовому использованию
кибернетических имплантантов и производству
сервиторов (киборги с человеческим мозгом и
«стертой» личностью) различного назначения.
ИИ и массовая культура
Подобная тема возникала даже в творчестве
советских писателей-фантастов. Например, у
братьев Стругацких упоминается
«Массачусетская машина» - некий
суперкомпьютер, который после первого
включения «начал вести себя», в результате чего
быль отключен через несколько минут, и все
исследования в этом направлении были свернуты.
Нейронные сети
Как известно, человеческий мозг состоит из
нейронов, соединенных в одну большую сеть.
Каждый нейрон может перейти в возбужденное
состояние, при этом он передает соседним
нейронам электрические сигналы. В свою очередь,
эти нейроны могут передавать сигналы своим
соседям, и т.д.
Исследованиями (на основе изучения скорости
передачи сигнала и человеческой реакции)
установлено, что цепочки нейронов, которые
задействуются человеческим мозгом в процессе
принятия решения, по длине не превышают
несколько сотен нейронов.
Нейронные сети
Отсюда следует, что эффективность и
быстродействие человеческого мозга достигаются
не за счет большого количества вычислений (что
характерно для компьютеров), а благодаря
удачной организации нейронной сети, в которой
для решения конкретных задач задействуются
цепочки небольшой длины.
Существует ряд исследований, посвященные
более точной имитации работы человеческого
мозга, чем те подходы, которые используются при
разработке искусственных нейронных сетей. Но
основная цель этих исследований – не столько
создание ИС, сколько исследование
мыслительных процессов человека
Нейронные сети
Нейрон возбуждается при получении импульса,
мощность которого выше некоторого порогового
значения. Этот импульс может также быть и
суммарным с нескольких входов.
Простейшей математической моделью нейрона
является перцептрон (perceptron). В нем эта
модель реализуется линейными функциями.
Перцептрон подсчитывает некоторую линейную
функцию от своих входов и сравнивает ее с
заданным значением лимита активации
(threshold).
Нейронные сети
Пусть у перцептрона n входов, соответственно для
него задается n весов w1, w2,…, wn и лимит
активации w0. Перцептрон
выдает 1, если линейная функция от входов с
весовыми коэффициентами wi превышает -w0
(минус нужен, чтобы перенести w0 в левую часть
со знаком «плюс»). Значит выход перцептрона
o(x1,…, xn) вычисляется как
o(x1,…, xn) = 1, если w0 + w1x1 + . . . + wnxn > 0 и
−1 в противном случае.
Нейронные сети
Можно рассматривать весовые коэффициенты
(w1, w2,…, wn) и лимит активации (w0) вместе,
введя у персептрона еще один вход, на который
всегда подается 1. Тогда условие срабатывания
персептрона принимает вид Σi wixi > 0.
Можно изображать персептроны в виде узлов
графа, помеченных значениями w0 , а входящие
ребра помечать значениями wi .
Нейронные сети
На рисунке приведен общий вид перцептрона (а),
и даны примеры перцептронов, реализующих
дизъюнкцию (б) и конъюнкцию (в).
Нейронные сети
Для дизъюнкции достаточно сделать лимит
активации ниже, чем любой из весов на входе,
тогда единица, полученная на любом входе,
приведет к срабатыванию.
Чтобы получить конъюнкцию n входов, нужно
установить такой лимит активации, чтобы сумма
n-1 входа была меньше него, а сумма всех n
входов уже была бы больше.
Нейронные сети
Перцептрон является достаточно мощным
инструментом: он может реализовать любую
гиперплоскость (подпространство некоторого
пространства с размерностью на 1 меньшей, чем у
этого пространства), рассекающую пространство
возможных решений. Если целевая функция
(функция, которую мы пытаемся приблизить при
помощи нейронной сети) позволяет линейно
отделить свои положительные значения от
отрицательных, достаточно использовать сеть из
одного перцептрона.
Нейронные сети
При объединении перцептронов в сеть, подавая
выходы одних перцептронов на входы других, мы
можем получить достаточно мощную конструкцию.
И уже сети с глубиной 2 достаточно для решения
любой булевской задачи.
Главное ограничение перцептронов состоит в том,
что они реализуют исключительно линейные
функции, комбинации которых также оказываются
линейными.
Нейронные сети
Обычно входные сигналы для перцептронов в
нейронной сети фиксированы, а весовые
коэффициенты могут изменяться. Некоторые
входы являются внешними входами нейронной
сети, а некоторые выходы - внешними выходами
сети. Подавая любые числа на входы нейронной
сети, мы получаем какой-то набор чисел на ее
выходах. Таким образом, работа нейронной сети
состоит в преобразовании входного вектора в
выходной вектор, и это преобразование задается
весовыми коэффициентами.
Нейронные сети
Многие задачи можно свести к задачам, решаемой
нейронной сетью. Рассмотрим, как при ее помощи
можно реализовать распознавание символов
алфавита.
Пусть у нас имеется растровое черно-белое
изображение буквы размером 30x30 пикселей. В
русском алфавите 33 буквы и нам требуется
определить, какую букву представляет заданное
изображение.
Понятно, что входной вектор можно представить
как набор из 900 (30x30) двоичных значений.
Нейронные сети
Тогда нам требуется построить нейронную сеть с
900 входами и 33 выходами (каждый выход
обозначает соответствующую букву).
Если на входе нейронной сети поступает
изображение буквы «А», то максимальное
значение выходного сигнала достигается на
соответствующем выходе «А», аналогично и для
остальных букв.
Нейронные сети
Тогда нам требуется построить нейронную сеть с
900 входами и 33 выходами (каждый выход
обозначает соответствующую букву).
Если на входе нейронной сети поступает
изображение буквы «А», то максимальное
значение выходного сигнала достигается на
соответствующем выходе «А», аналогично и для
остальных букв.
Нейронные сети
В принципе, уровень выходного сигнала может
принимать любые значения из какого-то
диапазона. Но нас интересует номер категории,
т.е. буквы в алфавите. Поэтому используется
следующий подход - каждой категории
сопоставляется свой выход, а ответом нейронной
сети считается та категория, на чьем выходе
уровень сигнала максимален.
Нейронные сети
В принципе, уровень выходного сигнала может
принимать любые значения из какого-то
диапазона. Но нас интересует номер категории,
т.е. буквы в алфавите. Поэтому используется
следующий подход - каждой категории
сопоставляется свой выход, а ответом нейронной
сети считается та категория, на чьем выходе
уровень сигнала максимален.
Нейронные сети
Уровень сигнала на выходе, например, «А» можно
рассматривать как достоверность того, что на
вход нейронной сети было подано изображение
буквы «A». Задачи, в которых нужно отнести
входные данные к одной из известных категорий,
называются задачами классификации.
Изложенный подход - стандартный способ
классификации с помощью нейронных сетей.
Нейронные сети
Построение нейронной сети производится в два
этапа:
1. Выбор типа или архитектуры сети.
2. Подбор весовых коэффициентов или обучение
сети.
На первом этапе выбирается структура
перцептронов (число их входов, передаточные
функции), конфигурация связей между ними,
производится определение входов и выходов
сети.
Нейронные сети
Нейронную сеть не требуется создавать «с нуля»,
существует множество архитектур,
предназначенных для решения разных классов
задач, например многослойный перцептрон,
нейронная сеть с общей регрессией, нейронные
сети Кохонена.
На втором этапе требуется «обучить» выбранную
нейронную сеть, подобрать такие значения ее
весов, чтобы она работала нужным образом.
Нейронные сети
Обучить нейронную сеть - «передать» сети, чего
мы от нее добиваемся. Этот процесс очень похож
на обучение ребенка алфавиту. Показав ребенку
изображение буквы «А», мы спрашиваем его:
«Какая это буква?». Если ответ неверен, мы
сообщаем ребенку тот ответ, который мы хотели
бы от него получить: «Это буква А». Ребенок
запоминает этот пример вместе с верным ответом,
то есть в его памяти происходят некоторые
изменения в нужном направлении.
Это процесс повторяется до тех пор, когда все 33
буквы не будут твердо запомнены. Такой процесс
называют «обучение с учителем».
Нейронные сети
Обучить нейронную сеть - «передать» сети, чего
мы от нее добиваемся. Этот процесс очень похож
на обучение ребенка алфавиту. Показав ребенку
изображение буквы «А», мы спрашиваем его:
«Какая это буква?». Если ответ неверен, мы
сообщаем ребенку тот ответ, который мы хотели
бы от него получить: «Это буква А». Ребенок
запоминает этот пример вместе с верным ответом,
то есть в его памяти происходят некоторые
изменения в нужном направлении.
Это процесс повторяется до тех пор, когда все 33
буквы не будут твердо запомнены. Такой процесс
называют «обучение с учителем».
Download