ПОД конспект (1184369), страница 12
Текст из файла (страница 12)
Основные проблемы, препятствующие развитию потоковых машин:1. Не решена проблема создания активной памяти большого объема, допускающей одновременнуюактивизацию большого количества операций.2. Создание широкополосных распределительных и селекторных сетей потоковых машин и системуправления коммуникационной сетью является сложной задачей.3. Обработка векторных регулярных структур через механизмы потока данных менее эффективна, чемтрадиционные решения.4. Языки программирования для потоковых машин существуют, в основном, в виде графических языковмашинного уровня.
Языки типа SISAL, ориентируемые на описания потоковых алгоритмов, достаточносложны для программистов.47. Нейронные сети.Одно из наиболее перспективных направлений разработки принципиально новых архитектурвычислительных систем тесно связано с созданием компьютеров нового поколения на основе принциповобработки информации, заложенных в искусственных нейронных сетях (НС).
Первые практические работыпо искусственным нейросетям и нейрокомпьютерам начались еще в 40-50-е годы. Под нейронной сетьюобычно понимают совокупность элементарных преобразователей информации, называемых «нейронами»,которые определенным образом соединены друг с другом каналами обмена информации – «синаптическимисвязями». Нейрон, по сути, представляет собой элементарный процессор, характеризующийся входным ивыходным состоянием, передаточной функцией (функция активации) и локальной памятью. Состояниянейронов изменяются в процессе функционирования и составляют кратковременную память нейросети.Каждый нейрон вычисляет взвешенную сумму пришедших к нему по синапсам сигналов и производит надней нелинейное преобразование.
При пересылке по синапсам сигналы умножаются на некоторый весовойкоэффициент. В распределении весовых коэффициентов заключается информация, хранящаяся вассоциативной памяти НС. Основным элементом проектирования сети является ее обучение. При обучениии переобучении НС ее весовые коэффициенты изменяются. Однако они остаются постоянными прифункционировании нейросети, формируя долговременную память.
НС может состоять из одного слоя, издвух, из трех и большего числа слоев, однако, как правило, для решения практических задач более трехслоев в НС не требуется. Число входов НС определяет размерность гиперпространства, в котором входныесигналы могут быть представлены точками или гиперобластями из близко расположенных точек.Количество нейронов в слое сети определяет число гиперплоскостей в гиперпространстве. Вычислениевзвешенных сумм и выполнение нелинейного преобразования позволяют определить, с какой стороны оттой или иной гиперплоскости находится точка входного сигнала в гиперпространстве.
Искусственныенейронные сети отличаются удивительными свойствами. Они не требуют детализированной разработкипрограммного обеспечения и открывают возможности решения задач, для которых отсутствуюттеоретические модели или эвристические правила, определяющие алгоритм решения. Такие сети обладаютспособностью адаптироваться к изменениям условий функционирования, в том числе к возникновениюзаранее непредусмотренных факторов. По своей природе НС являются системами с очень высоким уровнемпараллелизма.В нейрокомпьютерах используются принципы обработки информации, осуществляемые в реальныхнейронных сетях.
Эти принципиально новые вычислительные средства с нетрадиционной архитектуройпозволяют выполнять высокопроизводительную обработку информационных массивов большойразмерности. В отличие от традиционных вычислительных систем, нейросетевые вычислители, аналогичнонейронным сетям, дают возможность с большей скоростью обрабатывать информационные потокидискретных и непрерывных сигналов, содержат простые вычислительные элементы и с высокой степеньюнадежности позволяют решать информационные задачи обработки данных, обеспечивая при этом режимсамоперестройки вычислительной среды в зависимости от полученных решений.Вообще говоря, под термином «нейрокомпьютер» в настоящее время подразумевается довольно широкийкласс вычислителей.
Это происходит по той простой причине, что формально нейрокомпьютером можносчитать любую аппаратную реализацию нейросетевого алгоритма, от простой модели биологическогонейрона до системы распознавания символов или движущихся целей. Нейрокомпьютеры не являются27компьютерами в общепринятом смысле этого слова. В настоящее время технология еще не достигла тогоуровня развития, при котором можно было бы говорить о нейрокомпьютере общего назначения (которыйявлялся бы одновременно искусственным интеллектом).
Системы с фиксированными значениями весовыхкоэффициентов – вообще самые узкоспециализированные из нейросетевого семейства. Обучающиеся сетиболее адаптированы к разнообразию решаемых задач. Обучающиеся сети более гибки и способны крешению разнообразных задач. Таким образом, построение нейрокомпьютера – это каждый раз широчайшееполе для исследовательской деятельности в области аппаратной реализации практически всех элементовНС.В начале 21 века, в отличие от 40-50-х годов прошлого столетия, существует объективная практическаяпотребность научиться создавать нейрокомпьютеры, т.е. необходимо аппаратно реализовать довольно многопараллельно действующих нейронов, с миллионами фиксированных или параллельно адаптивномодифицируемых связей-синапсов, с несколькими полносвязными слоями нейронов.В то же время физические возможности технологии интегральной электроники не безграничны.Геометрические размеры транзисторов больше нельзя физически уменьшать: при технологическидостижимых размерах порядка 1 мкм и меньше проявляются физические явления, незаметные при большихразмерах активных элементов – начинают сильно сказываться квантовые размерные эффекты.
Транзисторыперестают работать как транзисторы.Для аппаратной реализации НС необходим новый носитель информации. Таким новым носителеминформации может быть свет, который позволит резко, на несколько порядков, повыситьпроизводительность вычислений.
Единственной технологией аппаратной реализации НС, способной вбудущем прийти на смену оптике и оптоэлектронике, является нанотехнология, способная обеспечить нетолько физически предельно возможную степень интеграции субмолекулярных квантовых элементов сфизически предельно возможным быстродействием, но и столь необходимую для аппаратной реализацииНС трехмерную архитектуру. См. также Вопрос 48.48. Области применения нейронных сетей.Возьмем классическую задачу распознавания образов: определение принадлежности точки одному из двухклассов. Такая задача естественным образом решается с помощью одного нейрона. Он позволит разделитьгиперпространство на две непересекающиеся и невложенные гиперобласти.
Входные сигналы в задачах,решаемых с помощью нейросетей, образуют в гиперпространстве сильно вложенные или пересекающиесяобласти, разделить которые с помощью одного нейрона невозможно. Это можно сделать, только проведянелинейную гиперповерхность между областями. Ее можно описать с помощью полинома n-го порядка.Однако степенная функция слишком медленно считается и поэтому очень неудобна для вычислительнойтехники. Альтернативным вариантом является аппроксимация гиперповерхности линейнымигиперплоскостями.
Понятно, что при этом точность аппроксимации зависит от числа используемыхгиперплоскостей, которое, в свою очередь, зависит от числа нейронов в сети. Отсюда возникает потребностьв аппаратной реализации как можно большего числа нейронов в сети. Количество нейронов в одном слоесети определяет ее разрешающую способность. Однослойная НС не может разделить линейно зависимыеобразы. Поэтому важно уметь аппаратно реализовывать многослойные НС.Длительное время считалось, что нейрокомпьютеры эффективны для решения так называемыхнеформализуемых и плохо формализуемых задач, связанных с необходимостью включения в алгоритмрешения задачи процесса обучения на реальном экспериментальном материале.
В первую очередь к такимзадачам относилась задача аппроксимации частного вида функций, принимающих дискретное множествозначений, т. е. задача распознавания образов.В настоящее время к этому классу задач добавляется класс задач, иногда не требующий обучения наэкспериментальном материале, но хорошо представимый в нейросетевом логическом базисе. К нимотносятся задачи с ярко выраженным естественным параллелизмом обработки сигналов, обработкаизображений и др. Подтверждением точки зрения, что в будущем нейрокомпьютеры будут болееэффективными, чем прочие архитектуры, может, в частности, служить резкое расширение в последние годыкласса общематематических задач, решаемых в нейросетевом логическом базисе.
К ним, кромеперечисленных выше, можно отнести задачи решения линейных и нелинейных алгебраических уравнений инеравенств большой размерности; систем нелинейных дифференциальных уравнений; уравнений в частныхпроизводных; задач оптимизации и других задач.49. Модели программирования для систем с разделяемой, распределенной памятью.Программирование в модели общей памяти. (POSIX threads, OpenMP). Для SMP-систем существуютсравнительно эффективные средства автоматического распараллеливания.
Подробнее см. Вопросы .Программирование в модели распределенной памяти. Программирование в рамках модели передачисообщений (MPI, PVM, BSPlib).Эта модель схожа с парадигмой последовательного программирования. Программист имел упрощеннуюточку зрения на целевую машину, которая имеет единственный процессор и адресуется к определенномуобъему памяти. Поэтому он писал единственную программу, чтобы выполнять ее на этом процессоре.
В28сущности, парадигма может быть обеспечена разными путями, возможно, в системе разделения времени,где другие процессы разделяют процессор и память, но программисту нет необходимости вдаваться такиедетали реализации, если он уверен, что программа или разработанный алгоритм в принципе могут бытьперенесены на любую логическую архитектуру -- это сущность парадигмы.Парадигма передачи сообщений является развитием этой идеи применительно к целям параллельногопрограммирования. Некоторые положения последовательной парадигмы сохраняются.
Так, программистпредставляет несколько процессоров, каждый со своим адресным пространством, и составляет программу,чтобы запустить ее на каждом процессоре. Параллельное программирование по определению требуетвзаимодействия между процессорами для решения задачи, используя некоторую связь. Основное положениепарадигмы передачи сообщений - процессы общаются путем передачи друг другу сообщений. Модельпередачи сообщений не вводит понятие разделяемого адресного пространства или непосредственногодоступа одного процессора к памяти другого - все не относящееся к передаче сообщений, находится внепарадигмы. Поскольку программы, выполняющиеся на отдельных процессорах, связаны, операции передачисообщений представляют собой вызовы подпрограмм.Для тех, кто имеет опыт работы с сетями, системами клиент-сервер или объектно-ориентированнымипрограммами, парадигма передачи сообщений не преподнесет ничего нового.