Найти тему

Нейросети в BIM?

Всем привет. Хочу сильно вас загрузить очень важной информацией. Все мы понимает что BIM это одно из направлений цифровизации бизнеса, а именно строительной отрасли. А что является самым главным преимуществом цифровых данных? Так вот самым главным преимуществом является возможность собирать и анализировать эти данные, а затем строить модели для прогнозирования бизнеса. Создание эти моделей это отдельная наука, именуемая как Machine Learning, ML или машинное обучение. Я думаю, многие слышали этот термин. У многих он ассоциируется с нейронными сетями, но это не всегда так. У машинного обучения есть один очень полезный и простой способ обучения модели и это линейная регрессия. И к нашему счастью она может проводиться средствами Excel :) Я буду потихоньку объяснять, как можно использовать машинное обучение для повышения качества и удобства вашей работы. Чтобы вы не боялись слово "Обучить модель" я немного поясню что это такое. Абсолютно любая модель машинного обучения — это просто математическая формула, просто большая:) Если ваш прогноз зависит от 5 параметров, то это формула просто с пятью неизвестными. Например, срок разработки документации зависит как-то от площади объекта. Ведь ни у кого не возникает сомнений что это так? Вот мы знаем, что как-то зависит, но как конкретно не знаем) Если мы обучим модель на данных "площади" и "затраченного времени" мы узнаем формулу как по площади определить затраченное время на разработку РД. Но модель будет «слабой», ибо в ней только один параметр. Мы можем добавить "Объём", можем добавить "Количество разделов", "Тип объекта" и т.д. На основе этих данных будет построена линейная регрессия, т.е. формула. И в след раз когда вам нужно будет быстро предсказать сроки проектирования вы просто подставите в эту формулу ваши параметры и узнаете "срок разработки". Сама же нейросеть это тоже формула! Просто в ней коэффициентов может быть пару сотен миллиардов:)

Для начального уровня нужно разобрать 4 понятия.

1)Сбор данных. Нам нужно собирать данные! Чем больше, тем лучше. Я для себя разделяю 2 типа данных. Размеченные и неразмеченные.

· Размеченные данные это данные с ответом:) Вот например: у вас есть проект жилого дома, площадью 300 квадратных метров, раздел ОВ, тип отопления напольное с радиаторами, также нужно разработать проект котельной, в проекте используется определённая труба, фитинги, типы соединений и многое многое другое. Но так как проект вы уже сделали и даже сделали монтаж, то у вас есть 2 цифры. Трудозатраты в человеко часах на проект и на монтаж. При условии, если вы их собирали конечно же:) Для проектирования нужно собирать свои данные, для монтажа свои. И так вы копите эту базу данных долго, чем дольше, тем точнее будет по ней анализ.

· Неразмеченные данные — это те же данные, но без трудозатрат. Получается, что их либо не считали, либо объекты ещё в работе. Потом нужно будет их разметить, ли бо узнать/спросить количество затраченных часов, либо самому считать.

Стоит объяснить в каком виде должны быть эти данные. Если, например у нас параметр "Тип трубы отопления", то мы наш типы классифицируем и даём порядковый номер. Важно чтобы данная классификация была статичной и никогда не изменялась, иначе вся ваша модель потеряет смысл.

У меня очень красиво получается собирать данные через Bitrix24. Если все задачи ставить через "Бизнес-процессы" и потом записывать всё в "Списки", то на выходе у вас готовый Excel с данными. В бизнес-процессах у вас может быть неограниченное количество переменных, а как итог разметки есть поле "Затраченное время на задачу". Я так, например собираю данные по времени разработки семейств Revit в зависимости от категории ревит, от категории нашего корпоративного классификатора и т.д.

2)Корреляция. Приближаемся к самому интересному:) Вот формула для корреляционного анализа.

картинка с сайта https://qualitybusiness.ru
картинка с сайта https://qualitybusiness.ru

r - коэффициент корреляции Пирсона.

Ничего не понятно, да? Ну и не страшно, ведь этот анализ проводит обычный Excel через модуль "Анализ данных". Просто вбиваете данные в виде колонок, где одна колонка — это результаты работ, а другая колонка — это наши данные, которые на этот самый результат и влияют. В итоге мы получаем ответ в виде матрицы.

Это я баловался с корреляцией теплопотерь от некоторых очевидных параметров.
Это я баловался с корреляцией теплопотерь от некоторых очевидных параметров.

Данная матрица показывает, как тот или иной параметры влияет на другой.

Нам интересна строчка размеченных данных "Удельные теплопотери". Мы видим коэффициент 0,357 от параметра "Температура воздуха в помещении" — это значит, что температура влияет на теплопотери на безразмерную величину 0,357 и чем выше температура воздуха, тем выше будут теплопотери, но прирост последних будет равен 36% прироста параметра температуры. Данный коэффициент может быть от -1 до +1. Я таблицу данных заполнял рандомно, поэтому не смотрите на сами коэффициенты. Следующий параметр "Температура воздуха на улице" и тут уже коэффициент отрицательный, а это означает, что чем НИЖЕ этот параметр, тем выше наши теплопотери, что логично:)

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

3)Регрессия. Ну и самое сложное. Из предыдущего корреляционного анализа мы узнаем какие параметры действительно влияли на наш итоговый столбец. Все данные с низкими "весами" мы в корреляции не учитываем. Чтобы не мучить вас сложными формулами объясню на пальцах. Любой массив данных можно оцифровать. У меня даже есть статья на дзене и вот ещё одна. В итоге, когда мы оцифровываем наш массив данных мы получаем уравнение в зависимости от характеристики кривой регрессии. Зависимость может быть линейной, квадратичной, логарифмической и т.д. Если у вас узкий промежуток собранных данных и вы за него никогда не выйдете, то можете использовать полиномы высоких степеней. Он оцифрует ваши данные с высокой точностью, но прогнозировать он их не сможет. Короче, в итоге у вас есть уравнение, которое описывает поведение вашей модели. Т.е. подставляете свои параметры и при решении уравнения получаете практически ваш размеченный результат.

4)Корреляционно-регрессионный анализ. Ну и вот итог всего нашего душевного разговора. Всё вместе это называется "Корреляционно-регрессионный анализ" и он позволяет нам прогнозировать. Т.е. до этого момента мы работали с данными которые уже "были". А теперь вводя свои параметры будущих объектов вы получаете прогноз того, как это может быть. Это будет самый точный прогноз из того, что может родиться у вас в голове, ибо вы все предыдущие разы делали всё точно также, что привело вас к данной формуле. Надеюсь, я смог немного объяснить. Моя задача была не заменить вам "Бизнес-аналитика" или "Отдел аналитики" в компании, они и так это всё знают лучше меня. Моя задача была дать рабочий инструмент инженерам который бесконечно должны предсказывать сроки разработки документации и сроки строительства просто из головы...