How can I train a neural network such that the output of the network satisfies a certain constraint function in the Neural Network Toolbox 5.0 (R2006a)?

17 次查看(过去 30 天)

采纳的回答

MathWorks Support Team
If the target data for training meets the criteria of your constraint function 'F' then the network will naturally tend to meet that criteria without any special effort.
It is recommended that the target data be edited if necessary so that it meets the desired criteria, and then the network can be trained normally.
However if that is not possible, you can create a custom performance function (in Neural Network Toolbox 5.0 (R2006a)) which optimizes a cost function of the outputs, in addition to mean squared error.
This cost function must be a smooth function and returns only '0' or positive values. It should return larger values as the desired criterion is not met and smaller values as the criterion is met. If the desired cost function is a discontinuous function such as the following:
cost = F(y)>0,
then a continuous version of this would need to be created,
cost = -1 ./ (1 + exp(10*F(y))
The example continous cost function above returns 0 for F(y)>0, 1 for F(y)<0, and crosses F(y)==0 at 0.5.
Attached is a custom transfer function 'performance1.m' (based on the template file 'template_performance.m') which includes subfunctions (COST_FUNCTION and DCOST_FUNCTION) for calculating cost and derivative of cost at the end.
The sum of sin(y)+1 is used for the cost function. You can edit these two subfunctions to implement a performance function with any cost function desired.
To use the function,you must set the networks performance function accordingly before training using the statement:
net.performFcn = 'performance1';
You should be aware that this will result in training a network that will attempt to fit both the target data and the cost function, but may not perfectly fit either, especially in cases where the target data violates the cost function.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Sequence and Numeric Feature Data Workflows 的更多信息

产品


版本

R2006a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by