Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Нейросеть на VBA - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Нейросеть на VBA
ciiz Дата: Воскресенье, 23.02.2025, 13:23 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 10 ±
Замечаний: 0% ±

Уже давно хочу создать нейросеть на VBA
Для чего она нужна: Ну скажем предварительно обучив, потом создать функцию которая даёт ответ по значениям в ячейках (веса скрыты на отдельных листах).
Всё сделал, но нейросеть не обучается.
Я и раньше делал, но весь расчёт был на листах, VBA использовал разве что только для циклов, из за этого она крайне плохо масштабировалась, и очень сложно было проверить что всё правильно, но обучение происходило нормально.
Описание файла:
Код нейронной сети в Microsoft Excel с использованием VBA, предсказания нескольких параметров или характеристик одновременно (несколько выходов).
Количество входных и выходных нейронов, можно регулировать с помощью переменных.
Вид нейронной сети - входной слой, количество скрытых слоёв два, выходной слой. Количество нейронов в слоях, можно регулировать с помощью переменных.
Функция активации гиперболический тангенс.
Формат входных данных числовой, нормализованный.
Данные подаются на лист input ячейки в столбец A с ячейки A1 и ниже по количеству входов. Это один вектор входных данных (одна строка)
Веса первого скрытого слоя на листе layer1 с столбца A для первого нейрона, B для второго, C для третьего, и так далее. В каждом столбце веса нейрона скрытого слоя.
Веса второго скрытого слоя на листе layer2 с столбца A для первого нейрона, B для второго, C для третьего, и так далее. В каждом столбце веса нейрона скрытого слоя.
Веса выходного слоя на листе layer3 с столбца A для первого нейрона, B для второго, C для третьего, и так далее. В каждом столбце веса нейрона выходного слоя.
Веса смещения для первого слоя на листе biases в столбец A с ячейки A1 и ниже по количеству нейронов первого слоя. Каждая строка соответствует одному нейрону слоя.
Веса смещения для второго слоя на листе biases в столбец B с ячейки B1 и ниже по количеству нейронов второго слоя. каждая строка соответствует одному нейрону слоя.
Веса смещения для выходного слоя на листе biases в столбец C с ячейки C1 и ниже по количеству нейронов выходного слоя. каждая строка соответствует одному нейрону слоя.
Выходы на лист оutput с столбца A1 для первого выхода, A2 для второго, A3 для третьего, и так далее по количеству выходов.
Правильный ответ на лист оutput с столбца B1 для первого выхода, B2 для второго, B3 для третьего, и так далее по количеству выходов.
Не работает
Сейчас там простой пример одно входное число, оно же и должно получится на выходе после обучения, но нейронка начинает стремится к среднему сгенерированных значений, уменьшая влияние входной переменной (то есть после обучения неважно что подавать на вход, ответ практический не меняется) (как будто связи настренны неправильно, и что бы не мешали входные данные она их отрубает, а среднее это наиболее близкий результат ко всем данным)

Код хорошо документирован, всякие GPT ошибки не видят.
Может кто сможет подсказать, всю голову сломал. Спасибо.
К сообщению приложен файл: nejron3.xlsm (38.8 Kb)


Сообщение отредактировал ciiz - Воскресенье, 23.02.2025, 19:43
 
