2014-03-06 3 views
0

Я работаю в настоящее время над проектом, чтобы оптимизировать работу нагревателя с помощью инструмента нейронной сети MATLAB, я прочитал руководства и получил руководство от руководства MATLAB. Я настроил сеть и протестировал ее, мне нужны две точки: 1. Я нахожусь на правильном пути? моя сеть правильная? Мне нужен советник экспертов 2. Мне нужно (оптимизировать) работу нагревателя, я определил свою функцию, но я не знаю, как интегрировать сеть в оптимизацию функции. моя сеть выглядит следующим образом 3 входы x1 x2 x3 один из положитьMatlab Neural Network Advice

load input1 
load input2 
load input3 

x1= importdata('input1.txt'); (similar the other inputs and output) 
[x1n,x1min,x1max]=norm_nn(x1); (I worte my own normalization function) 
IN=[x1n x2n x3n]'; 
OUT=[y1n]'; 
INTRAIN = IN(:,1:1307); 
OUTTRAIN = OUT(:,1:1307); 
INTEST =IN(:,1308 : 1634); 
OUTTEST = OUT(:,1308:1634); 
NETWORKNet1 = newff(IN,OUT,[20 20 20], {'tansig' 'tansig' }, 'trainbr'); 
net = init (NETWORKNet1); 
NETWORKNet1 = trainbr(NETWORKNet1,INTRAIN,OUTTRAIN); 
YtestNwt1 = sim(NETWORKNet1,INTEST); 
y1testd=denorm_nn7(YtestNet1(1,:),y1min,y1max); 
e1=er8(y1testd,y1(1308:1634)); 
save Net1 

Я использовал (1634 точек данных и разделить его на обучение (80%) и теста (20%))

+0

Почему вы обманываете ???? – Shai

ответ

1

Вот несколько советов:

(A) Используйте feedforwardnet в newff осуждается

(B) Участок подготовки, тестовые данные и результат сети, чтобы сделать его легче визуализировать то, что происходит.

(C) Написав [20 20 20], ваша сеть имеет 3 скрытых слоя. Для подавляющего большинства проблем требуется только один скрытый слой. Только если все другие пути были исчерпаны, если вы перейдете к нескольким скрытым слоям.

(D) Сначала проверьте сеть (то есть команду sim) на данные обучения. Это «легкий» тест для нейронной сети и должен работать сначала, прежде чем двигаться дальше. Затем вы можете протестировать его с помощью тестовых данных (которые сеть не была обучена). Это покажет, как сеть обобщила форму данных, которые она пытается узнать.
Валидация - еще один важный фактор, который помогает сети обобщить. Если вы посмотрите на окно обучения нейронной сети Matlab (nntraintool) и нажмите «производительность», один из графиков должен быть помечен как «валидация».

Что касается ваших конкретных вопросов:
1. Является ли моя сеть правильной? - трудно сказать, не видя набора данных.
2. Оптимизация производительности нагревателя - на простом уровне у вас будет один выходной нейрон, число от 0 до 1, что означает производительность нагревателя. Затем входные нейроны содержат любые другие параметры.
Но теперь сеть может только предсказать, какой будет производительность, учитывая любую комбинацию входов. Он не сможет сказать вам, какие входы дадут вам максимальную выходную мощность. Для всего 3 входа, с низким разрешением/детализацией, вы можете попробовать исчерпывающий/грубой поиск силы. В противном случае изучите генетические алгоритмы, чтобы быстро найти хорошее решение.

+0

Спасибо за ответ, я думаю, что буду использовать генетические алгоритмы для части оптимизации – user3355298