Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Нейронные сети в MATHLAB  (Прочитано 32432 раз)
0 Пользователей и 1 Гость смотрят эту тему.
LilKim
Гость
« : 16-01-2009 09:02 » 

Подскажите,пожалуйста,как моделировать в матлабе с помощью нейронных сетей? Может литературу какую-нибудь подскажете? Основная проблема в том,как выбрать из большого количества сетей несколько самых оптимальных для моделирования(с самой большой скоостью работы и т.д.). Их надо как-то протестировать в матлабе... А вот как,я не знаю. Подскажите,что-нибудь!
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 16-01-2009 09:17 » 

LilKim, моделировать что?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LilKim
Гость
« Ответ #2 : 16-01-2009 09:29 » 

Вообще тема- "применение нейронных сетей для построения моделей и прогнозирования социально-экономических систем"
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 17-01-2009 14:46 » 

LilKim, я MathLab не знаю, но понимаю в нейросетях.

Твоя тема напоминает тему для исследовательской работы.

Но твой вопрос настолько странный, что вызывает сомнения в том, что ты хорошо понимаешь своё задание.

Я бы предложил следующий план действий:
- разобраться с тем, что такое нейросеть вообще, на каких принципах она работает, её основные свойства;
- выяснить типы нейросетей сетей и связанные с ними классы решаемых задач, а также то, как нейросети эти задачи решают;
- разобраться с тем, что такое модель социально-экономической системы, её основные свойства и качества;
- выяснить разновидности моделей социально-экономических систем, принципы их построения, принципы работы с ними, решаемые с их помощью задачи;
- творчески исследовать такую сочетаемость разновидностей моделей социально-экономических систем с разновидностями нейросетей (они тоже являются моделями работы нервной системы), которая бы позволила в некоторой нейросети выразить некоторую модель социально-экономической системы;
- выработать методику преобразования исходных данных для моделирования социально-экономической системы в исходные данные для нейросети и, обратно, интерпретации результатов работы нейросети в данные о результатах моделирования социально-экономической системы.

Зафиксировать результаты в отчёте о проведённом исследовании.

Дальше останется только в MathLab выбрать или построить нужную нейросеть и написать указанное в последнем пункте двунаправленное преобразование данных от пользователя в нейросеть и обратно. Т.е. построить прикладной инструмент решения некоторого класса экономических задач.

И описать метод прикладной работы с ним, лучше с каким-нибудь примером, в методическом руководстве к инструменту.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LilKim
Гость
« Ответ #4 : 17-01-2009 20:45 » 

