神经网络-机器学习(machine learning)笔记(Andrew Ng)

神经网络(neural networks)

生物学上的神经元

这里写图片描述
这里写图片描述
这里写图片描述
(图片来自百度图片)
从三张图片中可以看到,神经元由细胞体,轴突和树突构成。在两个神经元传送脉冲的过程中,神经元1将脉冲从其轴突传出,神经元2的树突接受1传出的脉冲。

神经元的数学定义

这里写图片描述
(图片来自吴恩达cousera机器学习课程)
Layer 1:输入层(input layer)
Layer 2:隐藏层(hidden layer)(可能不止一个)
Layer 3:输出层(output layer)
a(j)i :在第j层单元i的“激励”(activation)(可以看做第j层的输出)
各层所做的事:

a(2)1=g(Θ(1)10x0+Θ(1)11x1+Θ(1)12x2+Θ(1)13x3)a(2)2=g(Θ(1)20x0+Θ(1)21x1+Θ(1)22x2+Θ(1)23x3)a(2)3=g(Θ(1)30x0+Θ(1)31x1+Θ(1)32x2+Θ(1)33x3)hΘ(x)=a(3)1=g(Θ(2)10a(2)0+Θ(2)11a(2)1+Θ(2)12a(2)2+Θ(2)13a(2)3)

这里的上标都代表这个值属于第几层。从公式中我们可以看到 x0 a(2)0 ,这些在图中是没有的,他们的值都是1,称为偏置单位(bias unit)或偏置神经元(bias unit)。(个人想法:这里的偏置单位是为了简化计算为矩阵乘法所设,将常数项设为 x0=1
y=g(x) 是逻辑回归中介绍过的s函数,或者叫逻辑激励函数(logistic activation function)或者s激励函数(sigmoid activation function)。
如果神经网络在第j层有 sj 个单元,那么 Θ(j) 是一个 sj+1(sj+1) 维的矩阵,如上面的第1层有3个单元,第2层有3个单元, Θ(1) 矩阵是3*4的。(提矩阵是为了方便编程实现)

神经网络计算向量化

我们将sigmoid函数的加权输入( Θ 可以看做权重)提取为一个数 z ,那么每一层的输入相当于一个z向量,向量长度为 sj+1 ,拿上面的例子来说就是第1层的输入为长度为3的一个列向量。
令:

x=x0x1x2x3z(2)=z(2)1z(2)2z(2)3

那么:
z(2)=Θ(1)xa(2)=g(z(2))Adda(2)0=1.z(3)=Θ(2)a(2)hΘ(x)=a(3)=g(z(3))

这里我们得到 a(2) 之后,需要增加 a(2)0 ,产生一个长度为4的向量,满足下一层的输入,所以在编程实现的时候我们需要注意不要忘记这个细节。

神经网络的隐藏层到输出层与逻辑回归很相似。那么神经网络和逻辑回归的不同在于逻辑回归以输入层 x 作为输出层h的输入,而神经网络以隐藏层最后一层作为输出层的输入。我们也可以说神经网络对自己的特征进行学习,以期得到更好的特征用于最后一层(输出层)的输入。(最开始的输入也可以是多项式)
另外,我们可以想象由很多类似上图的神经元可以组成一个神经网络。一些神经元的输出可以作为某个神经元的输入,这就是生物学上神经元轴突和树突的概念启发而来。
另外,我们上面提及的是一种前向传播在神经网络中工作的方式,即由输入层激活(‘activate’)中间的隐藏层,最后激活输出层进行输出。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值