Advertisement

Neural Networks and Deep Learning学习笔记ch1 - 神经网络

阅读量:

近段时间开始阅读一些与深度学习相关的书籍和资源,并打算系统性地从基础概念如感知机模型入手。今天下载并仔细阅读了一份名为《Neural Networks and Deep Learning》的教程材料Neural Networks and Deep Learning,经过一番深入的学习后发现其理论体系十分丰富且实用。这本书不仅系统地介绍了神经网络的基本原理与工作原理,并且还探讨了许多在当前深度学习研究中被广泛采用的技术要点。特别附带了大量参考代码和实验案例供读者深入实践应用。特别值得一提的是,在书中作者不仅详细阐述了传统神经网络的发展历程及其面临的挑战,并结合实际案例展示了如何通过sigmoid神经元模型以及各种创新性的设计技巧来解决这些问题。看完后感觉受益匪浅,并计划在接下来的时间里重新梳理一遍相关知识以便查漏补缺、温故而知新

  • 感知机
  • Sigmoid神经元
  • 神经网络的结构
  • 用梯度下降法来学习
  • 参考

感知机-Perceptron

为了更好地理解神经网络的概念背景,请了解感知机模型。该模型由Frank Rosenblatt于20世纪50年代至60年代期间首次提出,并最初被设计为模拟人脑中的单个神经元单位。然而,在现代深度学习框架中通常采用sigmoid函数作为激活函数的变体来构建人工神经元单元(artificial neurons)。尽管如此,在深入了解现代神经网络架构之前掌握这一基础机制仍是有益的。

这里写图片描述

在这一实例中构成一个感知机神经元模型,在该模型中包含三个输入特征变量x_{1}, x_{2}, x_{3}以及一个输出variable output。每个输入变量都对应有一个权值系数w_{1}, w_{2}, w_{3}。该神经元模型的输出结果仅限于两种离散状态:0或1,并可通过以下公式进行数学描述:

f(x)等于符号表示以下情况:
\sum w_j x_j小于或等于阈值时,
输出结果为零;
\sum w_j x_j大于阈值时,
输出结果为一。

通过上述公式可以看出感知机的工作原理是什么。但是可以看出,感知机的输出仅限于0和1这两个值。这使得感知机存在一定的局限性,并且它本质上是无法实现异或门这一复杂逻辑运算的。因此为了克服这些限制关于感知机更多内容请看维基百科),我们提出了一个新的神经元模型可以让其输出从0到1之间连续变化。

Sigmoid神经元-Sigmoid neurons

这里写图片描述

如前所述是一个神经网络模型,在其权重参数发生微小变化时(也就是当权重向量发生微小位移时),输出也会产生相对较小的变化范围。这使得该神经网络具备执行稍微复杂一些任务的能力。相比之下,在感知机模型中(即二元分类器中),输出结果仅为二元值(通常为0或1),只有当输入接近阈值时才会引起输出状态的变化,并且这种变化表现为突变式的转变——从一种稳定状态直接切换到另一种状态)。与本科学习的数字电路设计类似,在这一背景下提出了一个新的神经元模型——sigmoid neuron。该模型采用Sigmoid函数作为激活函数(亦即使用Sigmoid函数来进行数值计算)。sigmoid函数也被称为logistic函数,在机器学习领域具有重要应用价值。其数学表达式为\sigma(z)=\frac{1}{1+e^{-x}} ,其典型曲线形态如图所示:

这里写图片描述

可以看出sigmoid函数的输出范围介于0到1之间,并且当输入为0时其输出值为约50%。

设x表示神经元的输入\sum_{j}w_jx_j ,则有\sigma(z)=\frac{1}{1+e^{\sum_{j}w_jx_j-b}}}

此外通过调节参数w,b能够显著影响曲线形态其中当参数w增大时曲线上升或下降速度加快当其足够大时 sigmoid函数几乎仅返回两个离散值即接近于完全二元化的特性类似于感知机模型的行为。

神经网络的结构-The architecture of neural networks

通常由输入层、中间层(即隐藏层)和输出层层叠组成的人工神经网络系统中,默认情况下各为一层;然而,在深度学习框架中,则是通过增加中间层数量来实现较为复杂的任务。以下是一个典型的三层人工神经网络模型:

这里写图片描述

通常情况下,神经网络的每两个相邻层之间的神经元都是两两相连接的。

用梯度下降法来学习-Learning with gradient descent

构建如图所示的神经网络结构后,需要通过训练过程来更新权重参数.梯度下降算法通常被用作优化目标函数的方法.给定一批训练数据,对于输入样本x,神经网络将输出预测值a.如果预测结果与预期结果之间存在差异,则需要计算损失值C(w,b) = 1/(2n) Σ_x ||y(x)-a||².在这里,a表示训练数据中的输出值,y(x)是对给定输入x所做出的预测值.当预测结果与预期结果不一致时,计算两者的差值并取平方作为损失项.整个神经网络的学习过程即通过不断调整权重参数w和b以最小化该损失值的过程.

在接下来的一章中将对神经网络训练所应用的经典反向传播算法进行深入的讲解和全面的阐述。

参考

http://neuralnetworksanddeeplearning.com/chap1.html

全部评论 (0)

还没有任何评论哟~