Stanford ML - Neural Networks: Representation 神经网络表示

在非线性回归问题中,需要的特征往往比较多,这样计算量会迅速变大。比如对100个特征采取二次拟合会产生5000个待计算的特征,再进一步三次拟合之类的,计算量就大到不可接受了。在计算机视觉中,计算机看到的是一个个的像素,也就是特征,如果采用逻辑回归来分类,计算量基本不可接受。当然也可以采取一些降维的方法,比如PCA之类的。这里呢来看看神经网络。


神经网络呢就是用计算机算法模拟人类的大脑,像大脑一样用“一个算法”解决所有的问题。对单个的神经元,仍然用sigmoid函数来表示。神经网络呢就类似于把多层神经元连接起来,分为输入层,隐藏层和输出层。为了提高运算速度,需要用向量来表示所有的计算。直接贴图:



不得不说作业设计的相当合理,上周的作业正不知道怎么用向量计算的时候,这周的作业循序渐进的给了提示,一步步的引导。逻辑回归的Cost Function和梯度下降的偏导向量化表示如下,相当的简洁。

J = y' * log(sigmoid(X*theta)) + (1 - y)' * log(1 - sigmoid(X*theta));
J = -J/m;
J = J + sum(theta(2:end) .^ 2) * lambda / (2*m);

grad = X' * (sigmoid(X*theta) - y) / m;
grad(2:end) = grad(2:end) + theta(2:end) * lambda / m;

对于数字识别的作业,神经网络的解法如下:

X = [ones(m, 1), X];
a2 = sigmoid(X * Theta1');
a2 = [ones(size(a2, 1), 1), a2];

a3 = sigmoid(a2 * Theta2');
[y, p] = max(a3, [], 2);

对比逻辑回归的多分类解法,这个运行速度快不少。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值