Neural Networks part 1

本文分享了吴恩达机器学习课程中神经网络前馈算法的debug经验。作者在手写数字识别任务中,因未使用激活函数导致高错误率,通过添加sigmoid函数解决了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

吴恩达老师的机器学习真的是非常好的入门课程,这次我想写写做神经网络feedforward propagation algorithm时遇到的小bug:

该题神经网络示意图
这是一个非常简单的神经网络,用来进行手写数字的识别,开始我的预测函数其中计算部分是这样的:

bias=1;     %偏置

%第1,2,3层
a{1}=[bias*ones(m,1),X];  
a{2}=a{1}*Theta1';
a{3}=[bias*ones(m,1),a{2}]*Theta2';

%输出
[~,p]=max(a{3}, [], 2);

然后发现错误率居然达到了40%,我真的摸不到头脑,然后看别人的代码才发现我没有加激活函数,或者说我的sigmoid是y=x; 下面是我改正之后:

bias=1;     %偏置

%第1,2,3层
a{1}=[bias*ones(m,1),X];  
a{2}=sigmoid(a{1}*Theta1');
a{3}=sigmoid([bias*ones(m,1),a{2}]*Theta2');

%输出
[~,p]=max(a{3}, [], 2);

这次debug感觉还不错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值