Применение нейронных сетей для определения степени загрязнения атмосферного воздуха - Студенческий научный форум

XI Международная студенческая научная конференция Студенческий научный форум - 2019

Применение нейронных сетей для определения степени загрязнения атмосферного воздуха

Фадеев М.А. 1, Исаева Л.Н. 1
1МТУСИ
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

ВВЕДЕНИЕ

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

Сегодня уже точно известно из чего состоит воздух: 20% кислорода, 78% азота и оставшиеся 2% занимают пары воды, углекислый газ, инертные газы (аргон, неон, ксенон и т.п) и другие примеси в микроскопических количествах. Но такой состав имеет экологически чистый воздух в лесах и полях. Состав воздуха в городских условиях сильно отличается от состава чистого воздуха. Городской воздух содержит меньше кислорода и больше углекислого газа, также он содержит огромное количество вредных химических веществ и испарений[6].

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

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

РЕАЛИЗАЦИЯ НЕЙРОННОЙ СЕТИ

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

Для разработки и реализации использовался язык программирования Python[2] и необходимые библиотеки.

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

SO2 – оксид серы;

NO2 – оксид азота;

PM10 – взвешенные частицы диаметром 10 микрон;

PM2.5 – взвешенные частицы диаметром 2.5 микрона.

На рисунке 1 представлен набор данных о концентрации веществ в атмосферном воздухе, взятый с ресурса «Kaggle» [1], состоит из 998 наблюдений. Он содержит семь столбцов, в которых первые четыре – это загрязнители, а 5-7 – это ожидаемые результаты.

Рисунок 1. Пример входных данных

Входные данные, которые разделены на две подвыборки: 70% для обучения и 30% для тестированияпредставлены на рисунке 2. Данные хранятся в файле «AQdataset» с расширением «csv» и их считывание происходит посредством использования библиотеки «pandas»[4].

Рисунок 2. Считывание и разбиение данных.

Для обучения в переменную «X»заносятся данные о концентрации вещества в воздухе, а в переменную «Y»- ожидаемые результаты.

Для реализации нейронной сети был создан класс «NeuralNetwork», в котором создаётся входной, выходной и три скрытых слоя. Таким образом получаем трёхслойный персептрон. На рисунке 3 представлены первый, входной, слой содержит 4 нейрона, второй, скрытый, слой –12 нейронов, третий, скрытый, слой – 9, четвёртый, скрытый, слой – 6 и пятый, выходной, слой содержит – 3 нейрона.

Рисунок 3. Создание слоёв.

Далее происходит процесс обучения нейронной сети, представленный на рисунке 4, в котором будут изменены значения весов, которые ранее были заданы случайными значениями.

Рисунок 4. Реализация нейронной сети.

Выходные данные разделяются на две части: полученное и ожидаемое значения и, в случае, если значения не совпадают, то значения весов изменяются и процесс повторяется. Данный процесс, представленный на рисунке 5, проходит 10000 итераций.

Рисунок 5. Обучение нейронной сети.

На данном этапе происходит завершение процесса разработки и обучения нейронной сети, и переход к процессу тестирования.

ТЕСТИРОВАНИЕ НЕЙРОННОЙ СЕТИ

В процессе тестирования на вход подаются данные из тестовой выборки, а на выходе выводит два значения: полученное и ожидаемое. В зависимости от значения, для полученного и ожидаемого, выводится одно из трёх, представленных на рисунках 6,7, сообщений: «Сильное загрязнение АВ», «Умеренное загрязнение АВ», «Допустимое загрязнение АВ».

Рисунок 6. Сообщения для полученного значения

Рисунок 7. Сообщения для ожидаемых значений.

На рисунке 8 представлен процесс сравнения значений и, если они совпадают выводит сообщение «Правильно!» и, в любом случае, переходит к следующей итерации. Процесс длится пока не пройдет всю тренировочную выборку.

Рисунок 8. Тестирование нейросети.

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

Рисунок 9. Результат тестирования

ВЫВОДЫ

В статье проанализирована проблема загрязнения атмосферного воздуха.

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

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

СПИСОК ИСТОЧНИКОВ И ЛИТЕРАТУРЫ

1. «Kaggle» AirQualityData [Электронныйресурс]. – Режим доступа:https://www.kaggle.com/shrutibhargava94/india-air-quality-data

2. Высокоуровневый язык программирования Python [Электронный ресурс]. – Режим доступа: https://www.python.org/(дата обращения: 5.12.2018)

3. NumPy (NumericPython). Открытая библиотека для работы большими массивами и матрицами [Электронный ресурс]. – Режим доступа:http://www.numpy.org/

4. Pandas. Открытая библиотека для анализа и обработки данных. [Электронный ресурс]. – Режим доступа:http://pandas.pydata.org/

5. Л.И. Воронова, В.И. Воронов. MachineLearning: Регрессионные методы интеллектуального анализа данных: учебное пособие – МТУСИ, 2018 – 81 с.

6. Федеральный закон от 10.01.2002 N 7-ФЗ (ред. от 31.12.2017) "Об охране окружающей среды"

Просмотров работы: 103