深度神经网络

神经网络在20世纪七八十年代很火,但随后人们不再使用它们。首要问题是运行多个神经网络比其他算法对计算能力有更高的要求,超出了当时计算机的能力范围。

其次是训练神经网络所需要工作量很大。虽然那时反向传播算法已经研制出来,处理大型神经网络仍存在问题,需要大量的训练才能确定权重。

近年来计算能力提升和训练算法的改进使得在现有计算能力的情况下,能够顺利的完成大型神经网络的训练。

至少包含两层隐含层的神经网络被称为深度神经网络。实际工作中遇到的深度神经网络通常规模很大,每层神经元数量和层次都非常多。

2000年年中的一些研究,关注的是层次数量多的深度神经网络,而更巧妙的算法能够减少实际所需要的层数。

神经网络接收很基础的特征作为输入。神经网络算法把这些数据整合起来向网络中传输,在这个过程中,基本的特征组合成复杂的特征。

有时,这些组合特征对我们来说没有什么含义,但是它们表示个体某些方面的特征,计算机依赖它们进行分类。

由于深度神经网络规模很大,实现起来很有挑战。实现不好,运行时间会很长,甚至还会出现内存不足,最后无法运行的情况。

神经网络的基本实现可以从创建神经元开始,多个神经元组成层类,每一层的神经元使用边这个类的一个实例连接到另一个神经元。这种基于类的实现,有助于显示网络的工作方式,但是对于创建大型网络,效率较低。

神经网络的核心其实就是一系列矩阵运算。两个网络之间连接的权重可以用矩阵来表示,其中行表示第一层的神经元,列表示第二层神经元(有时会用到该矩阵的转置矩阵)。矩阵的每一个元素表示位于不同层的两个神经元之间连接的权重。一个神经网络就可以用一组这样的矩阵来表示。除了神经元外,每层增加一个偏置项,它是一个特殊的神经元,永远处于激活状态,并且跟下一层的每一个神经元都有连接。

对神经网络有了上述深入理解,我们就可以使用数学运算创建、训练和使用神经网络,比起用类实现,效率要更高。就矩阵运算而言,有很多非常好用的库,其代码经过充分优化,借助它们高效完成矩阵运算。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值