当下热门的神经网络是什么东西?
一文告诉你, 当下热门的神经网络是什么东西?
目录引索
- 简单神经网络
- 感知机
- 神经网络特点
- softmax
- 交叉熵
- 卷积神经网络
- 卷积
- 激活函数
- 池化
- 全连接
- Tensorflow playground 演示
简单神经网络
神经网络就是模拟人的神经元进行信号(信息)收集、传递、处理的过程。
以人体对于温度的感知为例:
感知机
- 定义: 有n个输入数据,通过权重与个数据之间的计算和,比较激活函数结果,得出输出。
- sum = w1x1+w2x2+w3x3+......
- 应用: 容易解决与、或问题, 分类问题。
- 与问题: 所有输入为1,则为1
- 或问题: 只要有一个为1,则为1
- 亦或问题:相同为0,不同为1 (使用2条直线来划分,即2个感知机)
- 感知机与逻辑回归的对比
- 感知机是求和以后进行一个简单的阈值判断,而逻辑回归是通过一个sigmoid激活函数函数转化为[0,1]的值。
神经网络定义
当一个感知机不能解决问题的时候,会用多个感知机来构成网络。
感知机 --> 神经元
多个神经元构成的网络 --> 神经网络
神经网络是一个多分类问题,得出属于全部类别的每一个概率,谁的概率大,就是谁。
神经网络特点
- 由输入层(1个)、隐藏层(n个)、输出层组成(1个)
- 输入向量的维度和输入神经元的个数相同 (不是个数)
- 同一层的神经元之间没有连接
- 每个连接都有权重 (类似于线性回归)
- 第N层与N-1层的所有神经元全连接(最后一层全连接)
神经网络结构
- 结构: 权重、神经元等
- 激活函数: 增强网络的非线性,简单理解,没有激活函数,只能画直线分割数据点;增加激活函数,可以用曲线来划分。
- ReLu, Tanh, sigmoid等
- 学习规则: 网络中的权重,如何随着时间(或者说是迭代)来进行自我调整。 包括正向传播和反向传播。
- 正向传播(前向传播): 输入经过一层层计算,(w1x1+w2x2+...) 得出输出结果
- 反向传播:总误差是由不同的权重产生的,将误差按权重的比例进行分割,向后传递,例如某个节点的总误差是0.5,它是由上2个节点传播而来,对应的权重比例为1:4, 则这两个节点分摊误差为0.1和0.4,依次向前传递。最终通过误差值来调整各节点的权重。
神经网络的判定 (softmax)
- 为什么需要softmax?
- 神经网络是解决多分类问题,但是它的输出仅仅就是一个值,使用一个函数来划分出概率,对目标类别都会输出一个概率,而目标特征一般都使用one-hot编码,通过对比不同类别的概率得出结果。
- softmax表达式
神经网络算法的优化
【不同算法的对比】
损失衡量策略:交叉熵损失(对数似然损失的推广)
深度神经网络
深度神经网络与单一隐藏层神经网络的区别在于深度,随着神经网络深度增加,节点所能识别的特征也越来越复杂。
卷积神经网络
什么是卷积神经网络
- 卷积神经网路是深度神经网络的一种类型,如AlexNex, VGG, GoogLeNet, ResNet, 它是为了解决全连接网络的一些缺点而存在:
- 参数太多,计算量大
- 没有利用像素之间的位置信息,(图片识别每个像素与周围像素关系紧密)
- 层数限制
- 卷积神经网络的特点在于隐藏层分为卷积层和池化层(下采样层)
- 卷积层:通过在原始图像上进行平移来提取特征(带着权重偏移,乘加运算)
- 池化层:通过特征后稀疏参数来减少学习到的参数,降低网络的复杂度。(最大池化,平均池化)
神经网络发展历史
卷积层 (Convolutions)
- 过滤器(filter),是一个带有权重的观察窗口,通常为1* 1, 3* 3, 5 *5 的结构,权重与图片中的数值(RGB)做线性回归, (乘加运算),最终得出一个结果。
- 步长 (strides):过滤器在图片上每次平移的像素点数量
- 0填充 (padding): 当过滤器移动至图片边缘以外的处理方式
- same: 越过边缘取样,取样面积与输入的图像像素相同
- valid: 不越过边缘取样,取样的面积小于输入图像的像素宽度。
单通道图片卷积操作(灰度图片)
注: 当有多个过滤器进行观察时,过滤器携带的权重是不一样的,但是其步长和零填充方式一致。有多少个过滤器,最终的结果有多少个。
多通道图片的卷积操作(RGB图片)
激活函数
- 为什么要增加激活函数:
- 增加网格的非线性分割能力
- 在进行梯度求导时,没有非线性,多次求导后,梯度就消失了。
- 常见的激活函数
- sigmoid = 1/(1+e^(-x)) , 多次求导运算量大, 对于深层次网络,反向传播时容易出现梯度爆炸。
- relu: max(0, x)
池化层(Pooling) 也称为下采样(Subsampling)
Pooling层的主要作用是特征提取,通过去掉Feature map中不重要的样本,进一步减少参数数量。
常见的Max Pooling 取 2*2 , 2步长, 也可以指定padding
Dropout & Inception
- dropout : 随机丢弃一部分数据,防止过拟合,增强泛化能力 (一般用于大型网络)
- Inception: 一组特定的卷积结构,可以参考GoogLeNet
全连接层 (Full Connected层)
卷积池化可以理解为做特征工程,后面的全连接相当于做特征加权。
全连接层在神经网络中起到了 “分类器”的作用。
【拓展】对神经网络的直观认识
使用tensorflow的playground演示
http://playground.tensorflow.org
醉后不知天在水,满船清梦压星河。