# BAYESIAN OPTIMIZATION OF A NEURAL NETWORK

1 view (last 30 days)
GEORGIOS BEKAS on 7 Aug 2018
Commented: Greg Heath on 7 Aug 2018
I wrote the following code to optimize the architecture of a neural network via Bayesian optimization. What's wrong with it?
clc
clear
t = data(:,5)'
x = data(:,1:4)'
trainFcn = 'trainbr';
hiddenLayerSize = optimizableVariable('hiddenLayerSize',[1,4]);
net.divideParam.trainRatio = optimizableVariable('net.divideParam.trainRatio',[0.4,0.75]);
vars =[hiddenLayerSize, net.divideParam.trainRatio]
net = fitnet(hiddenLayerSize,trainFcn);
net.divideParam.valRatio = 0.5*(100-net.divideParam.trainRatio*100)/100;
net.divideParam.testRatio = 0.5*(100-net.divideParam.trainRatio*100)/100;
[net,tr] = train(net,x,t);
y = net(x);
e = gsubtract(t,y);
mae = sum(abs(e))/40
performance = perform(net,t,y);
fun = @(x)mae(x, vars)
results = bayesopt(fun,vars)
##### 3 CommentsShow 1 older commentHide 1 older comment
Greg Heath on 7 Aug 2018
If you want to use data to explain your problem, use a MATLAB set:
help nndatasets
and
doc nndatasets
Greg
Greg Heath on 7 Aug 2018
close all, clear all, clc
x = [-1:.05:1]; % FROM HELP TRAINBR
t = sin(2*pi*x)+0.1*randn(size(x));
trainFcn = 'trainbr';
hiddenLayerSize = optimizableVariable ('hiddenLayerSize',[1,4]);
net.divideParam.trainRatio = optimizableVariable('net.divideParam.trainRatio',[0.4,0.75]);
vars =[hiddenLayerSize,net.divideParam.trainRatio]
net = fitnet(hiddenLayerSize,trainFcn);
Error using fitnet (line 69)
Parameters.hiddenSizes is not numeric.

### Categories

Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!