Ответить
СообщениеУже давно хочу создать нейросеть на VBA
Для чего она нужна: Ну скажем предварительно обучив, потом создать функцию которая даёт ответ по значениям в ячейках (веса скрыты на отдельных листах).
Всё сделал, но нейросеть не обучается.
Я и раньше делал, но весь расчёт был на листах, VBA использовал разве что только для циклов, из за этого она крайне плохо масштабировалась, и очень сложно было проверить что всё правильно, но обучение происходило нормально.
Описание файла:
Код нейронной сети в Microsoft Excel с использованием VBA, предсказания нескольких параметров или характеристик одновременно (несколько выходов).
Количество входных и выходных нейронов, можно регулировать с помощью переменных.
Вид нейронной сети - входной слой, количество скрытых слоёв два, выходной слой. Количество нейронов в слоях, можно регулировать с помощью переменных.
Функция активации гиперболический тангенс.
Формат входных данных числовой, нормализованный.
Данные подаются на лист input ячейки в столбец A с ячейки A1 и ниже по количеству входов. Это один вектор входных данных (одна строка)
Веса первого скрытого слоя на листе layer1 с столбца A для первого нейрона, B для второго, C для третьего, и так далее. В каждом столбце веса нейрона скрытого слоя.
Веса второго скрытого слоя на листе layer2 с столбца A для первого нейрона, B для второго, C для третьего, и так далее. В каждом столбце веса нейрона скрытого слоя.
Веса выходного слоя на листе layer3 с столбца A для первого нейрона, B для второго, C для третьего, и так далее. В каждом столбце веса нейрона выходного слоя.
Веса смещения для первого слоя на листе biases в столбец A с ячейки A1 и ниже по количеству нейронов первого слоя. Каждая строка соответствует одному нейрону слоя.
Веса смещения для второго слоя на листе biases в столбец B с ячейки B1 и ниже по количеству нейронов второго слоя. каждая строка соответствует одному нейрону слоя.
Веса смещения для выходного слоя на листе biases в столбец C с ячейки C1 и ниже по количеству нейронов выходного слоя. каждая строка соответствует одному нейрону слоя.
Выходы на лист оutput с столбца A1 для первого выхода, A2 для второго, A3 для третьего, и так далее по количеству выходов.
Правильный ответ на лист оutput с столбца B1 для первого выхода, B2 для второго, B3 для третьего, и так далее по количеству выходов.
Не работает
Сейчас там простой пример одно входное число, оно же и должно получится на выходе после обучения, но нейронка начинает стремится к среднему сгенерированных значений, уменьшая влияние входной переменной (то есть после обучения неважно что подавать на вход, ответ практический не меняется) (как будто связи настренны неправильно, и что бы не мешали входные данные она их отрубает, а среднее это наиболее близкий результат ко всем данным)

Код хорошо документирован, всякие GPT ошибки не видят.
Может кто сможет подсказать, всю голову сломал. Спасибо.

Автор - ciiz
Дата добавления - 23.02.2025 в 13:23
ciiz Дата: Среда, 26.02.2025, 00:14 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 10 ±
Замечаний: 0% ±

Всем спасибо, всё оказалось что работает. Шаг побольше, и больше шагов. Видимо затухание.

А вообще кто нибудь пытался сделать подобное, есть ли у кого реальные не для побаловаться задачи? Дело в том что я её сделал для своих задач, функциональность получилась неплохая (только не оформлено, так сказать пользоваться может только автор). Думаю может есть смысл дооформить и выложить куда нибудь в открытый доступ?


Сообщение отредактировал ciiz - Среда, 26.02.2025, 15:11
 
Ответить
СообщениеВсем спасибо, всё оказалось что работает. Шаг побольше, и больше шагов. Видимо затухание.

А вообще кто нибудь пытался сделать подобное, есть ли у кого реальные не для побаловаться задачи? Дело в том что я её сделал для своих задач, функциональность получилась неплохая (только не оформлено, так сказать пользоваться может только автор). Думаю может есть смысл дооформить и выложить куда нибудь в открытый доступ?

Автор - ciiz
Дата добавления - 26.02.2025 в 00:14
ciiz Дата: Пятница, 07.03.2025, 11:06 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 10 ±
Замечаний: 0% ±

Вот рабочий вариант, если кто будет пользоваться необходимо будет править код VBA под свои задачи.
К сообщению приложен файл: neironfinal3.xlsm (84.7 Kb)


Сообщение отредактировал ciiz - Пятница, 07.03.2025, 11:13
 
Ответить
СообщениеВот рабочий вариант, если кто будет пользоваться необходимо будет править код VBA под свои задачи.

