神经网络
来源:互联网 发布:pscc2018软件下载 编辑:程序博客网 时间:2024/05/21 10:04
概述
以监督学习为例,假设我们有训练样本集
为了描述神经网络(neural networks),我们先从最简单的神经网络讲起, 这个神经网络仅由一个“神经元”构成,以下就是这个“神经元”的图示:
这个“神经元”是一个以
虽然本系列教程采用sigmoid函数,但你也可以选择双曲正切函数(tanh):
以下分别是sigmoid及tanh的函数图像
注意,我们用单独的参数b来表示截距。
最后要说明的是,有一个灯饰我们以后会经常用到:如果选择f(z)=11+exp(−z) 也就是sigmoid函数,那么它的导数就是
(如果选择tanh函数,那它的导数就是f′(z)=f(z)(1−f(z))
, 你可以根据sigmoid(或tanh)函数的定义自行推导这个等式。f′(z)=1−(f(z))2)
神经网络模型
所谓神经网络就是将许多个单一“神经元”联结在一起,这样,一个“神经元”的输出就可以是另一个“神经元”的输入。例如,下图就是一个简单的神经网络:
我们使用圆圈来表示神经网络的输入,标上“+1”的圆圈被称为偏值节点,也就是截距项。神经网络最左边的一层叫做输入层,最右边的一层叫做输出层,本例中输出层只有一个节点。 中间所有节点组成的一层叫做隐藏层(hidden layer),因为我们不能在训练样本集中观测到它们的值。同时可以看到,以上神经网络的例子中有3个输入单元(偏值单元不计在内),3个隐藏单元及一个输出单元。
下面将列出诸多的公式,这对于表达神经网络至关重要。如有可能深刻理解和尽可能的记住,对理解问题大有裨益。
我们用
其中
注意,没有其他单元连向偏值单元,因为他们总是输出+1。同时,我们用
我们用
我们用
这样我们就可以得到一种更简洁的表示法。这里我们将激活函数
我们将上面的计算步骤叫做前向传播(forward propagation)。回想一下,之前我们用
将参数矩阵化,使用矩阵-向量运算方式,我们就可以利用线性代数的优势对神经网络进行快速求解。
目前为止,我们讨论了一种神经网络,我们也可以构建另一种结构的神经网络(这里结构指的是神经元之间的联接模式),也就是包含多个隐藏层的神经网络。最常见的一个例子是
神经网络也可以有多个输出单元。比如,下面的神经网络有两层隐藏层:
要求解这样的神经经网络,需要样本集
中英文对照
neural networks 神经网络
activation function 激活函数
hyperbolic tangent 双曲正切函数
bias units 偏置项
activation 激活值
forward propagation 前向传播
feedforward neural network 前馈神经网络(参照Mitchell的《机器学习》的翻译)
参考文献
http://deeplearning.stanford.edu/wiki/index.php/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- 神经网络
- fopen
- R中季节性时间序列分析及非季节性时间序列分析
- 字符流拷贝(转载)
- 排序的那些方法实现
- 线程池原理
- 神经网络
- SSH整合——ssh流程图
- java 读取Excel文件(POI)
- mui:在javascript中使用百度地图实现精确定位(一)
- 曲线拟合
- Android音频编解码和混音实现
- C/C++内存泄漏及检测
- JAVA中字符串比较equals()和equalsIgnoreCase()的区别
- 归并排序(分治法)