Войти
Все секреты компьютера для новичка и профессионала
  • Java игры из серии Prince Of Persia для мобильного телефона Скачать на телефон игру принц персии 5
  • Скачать экшена Бэтмен: Восхождение на андроид Игры на телефон бэтмен
  • Автомобильный усилитель – экономные варианты создания звука в салоне Как собрать схему усилителя звука
  • Высококачественный усилитель без ООС: The End Millennium Двухкаскадный усилитель на транзисторах
  • Стримы World Of Tanks Aces gg l первое танковое
  • Лучшие средние танки в World of Tanks
  • Чему в россии обучают нейронные сети. Миф о нейросетях и искусственном интеллекте Нейронные сети и искусственный интеллект в действии

    Чему в россии обучают нейронные сети. Миф о нейросетях и искусственном интеллекте Нейронные сети и искусственный интеллект в действии

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

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

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

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

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

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

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

    Они были разработаны по подобию естественных нейронных сетей нервной системы человека.

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

    Изобретатель первого нейрокомпьютера, доктор Роберт Хехт-Нильсен, дал следующее понятие нейронной сети: «Нейронная сеть — это вычислительная система, состоящая из ряда простых, сильно взаимосвязанных элементов обработки, которые обрабатывают информацию путем их динамического реагирования на внешние воздействия».

    Базовая структура искусственных нейронных сетей (ИНС)

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

    Человеческий мозг состоит из 100 миллиардов нервных клеток, называемых нейронами. Они связаны с другими тысячами клеток Аксонами. Раздражители из внешней среды или сигналы от органов чувств принимаются дендритами. Эти входные сигналы создают электрические импульсы, которые быстро перемещаются через нейросеть. Затем нейрон может посылать сообщения на другие нейроны, которые могут отправить это сообщение дальше или могут вообще ее не отправлять.

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

    Каждое звено связано с весом. ИНС способны к обучению, которое осуществляется путем изменения значения веса. На следующем рисунке показана простая ИНС:


    Типы искусственных нейронных сетей

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

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


    Здесь, допускаются петли обратной связи.

    Как работают искусственные нейронные сети

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

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

    Машинное обучение в искусственных нейронных сетях

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

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

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

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

    Алгоритм обратного распространения

    Байесовские сети (БС)

    Эти графические структуры для представления вероятностных отношений между набором случайных переменных.

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

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

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

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

    Где используются нейронные сети

      Они способны выполнять задачи, которые просты для человека, но затруднительны для машин:

      Аэрокосмические — автопилот самолета;

      Автомобильные — автомобильные системы наведения;

      Военные — сопровождение цели, автопилот, распознавание сигнала/изображения;

      Электроника — прогнозирование, анализ неисправностей, машинное зрение, синтез голоса;

      Финансовые — оценка недвижимости, кредитные консультанты, ипотека, портфель торговой компании и др.

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

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

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

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

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

    Искусственный интеллект - это пока всё с приставкой «умный»


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

    Причина того, что базовые телефонные возможности можно считать искусственным интеллектом, в том, что на самом деле есть два типа ИИ. Слабый или узконаправленный ИИ описывает любую систему, предназначенную для выполнению узкого списка задач. К примеру, Google Assistant или Siri, являясь довольно мощными ИИ, все же выполняют довольно узкий список задач. Они получают голосовые команды и возвращают ответы, либо запускают приложения. Исследования в области искусственного интеллекта питают эти функции, но они считаются «слабыми».

    В противоположность этому, сильный ИИ - известный также как общий искусственный интеллект, или «полный ИИ» - это система, способная выполнять любую человеческую задачу. И она не существует. Поэтому любое «умное» приложение - это все еще слабый искусственный интеллект.

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

    Почти всегда, когда в популярной прессе встречается термин "ИИ" - этот лишь красивый термин для нейронных сетей, чтобы сделать статью понятнее для читателя (ну а ещё - заманить побольше читателей). Уже сложилась, видимо, такая культура среди обозревателей: видишь нейронную сеть - пиши, что это "ИИ".

    По терминологии: ИИ - это программа, которая умеет учиться (самостоятельно в процессе своей работы получать знания и опыт) и эффективно использовать свой опыт в дальнейшем для более качественного выполнения некой задачи (задачи, для которой эта программа создана). Если это специализированная программа (например, для игры в шахматы) - её называют "слабым" ИИ, потому что её способность понимать (получать опыт) специально создана и адаптирована под шахматы. Уже создано много слабых ИИ. Например, Alpha Zero, основанная на нейронных сетях, и обучившаяся игре в шахматы самостоятельно с нуля, сейчас является претендентом на звание сильнейшего в мире шахматного игрока (она играет примерно на одном уровне и, возможно, даже превосходит лучшие шахматные программы, которые созданы классическим программированием на основе теории шахмат). Термин "сильный ИИ" (или же "ИИ общего назначения") зарезервирован для гипотетической программы, которая способна самостоятельно учиться разным задачам (то есть, в ней нет специального программирования под конкретную задачу). На данный момент ни одной такой программы нет и скорое появление (в ближайшие 5 лет) не предвидится. Разработки в этом направлении ведутся (в том числе, авторами упомянутой здесь Alpha Zero).

    Заметьте, что в термине ИИ нет никакого упоминания нейронных сетей. Потому что этот термин описывает не какую-либо технологию, не инструмент, не средство. Термин ИИ описывает конечный результат (способность учиться и использовать изученное). То есть, ИИ может быть создан на основе нейронных сетей, а может быть, и без них (хотя, скорее всего, это, действительно, будут нейронные сети).

    С другой стороны, термин "нейронная сеть" описывает как раз технологию (идею, подход) программирования. Идея в том, чтобы вместо того, чтобы программировать все действия программы команда за командой (как в классическом программировании), создать некоторую базовую структуру с самыми общими представлениями о том, с чем ей придётся работать. При этом эта структура основана на огромном количестве чисел-параметров (миллионы (миллиарды? триллионы?)), но они намеренно оставлены незаполненными (изначально там какие-то примерные средние значения и немного мусора). Во многом эта структура по принципу работы похожа на работу человеческого мозга (поэтому и называется "нейронная сеть"). Затем путём огромного количества (от сотен тысяч до миллионов), так сказать, "практических заданий" (программа выполняет работу и затем успешность работы этой программы оценивается), шаг за шагом определяется, какие конкретные значения всех этих параметров будут приводить к наилучшему результату. Этот процесс поиска наилучших параметров и есть обучение, получение опыта. Поскольку сама идея нейронной сети состоит в том, что она должна много обучаться, любая работающая нейронная сеть в какой-то мере является ИИ (если она хоть какую-то полезную задачу решает).

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

    Меньше года назад я читал интервью с главой Deep Mind (считается ведущей (или, как минимум, одной из ведущих) компанией в этой области). Он упомянул, что ИИ уровня человека, по его мнению, будет создан "через десятки лет" (цитата). Точнее сейчас сказать невозможно.

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

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

    Например, некоторые профессиональные игроки в шахматы, наблюдая за игрой Alpha Zero, говорят, что её игра не похожа на игру типичной шахматной программы. Один из профессионалов сравнил её игру с игрой некого очень разумного инопланетного существа (Гарри Каспаров, один из лучших игроков за всю историю шахмат, например, сказал, что её игра - это нечто среднее между игрой хорошей компьютерной программы и хорошего шахматиста-человека).

    Так что складывается впечатление, что направление выбрано верно: рекуррентные нейросети. Чтобы получился человекоподобный ИИ, скорее всего, потребуется разработать сразу несколько новых типов сетей и удачно их скомбинировать вместе. Для этого нужно огромное количество расчётов, экспериментирования, проб и ошибок. А также огромное количество вычислительной мощности. Процесс тренировки такой колоссальной по размаху нейросети потребует много компьютеров. Очень много. Даже обучение такой относительно простой сети, как Alpha Zero, потребовала ресурсов, эквивалентных десяткам лет работы персонального компьютера. Нейросеть, способная думать, как человек, для своего обучения потребует в сотни (вряд ли так мало), тысячи или даже миллионы раз больше вычислений. Тем не менее, такие вычислительные мощности не являются непреодолимой преградой. Главное, энергия есть, её хватает, процессоров и памяти можно наделать сколько угодно, тут проблемы нет.

    Ответить

    Прокомментировать

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

    Популярность

    Тема машинного обучения, интеллектуальных алгоритмов и искусственного интеллекта чрезвычайно популярна в наше время. Это легко можно увидеть, наблюдая за новостями на различных IT порталах. Подтверждает это и статистика. На графиках ниже представлены данные сервиса Google Trends с 2005(9) по настоящее время.

    Поиск в интернете по машинному обучению (мир):

    Новости по той же теме (мир):

    Новости по искусственному интеллекту (мир):

    Новости по искусственному интеллекту (Россия):

    Как видно, тема известная.

    Терминология

    Разберемся с терминологией. Что такое искусственный интеллект, машинное обучение и искусственные нейронные сети. Как они связаны?

    Начнем с самого важного, с искусственного интеллекта.

    Искусственный интеллект (ИИ) (Artificial intelligence, AI ):

    1. наука о создании интеллектуальных (умных) машин (чаще всего - компьютерных программ).

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

    В обоих определениях выше присутствует словосочетание «интеллектуальная машина (система)». Поясню его подробнее. Интеллектуальная машина - система (например, программа), способная выполнять задачи, считающиеся творческими.

    Другими словами искусственный интеллект и наука о творческих системах, и сама способность «творить» этих систем.

    Теперь настала очередь разобраться с термином «машинное обучение».

    Машинное обучение (Machine learning ) - подраздел искусственного интеллекта, изучающий различные способы построения обучающихся алгоритмов.

    Под обучающимися алгоритмами понимаются алгоритмы, которые меняются (обучаются) каким-то образом в зависимости от входных данных.

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

    Искусственные нейронные сети (ИНС) (Artificial neural networks, ANN ) - упрощенные модели биологических нейронных сетей.

    Среди множества вариантов обучающихся алгоритмов особенно выделяют нейросети

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

    В целом об ИНС

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

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

    Зададимся вопросом. А что такое биологические нейронные сети? Если вы помните школьную программу по биологии, то ответ скорее всего сразу пришел вам в голову. Вообще-то «голова» и есть один из ответов на этот вопрос. Точнее не голова, а наши мозги. Мозги есть не только у нас, но и у многих других животных. У животных без мозгов (медузы, черви) все равно есть нервная система.

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

    Теперь задумаемся. А из чего состоит нервная система или мозг? Ответ очевиден - из нейронов. Наш мозг, как и любая биологическая нейронная сеть, состоит из совокупности нейронов. Строение биологического нейрона показано на рисунке ниже.

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

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

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

    Искусственный нейрон
    (Artificial neuron ) - упрощенная модель биологического нейрона.

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

    Опять упрощаем: убираем ненужные химические и биологические компоненты, а также уменьшаем количество нейронов.

    Таким образом логично приходим к другому определению ИНС.

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

    Почему нейросети работают?

    Рассмотрим на ознакомительном уровне один важный вопрос. Почему нейросети работают (то есть могут решать задачи)? Ответ на этот вопрос не самый очевидный.

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

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

    Но тогда ведь нет никакого индивидуально преобразования! А значит ответ сети всегда один и тот же. На самом деле, вся суть кроется в так называемых синапсах.

    Синапс (Synapsis ) - место стыка выхода одного нейрона и входа другого, в котором происходит усиление/ослабление сигнала.

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

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

    У каждого биологического нейрона тысячи входов. Каждый из них соединен с выходами других нейронов. Значит, имеем тысячи синапсов на каждый нейрон. Помножим это число на миллиарды нейронов в биологических нейросетях (в головном мозге 85 миллиардов нейронов!). Получаем огромное число синапсов.

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

    Именно так и происходит преобразование множества входных сигналов в верное решение на выходе.

    Уровень сложности нейросетей

    Выше я уже говорил, что мы уменьшаем количество нейронов для искусственных нейронных сетей (миллиарды нейронов моделировать мы не можем). Насколько сильно мы уменьшаем это количество? Внимание на картинку ниже.

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

    Серый квадрат слева внизу - возможности обычных компьютеров (но не компьютерных реализаций нейронных сетей!). Далее идут два эллипса. Они представляют собой современные программные (а иногда и аппаратные) реализации искусственных нейронных сетей.

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

    Где используются нейросети?

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

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

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

    Проблемы малой/средней сложности, которые точно известно, как решать:

    • решить простое уравнение
    • вывести на экране окно программы
    • распечатать документ на принтере

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

    Проблемы малой/средней сложности, которые частично известно, как решать:

    • простейшее прогнозирование
    • расчет погрешностей
    • приближенное решение уравнений

    Такие задачи можно решать при помощи специальных статистических методов.

    Проблемы высокой сложности, которые непонятно, как решать:

    • распознавание образов
    • распознавание речи
    • сложные прогнозы

    На этом типе задач я остановлюсь подробнее.

    Вот вы идете по улице. Вокруг вас много прохожих. Вы смотрите на них и моментально распознаете лица. Этот процесс не вызывает у вас никаких вопросов. Вы просто очень хорошо натренировались его совершать.

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

    Помимо распознавания лиц существует еще куча других задач, которые просто непонятно, как решать.

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

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

    Эта способность нейросетей и сделала их такими популярными. Нейросети можно обучить играть в игры, узнавать голос, прогнозировать рост/падение цен. Их можно научить всему, что мы делаем бессознательно!

    Преимущества нейронных сетей

    Помимо возможности решать новый класс задач нейросети обладают рядом значительных достоинств.

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

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

    Устойчивость к шумам входных данных

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

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

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

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

    Адаптация к изменениям

    Представьте, что вы математик. Вы решаете уравнения с помощью каких-то компьютерных программ.

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

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

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

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

    Отказоустойчивость

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

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

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

    Сверхвысокое быстродействие

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

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

    Нейронные сети решают задачи быстрее большей части других алгоритмов.

    Недостатки нейронных сетей

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

    Однако это не так. У нейронных сетей есть ряд серьезных недостатков, которые тоже можно вывести из биологических нейронных сетей.

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

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

    Перечислим их.

    Ответ всегда приблизительный

    Начнем с человеческого мозга.

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

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

    Вы этого не замечаете, но на самом деле вы строите что-то типо таблички вероятностей у себя в голове и говорите, что, скорее всего (бессознательно выбрали наиболее вероятный результат), во 2 прямоугольнике написано «но». В случае же первого прямоугольника вы говорите, что, непонятно, что там (вероятности почти равны), но, мне кажется (выбираете случайным образом), что там написана буква «о».

    Такая же проблема есть и у искусственных нейронных сетей. Вы никогда не будете получать точные ответы. Хорошая новость заключается в том, что редко встречаются задачи, в которых надо применять ИНС и одновременно получать точные ответы.

    Нейронные сети не способны давать точные и однозначные ответы.

    Принятие решений в несколько этапов

    Связь с человеческим мозгом тут не сильно прослеживается в силу того, что мозг – супер сложная нейросеть и за счет свой сложности он может преодолеть этот недостаток.

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

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

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

    Нейронные сети не могут решать задачу по шагам.

    Вычислительные задачи

    Этот недостаток искусственных нейронных сетей в какой-то степени является следствием двух предыдущих недостатков.

    Обратите внимание на картинку ниже. Как заставить сеть провести эти преобразования?

    Первая проблема – очередность. Надо каким-то образом, используя только входы сети, указать ей какая часть выражения находится под корнем, а какая часть находится слева от знака равенства. Да и как передать сам знак равенства?

    Предположим, что вы каким-то образом смогли доставить эти данные в сеть

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

    И вишенка на торте – невозможность выдачи точных результатов. Это можно представить себе следующим образом. Вы учите нейросеть:

    – 2 + 3 = ?
    = 983
    – Неправильно! = 5.
    2 + 3 = ?
    = 5
    – Правильно!
    2 + 4 = ?
    = 5
    – Неправильно! = 6.
    2 + 4 = ?
    = 5.5

    И так будет происходить всегда.

    Нейронные сети не способны решать вычислительные задачи.

    Выводы

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