Символьная обработка. Преимущества использования памяти
Несмотря на очевидные трудности с организацией параллельной работы, использование памяти даёт возможности применения особого способа обработки данных – символьной обработки. При обычном численном способе решения задачи вычисления выполняются в два этапа:
1) анализ задачи: разбор задачи до атомарных единиц данных, непосредственно пригодных для обработки, и элементарных операторов;
2) синтез решения: выполнение операций и представление результата в нужной форме.
Символьная обработка предполагает выбор результата на основе анализа символьных данных без их разбора и проведения вычислений. Это довольно естественный путь решения задач, широко применяемый в живой природе. Человек использует содержимое своей памяти, а также содержимое других доступных ему источников информации для принятия решений, которые, при попытке найти их численным способом, заняли бы существенное время. Символьная обработка полезна при нарастании объёма требуемой для принятия решения информации, позволяя расширить круг эффективно решаемых системой задач. На символьном способе обработки, например, основаны механизмы кэширования, при которых результаты прошлых вычислений запоминаются на какое-то время в памяти с тем, чтобы, при повторном появлении тех же значений аргументов, не тратить время на анализ задачи и синтез результата.
Пример: рассмотрим эффективность применения комбинированной (с применением символьной) обработки при вычислении функции многих аргументов. Допустим, самый неблагоприятный случай – когда все комбинации значений аргументов в потоке данных равновероятны. Для большинства реальных задач это далеко не так – и поэтому результаты данной оценки будут намного лучше. Предположим, что поиск элементов в памяти при символьной обработке на порядок (в 10 раз) выше скорости вычисления результата. Введём в систему дополнительную память, хранящую некоторую долю результатов ( ). Таким образом, среднее время выполнения операции по вычислению функции многих аргументов будет равно
,
где – время вычисления результата.
Так, для решения задачи, при , потребуется в среднем .
Данный способ обработки требует дополнительных затрат оборудования. Но, в условиях жёстких временных ограничений, он может стать единственно возможным способом решения задачи.
Другой пример архитектуры – нейросетевая архитектура. Допустим, у нас есть функция . Как получить при ? Очень просто: два умножается на три, затем прибавляется единица – и полученный результат делится на два. Получается . Эта последовательность действий и является простейшей программой.
Однако есть и другой способ решить ту же задачу. Можно построить график этой функции, а затем, уже по графику, найти решение. Хотя этот способ и кажется «не математическим», но его достоинства сразу становятся очевидными, когда есть только график функции, но не сама функция. Например, может быть известно изображение буквы. Очевидно, что поиск функции, описывающей эту букву, будет очень трудоёмким.
Если продолжить эту аналогию, то процесс обучения нейросети является, своего рода, построением графика. То есть, мы сообщаем множество координат . По этим координатам строятся точки, после чего ближайшие точки соединяются прямыми линиями. Таким образом, получается график, с помощью которого по любому заданному x можно выяснить значение y. При этом, никаких вычислений не потребуется, результат будет найден на графике!
Правда, здесь возникает одна сложность. Через заданные точки можно провести бесконечное число кривых. Следовательно, потом, пытаясь определить y по x, мы получим бесконечно много вариантов ответа. Но эту проблему можно решить: во-первых, значения y будут близки, во-вторых, существует способ минимизировать ошибку.
Это главное достоинство нейросетевой архитектуры. Для обработки в обычном компьютере, всякую задачу нужно формализовать (изображение буквы превратить в функцию). При этом если возникает хотя бы небольшая ошибка в начальных данных, или хотя бы одно из выражений будет повреждено, неверным окажется и конечный результат. В рассмотренном примере ( ), если первая двойка из-за каких-то неполадок превратится в 4, в итоге мы получим при . А для графика потеря части данных не играет решающей роли! Если нарисовано изображение буквы, то всегда можно восстановить утраченную часть графика, продолжив оставшиеся линии.
Do'stlaringiz bilan baham: |