Автор - ciiz
Дата добавления - 07.03.2025 в 11:06
Gustav Дата: Пятница, 07.03.2025, 12:31 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2833
Репутация: 1190 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
ciiz, очень интересно, спасибо! Давно мечтаю как-то к ним (нейросетям) подступиться (пока полный профан), а тут - раз! и законченная реализация, да еще и на знакомом языке программирования. Спасибо.

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


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщениеciiz, очень интересно, спасибо! Давно мечтаю как-то к ним (нейросетям) подступиться (пока полный профан), а тут - раз! и законченная реализация, да еще и на знакомом языке программирования. Спасибо.

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

Автор - Gustav
Дата добавления - 07.03.2025 в 12:31
ciiz Дата: Понедельник, 17.03.2025, 01:13 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 10 ±
Замечаний: 0% ±

Даже трудно что то порекомендовать. Мне очень нравилась просто теория, а сам никак не мог подступится. Перед кодом сидел размышлял, закончить или нет, на pythone две строчки и готова нейросеть, всё думал может его подучить, и не заморачиваться с VBA.
В файле уже не помню, вроде пытаюсь обучить среднему арихметическому, минимальному и максимальному значению. (генерируются случайно).
В новом файле уже есть возможность выбирать функцию активации. До реализации на лист загружать данные для обучения не дошел, да и как бы файл, если что то запускать всё равно надо что то в коде менять под свою задачу (код ещё есть на листах есть).
Вообще я смотрю периодический на степике Добрый, добрый ИИ ну и ещё там пару курсов, но чисто как познавательное не углубляясь в мудрёные формулы.
Кстати этот код неплохо понимает Cloud 3.7, но иногда пишет что неправильная реализация, хотя там правильно, для него там примечание на русском и английском есть увидите.
К сообщению приложен файл: NeironFinalMish.xlsm (138.7 Kb)


Сообщение отредактировал ciiz - Понедельник, 17.03.2025, 13:36
 
Ответить
СообщениеДаже трудно что то порекомендовать. Мне очень нравилась просто теория, а сам никак не мог подступится. Перед кодом сидел размышлял, закончить или нет, на pythone две строчки и готова нейросеть, всё думал может его подучить, и не заморачиваться с VBA.
В файле уже не помню, вроде пытаюсь обучить среднему арихметическому, минимальному и максимальному значению. (генерируются случайно).
В новом файле уже есть возможность выбирать функцию активации. До реализации на лист загружать данные для обучения не дошел, да и как бы файл, если что то запускать всё равно надо что то в коде менять под свою задачу (код ещё есть на листах есть).
Вообще я смотрю периодический на степике Добрый, добрый ИИ ну и ещё там пару курсов, но чисто как познавательное не углубляясь в мудрёные формулы.
Кстати этот код неплохо понимает Cloud 3.7, но иногда пишет что неправильная реализация, хотя там правильно, для него там примечание на русском и английском есть увидите.

Автор - ciiz
Дата добавления - 17.03.2025 в 01:13
ciiz Дата: Понедельник, 17.03.2025, 01:19 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 10 ±
Замечаний: 0% ±

Из опыта по файлу
l1 регуляризация, фигня какая то, для L2 нужен маленький очень коэффициент. Инициализация весов (нужно ждать) это я уже сам экспериментировал (напридумывал), в иннете наверное аналогий нет.
Ну и всё равно под задачу код надо править.
В файле обучение ну типа 5 случайных значений, должна научится их 5 выводить, с relu обучается с точностью до 0,0001


Сообщение отредактировал ciiz - Понедельник, 17.03.2025, 01:44
 
Ответить
СообщениеИз опыта по файлу
l1 регуляризация, фигня какая то, для L2 нужен маленький очень коэффициент. Инициализация весов (нужно ждать) это я уже сам экспериментировал (напридумывал), в иннете наверное аналогий нет.
Ну и всё равно под задачу код надо править.
В файле обучение ну типа 5 случайных значений, должна научится их 5 выводить, с relu обучается с точностью до 0,0001

Автор - ciiz
Дата добавления - 17.03.2025 в 01:19
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!