Нейросеть для прогнозирования: универсальная обработка и методика для любой конфигурации. Примеры прогнозирования бизнес процессов
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
| Наименование | Скачано | Купить файл | По подписке PRO |
|---|---|---|---|
|
НейросетьПрогнозирование (упр. форма) (основная обработка)
.epf 21,40Kb
213
|
213 | 2 500 руб. Купить | 1 SM Скачать |
|
НейросетьПрогнозирование (обычная. форма) (основная обработка)
.epf 20,89Kb
86
|
86 | 2 500 руб. Купить | 1 SM Скачать |
|
Пример линейной сети
.epf 13,65Kb
125
|
125 | 2 500 руб. Купить | 1 SM Скачать |
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Немного занимательной теории и практики
Нейросеть можно рассматривать в виде черного ящика с некоторыми входами и выходами. Ключевой особенностью, привлекающей исследователей, является то, что она умеет обучаться и абстрагировать входные данные, т.е. в некотором смысле «думать». Чаще мы слышим, что их используют для распознавания чего-либо (изображения, голоса), но меня в рамках данной работы интересует «распознавание закономерностей» входных данных. А конкретно – распознавание нейросетью экономических данных и параметров бизнес процессов – того, чем наполнены базы данных 1С.
Т.е., говоря математическим языком, нейросеть может научиться отображать любую функцию входных сигналов. Это может быть как простейшая зависимость (линейная, парабола), так и то, что с помощью математической функции выразить невозможно(как раз то, что и бывает в жизни). Т.е. сеть может научиться понимать любой принцип и использовать его на данных, которых не было в обучающей выборке, и это не простое запоминание примеров и не простая экстраполяция. Это гораздо больше того, что можно получить с помощью обычной статистики.
Пример 1
Для проверки этой гипотезы я сделал самую простую сеть, состоящую из линейных нейронов. У нее 1 вход, 1 выход и 10 нейронов вообще без функции активации (тестовая обработка ЛинейноеПрохождение). И провел с ней эксперимент.
Важно! В тестовой обработке я не делал нормализацию(в отличии от рабочей), поэтому на вход надо подавать числа от 0 до 1: 0.1, 0.2 и т.д.
Я подавал на вход число от 0 до 1, а на выход это число, умноженное на «2» как на картинке. И сеть, обучившись, понимает и это, т.е. понимает, что 5*2=10,6*2 = 12 и т.д.! При этом само действие умножение нигде не прописано в явном виде. Т.е. сеть, обучившись, поняла принцип. С таким же успехом можно научить ее «делить на 3», «прибавлять 5» и т.д. Фантастика! Рекомендую попробовать самим.
Пример 2.
На самом деле линейные нейроны и однослойные сети могут мало чего. Если я ничего не путаю, то вроде есть даже теорема, доказывающая, что линейные нейроны могут отобразить только линейную зависимость. По крайней мере если попробовать вводить что-то типа «корень из двух», «корень из 3х» и т.д. а потом проверить результат. то получается совсем пальцем в небо. К тому опять же доказано, что количество слоев в такой сети также не имеет значения (что один что 2 – все равно), а это уже не интересно, т.к. именно в скрытых слоях происходит магия.
Поэтому 2-й пример я предлагаю сделать на основной рабочей обработки НейросетьПрогнозирование. Которая построена на нелинейных нейронах и имеет уже несколько входов и полноценный скрытый и выходной слой (об этом подробно в следующем разделе)
Кроме того, особенно важен это пример для того, чтобы проверить, насколько обработка умная и насколько ей можно доверять прогнозировать важные данные. Ведь если вы предложите коммерческому директору инструмент, который, например, будет устанавливать цену товара, ему захочется понять, насколько он точен.
Эксперимент: я подаю на входы 2 числа, а на выход – их сумму.
Естественно изначально сеть не умеет ни складывать, ни производить никакие другие математические действия. Ее нейроны на момент обучения инициализированы случайными весами. Тем не менее, проанализировав выборку 30 000 раз или больше, она успешно находит зависимость и обучается сложению! С таким же успехом ее можно научить чему угодно. Попробуйте сложени3 3х чисел, умножение, корни что угодно… Конечно, калькулятор из нее так себе, т.к. точность низкая, но сам факт того, что сеть сделала нужные выводы и распознала зависимость, поистине потрясающий! Можно попробовать задать меньше итераций обучения, тогда будет результат с большой погрешностью, но все равно сеть будет понимать, что 1 + 1 меньше, чем 5+5. А если повысить количество итераций, то сеть приблизится к совершенству.
Как устроены нейросети в обработках. Немного сухих фактов
Для Примера 1 я использован совсем примитивную сеть с линейными нейронами без какой либо функции активации. Т.е. каждый нейрон просто умножает поступающий сигнал X на некий вес w и на выходе это все суммируется сумматором который вообще ничего не умножает а просто суммирует входы. Веса изначально задаются случайными числами, а потом вычисляется Общая ошибка между входом и выходом сети и веса корректируются на эту погрешность. Т.н. градиентный спуск. Т.е. сеть при создании содержит случайные веса, потом ей подают много раз входную выборку и она настраивает веса таким образом чтобы ошибка между входом и выходом была минимальна при любых значениях входной выборки. В этом заключается принцип работы любых нейросетей, даже совсем других типов. Веса – это и есть память сети. В нашем мозге это соотвествует соединению между нейронами т.е. синапсам. Вот ее схема:
В следствии своей простоты такая быстро обучается, а в следствии своей линейности она здорово вычисляет линейные функции – без всякой погрешности в отличии от второй сети. Такие сети используют для обработки сигналов и удаления шумов например.
Вторая сеть более сложная – она имеет 3 слоя – входной, выходной и скрытый. Это классический многослойный перцептрон (MLP) , который известен с 60х годов и в там виде он наверняка знаком всем студентам. Сеть состоит из элементов с нелинейной функцией активации (у меня используется «сигмоид», что тоже является распространённым вариантом). На картинке взятой из интернета изображена примерная схема:
Определенную сложность применительно к задаче прогнозирования представляет из себя нормализация и масштабирование входных данных и интерпретация результата. Т.к. сигмоид работает в диапазоне от 0 до 1 на выходе также от 0 до 1. Значит данные надо нормализовать на входе и денормализовать на выходе, т.е. сначала привести к диапазону 0-1 а потом развернуть в нормальное число.
Почему я написал это на 1С а не использовал сторонние фреймворки для анализа данных?
- Чтобы было легче встраивать в решения и не зависеть от сторонних продуктов. Например встроить в форму заказа предсказание на какую скидку рассчитывает клиент или какой товар ему предложить в этот раз
- У нейросетей есть особенность – чтобы их использовать надо их понимать. Код на языке 1С дает преимущество для 1С-программиста для понимания механики работы
- Наконец, это несложно запрограммировать на языке 1С и 1С вполне «тянет» эту задачу на обычных компьютерах. В 1С теперь есть все необходимые функции – случайное число, экспонента и другие математические функции.
Методика применения в реальной жизни
Особенность нейросетей заключается в том, что ее параметры надо подбирать под реальную задачу. Видимо из-за этого они не применяются в массовых продуктах. Подобными вещами занимаются computer scientists (к сожалению не знаю чему это понятие соответствует у нас) Но на мой взгляд тут нет ничего сложного, и принцип можно сформулирует так: если подобрать методом научного тыка такие параметры сети, чтобы она распознавала известные значения из выборки с той точностью, которая вас устраивает(а проверить это легко т.к. результат тоже известен), то можно считать что она обучена хорошо и неизвестные значения она также хорошо будет распознавать. Т.е. примерно как в Примере 2 – ввести данные, проверить на уже известных Вам, но не известных сети данных (т.е. те что не вводились в выборку) и посмотреть то что будет.
Я бы сформулировал тут такие этапы:
- Выбрать данные, которые влияют на прогноз. Например, размер скидки и сезон влияет на увеличение выручки, а размер задолженности нет (хотя может тоже влияет?)
- Загрузить обучающую выборку с помощью запроса на закладке «Запрос». Она должна отражать суть – т.е. в ней должны быть характерные данные. Не обязательно загонять туда всю статистику – можно ограничиться выборкой «Первые 10», «Первые 100». Опять же состав выборки – тоже требует некоторого осмысленного выбора
Логические значения (да/нет) лучше кодировать как -1 и 1. А вот с дискретными так. Допустим у вас есть 4 сезона. Неправильно будет подавать на 1 вход «зима»=1, «весна»=2, «лето»=3, а правильнее будет задействовать 4 входа (1,0,0,0) (0,1,0,0), (0,0,1,0). А вот если будет только «высокий» и «низкий» сезон то сгодится 1 вход с «1»и «0»
- Выбрать количество нейронов скрытого слоя. Тут есть интересная особенность: если выбрать слишком мало, то сеть будет «тупой» - она не сможет выучить сложную зависимость (только очень простую), а если слишком много то сеть будет не «думать» а «зазубривать» возможные варианты. Нужно что то среднее – чтобы нейроны конкурировали и «думали». Это подбирается под задачу. Четкого принципа тут нет.
Конечно есть еще много других нюансов: выбор количества слоев, выбор типов нейронов в слоях, топология связей между нейронами и вообще разные типы нейросетей, разные алгоритмы обучения. Об этом есть целая наука и она постоянно развивается. Но конкретно выбранный тип сети довольно неплохо справляется с задачами, с которыми мне приходится сталкиваться на 1С.
Как работать с обработкой
- Указать файлы в которые будет сохраняться рассчитанные веса сети(синапсы) и границы интервалов. Т.к. большие сети рассчитываются довольно долго их можно рассчитать 1 раз, а потом использовать или, например, посылать другим пользователям
- Задать параметры сети и количество итераций
- Заполнить вручную или запросом обучающую выборку и границы интервалов и обучить сеть.
- Далее пользоваться: вводить данные на закладке Прогнозирование и получать прогноз
Примеры использования в конфигурациях 1С
Просто кратко перечисляю список нескольких возможных вариантов использования конкретно этой сети и обработки (часть из собственной практики)
- Предсказать количество продаж товара с выбранной ценой в определенный сезон (розница). На вход подаются цена товара в течении дня и сезон. На выход – продажи в течении дня
- То же что и в предыдущем примере но еще в сочетании с наличием в ассортименте товаров-конкурентов (тоже розница). Вот тут хорошо себя проявляет сеть т.к. статистикой уже сложно просчитать
- Предложение списка товаров покупателя на основе его предпочтений. Товар имеет ряд свойств. Под каждого покупателя заводится своя сеть (храниться в контрагенте) которая обучается на основе фактов продаж товара с введенными свойствами.
- Оценка риска давно используется во всех банках и страховых, но принцип и возможности конкретно этой сети позволяют сделать свою оценку на любой базе 1С под свои задачи
- Примерно как с оценкой риска можно обучить сеть на то какою скидку дать покупателю чтобы он купил товара максимально исходя из его предыдущих покупок и некоторых специфических для отрасли параметров.
- Вычисление сроков ожидаемых платежей(исходя из текущей задолженности, даты последнего платежа и других параметров платежной дисциплины) для прогнозирования бюджета
Заключение
Как оказалось 1С без всяких скидок хорошо справляется с обработкой нейросетями. Такая реализация как у меня не юзает базу данных в процессе обучения и использования вычисляя все в памяти. Кстати сохранять веса в файл тоже удобно – их можно посылать в другие места. Например обучить на одном магазине и послать в только что открывшийся магазин. Или выложить тут на Инфостарте.
UPD 27.11.18 Опубликован пример отчета : //infostart.ru/public/950619/
Я буду рад если кто то присоединится к этому проекту и расскажет о своём применении нейросетей, задаст вопросы.
Вступайте в нашу телеграмм-группу Инфостарт
нейросеть прогнозирование данных прогнозирование на нейросети MLP
См. также
Нейросети Системный администратор Разработчик Аналитик Бухгалтер Пользователь Руководитель проекта 1С 8.3 1С:Документооборот 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Платные (руб)
Подключите ИИ к 1С и решайте рабочие задачи обычными словами. От работы с данными до доработки конфигурации через расширения, всё в привычном чате с ИИ-помощником. Теперь с поддержкой DeepSeek Harness, Kimi Code и Kimi Work, доступных в России без VPN.
15990 руб.
30.07.2026 19892 42 4
SALE! %
Банковские операции Обмен с интернет-банком Мастера заполнения Нейросети Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)
Корректируйте банковские документы быстро и легко! Создайте правило обработки — и оно автоматически применится при загрузке выписки (отбор по любому реквизиту или регулярному выражению). Решение заполняет расшифровку платежа, комиссию эквайринга, подбирает ведомости на выплату зарплаты, помечает дубли из банка на удаление и многое другое. Доплачивать за алгоритмы не нужно — они включены в решение. Обработка работает при загрузке из файлов клиент-банка и через DirectBank. Новое — искусственный интеллект: модель приводит нестандартные назначения платежа к виду, понятному алгоритмам, а ИИ-ассистент прямо в 1С консультирует по решению и разбирает код правил и алгоритмов. Поддерживаются локальные и облачные OpenAI-совместимые модели — данные могут не покидать ваш контур.
17500 руб.
20.12.2024 21768 107 32
Инструментарий разработчика Нейросети Платные (руб)
Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.
15250 руб.
25.08.2025 77410 147 41
SALE! 30%
Нейросети 1С 8.3 1С:Бухгалтерия 2.0 1С:Бухгалтерия 1.6 1С:Бухгалтерия 3.0 1С:Управление холдингом 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Документооборот Россия Платные (руб)
Расширение добавляет в 1С чат с ИИ-агентом. Пользователь пишет вопрос обычными словами: «какие УПД не подписаны?», «какой НДС к уплате за квартал?», «что висит на согласовании дольше недели?», а агент сам строит запросы к базе с правами этого пользователя и отвечает цифрами, таблицей, диаграммой или файлом Excel. Плитки «Аналитик», «Бухгалтер» и «Руководитель» дают сводку по базе одной кнопкой. Агент разбирает ошибки по скриншоту, сверяет прайсы поставщиков и проверяет коды маркировки. С версии 1.0.21 спрашивать можно и с телефона: QR-код в окне агента, без установки приложения. Работает в УТ 11, КА 2, ERP 2, БП 3.0, УНФ 3.0, Документооборот 3.0 и Альфа-Авто 6, ставится одним расширением.
18300 руб.
05.10.2026 4046 15 9
Распознавание документов и образов Нейросети 1С:Предприятие 8 1С 8.3 1С 8.5 1C:Бухгалтерия 1С:Зарплата и Управление Персоналом 3.x Беларусь Россия Казахстан Армения Платные (руб)
ИИ-сканер документов с REST API для интеграции с 1С и корпоративными системами. Извлекайте данные из счетов, паспортов, дипломов, патентов и трудовых книжек за секунды. Точность человека - скорость машины. Приложение поддерживает восемь типов документов, четырех провайдеров ИИ (имеется возможность использования локальных ИИ), локальный REST API и экспорт в JSON. Важно! модель должна поддерживать функцию Vision (распознавание файлов и картинок). Запускайте используя локальные ИИ, без подписок и ограничений
6100 руб.
24.08.2026 1523 3 0
Инструментарий разработчика Нейросети Системный администратор Разработчик Руководитель проекта 1С 8.3 Платные (руб)
Обработка заменяет ФИО, организации, ИНН, ИИН, БИН, ОГРН, КПП, БИК, счета и IBAN, паспорта, СНИЛС, адреса, телефоны, почту и суммы на правдоподобные выдуманные перед отправкой данных в ChatGPT, Claude или YandexGPT, а потом расшифровывает ответ модели обратно, подставляя настоящие имена и настоящие числа. Возвращаются и те итоги, которые модель посчитала сама: суммы масштабируются одним коэффициентом, поэтому пропорции и доли переживают обезличивание. Словарь замен хранится в самой базе и подхватывается автоматически, даже если обработку закрывали. Реквизиты России и Казахстана, любая конфигурация от 8.3.24, без единой зависимости.
14640 руб.
07.08.2026 2259 3 0
Нейросети Разработчик Бесплатно (free)
Как автоматически создавать маркетинговые ролики для собственных IT-продуктов, используя ИИ? В предыдущей статье я рассказывал о Zapis — приложении для работы с речью и текстом. Теперь расширил его возможности: добавил конвейер создания видео, в котором ИИ-агент изучает материалы проекта, готовит сценарий, подбирает реальные скриншоты и пишет текст диктора. Zapis отвечает за озвучку, а Remotion — за анимацию и сборку. На примере обмена ПУТ на OneBase -> 1С:Бухгалтерия 3.0 покажу готовый 83-секундный ролик из восьми сцен. Разберём, как устроен процесс, зачем нужны настоящие скриншоты интерфейса, как синхронизируются речь и изображение и что сохраняется для повторной сборки после изменений в продукте. Исходный код и инструкции доступны в открытом репозитории Zapis.
06.11.2026 586 Ibrogim 2
Нейросети Разработчик 1С 8.3 Бесплатно (free)
Как подключить ИИ-агента к разработке 1С на примере обработки «Почему не закрывается месяц»: одна папка, копия демобазы и несколько скриптов. Семь шагов: агент, выгрузка в файлы, правила, проверка кода, сборка, тесты YAxUnit и сценарии форм. На каждый: зачем он нужен, команда и где легко споткнуться. В конце: что выросло поверх, три ошибки с разных типовых и сколько это стоило.
05.11.2026 8134 Iliaelagin 10
Дмитрий, никогда не было размышлений по поводу автоматического построения сети? Т.е. чтобы какой-то алгоритм (или даже специально построенная для этого отдельная сеть) сам рассчитывал количество нейронов, количество входов, количество выходов, тип сети и т.д.?
И еще вопрос... Почему при слишком большом количестве нейронов скрытого слоя сеть будет не «думать» а «зазубривать» возможные варианты? Ведь, по идее, наоборот - точность результата от этого будет выше, нет?
По поводу "зазубривания" как бы не казалось противоположное, но это именно так. Об этом пишут исследователи и самому можно убедиться. Причем я в сове время натыкался на интересную книжку где автор приводит параллели с человеческим обучением (у нейросетей вообще очень много общего с реальным мозгом) и он пишет что типа когда человек чего то не понимает допустим в математике и ему лень разбираться он просто запоминает все возможные варианты т.е. зазубривает. Если дать много нейронов то отдельные сочетания входов просто поставят нужные веса чтобы выходы повторяли входы по отдельному нейрону на каждое сочетание и все. А вот добавить еще скрытых слоев - в это смыл может быть.
Это тоже в 1С?
Дмитрий, а есть размышления по использованию нейросетей в области конвертации данных? Например, предоставить УПП и ERP для переноса данных с первой конфигурации во вторую. И организовать сеть таким образом, чтобы перенести по максимуму все данные. Вообще, возможно ли такое организовать на сетях?
И еще... Как лучше организовать отдельный модуль по организации сети в 1С? Чтобы можно было внедрить такой "модуль" в любую конфигурацию, а потом вызывать его штатными средствами, например, в тех же отчетах. Организовать для этого какой-то определенный интерфейс, может привязать его к какому-нибудь уже существующему "стандарту" если таковы есть. Есть размышления?
Конечно, есть тот же ТерзорФлоу, почему бы его не использовать отдельной библиотекой. Но соглашусь с Вами, что лучше бы использовать средства 1С, т.к. это дает определенную прозрачность.
Насчет конвертации интересный и сложный вопрос. Если допустим использовать сеть для того чтобы искать похожие данные по смыслу (по месту использования, каким то свойствам) то да для этого они подойдут. Но тут думать надо.
Так обработка и есть такой модуль . Все процедуры с сетью в модуле обработки. Можно даже ее добавить в конфу и вызывать через объект обработки. Можно в модуль засунуть, да. Все равно обучение через какой то интерфейс надо проводить... А саму сеть решать( прогнозировать) можно просто метод вызывать или функцию как обертку сделать. Там много вариантов. Например я для понятности сделал хранение сетей ф файлах, а реально сейчас например храню в доп. реквизитах контрагентов на одном из решений.
Чем нейросети лучше той же интерполяции? В обработке изображений это понятно, они давно себя зарекомендовали...
А на достаточно простых финансовых данных зачем эти навороты?
Но за реализацию однозначно ++++
Я думаю это для примера, с чего то надо начинать, с тем же прогнозированием справляется статистика, ну а дальше сложнее.
Статья очень интересная, однозначно +.
Допустим статистики много, но бизнес среда поменялась (что у нас происходит регулярно). Тогда накопленные продажи до 2014 года (2008, 1998 и т.д.) уже неприменимы к текущей ситуации. И план продаж строить на основе данных до кризиса нет смысла. А сеть во первых уловила зависимости, во вторых она к новым данным быстро приспособилась и выдает правильную картинку. В этом ее фишка.
А почему это не пишется на 1С?Какие аргументы? И приличная это какая(какие слои, сколько нейронов) и почему именно такая?
Минимум 4-5 слоёв, иначе смысла особого нейросеть не имеет- будет почти линейный прогноз. Не менее 10-ка нейронов в каждом слое, ну и обучение на нормальном объёме данных.
Не говоря уже о том что если вы строите стат. модель желательно бы попробовать и векторные модели и деревья решений и нелинейную регрессию - вдруг даст лучший результат, ну и сеть обучать конечно не таким алгоритмом, да и не персептрон взять, и функцию активации другую... :).
Какая уж тут 1С...
Вы немного не понимаете... нужно разобраться в теории сначала.
Глубокие НС это совсем о другом.
И то и то относится к машинному обучению, но при этом не НС. НС используют когда эти модели не дают нужного результата.
Что это такое - гуглится:
Если всё это дело лажает - уже приходится обучать НС, ну и как правило 1-2 слоя в этом случае проблему не решают.
тогда НЕ НАДО ИСПОЛЬЗОВАТЬ НС! Модель подбирается под задачу. Если задача настолько простая что решается НС с несколькими нейронами, значит НС там не нужно - более того вредно.
Олег, научите всех нас! )) Как минимум - интересно! Как максимум - будет полезно!
Ну, или хотя бы ссылочку...
Процедура РешитьНейрон (нейрон, ВидНейрона)
Сумма = 0;
СуммаБезВеса = 0;
Для каждого с из Нейрон.Входы Цикл
входнойСигнал = с.Значение;
Вес = Нейрон.Веса.Получить(Нейрон.Входы.Индекс(с)).Значение;
Сумма = Сумма+ входнойСигнал*Вес;
СуммаБезВеса = СуммаБезВеса+ входнойСигнал*Вес;
КонецЦикла;
//Если ВидНейрона = "Линейный" Тогда
Если ВидНейрона = "Входной" Тогда
Нейрон.Выход = СуммаБезВеса;
КонецЕсли;
Нейрон.Выход = sigmoid(Сумма);
//Нейрон.Выход = Сумма;
//КонецЕсли;
КонецПроцедуры
ПоказатьВ данной процедуре есть бесполезное условие или автор ошибся и забыл поставить в условии возврат:
Если ВидНейрона = "Входной" Тогда
Нейрон.Выход = СуммаБезВеса;
КонецЕсли; Выход всегда будет рассчитан так:
Нейрон.Выход = sigmoid(Сумма);- есть ли в модели нейроны смещения?
- как задать гиперпараметры (я понял, что используется обратное распространение ошибки), управляющие градиентным спуском (скорость обучения и ...(забыл как называется))?
- используется стохастический спуск (веса переопределяются сразу в момент уточнения или все сразу)?
- количество операций обучения в каких единицах? - это число "эпох" или число "сетов";
- какое примерно быстродействие у обучения?
- есть ли возможность рассчитать ошибку? как она оценивается?
Скорость обучения тоже в коде отдельная переменная, на форму не выносил
Веса переопределяются в момент уточнения
Итерации - сеты, если я правильно понял вопрос
Ошибка в процессе обучения оценивается по среднеквадратическому отклонению
Скорость от 5 минут (15 нейронов 10000 итераций) до порядка 20. При текущей скорости обучения.
Что касается "Я буду рад если кто то присоединится к этому проекту", то могу помочь создать готовое решение и продвинуть его. Есть целая отрасль, которая терпит большие убытки от неоперативного обновления ассортимента. Наверняка такая отрасль не одна, но эта - весьма платёжеспособна, плюс я уже вёл переговоры на эту тему, т.е. знаю людей, которые купят такое решение а, может быть, даже частично профинансируют его разработку.
(40) Олег, назвался груздем - полезай в кузов! Кооптирую тебя для участия в проекте.. в свободное от докладов на Инфостарте время. :)
А для не тиражных с Yandex Data Factory нам конечно не тягаться :(
Таким образом "решение использует алгоритмы машинного обучения" - было бы крутым лэйблом и давало бы конкурентные преимущества, но позиционировать машинное обучение как основу наверное не стоит...
Если не затруднит, объясните следующий момент:
А= нейрон.Нейрон.Выход;
нейрон.Нейрон.Ошибка= ОшибкаСледующегоСлоя*А*(1-А);
почему ошибка перемножается на какой-то коэффициент вычисленный из значения выхода (А*(1-А))? что он означает?
А (1 - А), где А - значение выхода нейрона, это производная функции активации (в данном случае - сигмоида). То есть значение градиента (наклона) по этой координате (весу связи) в методе градиентного спуска. Еще проще - отношение изменения ошибки на выходе к изменению веса связи на входе. Это дает возможность узнать, на сколько в данном направлении нужно изменить вектор весов, чтобы идти в направлении минимума ошибки. Где-то еще должен быть коэффициент, отвечающий за величину шага (скорость обучения) и, возможно, еще один коэффициент (момент), отвечающий за учет величины предыдущего шага (инерцию), чтобы локальные минимумы проскакивать. Если этих коэффициентов и возможности их изменения нет, то обучение может очень часто не удаваться.
Можно еще почитать вот эту статью, где больше говорится об устройстве НС и ее обучении.
А тогда (1 - А) зачем?
Проверочные вопросы: 1) а если функция активации будет другой (например, ReLU), формула изменится или нет? 2) как связаны обратное распространение ошибки и градиентный спуск?
Это я к тому, что, кажется, вы воспринимаете формулы, используемые в методе обратного распространения ошибки, как эмпирическое. Хотя они строгим образом выведены исходя из модели нейронной сети (которая действительно изначально эмпирическая). Опасность этого в том, что при таком понимании легко допустить ошибку: например, изменить модель, не изменив метод обучения.
И, наоборот, понимание зависимостей позволяет избегать трат времени на поиск "лучшего метода обучения" (в рамках градиентного спуска).
?(А > 0, А, 0)Вот тоже из википедии
Обратите внимание, на формулу производной сигмоида и что там про производную говорится.
Если даже, допустим, логисты не желают видеть воплощённое решение задачи коммивояжёра, а хотят, чтоб "операторы били ручками", а маркетологи орут, что у них отнимают хлеб - ну какая к чертям нейронная сеть, о чём вы?
Необходимо разработать движок для работы со смыслами.
Вот простая задача для понимания направления работы:
Система должна уметь составлять осмысленные предложения из набора слов, например:
- пустыня, озеро, река.
Можно добавлять любые слова, чтобы получилось предложение имеющее смысл.
Например: В пустыне нет озера и реки.
вот есть простая история продаж Покупатель - товар1, товар2... товар10 и период. Как "обучить" чтобы нейросеть "предсказала" что через 10 периодов покупатель купит товар5?
полезность статьи 0. Скачал обработку - а где брать имя файла сети и файл параметров, их структуру? вообщем одна обида злость и разочарование. Бери учебник и разбирайся....
По построению - есть какие рекомендации что закладывать на обработку в 1 и 2-й слой? Тот же типовой пример по анализу продаж - что пойдет в первый слой и что во второй?
н1 - сезон
н2 - цена
н3 - количество
То есть немного переделать обработку таким образом, что бы при начале обучения не создавать новую сеть, а "дополнять" уже загруженную из файла? На новых или старых данных.
Для того, что бы можно было обучать сеть рывками, например в ночное время.
А если не новыми данными, а на тех же данных?
К примеру я изменю алгоритм так, что при нажатии на "обучение" будет не новая сеть создаваться, а старая из файла загружаться. А дальше алгоритм пойдет по тому же пути, что и для новой сети. Что в этом случае произойдет? Поскольку я не обладаю знаниями по нейростям и не понимаю сути алгоритма обучения, могу только страшно-дилетантски предположить, что сеть продолжит дополняться новыми элементами и связями.
Ну да, допустим, к примеру задали 100000 итераиций обучения. За ночь они прошли, мы выкинули это в файл. Вечером опять из файла загрузили сеть в ТЗ(а не создали новую), задали еще 100000 итераций и снова жмякнули "Запустить обучение".
Так можно?
Только на тех же данных во входной таблице и границах? Или все-таки новые данные можно подсунуть?
А если входов 5-10, или может и более, при широких границах и больших объемах обучающего материла в десятки тысяч и более строк? Тоже нет смысла в большом количестве итераций? У меня почему то на малом количестве итераций выдает одни и те же данные при прогнозе, что бы я на входе не подавал. Например в диапазоне 12-13 всегда, хотя границы гораздо шире. При бОльшем же количестве итераций вроде начинает понемногу уже попадать, да и вообще - хотя бы разнородные данные на выходе появляются, диапазон выдаваемых значений на выходе расширяется.
По поводу того примера - (сезон/не сезон) - это же на вход с самого начала можно подавать, поэтому сеть не должна ИЗ-ЗА ЭТОГО подпортится. Дообучение я имею в виду не на изменившийся ситуации, а просто оттого, что новые статистические данные появляются.
Тут интересен еще и сам принцип реализации - возможно использовать ту же таблицу значений сети, а не создавать новую или все-таки нет?
Обученные веса (ту же таблицу) использовать можно, но не факт что нужно.Это я пытался донести. В примере про зиму я имел ввиду не сезонность, а то что ситуация поменалась кардинально. У нас сейчас самая теплая зима за 130 лет, а так то зимой лыжи и сноуборды в соответствии с сезонностью продаются конечно лучше чем летом
Я только поверхностно понимаю теорию нейронных сетей, поэтому не могу предположит ьдаже с чем связано, просто эксперементирую со входными данными и количеством итараций обучения ,смотрю что получается.
Хотел бы предложить Вам рассмотреть вариант следующей задачи по применению нейросетей - в алгоритме создания перемещений товаров между складами в 1С, по нескольким критериям отбора.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 649065
Создание 14.07.17 09:34
Обновление 07.12.18 15:52
Просмотры 67331
Загрузки 424
Рейтинг
293
Комментарии 105
Код открыт Да
Рубрики Нейросети
Кому Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Управленческий учет
Доступ к файлу Абонемент ($m)
