赞
踩
目录
Step2:模型评估(Goodness of function)
Step3:选择最优函数(Pick best function)
神经网络(Neural network)里面的节点,类似我们的神经元。
完全连接前馈神经网络
前馈(feedforward)也可以称为前向,从信号流向来理解就是输入信号进入网络后,信号流动是单向的,即信号从前一层流向后一层,一直到输出层,其中任意两层之间的连接并没有反馈(feedback),亦即信号没有从后一层又返回到前一层。
一个神经网络如果权重和偏差都知道的话就可以看成一个函数,他的输入是一个向量,对应的输出也是一个向量。不论是做回归模型(linear model)还是逻辑回归(logistics regression)都是定义了一个函数集(function set)。我们可以给上面的结构的参数设置为不同的数,就是不同的函数(function)。这些可能的函数(function)结合起来就是一个函数集(function set)。
全链接前馈网络
- 全链接(Fully Connect):layer1与layer2之间两两都有连接
- 前馈(Feedforward):传递的方向是由后往前传
- 输入层(Input Layer):1层
- 隐藏层(Hidden Layer):N层
- 输出层(Output Layer):1层
- Deep = Many hidden layer。随着层数变多,错误率降低,随之运算量增大,通常都是超过亿万级的计算。对于这样复杂的结构,使用loop循环效率很低,我们一定不会一个一个的计算。
计算方法就是:sigmoid(权重w【黄色】 * 输入【蓝色】+ 偏移量b【绿色】)= 输出
很多层时:
从结构上看每一层的计算都是一样的,也就是用计算机进行并行矩阵运算。
写成矩阵运算的好处是:可以使用GPU加速。
把隐藏层通过特征提取来替代原来的特征工程,这样在最后一个隐藏层输出的就是一组新的特征(相当于黑箱操作)而对于输出层,其实是把前面的隐藏层的输出当做输入(经过特征提取得到的一组最好的特征)然后通过一个多分类器(可以是softmax函数)得到最后的输出y。
唯一需要的就是一个函数,输入是256维的向量,输出是10维的向量,所需要求的函数就是神经网络这个函数。神经网络的结构决定了函数集(function set)
模型的评估,一般采用损失函数来反应模型的好差。对于神经网络来说,采用交叉熵(cross entropy)函数来对y和y^的损失进行计算。接下来调整参数,让交叉熵越小越好。
计算整体所有训练数据的损失,然后把所有的训练数据的损失都加起来,得到一个总体损失L。
接下来在function set里面找到一组函数能最小化这个总体损失L,或者找一组神经网络的参数θ,来最小化总体损失L。
使用梯度下降
在神经网络中计算损失最好的方法就是反向传播。
反向传播是一个比较有效率的算法,让你计算梯度(Gradient) 的向量(Vector)时,可以有效率的计算出来,主要用到了chain rule。
对于L(θ)就是所有l^n的损失之和,所以如果要算每个L(θ)的偏微分,我们只要算每个l^n的偏微分,再把所有l^nl偏微分的结果加起来就是L(θ)的偏微分,所以我们先只计算每个l^nl的偏微分。
这里计算得到的x1和x2恰好就是输入的x1和x2。
假设知道问号的值
从另外一个角度看这个事情,现在有另外一个神经元,把forward的过程逆向过来:
y1与y2是输出值,直接计算就能得出结果。
目标是要求计算 (Forward pass的部分)和计算 ( Backward pass的部分),然后把 和 相乘,我们就可以得到 ,就可以得到神经网络中所有的参数,然后用梯度下降就可以不断更新,得到损失最小的函数。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。