dimkaбольшое за ответ!
Это не исследовательская работа,а диплом )) Дело в том,что построение моделей и прогнозирования социально-экономических систем я делала на прошлых курсах,но совершенно другими методами(более экономико-математическими,а в этом году адо самиой освоить новый метод-НС. И в том,что надо делать в этом году с нейронными сетями я и вправду совсем не понимаю,но очень хочу разобраться!
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 17-01-2009 22:51 » 

Цитата: LilKim
Это не исследовательская работа,а диплом
Бывают дипломные проекты, бывают дипломные работы. Это похоже на дипломную работу. Она бывает исследовательской.

Я ничего не знаю про модели социально-экономических систем. И я думаю, что подавляющее большинство посетителей этого форума тоже. Но я знаю, что такое математические модели систем, и я знаю про нейросети.

Наверняка твои модели имеют множества входных переменных и множества выходных переменных. Эти переменные могут принимать различные числовые значения. Давай начнём с них - какие это переменные.

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

Нейросеть тоже имеет входной слой нейронов и выходной слой нейронов, и между ними рабочие слои. Чтобы сеть работала, её нужно обучить (т.е. распределить по нейронам сети потенциалы). Соответственно, нужны будут методы обучения нейросетей. Затем, сеть должна быть устроена определённым образом и иметь умеренную сложность (не быть слишком сложной и слишком простой) для решаемой задачи.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LilKim
Гость
« Ответ #6 : 21-01-2009 12:51 » 

Созрел ещё вопрос: как посчитать или где посмотреть время процесса работы или обучения сети и объём памяти,которую он занимает?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 21-01-2009 13:25 » 

LilKim, но это ж зависит от сложности решаемой задачи - отсюда следует и объём учебного материала, и сложность, и структура сети, и занимаемая ею память компьютера; а от объёма учебного материала, сложности и структуры сети и выбранного метода обучения зависит затрачиваемое время.

Общего случая не бывает.

Если сеть имеет избыточную сложность, время её обучения возрастает, а качество результатов снижается.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
LilKim
Гость
« Ответ #8 : 21-01-2009 19:22 » 

мне надо прямо точные значения,науч_рук сказала,что надо таблицу нарисовать и в ней для каждого типа данных применённных к каждой сети надо вывести конкретные значения объёма занимаемой памяти и время работы в сек... Может быть это ещё одна из неосвоенных мною функций матлаба... хотя я вроде бы уже везде помотрела.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 21-01-2009 21:04 » 

LilKim, я не сказал, что на этот вопрос нельзя ответить более-менее точно (хотя время будет зависеть от производительности компьютера, а занимаемая память от его архитектурных особенностей). Я сказал, что на этот вопрос не существует универсального ответа. Нужно точно знать класс решаемых задач, точно знать структуру сети и точно знать выбранный метод обучения.

Может в MathLab и существуют некие оценочные функции, хотя сомневаюсь, что есть оценочная функция времени обучения.

Скорее всего речь шла о том, что ты это должна проделать на практике, и результаты своих опытов на своём компьютере занести в таблицу. Это ж диплом в конце концов. Предполагается и самостоятельная практическая деятельность.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ludwigfox
Гость
« Ответ #10 : 20-05-2009 09:29 » 

Уважаемый dimka, не подскажете мне алгоритм моих действий?
Если Вы хорош разбирайтесь в нейронных сетях, то поясните, как стоит действовать в таком случае:
Требуется создать обучаемую сеть, которая изменяет протокол доступа к среде в зависимости от условий этой среды (помехи, интенсивность трафика, коллизии).
Я вообще ничего еще не понимаю в сетях. Далее хочу это создать в матлабе, но с этим я разберусь.
На сколько понимаю, так же следует начать с изучения основ и видов сетей. Может подскажете еще что-то ?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 20-05-2009 10:31 » 

Цитата: Ludwigfox
Требуется создать обучаемую сеть, которая изменяет протокол доступа к среде в зависимости от условий этой среды (помехи, интенсивность трафика, коллизии).
На первый взгляд это похоже на разновидность персептрона - простейший случай: сеть должна запомнить, что определённые сочетания параметров соответствуют определённому протоколу.

Цитата: Ludwigfox
Я вообще ничего еще не понимаю в сетях.
Это бывает.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ludwigfox
Гость
« Ответ #12 : 20-05-2009 11:15 » 

Спасибо dimka,
А можно тогда уточнение?
Вот я примерно предполагаю при каких значениях на какой протокол следует перейти. Но по резульататм работы (а во время работы протокола накапливается статистика, по которой как раз и определяется на какой протокол перейти) и если по моим подсчетам надо перейти на какой-либо из протоколов... а он оказался (все по той же статистике за какое-то время) менее эффективным чем предыдущий протокол. Цель как раз и научиться определять такие ситуации в обучении. Это на какой случай похоже?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 20-05-2009 13:51 » 

А чем это отличается от предыдущего с точки зрения нейросети?

Вопрос демонстрирует незнание. Теорию в этой теме я излагать не буду - см. литературу.

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

Если функция статистическая на некотором множестве данных, которое постоянно изменяется, то такой случай прямо в нейросеть не преобразуется. Это в статистике можно брать произвольную выборку данных, на которых считается функция. Потому что аналитически заданная функция (или численный метод) отделены от данных. Нейросеть же накапливает (в разумных пределах) всю информацию, которую извлекает в процессе обучения, т.е. объединяет в себе как неизвестную функцию, так и обобщённые данные, полученные в результате обучения. Это значит, что в штатном режиме работы не предполагается перманентное быстрое переобучение в зависимости от текущих условий с целью подгонки под некий ожидаемый результат. Если в процессе проектирования возникает такая потребность, то это значит, что нейросеть к такой задаче пытаются притянуть за уши, а на деле задача решается при помощи заранее известной функции. Либо же задача требует иной постановки с иными структурами входных и выходных данных, и более сложной сети.
« Последнее редактирование: 20-05-2009 14:06 от dimka » Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ludwigfox
Гость
« Ответ #14 : 21-05-2009 06:34 » 

Да, прошу прощения, но я только выбираю метод решения поставленной задачи. Поэтому и хочу проконсультироваться у знающих людей. Это может сэкономить много времени. Так же согласен что может случиться что я реально притягиваю этот аппарат. Сейчас попробую чуть точнее объяснить:
я знаю как посчитать эффективность для первого случая, второго и третьего и т.п. В зависимости от переменных (которые есть в этих формулах) эффективность бывает максимальной у одного из трех. Я хочу сделать так, чтобы не вычислять все подряд и сравнивать, а чтобы автомат нашел наиболее подходящий случай. Плюс обучился выявлять случаи когда произошла ошибка и переход на другой случай должен быть отменен. Еще есть придание "веса" статистике.
Вот как-то так.
Записан
Ludwigfox
Гость
« Ответ #15 : 21-05-2009 06:36 » 

ой, прошу прощения! Я ошибся. Эффективность может быть максимальной только у одного из всех случаев. А их может быть до 1000
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 21-05-2009 07:23 » 

Цитата: Ludwigfox
Да, прошу прощения, но я только выбираю метод решения поставленной задачи.
По-моему, прежде, чем выбирать, надо знать те альтернативы, из которых осуществляется выбор. Иначе это не выбор или не твой выбор.

Цитата: Ludwigfox
Это может сэкономить много времени.
За счёт того, что ты решишь задачу при помощи подсказок, узнав меньше, чем нужно для самостоятельного решения задачи. А это значит, что самостоятельно решать задачи ты не научишься. (Это не про нейросети, это общее утверждение.)

Цитата: Ludwigfox
я знаю как посчитать эффективность для первого случая, второго и третьего и т.п. В зависимости от переменных (которые есть в этих формулах) эффективность бывает максимальной у одного из трех. Я хочу сделать так, чтобы не вычислять все подряд и сравнивать, а чтобы автомат нашел наиболее подходящий случай. Плюс обучился выявлять случаи когда произошла ошибка и переход на другой случай должен быть отменен. Еще есть придание "веса" статистике.
Это уже разговор ни о чём. Нет структур входных и выходных данных.

И слово "автомат" уже зарезервировано под другие математические модели. Т.е. нейросеть - это не автомат. Не стоит её так называть.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ludwigfox
Гость
« Ответ #17 : 21-05-2009 08:08 » 

dimka,  Спасибо огромное еще раз. Буду разбираться. ХОтя бы понимаю на что обратить внимание в первую очередь.
Записан
dushezzz
Гость
« Ответ #18 : 02-06-2009 14:02 » 

Есть задача прогнозирования урожая.
входящие данные: значения 4х предыдущих лет с указанием: значение урожая, значение ГТК (коэффициент увлажненности) в трех периодах роста, тип удобрений, т.е. всего 20 входящих значений (5 за каждый год).
Выход: значение урожая.
Вопрос в выборе архитектуры модели сети и количества слоев и нейронов в ней. По-хорошему надо строить кучу разных моделей, тестировать и выбрать по наименьшей ошибке, но я думаю достаточно реализовать с помощью, например, перспетронной сети. Но как тогда выбрать примерное число внутренних слоев и нейронов?
Второй вопрос: нормировка данных. Я так понимаю, надо нормировать входящие данные для того, чтобы значения входных переменных были от 0 до 1?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #19 : 02-06-2009 17:51 » 

Не понял. Всего известных данных за 4 года, или каждый год должен прогнозироваться, исходя из 4-х предыдущих?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
dushezzz
Гость
« Ответ #20 : 02-06-2009 17:57 » 

Цитата
каждый год должен прогнозироваться, исходя из 4-х предыдущих
Есть таблица с данными за 30 лет.
Я сам хочу использовать последние 4 года, чтобы излишне не усложнять сеть. На основе данных за последние 4 года будет делаться вывод. Тогда обучать сеть можно 20 лет и 6 лет тест.
Записан
Ludwigfox
Гость
« Ответ #21 : 03-06-2009 10:10 » 

Уважаемый dimka,  а можно задать пару вопросов по прикладному использованию нейронных сетей. Хотелось бы проконтролировать, правильно ли я понял и правильно ли буду применять этот метод.
Можно я свой отчетик отправлю Вам на мыло или по аське? Мои контакты аська409422083 и мыло Ludwigfox(собака)mail.com
Буду очень благодарен если не откажете в помощи!
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #22 : 03-06-2009 19:13 » 

Не, давайте не будем уходить в крайности. Мне своих студентов с их отчётами хватает.

Ludwigfox, неужели ты не можешь консультироваться с твоим преподавателем? Тем более, что так оно вернее будет - ему же сдавать, он свои требования выдвигает по содержанию отчётов. А я сюда не на работу хожу.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ludwigfox
Гость
« Ответ #23 : 03-06-2009 19:43 » 

Да я сам препод! Пишу кандидатскую, а посоветоваться не с кем именно по этому вопросу. Не не занимается никто из университетских этим. А время идет. Чтобы как следует разобраться надо столько времени, сколько у меня нет.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #24 : 03-06-2009 20:35 » 

Вон оно как! Случай редкий и не угрожает перерастанием в массовый Улыбаюсь Ну тогда присылай - мои контакты в профиле (отчёт лучше мылом, общаться можно и в аське). Завтра вечером посмотрю.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
france
Гость
« Ответ #25 : 08-06-2009 22:04 » 

Уважаемый dimka хочу обратиться к вам за помощью по вопросу реализации нейродинамического программирования в МАТЛАБе. Хотелось бы узнать каким образом его осуществить???  :confused:Заранее благодарна за ответ!!!
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #26 : 09-06-2009 10:19 » 

france, я выше недвусмысленно написал:
Цитата: Dimka
я MathLab не знаю
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
btrfly
Гость
« Ответ #27 : 15-07-2009 07:59 » 

подскажите, пожалуйста, какой нейонной сетью лучше решать следующую задачу:
есть набор входящих данных и набор весов, по линейной формуле получаем результат. также известен экспертный результат. надо подогнать веса так, чтоб подсчитанный результат совпадал с экспертным.
выборка достаточно большая.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines