Создана новая методика построения модели надежности газонефтепроводов с помощью объектно-ориентированного языка программирования C# (Си Шарп), в частности, использование библиотеки C # для вычислений нейронных сетей и их применение для решения задач надежности трубопроводного транспорта углеводородов. Для построения нейронной сети была разработана топология, определен механизм обучения и тестирования. В процессе исследования была создана выборка входных данных, построен алгоритм. Предлагается алгоритм построения теоретических моделей надежности с применением аппарата искусственных нейронных сетей. Исследуются новые пути решения задачи классификации, аппроксимации и прогнозирования в области расчета надежности трубопроводного транспорта.
Ключевые слова: нейронные сети, надежность, классификация, аппроксимация, прогнозирование, алгоритм обучения, библиотеки нейронных сетей.
В последнее время наблюдается тенденция возрастания интереса к использованию нейронных сетей для решения различных задач и использования их в разных сферах человеческой жизни. С использованием нейронных сетей открылись возможности использования вычислений в сферах, до этого относящихся лишь к области человеческого интеллекта, возможности создания машин, способность которых учиться и запоминать удивительным образом напоминает мыслительные процессы человека.
Существует широкий набор компьютерных систем, позволяющих строить модели надежности объектов газонефтепроводов. Одновременно с этим существует много разных проблем, для которых сложно найти формальные алгоритмы их решения. Некоторые проблемы не могут быть решены с помощью традиционных методов. Существуют задачи часть из которых вовсе не имеют решения. Именно для таких сложных задач могут быть применены нейронные сети, которые демонстрируют довольно хорошие результаты.
«История нейронных сетей начинается в 1950-х годах, когда была представлена простейшая архитектура нейронных сетей. После первоначальной работы в этой области идея нейронных сетей стала довольно популярной. С течением времени было обнаружено, что нейронные сети того времени очень ограничены с точки зрения количества задач, к которым они могут быть применены. В 1970-х годах была представлена идея многослойных нейронных сетей с алгоритмом обучения обратного распространения. Много разных исследователей изучили структуру нейронных сетей, и это привело к широкому кругу различных нейронных архитектур, которые были применены к большому кругу различных проблем» [1]. На данный момент нейронные сети могут применяться для таких задач, как классификация, распознавание, аппроксимация, прогнозирование и многие другие различные задачи.
«По сравнению с традиционными технологиями нейронные сети обладают следующими достоинствами:
- Универсальность. Нейронные сети не зависят от свойств входных данных, для них не существует требования к определенному типу распределения исходных данных, либо требования к линейности целевых функций.
- Простота. Использование нейронных сетей не требует специальной подготовки, для практического применения нет необходимости глубоко вникать во внутренние механизмы работы сети, в отличие от статистических методов, требующих фундаментальных знаний из области теории вероятностей и математической статистики.
Не существует проблемы «проклятия размерности». Они способны моделировать зависимости в случае большого числа переменных, ускоряют процесс нахождения зависимости за счет одновременной обработки данных всеми нейронами» [2].
В основе задач исследования применения искусственных нейронных сетей для построения моделей надежности систем трубопроводного транспорта являлась реализация различных видов искусственных нейронных сетей для решения нескольких задач надежности трубопроводного транспорта, а именно — классификации моделей надежности газонефтепроводов по виду гистограммы (сравнение с типовыми графиками), аппроксимации функции с использованием методов наименьших квадратов, и прогнозирование вероятности безотказной работы газонефтепроводов.
Предложенный алгоритм реализации нейронной сети состоит из следующих этапов:
- Подготовка входных данных.
- Определение архитектуры сети.
- Обучение нейронной сети;
- Проверка корректности работы искусственной нейронной сети.
Было принято решение остановиться на модели многослойного персептрона и алгоритме обратного распространения.
Отличительными признаками многослойного персептрона нейронной сети модели надежности газонефтепровода являются:
- Каждый нейрон сети имеет нелинейную функцию активации.
- Помимо входного и выходного слоя, он имеет еще несколько слоев, называемых скрытыми.
- Многослойный персептрон отличается высокой степенью связанности (по принципу «каждый с каждым»).
В работе использован самый известный вариант алгоритма обучения нейронной сети модели расчета надежности газонефтепроводов — алгоритм обратного распространения. С помощью алгоритма обратного распространения вычисляется вектор градиента поверхности ошибок. Этот вектор указывает направление кратчайшего спуска по поверхности из данной точки, поэтому если мы «немного» продвинемся по нему, ошибка уменьшится. Последовательность таких шагов (замедляющаяся по мере приближения к дну), в конце концов, приведет к минимуму того или иного типа.
Предлагается методика построения теоретической модели надежности в библиотеке C # (Си Шарп) для вычислений нейронной сети на базе статистического распределения вероятностей наработок до отказа, которая состоит из нескольких этапов.
Первый этап: Выдвижение гипотезы о теоретическом законе распределения времени безотказной работы объекта газонефтепроводов на основе выбора закона распределения по виду гистограммы, в основу которой положена обработка статистических данных и сравнение её с типовыми графиками, путем классификации (однослойная нейронная сеть, обученная с помощью алгоритмов обучения персептрона) видов распределений для характерных отказов оборудования газонефтепроводов.
Второй этап: Построение теоретической модели надежности объекта исследования на основе статистических оценок показателей надежности объекта. «Известно, что функция распределения времени безотказной работы линейной части трубопроводов хорошо описывается двумя законами распределения: экспоненциальным и Вейбулла-Гнеденко» [3]. Используя многослойную нейронную сеть, которая обучена с помощью алгоритма обучения обратного распространения, аппроксимируем статистические (эмпирические) дискретные данные экспоненциальной кривой, теоретические значения которой в заданных точках максимально совпадали бы со статистическими данными.
Третий этап: Прогнозирование вероятности безотказной работы газонефтепроводов на заданное время с использованием многослойной нейронной сеть, обученной с помощью алгоритма обучения обратного распространения.
Используемая библиотека объектно-ориентированного языка реализует несколько популярных архитектур нейронных сетей и их алгоритмы обучения. Проектируя библиотеку, одной из главных идей было сделать ее гибкой, многоразовой, простой в использовании и понимании. Вместо объединения нескольких объектов нейронной сети в один класс и создания беспорядка, что приводит к потере гибкости и ясности в коде и дизайне, все объекты были разделены на отдельные классы, что облегчает их понимание и повторное использование. Некоторые библиотеки нейронных сетей, как правило, объединяют сущность нейронной сети вместе с алгоритмом обучения, что затрудняет разработку другого алгоритма обучения, который можно применять к той же архитектуре нейронной сети. Некоторые библиотеки и приложения не извлекают такие объекты, как нейроны, слои нейронов или сеть слоев, но реализуют всю архитектуру нейронной сети в одном классе. В некоторых случаях можно утверждать, какие лучше, потому что могут быть такие необычные архитектуры нейронных сетей, где трудно разделить сеть на слои и нейроны.
Библиотека содержит шесть основных сущностей:
- Neuron — базовый абстрактный класс для всех нейронов, который инкапсулирует такие общие сущности, как вес нейрона, выходное значение и входное значение. Другие нейронные классы наследуются от базового класса, расширяя его дополнительными свойствами и специализируя его.
- Layer — представляет коллекцию нейронов. Это базовый абстрактный класс, который инкапсулирует общую функциональность для всех слоев нейрона.
- Network — представляет нейронную сеть, которая представляет собой совокупность слоев нейронов. Это базовый абстрактный класс, который обеспечивает общую функциональность общей нейронной сети. Для реализации конкретной архитектуры нейронной сети требуется наследовать класс, расширяя его конкретными функциями любой архитектуры нейронной сети.
- IActivationFunction — интерфейс функции активации. Функции активации используются в нейронах активации — тип нейрона, где вычисляется взвешенная сумма его входов, а затем значение передается в качестве входных данных для функции активации, а выходное значение становится выходным значением нейрона.
- IUnsupervisedLearning — интерфейс для неконтролируемых алгоритмов обучения — тип алгоритмов обучения, когда система снабжается входными данными выборки только на этапе обучения, но не желаемыми выходами. Цель системы — организовать себя таким образом, чтобы найти корреляцию и сходство между образцами данных.
- ISupervisedLearning — интерфейс для контролируемых алгоритмов обучения — тип алгоритмов обучения, где система снабжается входными данными выборки с желаемыми выходными значениями на этапе обучения. Целью системы является обобщение данных обучения и обучение предоставлению правильного выходного значения, когда оно представлено только с входным значением.
Библиотека предоставляет архитектуру нейронной сети, в которой каждый нейрон вычисляет свой выход как выход функции активации, а аргумент представляет собой взвешенную сумму своих входов, объединенную с пороговым значением. Сеть может состоять из одного слоя или нескольких слоев. Обученная с помощью контролируемых алгоритмов обучения, сеть позволяет решать такие задачи, как аппроксимация, прогнозирование, классификация и распознавание.
Различные обучающие алгоритмы используются для обучения разных нейронных сетей и используются для решения разных задач:
- Perceptron Learning — алгоритм может рассматриваться как первый алгоритм обучения нейронной сети, и его история начинается с 1957 года. Алгоритм может использоваться с однослойной сетью активации, где каждый нейрон имеет пороговую функцию активации. Диапазон его применения довольно мал и ограничен классификацией линейно разделимых данных.
- Delta Rule Learning — алгоритм является следующим шагом после алгоритма обучения персептрона. Он использует производную функции активации и может быть применим только к однослойным сетям активации, где каждый нейрон имеет функцию непрерывной активации вместо пороговой функции активации. Наиболее популярной функцией непрерывной активации является однополярная и биполярная сигмовидная функция. Поскольку алгоритм может применяться только к однослойным сетям, он ограничен в основном некоторыми задачами классификации и распознавания.
- Back Propagation Learning — это один из самых популярных и известных алгоритмов обучения многослойной нейронной сети. Первоначально он был описан в 1974 году, и с того времени он широко изучался и применялся для решения широкого круга различных задач. Поскольку алгоритм способен обучать многослойные нейронные сети, диапазон его применения очень велик и включает в себя такие задачи, как аппроксимация, прогнозирование, распознавание объектов.
На примере классификации гистограмм моделей надежности газонефтепроводов предлагается использование однослойной сети активации с пороговой функцией активации и использование алгоритма обучения персептрона. Количество нейронов в сети равно количеству различных классов данных, и каждый нейрон обучается классифицировать только определенные классы. При передаче образца данных в обученную сеть, один нейрон сети активируется (выводит выходной сигнал, равный 1), а все остальные нейроны деактивируются (выводит выходной сигнал, равный 0). Класс выборки данных определяется номером активированного нейрона. В случае, если активируются несколько нейронов или ни один из них, сеть не может правильно классифицировать представленный образец данных. В случае двухмерных выборок данных сеть визуализируется легко. Несмотря на простоту архитектуры сети, она может использоваться не только для для множества различных задач классификации (распознавания) при исследовании моделей надежности объектов трубопроводного транспорта. Единственным ограничением этой архитектуры является то, что сеть может классифицировать только линейно разделимые данные.
На Рисунке 1 демонстрируется использование многослойных нейронных сетей, обученных по алгоритму обратного распространения, который применяется к проблеме аппроксимации функции. На этапе обучения сеть обучается производить правильное значение функции для представленного значения переменной. После завершения обучения сеть используется для расчета значения функции для других значений, которые не были доступны для сети во время процедуры обучения.
Рис. 1. Вид диалогового окна программы аппроксимации функций
Функция произвольных измерений может быть аппроксимирована многоуровневой нейронной сетью. При этом количество слоев и нейронов сети и такие параметры, как альфа-значение сигмоиды, могут очень сильно повлиять на скорость обучения. Неправильные настройки сети могут привести к невозможности чему-либо научиться, а также потребуется большее количество экспериментов.
«Согласно универсальной теореме аппроксимации — нейронная сеть с одним скрытым слоем может аппроксимировать любую непрерывную функцию многих переменных с любой точностью. Главное, чтобы в этой сети было достаточное количество нейронов. И еще важно удачно подобрать начальные значения весов нейронов. Чем удачнее будут подобраны веса, тем быстрее нейронная сеть будет сходиться к исходной функции. Обучение сети в программе осуществляется методом стохастического градиентного спуска, который реализован в виде алгоритма обратного распространения ошибки. В нейронах скрытого слоя применяется активационная функция — это может быть и выпрямитель «ReLU», сигмоид и гиперболический тангенс. Так же можно вообще убрать оттуда функцию активации «Empty», и там останется один сумматор» [4].
Целью прогнозирования эксплуатационной надежности трубопроводного транспорта является уменьшение риска при принятии решений. В большинстве случаев прогноз получается ошибочным, причем ошибка зависит от прогнозирующей системы и методов прогнозирования. Для уменьшения ошибки следует увеличивать количество данных, предоставляемых для прогноза. При некотором уровне ошибки возможно добиться минимального уровня информации для прогноза. Основной проблемой прогнозирования является выявление неточности прогноза. Обычно, решение, принимаемое на основании прогноза должно учитывать ошибку, о которой сообщает система прогнозирования. Таким образом, система прогнозирования должна обеспечить определение прогноза и ошибки прогнозирования.
В нефтегазовой отрасли наиболее распространенными задачами прогнозирования, на сегодняшний день являются задачи прогнозирования надежности систем трубопроводного транспорта углеводородов. Большинство задач прогнозирования можно свести к предсказанию временного ряда. Предсказание временного ряда сводится к типовой задаче нейроанализа — аппроксимации функции многих переменных по заданному набору примеров — с помощью процедуры погружения ряда в многомерное пространство. Используемые в настоящее время нейросетевые методы можно использовать для восстановления неизвестной функции по набору примеров, заданных историей данного временного ряда.
Прогнозирование на нейронных сетях обладает рядом недостатков. Как правило необходимо около 100 наблюдений для создания приемлемой модели. Это достаточно большое число данных и существует много случаев, когда такое количество исторических данных недоступно. Однако, необходимо отметить, что возможно построение удовлетворительной модели на нейронных сетях даже в условиях нехватки данных. Модель может уточняться по мере того, как свежие данные становится доступными.
Другой недостаток нейронных моделей — значительные затраты по времени и другим ресурсам для построения удовлетворительной модели, известно, что обучение сети может занимать довольно много времени. Однако, несмотря на перечисленные недостатки, модель обладает рядом достоинств. Существует удобный способ модифицировать модель по мере того как появляются новые наблюдения.
Проблема прогнозирования временных рядов является очень важной и очень популярной проблемой, и многие исследователи работают в этой области, пытаясь решить множество различных алгоритмов и методов. Легко объяснить популярность проблемы, взглянув на области нефтегазовой отрасли, где она может быть применена. На этапе обучения определенное количество предыдущих значений временного ряда представляется сети, и сеть обучается прогнозировать следующее значение временного ряда. Чем больше у вас обучающих образцов, тем лучше модели прогнозирования. Также очень важным параметром является размер окна — сколько значений из истории используется для предсказания будущего. Чем больше размер окна у вас есть, тем лучше модель, которую возможно получить.
Литература:
1. Нейронные сети на С#: [Электронный ресурс] Режим доступа: https://www.codeproject.com/Articles/16447/Neural-Networks-on-C.
2. Ишембитова Э. А., Использование искусственных нейронных сетей для прогнозирования банкротства предприятий. Международный научный Журнал «Молодой ученый» № 14 (118), 2016, 407 с.
3. Дейнеко С. В., Обеспечение надежности систем трубопроводного транспорта нефти и газа. — М.: Издательство «Техника», ТУМА ГРУПП, 2011, 176 с.
4. Новости информационных технологий. Аппроксимация математических функций нейронной сетью: [Электронный ресурс] Режим доступа: http://www.pvsm.ru/algoritmy/260044.