用matlab写一段神经网络代码
时间: 2023-11-05 22:05:01 浏览: 37
作为AI语言模型,我可以为您提供一个简单的神经网络代码示例,如下所示:
% 定义训练数据
X = [0 0 1; 0 1 1; 1 0 1; 1 1 1];
y = [0; 1; 1; 0];
% 初始化神经网络权重
syn0 = 2*rand(3,4) - 1;
syn1 = 2*rand(4,1) - 1;
% 训练神经网络
for i = 1:50000
% 前向传播
l0 = X;
l1 = sigmoid(l0 * syn0);
l2 = sigmoid(l1 * syn1);
% 计算误差
l2_error = y - l2;
if mod(i, 10000) == 0
fprintf('Error: %f\n', mean(abs(l2_error)));
end
% 反向传播
l2_delta = l2_error .* sigmoid_derivative(l2);
l1_error = l2_delta * syn1';
l1_delta = l1_error .* sigmoid_derivative(l1);
% 更新权重
syn1 = syn1 + l1' * l2_delta;
syn0 = syn0 + l0' * l1_delta;
end
% 输出预测结果
fprintf('Output after training:\n');
disp(l2);
% 定义 sigmoid 函数和 sigmoid_derivative 函数
function y = sigmoid(x)
y = 1 ./ (1 + exp(-x));
end
function y = sigmoid_derivative(x)
y = x .* (1 - x);
end