1C и Нейросети - как стартануть

Меня тут очередной раз выловили по телефону и спросили делаем ли мы что-то в зоне BI - последний доклад на Инфостарте прошел не зря. Здесь на форуме я оставлю текстом, чтобы давать потом ссылку, и не объяснять в 10-тый раз по телефону.

Ответ “Да делаем” достаточно простой, но применительно к искусственному интеллекту, машинному обучению и мышлению над данными (data mining) нужно еще рассказать как мы это делаем. Оставлю эту тему здесь - чтобы если вдруг к вам прибегут заказчики с вопросом “Прикрути искусственный интеллект к 1С”, вы возможно воспользуетесь моими советами.

Обычно - все начинают со штудирования книг 4-го и 5-го курсов по нейронным сетям, генетическим алгоритмам и возможно цепям Маркова и пытаются начать с математики. Я (мы) делаем не так.

Нулевая фаза

проблемы в зоне искусственного интеллекта лежат в зоне доверия и в зоне сокращения времени принятия решений

Выбор заказчика

под задачи такого рода важен заказчик и его доверие к алгоритмам подобного рода - как его выбрать: да очень просто. У заказчика должно быть:

  • образование при котором изучалась дисциплина математическая статистика - на дисциплине менеджмент организации это 4-5 семестр обучения.

Соответственно - с таким заказчиком можно использовать нужные нам термины: “средне-гармоничное”, “медиана” и т.д. А также не будет вызывать проблем термины “дисперсия” и “математическое ожидание”

В ритейле например без подобных знаний невозможно будет обсудить расчет “Зкономической точки заказа” - а там формулы: ссылка на формулы тут например

Выбор СППР и планирование денег

СППР - это система поддержки принятия решения. Если заказчик (тот кто платит деньги) понимает задачу (смотри пункт выше) начинается изобретение того - на чем мы собираемся зарабатывать: то есть чем нам поможет функционал BI.

В зоне искусственного интеллекта сделать можно ВСЁ - вопрос только затрат. А если проблему можно решить любую, но затраты могут быть неподъемные - выбор задачи лежит в плоскости ответа на следующие 2 вопроса

  • кому мы хотим помочь в быстром принятии решений ?
  • кто будет принимать управленческие решения на базе рассчитанных значений ?

причем второй очень интересный, например вам прилетела задача “Рассчитать прогноз поступления денежных средств по платежному календарю”, после чего такому заказчику следует задать вопрос

  • Предположим я построил прогноз и вывел его на экран, что будет дальше ? Кто и куда побежит ? Сколько мы теряем денег на том что у нас нет прогнозироваться ?

Почему это так важно ? ОЧЕНЬ РЕДКО: когда управленческое решение доверяют самому алгоритму, то есть например:

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

На этом собственно всегда заканчивается нулевая фаза и так будет собственно по любой BI задаче.

Первая фаза

после того как Вы точно убеждены что с заказчиком можете разговаривать на языке математической статистики и задача четко категоризована по типу “Параметр для принятия решения человеком” или “Параметр для принятия решения машиной” стоит перейти к ИТ специалисту

Глоссарий архитектора

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

Применительно к нейросетям это:

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

ну и т.д.

А также типы вариантов обучения:

  • с учителем - аллегорически когда есть человек нажимающий кнопки “Согласен почему/Не согласен и почему”
  • без учителя - когда никаких кнопок нет, а есть только бесконечно наращиваемый опыт нейросети
  • с подкреплением (мой любимый метод) - когда нейросеть обучается сами, но максимально поощряется за нахожление правильного результата. То есть есть кнопка “Молодец, возьми пирожок” и всё.

Соответственно - такой глоссарий нужно понять, принять и простить :wink: И еще обратите внимание - приземлить на задачу. Что будет нейроном, кто будет учителем и т.д.

Качество данных

Почти всегда для задач на интеллект существуют 2 проблемы

  • входящий поток данных будет иметь ошибки
  • части данных необходимых для обучения будет всегда не хватать

Отсюда готовьтесь к двум вещам

  • результаты запуска алгоритма техже нейросетей приведут к задачам для пользователей по наведению порядка в данных
  • понадобятся новые метаданные в 1С или в сторонних сервисах - причем они будут служебными, типа “СведенияОбУровнеСервисаПоЗаказамПокупателей”

Выбор платформы

Прототип можно и нужно строить на 1С - это делается быстро и позволяет получить первые результаты.

Например - распознавание документов поставщиков, делается с помощью 2 opensource консольных утилит за пару недель. Если конечно конфигурация на базе БСП и там включен функционал “Извлечение текста из файлов” - доработать придется его.

А вот затем придется выбрать ля себя - какая платформа вам удобней F#(C#), Java (Scala, Clojure), Node.JS, Python и кстати - а где хранить данные ? в PostgreSQL или в hadoop или <гдеТоЕщёВтехнологияхЯндекса>

И только вот тут стоит начинать штудировать учебники 4-5 курса ;-). Надеюсь кому-то мо заметка поможет.

в порядке заключения

Я тут готовлюсь потихоньку к вебинарам по “онлайн интеграции” - там как раз просили про онлайн бизнес-аналитику рассказать: вот собственно вышеуказанная информация будет там же использована.

@Gleb_Stalnoy - обрати внимание: понадобится помощь в реализации BI, пиши в личку ;-).

старое видео - также актуально

6 Симпатий