КОРПОРАТИВНЫЙ МОЗГ НА 1С И PYTHON
Вектор вашего бизнеса только тогда направлен в
сторону совершенства, когда вы пользуетесь
научными методами в управлении.
Зима-Барская Е.
В каждой естественной науке заключено столько
истины, сколько в ней есть математики.
Кант И.
Высшее назначение математики состоит в том,
чтобы находить скрытый порядок в хаосе, который нас окружает
Винер Н.
Менеджмент вашей компании еще не пользуется нейросетями? Тогда мы идем к вам!
В статье приведен практический пример с кодом построения нейронной сети в 1С для решения проблемы оттока клиентов. Но перед разбором практического примера сделаем небольшой обзор связей между нейросетями, 1С, математиками и digital-трансформацией бизнеса.
Если попытаться ответить на вопрос "Каким информационным критериям соответствует современное успешное предприятие?", то кратко можно дать такую общую формулировку: успешное предприятие - это интеллектуальное предприятие, в котором конкурентно мыслят, принимают научно обоснованные и в тоже время быстрые управленческие решения, инновационно решают основные задачи бизнеса.
Планирование запасов, ценообразование, бюджетирование, прогноз продаж, оптимизация налогообложения - вот, некоторые из задач критической важности. Для математика и управленца особым свойством таких задач является то, что они часто являются трансвычислительными или относятся к классу NP-трудных, и таким образом эффективность управленческих решений в отношении них обычно очень далека от идеальной.
Эффективное конкурентное решение многих комбинаторных задач, создание адекватных моделей и удачное проектирование бизнес-процессов недоступно компаниям, в которых отсутствуют квалифицированные математические кадры и новейшие подходы к научной организации управления.
Но когда компания интеллектуальна, перед ней открываются двери цифрового бизнеса: на помощь современному просвещенному руководителю приходит мощный арсенал прогрессивных вычислительных методов, таких как обучение, самоорганизация и эволюция - на базе платформ искусственного интеллекта.
По прогнозам консалтинговой компании McKinsey & Company, доля цифрового бизнеса составит до 34% мирового ВВП уже к 2020 году. Процесс цифровой трансформации актуален для любой сферы нашей жизни. Мобильное приложение налоговой службы, онлайн-банкинг, блокчейн-реестры в страховых компаниях, техподдержка клининговой компании в виде чат-бота, таргетированная реклама и медицинская диагностика использующие большие данные и искусственный интеллект, торговые маркетплейсы — все эти инновационные “фишки” являются далеко не полным набором примеров использования современных цифровых технологий.
Компаниям, которые не придали особую важность использованию этих технологий, становится все сложнее конкурировать с цифровой элитой. Так, например, яркий представитель цифровой экономики Uber поглотил практически все небольшие сервисы такси, а Airbnb приносит все больше убытков классическим моделям гостиничного бизнеса.
Digital-технологии трансформируют пользовательский опыт и позволяют кардинально увеличить прибыль. Это означает появление новых задач у внешних коммуникаторов: маркетологов, пиарщиков и специалистов по продажам. Возрастает роль аналитики внимания, точечной работы с клиентом и digital-маркетинга.
В частности, PR-специалисты и маркетологи могут измерить эффективность коммуникации исходя из бизнес-показателей и корректировать информационную кампанию с точностью до каждой эмоции отдельного пользователя.
Однако следствием digital-трансформации является лавинообразный рост корпоративной информации, начинают непрерывно увеличиваться потребности во всё более квалифицированных специалистах информационных технологий, то тут, то там менеджмент сталкивается с необходимостью как-то решать NP-трудные задачи и трудно формализуемые проблемы бизнес-деятельности - все это требует перехода на качественно новый уровень информационных технологий, которые нуждаются в квалифицированном математическом сопровождении.
Системы искусственного интеллекта, в основу которых положены принципы обучения, самоорганизации и эволюции при минимальном участии человека как программиста, но привлечении его в качестве учителя и партнера, гармоничного элемента человеко-машинной системы, становятся обязательными для компаний среднего и малого бизнеса. Наукоёмкость бизнеса растет с каждым годом.
Эра цифрового бизнеса
Тема применения систем искусственного интеллекта для управления предприятием выходит на пик своей популярности. Как известно, использование искусственного интеллекта подразумевает под собой построение системы, «мыслящей» как человеческий мозг, принимающей наиболее эффективные решения.
Компьютерное моделирование работы человеческого мозга представлено в мире двумя крупными проектами: OpenWorm - по симуляции нервной системы нематоды С. Elegans (302 нейрона) и HumanBrainProject (НВР) – планировалось построить компьютерную модель всего человеческого мозга с миллиардами нейронов и триллионами синапсов. Бюджет проекта HumanBrainProject составляет 1,6 млрд.$, срок финансирования проекта рассчитан на 10 лет.
Как известно, интеллектуальные системы поддержки принятия управленческих решений способны осуществлять интеллектуальные действия, присущие человеческому мышлению, но при этом достаточно редко используют строгие биологические модели. Однако это им не мешает выполнять те же полезные функции, которыми обладает мозг.
Технологии AI стремительно внедряют в банковскую, медицинскую и многие другие сферы. В течении первых 3-х месяцев 2018 года в индустрии искусственного интеллекта был поставлен рекорд по инвестициям. По данным международной сети аудиторских фирм PwC, общее число инвестиций в сферу искусственного интеллекта составило $1,9 млрд.
AI-системы активно внедряются и в финансы. Пример тому стартап для поиска удачных капиталовложений от Google – Kensho. Журнал «Форбс» назвал этот проект искусственного интеллекта «финансами будущего». Агентство Standard&Poor’s покупает компанию Kensho за $550 млн. Это самый крупный контракт, связанный с искусственным интеллектом. Kensho - платформа аналитики рынка объединяет статистические вычисления с большими данными и обработкой естественного языка. Системы машинного обучения платформы Kensho извлекают данные из Интернета и оценивают корреляции между мировыми событиями и их влиянием на цены финансовых активов. Информация, полученная системой искусственного интеллекта Kensho из прямой трансляции новостей, используется в принятии инвестиционных решений.
Нельзя не отметить ряд других хороших примеров применения интеллектуальных систем в экономике. Такие банки, как UBS и Deutsche Bank, используют систему искусственного интеллекта Sqreem (Sequential Quantum Reduction and Extraction Model) для разработки профилей потребителей и сопоставления их с продуктами, которые потребители, скорее всего, захотят использовать.
Компания ZestFinance разработала систему Zest Automated Machine Learning (ZAML) для кредитного андеррайтинга. ZAML задействует компьютерное обучение для анализа десятков тысяч традиционных и нетрадиционных переменных (от транзакций покупки до того, каким образом клиент заполняет форму), используемых в кредитной индустрии, для оценки заемщиков. Платформа особенно полезна для присвоения кредитных баллов клиентам с небольшой кредитной истории, таким как миллениалы.
Автоматизированные системы поддержки принятия финансовых решений предоставляют финансовые консультации и советы в управлении финансовым портфелем с минимальным вмешательством человека. Этот класс финансовых консультантов работает на основе нейросетей, созданных для автоматического развития финансового портфеля в соответствии с инвестиционными целями и с учетом рисков клиента. Они могут корректировать изменения в реальном времени на рынке и калибровать портфель в соответствии с пожеланиями клиента.
Однако у вас нет ZAML, Kensho или Sqreem. Как быть вам ? Об этом я расскажу ниже, и сразу отмечу, что для небольших компаний, которые используют в качестве учетной системы 1С, также пришло время активно разрабатывать свои собственные частные решения на базе искусственного интеллекта.
Попытки автоматизировать интеллектуальную деятельность приносят ощутимые успехи, поэтому системы искусственного интеллекта проникают на рынок малого и среднего бизнеса.
Платформа 1С также позволяет применять технологии AI, но зачастую для таких задач имеется потребность создавать гибридные проекты, в которых ресурсы 1С совмещаются с «инородными» системами. Небольшой пример такого совмещения мы с вами разберем.
Neuro vs NP
Предстоящая вашей компании дигитализация не обойдется без повышения наукоемкости технологий менеджмента: пора не просто принимать решения, а вычислять их с помощью конкретных алгоритмов. В свою очередь, принятие управленческих решений на основе научного обоснования требует соответствующих средств автоматизации. Заглянув в алгоритмы, мы видим, что условно "алгоритм алгоритму рознь".
Очевидно, потребность в применении систем искусственного интеллекта обусловлена тем обстоятельством, что далеко не все вычислительные задачи предприятия можно решить традиционными алгоритмами, которые бы за приемлемое число шагов давали удовлетворительный результат.
Во-первых, это связано с существованием NP-трудных задач, время решения которых экспоненциально возрастает с размерностью задачи (т.н. экспоненциальный взрыв, невозможность решения путем наращения вычислительной мощи), но которые тем не менее очень часто имеют место в реальности каждой компании.
Во-вторых, далеко не все, что человек (работник, руководитель) делает не задумываясь, можно изложить на формальном языке (трудноформализуемые задачи). Еще в большей степени это касается коллективного взаимодействия различных специалистов в компании.
Нелишне упомянуть теорему Геделя о неполноте, из которой следует, что для достаточно богатых по содержанию математических теорий не существует адекватных формализаций. И дело здесь даже не в том, что нет механизма описания трудноформализуемых задач (нечеткие логики и т.п.), нет механизма их переработки.
К тому же среди бизнес-задач присутствуют и алгоритмически неразрешимые задачи, для решения которых принципиально невозможно создать алгоритм, но с которыми каждое предприятие имеет дело.
Классический пример алгоритмически неразрешимой задачи - создать алгоритм, который по описанию проблемы создает алгоритм для решения этой проблемы. По этому вопросу существует теорема Райса: "никакое нетривиальное свойство вычислимых функций не является разрешимым", смысл которой сводится к тому, что для некоторого свойства функции fA, вычисляемой по алгоритму A, нельзя построить общий алгоритм, который по произвольному алгоритму A определял бы, обладает ли вычисляемая им функция этим свойством.
И здесь мы хорошо видим преимущества нейросетей. Ведь с точки зрения информатики, нейросеть - это вычислительная модель с большим числом параллельно действующих процессов, объединенных множеством связей. Грубо говоря, нейросеть представляет собой функцию типа Y=F(X), выходом Y которой является некоторое управленческое решение или содержание бизнес-процесса, а входом X служит некоторая императивная информация (например, параметры каждой сделки с клиентами).
Как известно, суть обучения нейросети заключается в поиске оптимального значения F(X), при котором достигается наилучшая приспособленность бизнес-процесса/управленческого решения к поставленной задаче (максимизация или минимизация того или иного бизнес-показателя).
Обучение происходит путем осуществления мелких итеративных шагов от менее оптимальных вариантов функции F к более оптимальным, но не простым перебором всех возможных вариантов. Подавая на вход F различные значения X, учитель (или "естественный отбор") "поощряет" варианты, при которых F дает на выходе более точные значения Y (лучше соответствующие поставленной задаче) и "наказывает" за худшие (относительно предыдущих достижений) варианты. "Поощрение" и "наказание" происходит путем (нерезкого) усиления/ослабления тех нейронных связей, которые были более других задействованы в ходе последней итерации, то есть внесли в успех/неудачу наибольший вклад.
Таким образом в ходе мелких последовательных итераций "интеллект" нейронной сети постепенно затачивается под решаемую задачу (простой перебор не дал бы таких результатов за полиномиальное время).
Из хаоса добыть порядок
При изучении перспектив и методов дигитализации бизнеса, следует уделить внимание современным возможностям прикладной математики, которая рассматривается через призму фундаментального изменения парадигмы современной науки — её переориентации на преимущественное изучение нелинейных процессов, как ведущих в объяснении наиболее актуальных для человека сложных явлений, в т.ч. явлений в сфере бизнеса.
Новая научная парадигма на базе теории хаоса и сложности опирается на шесть основных новых понятий, таких как, чувствительность к первоначальным условиям, странные аттракторы, самотождественность, самоорганизация, край хаоса и холмистый ландшафт. Вам о чём-то говорят эти термины?
Рынок требует от предприятий взвешенного подхода к планированию и управлению производственным процессом. Как недопроизводство, так и перепроизводство ведут к недополученным прибылям или потерям, что может привести к краху предприятия. Необходимость оперативного реагирования на конъюнктуру рынка и быстро меняющуюся экономическую ситуацию, стремительный рост объема информации, требующей обработки, неопределенность в поведении производственных систем, возможность использовать современные информационные технологии требуют перестройки внутренней микроэкономики предприятия, оптимизации процессов управления, что предполагает, прежде всего, процесс прогнозирования. Целью прогнозирования является уменьшение риска при принятии управленческих решений.
Аксиома управления – нельзя сделать систему управляемой, если она не наблюдаема и не позволяет оценить последствия управления. Поэтому приоритетной функцией управления в быстро меняющейся среде становится прогнозирование.
В общем виде процесс управления во всех сферах деятельности можно представить в виде так называемой «петли управления», включающей циклическую последовательность следующих этапов: прогноз - планирование - контролируемая деятельность по реализации планов - учет и анализ результатов - коррекция прогнозов и планов. Очевидно, эффективная прогнозирующая подсистема в составе корпоративной системы управления является одним из важнейших факторов конкурентоспособности современной компании.
Однако, исследования Эдварда Лоренца и других ученых теории хаоса доказали, что с помощью стандартных алгоритмов долгосрочное прогнозирование невозможно во всех открытых сложных системах. Малейшее изменение первоначальных условий приводит к иным результатам.
В тоже время, такое расширение нейронных сетей, как резервуарное вычисление (Reservoir computing) показало результаты прогнозирования совершенно нового уровня. При исследовании динамики архетипической хаотической системы, описываемой уравнением Курамото — Сивашинского, нейросетевой метод на базе Reservoir computing смог точно предсказать, как хаотическая система будет эволюционировать в течение восьми «времён Ляпунова». Т.о. методы нейроматематики позволяют заглянуть в восемь раз дальше по сравнению с классическими методами прогнозирования. Временем Ляпунова называют время, которое требуется для экспоненциальной дивергенции двух практически идентичных состояний хаотической системы. Как таковое, оно обычно определяет горизонт предсказуемости.
Потребность в доскональном изучении возможностей нейросетей высшим менеджментом компаний обусловлена необходимостью внедрения в практику работы профессиональных руководителей полноценных методов научного управления, основанного на строгой формализации процедур принятия решений и необходимостью использования на практике новых технологий. Существенными составными частями таких технологий являются в настоящее время нейронные сети, главное преимущество которых - их способность к обучению и самообучению, а также теория динамических систем (теория хаоса), позволяющая в явлениях, на первый взгляд случайных, обнаружить порядок и некоторую структуру.
Преимущества нейросетей перед обычными алгоритмами
Подбор задач прогнозирования и маркетинговых исследований, для которых бизнес может успешно начать внедрение нейронных сетей, проще начинать с задач, которые до этого решались обычными статистическими методами. При таком подходе можно сразу оценить преимущества нейросетей. Методы нейронных сетей существенно превосходят линейные методы статистики (линейная регрессия, авторегрессия, линейный дискриминант): нейросетевая технология позволяет эффективно строить нелинейные зависимости, которые более полно описывают наборы данных.
Нейронная сеть может построить поверхность более высокого порядка, чем это может сделать байесовский классификатор, который строит квадратичную разделяющую поверхность. Высокая нелинейность разделяющей поверхности наивного байесовского классификатора требует большее количество суммарного числа примеров для возможности точного оценивания вероятностей при каждом сочетании интервалов значений переменных. Нейронная сеть же обучается на всей выборке данных, не фрагментируя её, что повышает адекватность настройки нейронной сети.
Единственная условная альтернатива нейронной сети, использованной для построения сложных нелинейных моделей, это метод группового учета аргументов. Для сжатия и визуализации данных в статистике разработан метод линейных главных компонент, но нейросетевые технологии предлагают более эффективное сжатие данных, благодаря построению нелинейных отображений и визуализации данных в пространстве меньшего числа нелинейных главных компонент.
По сравнению с методами непараметрической статистики, нейронная сеть с радиальными базисными функциями позволяет сокращать число ядер, оптимизировать координаты и размытость каждого ядра. Это позволяет при сохранении парадигмы локальной ядерной аппроксимации ускорять дальнейший процесс принятия решения.
Время для нейро-1С
Теперь, после небольшого введения, перейдем к примеру нейросети для достаточно распространенной бизнес-задачи - решению проблемы оттока клиентов.
Компании, которые используют для организации учета 1С, даже если они еще не прониклись идеей дигитализации, часто сталкиваются с потребностью повысить эффективность прогнозирования и эффективность работы с данными. Ведь 1С, как любая другая система учета, предназначена для хранения данных, представления их в виде различных отчетов, создания бизнес-процессов, но никак не для прогнозирования и предсказания событий.
Что является основой успеха каждой компании? Это правильное финансовое планирование. Другими словами - это планирование всех доходов и направлений расходования денежных средств, для обеспечения развития организации.
Т.е., например, мы четко должны представлять, сколько в этом месяце или ближайшем периоде мы можем расходовать денежных средств, и какой объем денежных средств поступит на счета нашей компании (с розничных продаж, аренды или оплаты поставок с отсрочкой от оптовых покупателей и т.п.).
Если с планированием расходов все более-менее понятно – есть календарь, есть круг потребностей компании, приоритеты, здесь главное не превысить плановую сумму расходов. То с планированием поступления денежных средств все гораздо сложнее.
Для прогнозирования продаж надо учитывать множество параметров. Например, мы можем предполагать зависимость объемов продаж от дня недели, месяца, наличия акционных предложений, места расположения магазина, потребительского спроса на тот или иной вид изделия и т.п. Очень часто подобные зависимости человеку крайне сложно выявить.
Что касается управленческого учета, то не менее важно, например, на производственных предприятиях иметь план производства на ближайший месяц/неделю, что влечет формирование плана закупок, плана фонда заработной платы. Т.о. и здесь для нас важно планирование. В данном случае, мы должны получить прогноз объемов продаж, причем в разрезе каждой единицы продукции, чтобы составить заказ на производство.
Такие задачи прогнозирования подразумевают обработку больших объемов данных, нахождение различных зависимостей, влияющих на планирование. Эти зависимости редко удается описать алгоритмически. Вот тут и приходят на помощь нейронные сети.
Традиционные алгоритмы синтеза оптимального управления опираются на модели функционирования предприятия. Поведение многих систем, в том числе экономических, невозможно или очень сложно представить в виде системы дифференциальных или разностных уравнений. Единственная возможность построения моделей для таких сложных задач состоит в использовании входной и выходной информации, описывающей поведение объекта. Наиболее эффективный инструмент – нейросетевое моделирование, позволяющее выявить сложную нелинейную зависимость между входными и выходными данными системы на основании обучающей выборки/множества.
Три варианта
Для того, чтобы спрогнозировать поступление денежных средств или объемы продаж на предстоящий месяц, на нашем предприятии, ведущем финансовый учет в 1С, вся информация, то есть выборка, которая обязательно нужна для обучения нейросети, уже есть, т.е. достаточно ее просто обработать и получить результат.
Какими же методами нам необходимо пользоваться, что бы построить нейронную сеть, загрузить в нее имеющиеся у нас данные и в конце получить ответ на наш вопрос?
Прежде всего, определимся со средой разработки.
Часто в качестве среды для разработки нейронных сетей используют Python, он содержит довольно большое количество готовых библиотек, ориентированных на машинное обучение, и достаточно мощный встроенный математический аппарат, который нам как раз и нужен.
Но мы с вами, в данном случае, говорим о планировании для нашей компании в системе учета 1С: здесь ведется весь учет и хранится информация для анализа и принятия решения. А если речь идет о крупном предприятии, и если предприятие заботится об устойчивости своей системы учета, то, как правило, все данные 1С хранятся на SQL-сервере.
Учитывая все вышесказанное, у нас есть три варианта реализации нашей задачи по составлению и обучению нейронной сети:
1-й вариант: все реализуем средствами 1С.
2-й вариант: используем из 1С данные, расположенные в таблицах SQL-сервера, а саму нейросеть и обработку данных выполняем на Python.
3-й вариант: гибридный - часть задач реализуем на 1С, например, создание выборки и обработки данных, а часть задач - на Python (выбираются задачи с максимальным приоритетом, требующие сложных расчетов).
Ограничения и преимущества
Проанализируем все 3 варианта реализации нейронной сети.
1-й вариант: если вся задача будет реализована средствами 1С, тогда мы можем сделать все сами, все данные у нас содержатся в нашей системе учета 1С, но… нейронную сеть придется писать вручную, нет мощных библиотек, математический аппарат ограничен, хотя и достаточен для решения основных задач. Главное требование к разработчикам – иметь минимальный уровень знаний в ряде разделов высшей математики, в частности, в линейной алгебре (операции с матрицами), дискретная математика.
При реализации средствами 1С не придется осуществлять кадровый подбор, не потребуется процесса налаживания коммуникаций между/с новыми сотрудниками, увеличение уровня математической грамотности собственных разработчиков, если они имеют классическое инженерное образование и базовые знания в перечисленных ранее разделах высшей математики.
Функционала 1С для работы с нейронными сетями достаточно, т.к. в 1С существует понятие рандомного числа, есть экспонента, а любую операцию над матрицами можно выразить в элементарных арифметических выражениях (сложение, умножение). Конечно, это потребует гораздо большего количества операций и строк кода, по сравнению с Python. Однако отпадет необходимость в найме внешнего разработчика, которому понадобится время, чтобы вникнуть в особенности учета предприятия. А так же не понадобится налаживать новые коммуникации внутри коллектива.
2-й вариант: может возникнуть необходимость в реализации на Python, т.к. некоторый ряд задач предполагает использования математических операций, не доступных в 1С. Либо, например, нам потребуется создавать нейронную сеть с большим количеством скрытых слоев и сотнями нейронов в каждом из них. Учитывая, что данные хранятся на SQL-сервере, то мы просто организуем доступ из Python к базе данных 1С, а все расчеты будет производить в Python.
Данный вариант потребует поиска специалистов, работающих на Python, с последующими трудозатратами по введению их в курс особенностей учета вашего предприятия.
3-й вариант: в случае, когда при реализации задачи прогнозирования большая часть расчетов для получения данных обучающей выборки может быть произведена средствами 1С, мы только для конечной обработки данных, для произведения трудоемких расчетов, можем использовать нейронную сеть, полностью реализованную на Python.
Такой вариант взаимодействия двух систем целесообразно рассматривать, когда математического аппарата 1С не достаточно, но в 1С мы все таки можем создать обучающую выборку.
В таком варианте опять требуется поиск специалиста на Python и возникает необходимость обеспечивать взаимодействие с ним сотрудников организации, что влечет дополнительные денежные и временные затраты.
Выбираем конфигурацию
В данной статье я хочу остановиться на использовании/реализации нейронной сети встроенными методами 1С.
Разберем 3 примера. Начнем с простейшей задачи регрессии.
Была создана пустая конфигурация. Для работы нейронной сети создан документ с табличной частью, куда вносила все необходимые для работы с нейронной сетью обучающие выборки.
Для простейших примеров нейронная сеть отдельно не создавалась и не хранилась. В данном случае приведены алгоритмы их обучения.
Пример №1
Мы можем, например, научить нейронную сеть «умножать на 2», не говоря, что ей надо брать число и умножать его на «2».
В качестве модели сети для нашей мы возьмем однослойную сеть прямого распространения с одним входом, одним выходом и одним нейроном в скрытом слое (рис.1). Обратите внимание, что в данной модели нейронной сети сигнал нейрона скрытого слоя передается на нейрон выходного слоя без функции активации.
Рис.1 «Модель однослойной сети прямого распространения с одним нейроном в скрытом слое, одним входным и одним выходным нейроном»
Для ввода данных обучающей выборки в конфигурации создан документ. Данные обучающей выборки вносятся в табличную часть документа. Для этого в табличной части используются колонки: «Число1», «Число2», «Ответ», «Ответ2» (рис.2).
Для обучения нейронной сети «умножать на 2» была сформирована обучающая выборка (рис.2)
Рис.2 «Заполнение формы документа для обучения нейронной сети умножению на 2»
Обучающая выборка содержит 7 примеров. Столбец «Число1» содержит входные значения, столбец «Ответ» - выходные значения.
На форме документа произвольно задается вес единственного синапса нашей нейронной сети с точностью до 4-х знаков (задействуем в качестве синапсов некоторым весом - поле ввода «Вес1»): 4,0000.
Для запуска обучения нейронной сети используется кнопка «Умножение» (рис.2).
После проведения 3 итераций обучения, были получены следующие результаты (табл.1):
№ шага |
Вес синапса после обучения |
Ответ НС |
Ответ обучающей выборки |
1 |
3 |
15 |
10 |
2 |
2,5 |
5 |
4 |
3 |
2,25 |
6,75 |
6 |
4 |
2,125 |
8,5 |
8 |
5 |
2,0625 |
20,625 |
20 |
6 |
2,0313 |
16,2504 |
16 |
7 |
2,0157 |
14,1099 |
14 |
8 |
2,0079 |
10,0395 |
10 |
9 |
2,004 |
4,008 |
4 |
10 |
2,002 |
6,006 |
6 |
11 |
2,001 |
8,004 |
8 |
12 |
2,0005 |
20,005 |
20 |
13 |
2,0003 |
16,0024 |
16 |
14 |
2,0002 |
14,0014 |
14 |
15 |
2,0001 |
10,0005 |
10 |
16 |
2,0001 |
4,0002 |
4 |
17 |
2,0001 |
6,0003 |
6 |
18 |
2,0001 |
8,0004 |
8 |
19 |
2,0001 |
20,001 |
20 |
20 |
2,0001 |
16,0008 |
16 |
21 |
2,0001 |
14,0007 |
14 |
Таблица 1 «Результаты обучения нейронной сети умножению числа на 2»
Т.о. после обучения нейронной сети на выборке из таблицы 1 мы получаем вес синапса нашей НС, равным «2,0001». Поскольку модель нашей однослойной сети с одним нейроном предполагала простую линейную зависимость, обученная нейронная сеть будет вычислять выходное значение по формуле:
S = X*W,
где Х – входной сигнал, W – вес синапса скрытого слоя.
В данном случае:
S = X*2,0001.
Мы получили обученную НС, которая сможет теперь, с определенной точностью получая на входе некоторое число и выдавать на выходе его значение, умноженное на 2.
Ниже приведен код 1С, с помощью которого наша нейронная сеть обучается «умножать на 2».
Мы на каждом шаге меняем вес синапса:
Объект.вес = Объект.вес + (ответВыборка - ответНС) /ответВыборка,
с учетом полученного отклонения рассчитанного значения:
ответНС = вес1*Объект.вес,
от ответа обучающей выборки:
ответВыборка =строкаТЧ.Ответ
////однослойный перцептрон с одним входным нейроном
Для Каждого строкаТЧиз Объект.ТабличнаяЧасть1 Цикл
вес1 = строкаТЧ.число1;
ответНС = вес1*Объект.вес;
ответВыборка = строкаТЧ.Ответ;
разница = ответВыборка - ответНС;
отклонение = разница/ ответВыборка;
Объект.вес = Объект.вес + отклонение;
Записать();
КонецЦикла;
Пример №2
Следующий пример: обучение нейронной сети сложению двух чисел.
Для решения данной задачи использовался однослойная сеть прямого распространения с одним нейроном в скрытом слое, двумя входными и одним выходным нейронами (рис.3).
Рис.3 «Модель однослойной сети прямого распространения с двумя входными нейронами Х1 , Х2 и одним выходным нейроном Y»
В данной модели имеется два синапса: W1 и W2, в документе им соответствуют реквизиты формы: «Вес1» и «Вес2» (см. рис.4).
Для обучения нейронной сети использовалась обучающая выборка, представленная на рис.4.
Рис.4 «Обучающая выборка для обучения нейронной сети сложению двух чисел»
После выполнения одной итерации обучения были получены следующие результаты:
№ шага |
Вес синапса1 после обучения (число1/W1) |
Вес синапса2 после обучения (число2/W2) |
Ответ НС (Y) |
Ответ обучающей выборки |
1 |
1,9714 |
1,1367 |
19 |
7 |
2 |
1,5141 |
0,8275 |
17,2099 |
10 |
3 |
1,4037 |
0,7642 |
4,6832 |
4 |
4 |
1,3908 |
0,7571 |
5,1 |
5 |
5 |
1,2745 |
0,6902 |
7,0774 |
6 |
6 |
1,1839 |
0,6388 |
14,8156 |
13 |
7 |
1,1353 |
0,6118 |
10,7488 |
10 |
8 |
1,123 |
0,6051 |
9,1707 |
9 |
Ниже приведен код, с помощью которого мы обучаем нейронную сеть складывать числа.
В данном алгоритме мы на каждой итерации меняем вес синапса1=W1 и вес синапса2=W2,
Весi =Весi + Отклонение* Весi /( Весi + Весj ), где i=1;2, j=2;1,
с учетом полученного отклонения:
отклонение = (ответВыборка- ответНС) /ответВыборка,
между рассчитанным значением нейронной сети:
ответНС=вес1*Объект.вес1+ вес2*Объект.вес2,
и ответом обучающей выборки:
ответВыборка =строкаТЧ.Ответ.
////однослойнаясеть прямого распространения с двумя входными нейронами
Для Каждого строкаТЧ из Объект.ТабличнаяЧасть1 Цикл
вес1 = строкаТЧ.число1;
вес2 = строкаТЧ.число2;
ответНС = вес1*Объект.вес1 + вес2*Объект.вес2;
ответВыборка = строкаТЧ.Ответ;
разница = ответВыборка - ответНС;
отклонение = разница/ответВыборка;
Объект.вес1 = Объект.вес1 + отклонение*Объект.вес1/(Объект.вес1 + Объект.вес2);
Объект.вес2 = Объект.вес2 + отклонение*Объект.вес2/(Объект.вес1 + Объект.вес2);
Записать();
КонецЦикла;
Мы получили более-менее адекватные ответы, однако они не точны. Дело в том, что обычные арифметические действия нейронные сети обучаются делать не очень точно.
Число 1 |
Число 2 |
Ответ нейронной сети |
Сумма |
Отклонение, % |
15 |
12 |
24,1062 |
27 |
10,71778 |
6 |
3 |
8,5533 |
9 |
4,963333 |
7 |
9 |
13,3069 |
16 |
16,83188 |
9 |
3 |
11,9223 |
12 |
0,6475 |
6 |
5 |
9,7635 |
11 |
11,24091 |
9 |
5 |
13,1325 |
14 |
6,196429 |
6 |
7 |
10,9737 |
13 |
15,58692 |
10 |
6 |
14,8606 |
16 |
7,12125 |
В расчетах тестовой выборки получаем среднее отклонение 9,16%, с максимальным отклонением 16,83%. Т.о. наша нейронная сеть выдает ответ с точностью 83,17%, для решения практических задач этот показатель чрезвычайно мал. Однако, для задач связанных с простыми арифметическими действиями – это вполне очевидная норма, так как представленная модель нейронной сети не рассчитана на задачи подобного алгоритмического типа.
Пример №3
Рассмотрим реализацию задачи классификации на конкретном примере.
Все компании на потребительском рынке имеют дело с проблемой оттока клиентов. Иногда показатели оттока слишком велики и могут приводить к значительному снижению прибыли, либо прекращению работы компании. Традиционным решением является прогнозирование клиентов с высокой предрасположенностью к уходу, с целью удовлетворения их потребностей за счет внедрения служб поддержки, проведения маркетинговых кампаний или путем применения специальных положений. В каждой отрасли могут существовать собственные подходы. В связи с тем, что удержание текущих клиентов часто обходится дешевле, чем привлечение новых, точные предсказания оттока клиентов позволяют компаниям применять различные стратегии для удержания клиентов и тем самым экономить большое количество средств.
Наша задача, обучить нейронную сеть (линейный классификатор) правильно классифицировать клиентов: разделять на клиентов, принадлежащих классу 1 (не предрасположенные к уходу) и классу 2 (с высокой предрасположенностью к уходу), с учетом набора некоторых параметров. В нашем случае рассмотрим два виртуальных параметра: «Параметр 1» и «Параметр 2». Это может быть, например, количество дней с момента совершения последнего платежа (покупки) и средняя частота совершения платежей (покупок) в днях.
Я рассматриваю 2 параметра для упрощения приводимого расчета. В реальных задачах необходимо рассматривать несколько десятков параметров. Что дает более точную выборку клиентов, предрасположенных к уходу. А далее компании проводят опрос обозначенной группы клиентов, с целью получения обратной связи по поводу причин отказа от продукции и услуг компании. После того, как определены ключевые причины оттока, разрабатывается план по их устранению и система ключевых показателей, отражающих прогресс в расширении «узких» мест.
Процесс анализа и устранения причин оттока – это не разовая активность, а регулярная деятельность. В рабочую группу по борьбе с оттоком должны быть включены представители отделов продаж, маркетинга и клиентского сервиса.
Сформируем обучающую выборку, основываясь на следующем предположении:
Есть пример клиента, имеющего значение параметра 1 - 1.0 и параметра 2 - 1.0, который, является клиентом из класса 1. Второй пример относится к клиенту, имеющему большее значение параметра 1 — 3.0 и значение параметра 2 — 1.0, который является клиентом из класса 2. Т.е. первый клиент последний раз совершал денежную операцию 1 день назад имея среднюю частоту покупок 1 раз в 1 день. Второй клиент совершил последнюю денежную операцию 3 дня назад, имею среднюю частоту 1 раз в 1 день.
Т.о. мы формируем выборку, в которой указываем при каждом сочетании параметра 1 и параметра 2, к какому классу относится клиент, признак принадлежности к «классу 1» = 1,«классу 2» = 0.
Для формирования выборки опять используем документ, в котором длину укажем в колонке «Число1» параметр 1, а параметр 2 в колонке «Число2» табличной части документа, ответ или признак класса в колонке «Ответ» (рис.5). Для данной задачи мы будем создавать нейронную сеть и поэтому реквизиты документа «Вес1» и «Вес2» использоваться не будут.
Рис.5 «Обучающая выборка для задачи классификации»
Для решения данной задачи использовалась модель однослойной сети прямого распространения с двумя входами, двумя выходами и N-нейронами в скрытом слое (рис.6). Обучение нейронной сети производилось с использованием алгоритма обратного распространения ошибок.
Рис.6 «Модель однослойной сети прямого распространения с N-нейронами в скрытом слое»
Для создания модели нейронной сети средствами 1С, были созданы:
- Справочник «Входной слой» (рис.7),
- Справочник «Скрытый слой» (рис.8),
- Справочник «Выходной слой» (рис.9),
- Справочник «Сеть» (рис.10).
Рис.7 «Форма списка справочника «Входной слой»»
Рис.8 «Форма списка справочника «Скрытый слой»»
Рис.9 «Форма списка справочника «Выходной слой»»
В первые три справочника содержат наименования нейронов каждого из указанных слоев. Справочник «Сеть» содержит веса синапсов, соединяющие нейроны (реквизиты «Вход» и «Выход») из различных слоев (рис.10), с указанием веса синапса в реквизите «Вес». Если вес указан, как нулевой, значит, связь между указанными нейронами отсутствует.
Рис.10 «Форма списка справочника «Сеть»»
Для работы и обучения нейронных сетей используются матрицы и операции над ними: сложение, умножение.
В Python есть возможность работать с подобными типами переменных.
В 1С аналогичный встроенный типа данных отсутствует. В качестве альтернативы матрице, был использован тип данных «Структура». Каждый элемент структуры представляет собой коллекцию пар: «Ключ-Значение». Т.о. все расчетные данные о нейронной сети и операции над ней помещаются и хранятся в структурах.
«Ключ» используется в качестве наименования синапса: ("Синапс"+Строка(нн)+"_"+строка(НомерНейрона), где нн - количество нейронов скрытого слоя.
Параметр «Значение» содержит вес соответствующего синапса:
«Получитьвес(ПолучитьВершинуВход(нн), ПолучитьВершинуСкрытую(НомерНейрона))».
Структура для хранения данных значения каждого синапса задается следующим образом:
///////////////////////////////
//веса синапсов (начало)
//Для скрытого слоя
//Вес от Х к Y
//ХiYj
СтруктураСкрытогоСлоя = Новый Структура;
Для нн = 1 По 2 Цикл
Для НомерНейрона = 1 По НейроныСкрытый Цикл
СтруктураСкрытогоСлоя.Вставить("Синапс"+Строка(нн)+"_"+строка(НомерНейрона), получитьвес(ПолучитьВершинуВход(нн), ПолучитьВершинуСкрытую(НомерНейрона)));
КонецЦикла;
КонецЦикла;
//Для выходного слоя
//Вес между Y к С
//YiСj
СтруктураВыходногоСлоя = Новый Структура;
Для НомерНейрона = 1 По НейроныСкрытый Цикл
Для нн = 1 По 2 Цикл
СтруктураВыходногоСлоя.Вставить("Синапс"+Строка(НомерНейрона)+"_"+строка(нн), получитьвес(ПолучитьВершинуСкрытую(НомерНейрона), ПолучитьВершинуВыход(нн)));
КонецЦикла;
КонецЦикла;
////веса синапсов (конец)
///////////////////////////////
В процессе выбора архитектуры нейронной сети количество нейронов скрытого слоя может варьироваться. В коде есть возможность указывать необходимое количество нейронов скрытого слоя в переменной «НейроныСкрытый».
Для обращения и получения имён нейронов в различных слоях используются следующие функции:
///////////////////////////////
//
Функция ПолучитьВершинуВход(ном)
имяХ = "Х" + ном;
Возврат Справочники.ВходнойСлой.найтипонаименованию(имяХ);
КонецФункции
Функция ПолучитьВершинуВыход(ном)
имяУ = "С" + ном;
Возврат Справочники.ВыходноСлой.найтипонаименованию(имяУ);
КонецФункции
Функция ПолучитьВершинуСкрытую(ном)
имяС = "У" + ном;
Возврат Справочники.СкрытыйСлой.найтипонаименованию(имяС);
КонецФункции
//
///////////////////////////////
Для того, чтобы нейронная сеть «правильно» обучилась классифицировать клиентов, она должна в процессе обучения построить функцию-классификатор, которая будет разделать клиентов на 2 множества (рис.11).
Рис.11 «Графическое представление исходной выборки клиентов»
Данные множества можно разделить некоторой функцией. Однако нас интересуют такие множества, которые можно разделить линейной функцией.
Для этого произведем нормировку входных данных по формуле:
Применим этот расчет, как для нормирования значения параметра 1, так и параметра 2.
В результате получим новое нормированное множество входных данных вида:
Рис.12 «Нормированная входная выборка»
После того, как значения обучающей выборки нормированы, необходимо рассчитать значение входного сигнала для каждого нейрона скрытого слоя (рис.13). В качестве функции активации будем использовать обычную сигмоидальную функцию:
Рис. 13«Простая модель расчета выходного сигнала для нейронов скрытого слоя Yi»
Однако в нашем случае в качестве мы будем использовать нормированные значения .
Перед нами стоит вопрос реализации произведения матриц в 1С.
В 1С произведение матриц реализовано путем перебора в двойном цикле элементов двух структур, либо табличных частей.
Т.о. данная процедура, с использованием структуры в качестве массива, реализована в 1С следующим образом:
////////////////////////////////////////////
//РезУ_i-й для скрытого слоя
//РезУi_n, где i-номер нейрона скрытого слоя, n-номер строки обучающей выборки
//в "РезУ" столько строк, сколько записей в ТЧ
Для НомерНейрона = 1 По НейроныСкрытый Цикл
Для кк = 0 по (Объект.ТабличнаяЧасть1.количество()-1) Цикл
Для нн = 1 По 2 Цикл
Ключ = "Синапс"+строка(нн)+"_"+строка(НомерНейрона);
СкрытогоСлоя=СтруктураСкрытогоСлоя[Ключ];
//перебираем ТЧ документа
Если нн=1 Тогда
весСтр0 = Объект.ТабличнаяЧасть1[кк].Число1;
ВесСтр = 2 * ( весСтр0 - мин1 ) / (макс1-мин1) – 1
Иначе
весСтр0 = Объект.ТабличнаяЧасть1[кк].Число2;
ВесСтр = 2 * ( весСтр0 - мин2 ) / (макс2-мин2) - 1
КонецЕсли;
резСумма = резСумма - СкрытогоСлоя*ВесСтр;
КонецЦикла;
РезУ.Вставить("резУ"+строка(НомерНейрона)+"_"+строка(кк), 1/(1+Exp(резСумма)));
резСумма = 0;
КонецЦикла;
КонецЦикла;
//
////////////////////////////////////////////
В данном коде, реализующем произведение матриц, перемножаются матрица нормированных весов входных данных на матрицу значений нейронов скрытого слоя.
Все последующие блоки, в частности, основные блоки алгоритма обратного распространения ошибок:
в которых все рассчитываются путем умножения матриц, реализуются аналогичным образом – перебор и суммирование произведений элементов двух структур во вложенных циклах.
Рассмотрим одинаковые расчеты с использованием системы учета 1С 8.3, на управляемых формах и с использованием Python.
Пример реализации одного из блоков с произведением матриц в системе учета 1С 8.3:
////////////////////////////////////////////
//результат на выходе скрытого слоя
//начало
//В "Рез_и" столько записей, сколько строк в ТЧ документа
Рез_и = Новый Структура;
резСумма_и = 0;
Для нн = 1 По 2 Цикл
Для кк = 0 по (Объект.ТабличнаяЧасть1.количество()-1) Цикл
Для НомерНейрона = 1 По НейроныСкрытый Цикл
Ключ = "резУ" + строка(НомерНейрона) + "_" + строка(кк);
РезУ_= РезУ[Ключ];
Ключ2 = "Синапс"+строка(НомерНейрона) + "_" + строка(нн);
ВыходногоСлоя = СтруктураВыходногоСлоя[Ключ2];
резСумма_и = резСумма_и - ВыходногоСлоя*РезУ_;
КонецЦикла;
Рез_и.Вставить("рез"+строка(нн)+"_"+строка(кк), 1/(1+Exp(резСумма_и)));
резСумма_и = 0;
КонецЦикла;
КонецЦикла;
/////////////////////
Ниже пример аналогичной операции на Python:
self.who += self.lr * np.dot((output_errors * final_outputs * (1.0 - final_outputs))
Данный код на Python, конечно, гораздо менее громоздкий, чем в 1С, т.к. Python обладает встроенными инструментами для работы с матрицами, как я уже писала ранее. Однако работа с Python требует новых знаний и постоянного обращения к данным, хранящимся в базе данных 1С. Обращение к данным 1С и их последующая обработка будут требовать дополнительных работ, что будет вполне соизмеримо с выполняемой работой с матрицами в 1С.
Нами была рассмотрена система, которую в общем виде можно считать системой векторов и рассматривать в контексте векторного поля.
Для нахождения решения мы должны найти решение этой системы векторов, т.е. каждый вектор будет иметь при себе сомножитель , а в качестве решения какой-либо задачи, мы получаем систему векторов в общем виде:
В механике, физике широко используются понятия векторного поля. Примерами векторных полей могут служить также поле силы тяжести, магнитное и электрическое напряжение электромагнитного поля.
В общем виде вектор, это набор параметров какой-либо системы, участвующих в принятии решения. И комплекс таких параметров/векторов образует векторное пространство.
N-мерный вектор и векторное пространство являются предметом изучения линейной алгебры. Так как они носят не только теоретический характер, но и имеют вполне реальное практическое применение в современном мире.
Решение таких задач может не быть алгоритмически, тогда нам на помощь приходят нейронные сети, которые в процессе выполнения некоторого числа итераций, путем подбора настроят коэффициенты изучаемой системы с помощью обучающей выборки, таким образом, что мы будем получать правильные ответы от нашей обученной нейронной сети в дальнейшем для большинства остальных случаев.
В решении такого рода задач наиболее хорошо себя зарекомендовали различные методы машинного обучения, такие как решающие деревья, нейронные сети, логистическая регрессия, метод опорных векторов и другие. Также обширно используются разнообразные способы построения композиций простых алгоритмов.
Метод опорных векторов, применяемый в задачах бинарной классификации, заключающийся в поиске разделяющей гиперплоскости между двумя классами. Главной особенностью данного метода является то, что в случае линейной разделимости выборки, он ищет с максимальной шириной разделяющей полосы.
В нашем решении данные выборки были разделены в момент их нормализации.
Если данные линейно разделимы – все просто, но, как построить классификатор, в том числе и линейно неразделимый?
Для создания нелинейного разделителя используется следующая идея: повышается размерность исходного пространства и строится разделяющую гиперплоскость в новом, «расширенном» пространстве. Разделитель, построенный в «расширенном» пространстве, будет линейным. Однако при отображении его обратно в «обычное» пространство разделитель станет нелинейным, чего мы и добивались. В нашем случае расширение пространства было получено путем нормирования выборки.
Таким образом, мы свели нашу задачу к случаю решения задачи с линейной разделимостью.
При решении задачи варьировалось количество нейронов внутреннего слоя. От 2 до 80. Оптимальные решения были получены на 80 нейронах скрытого слоя.
Мною был приведен пример того, что нейронные сети можно создавать не только с помощью специализированных языков, типа Python, но и с помощью такого инструмента как 1С. В статье показано, что решить вопрос отсутствия функционала для умножения матриц, можно путем использования встроенного типа данных «Структура». Для хранения нейронной сети использовался регистр сведений.
Этот краткий элементарный пример может быть полезным для вашего руководителя, который еще не решил, нужны ему нейросети или нет. Решение о внедрении нейросетей можно принимать сколько угодно долго, откладывать этот вопрос на потом снова и снова. Главное чтобы такое откладывание в итоге не сказалось на жизнеспособности бизнеса.
С чего начать
Начинать внедрение искусственных нейронных сетей на предприятии лучше с простых задач. Оцените эффективность алгоритма рекомендаций ваших интернет-магазинов, логистику между точками выдачи товаров и складами производства, случаи выпадения ассортимента, оборачиваемость и рентабельность продукции, оцените существующий в вашей компании алгоритм формирования плана производства, оптимизации налоговой базы, прогнозирования рисков, оцените эффективность маркетинговых мероприятий, промоакций - их рентабельность и индивидуализацию. Используете ли вы чат-ботов для поддержки клиентов и персонала, используете ли системы контроля качества работы в электронной корпоративной системе ?
Если говорить в общем, то к компетенции нейроматематика на вашем предприятии следует отнести решение на нейросетях прикладных математических задач таких классов, как:
1. Аппроксимация функций.
2. Классификация данных.
3. Кластеризация данных.
4. Решение систем линейных алгебраических уравнений.
5. Решение систем дифференциальных уравнений в частных производных.
В вашей компании задачи таких классов присутствуют во всех областях, где происходит работа:
1) с неточными данными, недостаточно полными или недостаточно достоверными;
2) с изменяющимися по времени данными и в условиях постоянных непредвиденных помех;
3) когда решение принимается несколькими лицами с несогласованными или противоречивыми целями;
4) при работе по изменению антагонистической среды.
Перечислю некоторые из таких задач для нейросетей, в соответствии с указанными классами:
1. Аппроксимация функций.
К такому классу задач относятся все задачи прогнозирования со сложными параметрическими зависимостями, а также задачи анализа и экстраполяции временных рядов, оптимизации: прогноз производительности труда, потребительского спроса, объема продаж, бюджетирование, планирование кадрового резерва, динамики уровня квалификации персонала, рэнкинг паевых инвестиционных фондов с учетом отношения инвестора к риску, прогноз необходимых запасов, план производства, нахождение критического объема выпуска, прогноз действительного фонда времени работы оборудования, планирование потребности в материалах, прогнозирование мероприятий стимулирования продаж и лояльности клиентов и т.д
2. Классификация данных.
Применяется для оценки персонала, оценки клиентов, индивидуализации программ лояльности и стимулирования. Классификация отличается от кластеризации тем, что при кластеризации обучение является неконтролируемым и происходит без учителя, метки класса обучающего множества не известны. При классификации же обучающее множество сопровождается меткой, указывающей класс, к которому относится наблюдение. Кроме того, при классификации новые данные классифицируются на основании обучающего множества, при кластеризации - наоборот: дано множество данных с целью установления существования классов или кластерных данных.
3. Кластеризация данных.
Применяется для выявление оптимальных сочетаний значений показателей для любых параметров бизнес-среды и технологических процессов, выявления схожих производственных ситуаций при которых возникает брак или другие критические явления, нарушения в работе сотрудников и клиентов. Построения и проверки гипотез. Выявления факторов, релевантных для анализа тех или иных объектов предприятия, к примеру, запасов. Переменные, характеризующие предпочтения клиентов. Поиск закономерностей для тех или иных событий. Сегментация рынка. Выбор тестовых рынков для проверки новых гипотез о ценовой политике, ассортименте и т.д. Анализ поведения потребителя, выявление устойчивых наборов мотивов, поведенческие модели покупателей до покупки. Позиционирование с учетом уровня конкуренции в различных сегментах и характеристик, которыми должен обладать товар для того, чтобы попасть в целевой сегмент. Изменения методов наблюдений во время маркетинговых исследований.
4. Решение систем линейных алгебраических уравнений.
Использование нейросетей для решения СЛАУ дает наилучший результат в задачах расчета себестоимости, при составлении балансовых моделей, задачах поиска экстремумов, в том числе условных экстремумов, взаиморасчетах между некоторым множеством юридических лиц, предприятий или отраслей и т.д.
5. Решение систем дифференциальных уравнений в частных производных.
Применяется для построения сложных моделей любых процессов: для задачи освоения производственных мощностей, создания односекторной модели экономического роста Солоу (Solow model), модели изменения зарплаты и занятости, модели рынка с прогнозируемыми ценами и т.д.
Любую задачу, из перечисленных в списке выше, вы можете сразу вскормить вашей молодой, но перспективной нейросети на 1С, и оценить полученный результат.
О ближайших нейросетевых перспективах
Внедрение нейросетей способствует активной трансформации моделей деятельности в бизнесе и, по оценкам WEF за 2018 год, способно в короткие сроки повысить производительность труда в компаниях более чем на 40%. В ближайшем будущем именно эффективное использование технологий машинного обучения и искусственного интеллекта будет определять конкурентоспособность компаний.
Цифровая трансформация обусловлена ростом доли покупок в интернете, большинство потребителей уже привыкли совершать покупки в сети или, как минимум, выбирать наиболее подходящие условия с помощью сайтов компаний.
Глобальная цифровая трансформации традиционных секторов экономики приводит к возникновению новых рынков и ниш. Новые же бизнес-модели, построенные на использовании искусственного интеллекта и машинного обучения, являются максимально клиентоориентированными:
а) потребность клиента предсказывается на уровне ценностей;
б) большой акцент делается на своевременной доставке;
в) клиент оплачивает не сам продукт, а время пользования ним.
Для новых бизнес-моделей ключевым источником создания стоимости становится автоматизированная интеллектуальная обработка больших данных: транзакции происходят в режиме реального времени, многие одновременно, их сотни или тысячи, поэтому управленческие решения принимают в таких условиях алгоритмы, а не люди.
Нейросетевые методы, в частности кластеризация и классификация, помогают найти новые источники создания ценности на основе изучения цифровых портретов потребителей и паттернов их экономического поведения.
Нейросети превращают данные о клиентах в основной актив компании, а также позволяют развиваться платформам открытых данных, типа Open Banking, которая позволяет третьим сторонам анализировать или использовать данные, интегрировать различные приложения и сервисы, тем самым повышая качество клиентского обслуживания.
Создание омниканального пространства, синхронизация данных и информации во всех цифровых и физических каналах взаимодействия для удовлетворения потребностей клиентов в любое время и в любом месте - это задача, управление которой требует ресурсов искусственного интеллекта и машинного обучения.
Применение нейронных сетей существенно повышает скорость вывода нового продукта на рынок и делает этот параметр главным фактором конкурентоспособности. Итерационный подход к обновлениям и улучшениям позволяет интеллектуальным компаниям адаптироваться под изменяющиеся потребности клиентов благодаря скорости и глубине анализа поставщиков, их быстрой смены и быстрого интеллектуального тестирования новых концепций и товаров. Так компания Tesla запускает новые опции и исправляет претензии в режиме реального времени, удаленно через обновления программного обеспечения. Facebook тестирует и запускает обновления для отдельных групп пользователей дважды в день и т.п.
Перечислю новые категории бизнес-моделей, для которых нейросетевые технологии являются ключевыми:
1) Интернет-платформы, обеспечивающие прямое взаимодействие продавцов, покупателей и партнеров-поставщиков. В зависимости от продукта и рыночного сегмента такие платформы могут быть коммуникационными, социальными, медиа, поисковыми, операционными и контролируемыми, сервисными, шеринговыми, продуктовыми, транзакционными и т.д. Их использование компанией минимизирует транзакционные издержки и расширяет возможности совместного потребления товаров и услуг;
2) Бизнес-модель «как сервис» — это бизнес-модели, основанные на использовании ресурсов взамен владения ими (среди них Software-as-a-Service (SaaS), Infrastructure-as-a-Service (IaaS) и др.). Сегодня возникают все новые разновидности сервисных моделей, в том числе Robots-as-a-Service, City-as-aService. Сервисные модели способствуют персонализации товаров и услуг, позволяя клиенту потреблять необходимый продукт в требуемых ему объемах для достижения желаемого результата;
3) Бизнес-модели, в основе ценообразования которых лежит достижение результатов и эффекта для клиента, в том числе на основании потребления комплексных продуктов и услуг. Такие бизнес-модели по аналогии с сервисными часто называют Product-as-a-Service (PaaS). К примеру, компания BASF помимо поставок удобрений предоставляет клиентам детальные рекомендации, какие именно удобрения использовать, в каком объеме и на каких растениях в данный период времени, исходя из мониторинга и анализа данных о почве, здоровье растений, погодных условиях и других параметрах;
4) Краудсорсинговые модели (краудсоурсинг, краудфандинг, краудлэндинг, “открытые инновации”, “экономика доверия”), базирующиеся на привлечении внешних ресурсов (денежных средств, людей, идей и др.) для реализации бизнес-процессов R13; внедрения инноваций, разработки продуктов, производства, маркетинга и продаж и т.д.;
5) Бизнес-модели, основанные на монетизации персональных данных клиентов, когда бесплатные для пользователей сервисы продают их данные на других потребительских сегментах.
Компании использующие перечисленные выше бизнес-модели и применяющие такие технологии, как искусственные когнитивные системы, сотрудничающие роботы, изделия с переменной логикой, персонализированные системы, развивающиеся и самоорганизующиеся системы - с помощью облачных вычислений оптимизируют сбор и хранение данных, а нейросетевые технологии позволяют им проводить глубокую обработку аккумулированных данных, строить алгоритмы поведения и предсказательные модели.
Еще один важный новый тип бизнес-моделей связан с трансформацией e-commerce в a-commerce, т.н. аutomated commerce, в рамках которой продавец с помощью нейросетей строит алгоритмы, описывающие модель потребления клиента, и затем автоматически доставляет ему товар на основании спрогнозированной потребности.
Технологии предиктивной аналитики также нацелены на автоматическое построение алгоритмов, описывающих потребление продуктов и услуг, и интеллектуальное управление, с учетом данных прогнозов, процессами производства и доставки товаров к клиентам с участием партнеров. Пример - модель private labeling, когда контрактный производитель производит товар и отправляет его напрямую потребителю.
Приложения IoT (интернета вещей) в совокупности с нейросетями позволяют оценить параметры использования продукции, достигнутые эффекты и способствуют развитию модели серветизации. На принципе серветизации построена популярная модель каршеринга, оплата автомобильной страховки в зависимости от преодоленных километров, в промышленности — оплата времени использования оборудования или произведенной на нем продукции. Компания Kaiser выставляет счет своим клиентам не за компрессорное оборудование, а за произведенный спрессованный воздух. В рамках программы Rolls-Royce TotalCare компания поставляет клиентам авиадвигатели, но оплата производится за часы, в течение которых двигатель работает. В предоставляемый сервис входит и мониторинг работы из дата-центра Rolls-Royce и обслуживание двигателя.
В описанных бизнес-моделях, достижимых за счет внедрения нейросетей, превалируют нематериальные активы, а необходимость повышения лояльности за счет предоставления кастомизированных и/или расширенных сервисов, продиктованная простотой перехода потребителей от одной компании к другой, обеспечивается за счет применения методов машинного обучения.
Дигитализация - уже не маркетинговый ход, а единственно возможный ключ к качественным преобразованиям рынка.
Большинство цифровых интеллектуальных платформ действуют на многочисленных рынках и цепочки создания стоимости позволяют им не ограничивать свой бизнес определенными географическими регионами и рыночными сегментами.
Развитие интеллектуальных платформ позволяет также расширить ценностное предложение для потребителя через партнерство с другими поставщиками. Например, китайский гигант Alipay создал единый сервис для путешественников, объединив в систему банки, гостиницы и платформу Uber 3.0.
В наше время, под влиянием новых достижений в сфере AI и ML, происходит глобальная дигитализация бизнеса – т.е. кардинально изменяется модель бизнеса крупных, средних, малых предприятий коммерческого и государственного секторов. Компании, которые сейчас не спешат с внедрением систем искусственного интеллекта, серьезно рискуют своим будущим. Такие компании могут не справиться с переменами, которые вызваны развитием технологий и их все возрастающим проникновением во все сферы жизни.
Консалтинговая компания Forrester Research рекомендуют генеральным директорам не отдавать важнейший процесс цифровой трансформации на откуп CIO (директорам по информационным технологиям), а заняться им самим вместе с директорами по маркетингу.
Следует понимать, что на предприятиях цифрового интеллектуального бизнеса информационные технологии не просто подспорье, а ядро бизнеса и важнейший инструмент деятельности компании. Цифровой бизнес строится на базе IT и AI, а не использует эти технологии только лишь для улучшения условий работы собственного персонала.
Основное отличие цифрового бизнеса от автоматизации - это реализация новых возможностей на основе новых знаний о бизнес-среде, вместо простого сокращения затрат. Можно также резюмировать, что нейросети помогают человеку освободиться от скучных задач и заниматься только самым интересным — стратегией.
Вывод
Итак, как мы видим, бизнес нуждается в дигитализации, а внедрение нейросетей является ключевой задачей этого процесса. Внедрение нейросетей в системы автоматического управления, диагностики и прогнозирования обеспечивает существенное превосходство над аналогичными системами, не обладающими возможностями нейровычислений.
Воспроизведение сложных нелинейных зависимостей нейросетями, позволяет считать их универсальными аппроксимирующими системами, которые дают стандартный способ решения многих нестандартных задач. Нейросети можно по праву назвать наилучшими аппроксиматорами функций.
Вместо стандартного кодинга, нейросеть, как программный продукт, развивается за счет обучения. Отыскание решения задачи нейросетью – это составление обучающих примеров. Таким образом, для задач решаемых с помощью нейровычислений, труд программиста в большей степени замещается новым трудом – учителя-исследователя. Как сказали в Wired : "Мы не будем программировать компьютеры, мы будем дрессировать их, как собак!"
Нейросети особенно эффективны там, где нет чётко сформулированных правил поиска решения и нет строгой формальной постановки задачи - когда трудно построить явный алгоритм, нейросеть успешно справляется с задачей.
Высокая помехоустойчивость нейросети обеспечивается её структурной избыточностью: нейросеть продолжает функционирование даже в случае отказа части её элементов.
Вы приняли решение о дигитализации вашего бизнеса и на вашем предприятии есть 1С ? Стройте нейросети в 1С! Начинайте с того, что есть. Дорога в digital-мир возникает под ногами идущего.