Основы методов искусственного интеллекта. Учебно-методическое пособие
.pdfВ этом примере мы сбрасываем окружение и инициализируем переменную done значением False. Затем мы вводим цикл, который выполняется до тех пор, пока эпизод не будет завершен. На каждой итерации цикла мы используем текущее состояние для прогнозирования с помощью обученной нейронной сети ивыбираем действие на основе прогнозируемого выхода. Затем мы выполняем выбранное действие, наблюдаем за следующим состоянием и вознаграждением и обновляем переменную состояния. Мы также вызываем метод рендеринга среды, чтобы визуализировать состояние среды.
NDP — это мощный оптимизационный фреймворк, который можно использовать для решения широкого круга оптимизационных задач. Приведенный пример кода демонстрирует, как реализовать NDP в Python с помощью библиотеки PyTorch.
Вопросыдлясамоконтроля
1.Что такое нейродинамическое программирование?
2.Опишите алгоритм NDP.
3.Приведите примеры NDP.
4.Как можно реализовать NDP с использованием PyTorch?
5.Для какого типа задач используется алгоритм NDP?
Глава9.ЭТАПЫ РЕШЕНИЯ ЗАДАЧ ПРИ ПОМОЩИ НЕЙРОННЫХ СЕТЕЙ
Процесс решения задач с помощью нейронных сетей можно разделить на несколько этапов. Ниже перечислены основные из них.
1. Определение проблемы.
Этап включает в себя определение проблемы, которую необходимо решить с помощью нейронных сетей. Это подразумевает определение типа проблемы, входных данных, желаемого результата, а также любых ограничений или требований, которые необходимо учитывать.
2. Сбор и предварительная обработка данных.
Этап включает в себя сбор и предварительную обработку данных, которые будут использоваться для обучения и тестирования нейронной сети. Это может включать очистку и форматирование данных, нормализацию или масштабирование данных, а также разделение данных на обучающий и тестовый наборы.
3. Проектирование архитектуры сети.
Этап включает в себя проектирование архитектуры нейронной сети, которая будет использоваться для решения проблемы. Сюда входит выбор типа сети, определение количества
иразмера слоев, выбор функций активации и алгоритмов оптимизации.
4.Обучение модели.
Этап включает в себя обучение нейронной сети с использованием обучающих данных. Сюда входит установка гиперпараметров, запуск алгоритма обучения и оценка производительности модели на обучающем множестве.
5. Оценка модели.
На этом этапе оценивается производительность обученной модели на тестовом множестве. Это может включать расчет таких показателей, как точность, прецизионность, отзыв
иF1 score.
6.Оптимизация модели.
Этапвключаетвсебяоптимизациюмоделинейроннойсетидляулучшенияееработы.Этоможет включать в себя точную настройку гиперпараметров, корректировку архитектуры сети или использование таких методов, как регуляризация, для предотвращения чрезмерной подгонки.
7. Развертывание.
Этап включает в себя развертывание обученной нейросетевой модели в реальном приложении. Это подразумевает интеграцию модели в существующую систему или создание новой системы на основе модели.
51
В целом решение проблем с помощью нейронных сетей включает в себя сочетание анализа данных, разработки алгоритмов и методов оптимизации, что требует глубокого понимания концепций машинного обучения и сильной технической подготовки в области программирования и науки о данных.
Вопросыдлясамоконтроля
1.Перечислите этапы решения задач с использованием нейронных сетей.
2.Что включает в себя этап «Определение проблемы»?
3.Что включает в себя этап «Сбор и предварительная обработка данных»?
4.Что включает в себя этап «Проектирование архитектуры сети»?
5.Что включает в себя этап «Обучение модели»?
6.Что включает в себя этап «Оценка модели»?
7.Что включает в себя этап «Оптимизация модели»?
8.Что включает в себя этап «Развертывание»?
Глава10.ПРИМЕНЕНИЕИСКУССТВЕННОГОИНТЕЛЛЕКТА В СТРОИТЕЛЬСТВЕ
Искусственный интеллект способен произвести революцию в строительной отрасли за счет повышения эффективности строительных процессов, снижения затрат иповышения безопасности. Вот несколько общих примеров того, как ИИ применяется в строительстве.
• Предиктивная аналитика.
ИИ может анализировать данные с датчиков и других источников для прогнозирования необходимости технического обслуживания оборудования, потенциальных отказов и потребностей в ресурсах, что позволяет улучшить планирование проекта и предотвратить дорогостоящие простои оборудования;
• Распознавание изображений.
Камеры на базе ИИ могут в режиме реального времени выявлять и отмечать угрозы безопасности, например, работников без защитного снаряжения, неправильное использование оборудования или опасные условия труда;
• Виртуальная и дополненная реальность (VR и AR).
Симуляторы VR и AR с поддержкой ИИ могут помочь архитекторам и инженерам визуализировать проекты и выявить потенциальные проблемы до начала строительства. Это может сэкономить время и деньги, позволяя вносить изменения на ранних этапах проектирования.
• Автономные транспортные средства и беспилотники; Самоуправляемые автомобили и беспилотники могут использоваться для транспортиров-
ки материалов и оборудования по строительным площадкам, снижая потребность вчеловеческом труде и повышая эффективность;
• Робототехника.
Роботы сискусственным интеллектом могут помогать ввыполнении таких задач, как кладка кирпича, сварка, снос зданий, сокращая потребность в человеческом труде и повышая безопасность за счет выполнения опасных задач;
• Обработка естественного языка.
Чат-боты и виртуальные помощники на базе ИИ могут использоваться для ответов на вопросы и оказания поддержки рабочим на строительных площадках.
В целом использование ИИ в строительстве способно повысить эффективность, безопасность и рентабельность. Поскольку технологии продолжают развиваться, очевидно, что в будущем появится еще больше инновационных применений ИИ в строительной отрасли.
Рассмотрим примеры того, как искусственный интеллект может быть применен в области строительства:
52
Предиктивная аналитика.
Метод, который использует алгоритмы машинного обучения для анализа данных с датчиков и других источников, чтобы предсказать, когда оборудование может выйти из строя. В строительной отрасли предиктивная аналитика может использоваться для мониторинга состояния оборудования и прогнозирования необходимости технического обслуживания. Для построения прогнозных моделей можно использовать библиотеку scikit-learn в Python.
Пример кода:
import pandas as pd import numpy as np
from sklearn.model _ selection import train _ test _ split from sklearn.linear _ model import LinearRegression from sklearn.metrics import r2 _ score
# Загрузка данных с датчиков
data = pd.read _ csv(‘sensor _ data.csv’)
# Подготовить данные
X = data.drop(columns=[‘maintenance _ required’]) y = data[‘maintenance _ required’]
# Разделение данных на обучающий и тестовый наборы
X _ train, X _ test, y _ train, y _ test = train _ test _ split(X, y, test _ size=0.2)
# Обучить модель
model = LinearRegression() model.fit(X _ train, y _ train)
# Тестирование модели
y _ pred = model.predict(X _ test)
# Оценить модель
r2 = r2 _ score(y _ test, y _ pred) print(‘R-squared score:’, r2)
# Прогнозирование потребности в обслуживании new _ data = np.array([[50, 30, 60]]) prediction = model.predict(new _ data)
if prediction > 0.5:
print(‘Требуется техническое обслуживание’) else:
print(‘Обслуживание не требуется’)
53
Эта программа загружает данные с датчиков, подготавливает их для анализа, разделяет на обучающий и тестовый наборы, обучает линейную регрессионную модель, тестирует модель, а затем предсказывает необходимость технического обслуживания на основе новых данных.
Контроль качества.
Искусственный интеллект можно использовать для анализа изображений и видео для обнаружениядефектоввстроительныхматериалахиизделиях.Например,алгоритмыглубокого обучения можно использовать для выявления трещин, коррозии и других дефектов в бетонных конструкциях. Для построения моделей глубокого обучения можно использовать библи-
отеки TensorFlow и Keras в Python.
Пример кода:
import cv2
import numpy as np import tensorflow as tf
from tensorflow.keras.preprocessing.image import img _ to _ array from tensorflow.keras.models import load _ model
# загрузка детекции дефектов
model = load _ model(‘defect _ detection _ model.h5’)
# обработка изображения
def preprocess _ image(image):
#изменение размера изображения image = cv2.resize(image, (224, 224))
#преобразование изображения в массив image = img _ to _ array(image)
#масштабирование значений пикселей в диапазон от 0 до 1 image = image / 255.0
#добавление дополнительной размерности для батча
image = np.expand _ dims(image, axis=0)
return image
# загрузка изображения
image = cv2.imread(‘sample _ image.jpg’)
# предобработка изображения
processed _ image = preprocess _ image(image)
54
#прогнозирование дефектов на изображении predictions = model.predict(processed _ image)
#определение наличия дефектов на изображении if predictions[0][0] > 0.5:
print(‘Дефект не обнаружен’) else:
print(‘Обнаружен дефект’)
Этот пример демонстрирует, как можно использовать модель глубокого обучения для обнаружения дефектов на изображениях строительных материалов и изделий.
В программе также осуществляется предобработка изображения и определение наличия дефектов на изображении. Конечно, чтобы использовать этот код, нужно обучить модель на достаточном количестве изображений с дефектами и без них.
Оптимизация энергопотребления зданий.
Алгоритмы ИИ можно использовать для оптимизации энергопотребления зданий путем анализа данных с датчиков и прогнозов погоды. Библиотека Python Pandas может использоваться для очистки и анализа данных, а scikit-learn и TensorFlow — для построения прогностических моделей.
Пример кода:
import pandas as pd import numpy as np import tensorflow as tf
from sklearn.preprocessing import MinMaxScaler
#загрузка данных с датчиков и прогнозов погоды df = pd.read _ csv(‘data.csv’)
weather _ forecast = pd.read _ csv(‘weather _ forecast.csv’)
#обработка данных
df[‘date’] = pd.to _ datetime(df[‘date’]) df = df.set _ index(‘date’)
# объединение данных с прогнозами погоды
df = pd.merge(df, weather _ forecast, on=‘date’, how=‘left’)
#удаление пропущенных значений df = df.dropna()
#масштабирование данных
scaler = MinMaxScaler()
df _ scaled = scaler.fit _ transform(df)
55
# разделение данных на обучающую и тестовую выборки train _ size = int(len(df _ scaled) * 0.8)
test _ size = len(df _ scaled) - train _ size
train, test = df _ scaled[0:train _ size,:], df _ scaled[train _ size:len(df _ scaled),:]
# создание нейронной сети
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(64, activation=‘relu’, input _ shape=(train. shape[1],)),
tf.keras.layers.Dense(32, activation=‘relu’), tf.keras.layers.Dense(1)
])
model.compile(optimizer=‘adam’, loss=‘mean _ squared _ error’)
# обучение нс |
|
|
|
model.fit(train[:,:-1], |
train[:,-1], |
epochs=50, |
batch _ size=16, |
verbose=2) |
|
|
|
# оценка качества нс на тестовой выборке
test _ loss = model.evaluate(test[:,:-1], test[:,-1], verbose=0) print(f‘Test loss: {test _ loss}’)
# прогнозирование энергопотребления на следующий день
last _ day = df.index[-1] |
|
|
|
|
|
next _ day = last _ day + pd.DateOffset(days=1) |
|
||||
weather _ forecast _ next _ day |
= |
weather _ forecast.loc[weather _ |
|||
forecast[‘date’] == str(next _ day.date())] |
|
||||
next _ day _ data = |
np.concatenate((df[-1,:-1], |
weather _ forecast _ |
|||
next _ day.values[0,1:]), axis=None) |
|
|
|
||
next _ day _ data _ scaled |
= |
|
scaler.transform(next _ day _ data. |
||
reshape(1, -1)) |
|
|
|
|
|
predicted _ energy _ consumption |
= model.predict(next _ day _ data _ |
||||
scaled) |
|
|
|
|
|
print(f‘Predicted |
energy |
consumption: |
{predicted _ energy _ |
||
consumption[0,0]}’) |
|
|
|
|
|
Этот пример демонстрирует, как можно использовать нейронную сеть для прогнозирования энергопотребления здания на следующий день на основе данных с датчиков и прогнозов погоды. В программе осуществляется обработка и масштабирование данных.
56
Мониторинг безопасности.
Алгоритмы машинного обучения можно использовать для анализа данных с датчиков с целью обнаружения угроз безопасности и предотвращения несчастных случаев. Например, датчики могут быть использованы для обнаружения опасности падения работников или небезопасной эксплуатации тяжелого оборудования. Для обработки данных можно использовать библиотеки NumPy и Pandas из Python, а для построения прогнозирующих моделей — scikit-learn и TensorFlow.
Пример кода:
import serial import pandas as pd import numpy as np
import tensorflow as tf
from tensorflow.keras.models import load _ model
# загрузка модели машинного обучения для обнаружения угроз безопасности
model = load _ model(‘safety _ model.h5’)
#настройка серийного порта для чтения данных с датчиков ser = serial.Serial(‘COM4’, 9600)
#чтение данных с датчиков и анализ
while True:
#чтение строки данных из серийного порта data = ser.readline().decode(‘utf-8’).rstrip()
#преобразование строки в массив
values = np.array(data.split(‘,’))
#создание DataFrame из массива данных df = pd.DataFrame(values.reshape(1, -1))
#преобразование значений в числовой тип df = df.astype(float)
#прогнозирование наличия угроз безопасности prediction = model.predict(df)
#вывод сообщения в зависимости от прогноза if prediction[0][0] > 0.5:
print(‘Обнаружена угроза безопасности’) else:
print(‘Угроза безопасности не обнаружена’)
57
Этот пример демонстрирует, как можно использовать модель машинного обучения для обнаружения угроз безопасности на строительных объектах с помощью данных, полученных с датчиков. В программе также осуществляется чтение данных с датчиков и преобразование их в числовой формат, а также прогнозирование наличия угроз безопасности и вывод соответствующего сообщения. Конечно, чтобы использовать этот код, нужно обучить модель на достаточном количестве данных с учетом различных угроз безопасности.
Оптимизация материалов.
Алгоритмы ИИ можно использовать для оптимизации выбора строительных материалов на основе стоимости, долговечности и воздействия на окружающую среду. Библиотека Pandas в Python может использоваться для очистки и анализа данных о свойствах материалов, а scikit-learn и TensorFlow — для построения прогнозных моделей.
Пример кода:
import pandas as pd import numpy as np import tensorflow as tf
from tensorflow.keras.models import load _ model from scipy.optimize import minimize
# загрузка модели машинного обучения для оптимизации выбора строительных материалов
model = load _ model(‘material _ optimization _ model.h5’)
#загрузка данных о строительных материалах data = pd.read _ csv(‘materials.csv’)
#определение функции стоимости
def cost _ function(materials, prices, weights): cost = np.sum(materials * prices * weights) return cost
#определение ограничений def constraint1(materials):
return np.sum(materials) - 1
#определение начального приближения
materials _ 0 = np.array([0.25, 0.25, 0.25, 0.25])
# определение ограничений
constraints = ({‘type’: ‘eq’, ‘fun’: constraint1})
# оптимизация выбора строительных материалов
result = minimize(cost _ function, materials _ 0, args=(data[‘Price’], data[‘Weight’]), constraints=constraints)
58
# вывод результатов
print(‘Оптимальный выбор строительных материалов:’) for i in range(len(data)):
print(f”{data[‘Material’][i]}: {result.x[i] * 100}%”)
print(f”Общая стоимость: ${result.fun:.2f}”)
Этот пример демонстрирует, как можно использовать модель машинного обучения для оптимизации выбора строительных материалов на основе стоимости, долговечности и воздействия на окружающую среду. В программе определяется функция стоимости, учитывающая цены, веса и выбранные материалы, а также ограничения, чтобы обеспечить, что сумма выбранных материалов равна 1.
Затем используется функция minimize из библиотеки SciPy для оптимизации выбора материалов на основе определенных ограничений и начального приближения.
Наконец, выводится оптимальный выбор материалов и общая стоимость.
Это базовые примеры того, как ИИ может быть применен в строительной отрасли с использованием Python.
Вопросыдлясамоконтроля
1.Что такое предиктивная аналитика?
2.Для чего могут использоваться симуляторы виртуальной и дополненной реальности
встроительстве?
3.Для чего в строительстве могут быть использованы автономные транспортные средства и беспилотники?
4.Опишите примеры использования робототехники в строительстве.
5.Для чего можно использовать чат-боты в строительстве?
6.Что такое предиктивная аналитика?
7.Как можно использовать алгоритмы ИИ для оптимизации выбора строительных материалов?
8.Как осуществляется мониторинг безопасности с использованием машинного обучения?
9.Как можно использовать алгоритмы ИИ для оптимизации энергопотребления?
10.Приведите примеры применения ИИ в строительной отрасли.
59
Списокрекомендованнойлитературы
1.Игнатова Е.В. Технологии информационного моделирования зданий : учебно-методическое пособие / Е.В. Игнатова, Л.А. Шилова, А.Е. Давыдов. — Москва: Издательство МИСИ – МГСУ, ЭБС АСВ, 2019.— 55c. — ISBN 978-5-7264-2017-2.— Текст: электронный // Цифровой образовательный ресурс IPR SMART : [сайт]. — URL: https://mgsu.ru/resources/izdatelskaya-deyatelnost/izdaniya/uchebnye- posobiya/42949/ (дата обращения: 29.08.2023).
2.Павлова А.И. Искусственные нейронные сети : учебное пособие / А.И. Павлова. — Москва: Ай Пи Ар Медиа, 2021. — 190 c. — ISBN 978-5-4497-1165-6. — Текст: электронный // Цифровой образовательный ресурс IPR SMART : [сайт]. — URL: https://www.iprbookshop.ru/108228.html (дата обращения: 29.08.2023).
3.ЯхъяеваГ.Э.Нечеткиемножестваинейронныесети:учебноепособие/Г.Э.Яхъяева.—4-еизд.— Москва: Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар Медиа, 2020. — 315 c. — ISBN 978-5-4497-0665-2. — Текст: электронный // Цифровой образовательный ресурс IPR SMART : [сайт]. — URL: https://www.iprbookshop.ru/97552.html (дата обращения: 29.08.2023).
Библиографическийсписок
1.Адамцевич Л.А. Перспективные в условиях цифровой трансформации строительной отрасли технологии Индустрии 4.0 / Л.А. Адамцевич, И.В. Сорокин, А.В. Настычук // Строительство и архитектура. — 2022. — Т. 10. — № 4. — С. 101–105.
2.Адамцевич Л.А. Международный опыт применения технологий Индустрии 4.0 для мониторинга актуального состояния строительного производства / Л.А. Адамцевич, И.З. Харисов, Ю.В. Камаева // Строительное производство. — 2022. — № 3. — С. 58–66.
3.Гинзбург А.В. Строительная отрасль и концепция «ИНДУСТРИЯ 4.0» : обзор / А.В. Гинзбург, Л.А. Адамцевич, А.О. Адамцевич // Вестник МГСУ. — 2021. — Т. 16. — № 7. — С. 885–911.
4.Адамцевич Л.А. Обзор технологий индустрии 4.0 для разработки системы дистанционного управления строительной площадкой / Л.А. Адамцевич, И.З. Харисов // Строительство и архитектура. — 2021. — Т. 9. — № 4. — С. 91–95.
