Меня тут очередной раз выловили по телефону и спросили делаем ли мы что-то в зоне BI - последний доклад на Инфостарте прошел не зря. Здесь на форуме я оставлю текстом, чтобы давать потом ссылку, и не объяснять в 10-тый раз по телефону.
Ответ “Да делаем” достаточно простой, но применительно к искусственному интеллекту, машинному обучению и мышлению над данными (data mining) нужно еще рассказать как мы это делаем. Оставлю эту тему здесь - чтобы если вдруг к вам прибегут заказчики с вопросом “Прикрути искусственный интеллект к 1С”, вы возможно воспользуетесь моими советами.
Обычно - все начинают со штудирования книг 4-го и 5-го курсов по нейронным сетям, генетическим алгоритмам и возможно цепям Маркова и пытаются начать с математики. Я (мы) делаем не так.
Нулевая фаза
проблемы в зоне искусственного интеллекта лежат в зоне доверия и в зоне сокращения времени принятия решений
Выбор заказчика
под задачи такого рода важен заказчик и его доверие к алгоритмам подобного рода - как его выбрать: да очень просто. У заказчика должно быть:
- образование при котором изучалась дисциплина математическая статистика - на дисциплине менеджмент организации это 4-5 семестр обучения.
Соответственно - с таким заказчиком можно использовать нужные нам термины: “средне-гармоничное”, “медиана” и т.д. А также не будет вызывать проблем термины “дисперсия” и “математическое ожидание”
В ритейле например без подобных знаний невозможно будет обсудить расчет “Зкономической точки заказа” - а там формулы: ссылка на формулы тут например
Выбор СППР и планирование денег
СППР - это система поддержки принятия решения. Если заказчик (тот кто платит деньги) понимает задачу (смотри пункт выше) начинается изобретение того - на чем мы собираемся зарабатывать: то есть чем нам поможет функционал BI.
В зоне искусственного интеллекта сделать можно ВСЁ - вопрос только затрат. А если проблему можно решить любую, но затраты могут быть неподъемные - выбор задачи лежит в плоскости ответа на следующие 2 вопроса
- кому мы хотим помочь в быстром принятии решений ?
- кто будет принимать управленческие решения на базе рассчитанных значений ?
причем второй очень интересный, например вам прилетела задача “Рассчитать прогноз поступления денежных средств по платежному календарю”, после чего такому заказчику следует задать вопрос
- Предположим я построил прогноз и вывел его на экран, что будет дальше ? Кто и куда побежит ? Сколько мы теряем денег на том что у нас нет прогнозироваться ?
Почему это так важно ? ОЧЕНЬ РЕДКО: когда управленческое решение доверяют самому алгоритму, то есть например:
- для задачи экономической точки заказа сделать алгоритм который будет автоматически создать заявки на отгрузки и заявки на поступления напрямую на склад и напрямую поставщикам, без участия человека. Почти всегда ставят контролера человека, а не наблюдателя.
- для задачи “прогноз поступления денежных средств” сделать алгоритм который автоматически будет перечислять свободные деньги на расчетный суточный счет-вклад с процентами за хранение. Почти всегда ставят контролера человека, а не наблюдателя.
На этом собственно всегда заканчивается нулевая фаза и так будет собственно по любой BI задаче.
Первая фаза
после того как Вы точно убеждены что с заказчиком можете разговаривать на языке математической статистики и задача четко категоризована по типу “Параметр для принятия решения человеком” или “Параметр для принятия решения машиной” стоит перейти к ИТ специалисту
Глоссарий архитектора
В зоне искусственного интеллекта используется несколько другой глоссарий, нежели чем массивы, таблицы значений или не дай бог регистр расчета.
Применительно к нейросетям это:
- нейрон, синапс, тензор
- слой сети
- шум/точность/сверхточность
- функция правдоподобия
- функция прямого и обратного расппространения
- функция пути нахождение решения
- градиенты
ну и т.д.
А также типы вариантов обучения:
- с учителем - аллегорически когда есть человек нажимающий кнопки “Согласен почему/Не согласен и почему”
- без учителя - когда никаких кнопок нет, а есть только бесконечно наращиваемый опыт нейросети
- с подкреплением (мой любимый метод) - когда нейросеть обучается сами, но максимально поощряется за нахожление правильного результата. То есть есть кнопка “Молодец, возьми пирожок” и всё.
Соответственно - такой глоссарий нужно понять, принять и простить И еще обратите внимание - приземлить на задачу. Что будет нейроном, кто будет учителем и т.д.
Качество данных
Почти всегда для задач на интеллект существуют 2 проблемы
- входящий поток данных будет иметь ошибки
- части данных необходимых для обучения будет всегда не хватать
Отсюда готовьтесь к двум вещам
- результаты запуска алгоритма техже нейросетей приведут к задачам для пользователей по наведению порядка в данных
- понадобятся новые метаданные в 1С или в сторонних сервисах - причем они будут служебными, типа “СведенияОбУровнеСервисаПоЗаказамПокупателей”
Выбор платформы
Прототип можно и нужно строить на 1С - это делается быстро и позволяет получить первые результаты.
Например - распознавание документов поставщиков, делается с помощью 2 opensource консольных утилит за пару недель. Если конечно конфигурация на базе БСП и там включен функционал “Извлечение текста из файлов” - доработать придется его.
А вот затем придется выбрать ля себя - какая платформа вам удобней F#(C#), Java (Scala, Clojure), Node.JS, Python и кстати - а где хранить данные ? в PostgreSQL или в hadoop или <гдеТоЕщёВтехнологияхЯндекса>
И только вот тут стоит начинать штудировать учебники 4-5 курса ;-). Надеюсь кому-то мо заметка поможет.
в порядке заключения
Я тут готовлюсь потихоньку к вебинарам по “онлайн интеграции” - там как раз просили про онлайн бизнес-аналитику рассказать: вот собственно вышеуказанная информация будет там же использована.
@Gleb_Stalnoy - обрати внимание: понадобится помощь в реализации BI, пиши в личку ;-).
старое видео - также актуально