机器学习流程
数据获取->特征工程->建立模型->评估与应用
特征工程的作用
- 数据特征决定了模型的上限
- 预处理和特征提取是最核心的
- 算法与参数选择决定了如何逼近上限
深度学习应用领域
计算机视觉以及自然语言处理。
计算机视觉
图像分类任务:一张图片被表示成三维数组的形式,每个像素的值从0到255。
计算机视觉的挑战:照射角度、形状改变、部分遮蔽、背景混入等。
机器学习常规套路
1、收集数据并给定标签
2、训练一个分类器
3、测试、评估
神经网络基础
线性函数
从输入到输出的映射。一个输入图像经过得分函数f(x,W)后,得到该输入为每个类别的得分。
f(x,W) = Wx+b。W权重参数,b偏置参数。
假设10个类别,32 x 32 x 3的输入,则W为10 x 3072,b为10 x 1。表示为对10个不同类别的权重参数和偏置微调。
多组权重参数构成了决策边界。
损失函数
神经网络既能分类,又能回归。二者损失函数不同。来衡量当前权重参数的结果。
如果损失函数的值相同,那么意味着两个模型一样吗?不一样。因此,我们要加入正则化。
损失函数 = 数据损失 + 正则化惩罚项
Softmax分类器
如何把一个得分值转换成一个概率值?
先对得分值做exp映射,之后进行归一化处理。然后计算损失值:Li = -logP(Y=yi | X=xi)
sigmoid函数
前向传播
由W和x能计算出f=Wx,得出得分值,基于真实标签值与概率值计算损失值,再加入正则化惩罚项R(W),就可以得到损失。
之后更新模型需要用到反向传播(梯度下降)
反向传播
梯度下降方法
-加法门单元:均等分配
-Max门单元:给最大的
-乘法门单元:互换的感觉
神经网络整体架构
-层次架构:输入层、隐藏层、输出层
-神经元:数据的量、矩阵大小
-全连接
-非线性:每一步矩阵操作后都有非线性变换
神经元个数对结果的影响
神经元个数并非越多越好,要考虑过拟合的情况。
正则化和激活函数
惩罚力度越小,越符合训练集的结果,越容易产生过拟合。
常用的激活函数:Sigmoid、Relu、Tanh等非线性变换。
不使用Sigmoid函数:梯度消失现象。由于个别层的影响使得梯度为零了。
数据预处理
不同的预处理结果会使得模型效果发生很大的差异。
标准化。
参数初始化
通常我们使用随机策略来进行参数初始化。
过拟合风险解决方法
除了正则化,还有DROP-OUT。
在神经网络训练的过程中,每次在每一层随机杀死部分神经元。