深度学习概念
激活函数(Activation Function)
就是在人工神经网络的神经元上运行的函数,负责将神经元的输入映射到输出端。
阶跃函数
输出0或1.优点:简单易用。缺点:函数不光滑,不连续,不可导。
线性函数
最简单的连续函数。优点:多个输出。缺点:无法使用梯度下降法来训练模型:倒数是常数,并且与输入x无关,不利于模型求解过程中对权重的确定;神经网络都是线性函数,无论有多少层,都变成了线性函数。
sigmoid函数
优点:平衡的渐变;输出介于0-1之间,对每个神经元的输出进行标准化;清晰的预测:大于2或小于-2,y趋于1或0,即很好的判断类别。缺点:梯度消失:x很大或很小,导数趋于零,网络拒绝进一步学习,无法完成准确的预测;输出y中心点不是0,是0.5
Tanh函数
优点:正负方向以原点对称,输出均值是0,使得收敛速度比sigmoid快,减少迭代次数。具有sigmoid函数优点。缺点:与sigmoid函数一样,也存在梯度消失问题。
Relu函数
优点:计算效率高,允许网络快速收敛;非线性,尽快看起来像线性函数,但它具有倒数函数并允许反向传播。缺点:神经元死亡问题:当输入接近0或为负时,函数的梯度变为0,网络无法执行反向传播,也无法学习。
Leaky Relu函数
接近了Relu的神经元死亡问题,及时输入负值,也能进行反向传播;具有relu函数的优点。缺点:结果不一致,无法为正负输入值提供一致的关系预测(不同区间函数不同)。在x>0的范围,导数更大,对输出结果有更大的结果。
Softmax函数
(应用于多分类问题)帮助输入结果映射到0-1的输出概率,他们之和为1。
没有最好的激活函数,场景决定哪个合适
sigmoid、tanh:二分类任务输出层(大于0.5类别1,小于0.5类别0);模型隐藏层(作为中间提取信息)
relu、leaky relu:回归任务(回归任务输出也是连续的数值);卷积神经网络隐藏层(卷积神经网络非常长,x很大的地方梯度消失)
softmax:多分类任务输出层。
激活函数参考:https://blog.csdn.net/dfly_zx/article/details/104493048
多层感知器正向传播(forward propagation)
从输入层到输出层正向的传播。
多层感知器反向传播
一开始告诉初始化的斯塔是多少,得到预测的y值,减去实际的y,得到偏差,反推,得到中间层的误差,再到更前一层的。即从后往前一次计算每层神经元的数值偏差,然后通过梯度下降法寻找到使偏差最小的参数西塔,完成模型的求解
损失函数
从逻辑回归到mlp:先类别和,再对所有样本进行求和,即与逻辑回归损失函数比,增加了类别数量
图像卷积(convolution)运算
即通过对图像矩阵与滤波器矩阵filters进行对应相乘再求和运算,课实现图像中特定轮廓特征的快速搜索。
卷积神经网络的核心:寻找合适的轮廓过滤器
彩色图的卷积运算,RGB图像的卷积
对R、G、B三通道分别求卷积再相加,得到一个通道
池化(pooling)
也称欠样本或下采样,指按一定的规则对图像矩阵进行处理,实现信息压缩与数据降维。作用:减少过拟合,同时提高模型容错性。即把对分类不需要的图片区域(背景)压缩。
最大法池化(Max-pooling),取最大值。stride为窗口滑动步长。
平均法池化(Avg-pooling),求平均值。
卷积神经网络(Convolutional Neural Network)
把卷积、池化、mlp先后连接在一起,组成一个能够高效提取图像重要信息的神经网络。
卷积之后、池化之前会增加激活函数以筛选保留重要信息。通常选用Relu函数,因为1、是部分神经元为0,过滤噪音信息,防止过拟合;2、迭代快,易于求解。
卷积神经网络两大特点
1、参数共享(Parameter sharing):同一个特征过滤器课用于整张图片
2、稀疏连接(sparsity of connections):生成的特征图片每个节点只与原图片中特定节点连接。(之和原图像素点的部分像素点相关,即不需要关联很远的点)
图像卷积的两个常见问题
1、边缘信息使用少,容易被忽略
2、图像被压缩,信息丢失
应对之法
图像填充(padding),通过在图像周边添加新的像素,使边缘位置图像信息得到更多的利用。
##步骤##图像填充》池化运算》卷积运算》多层感知器结构+输出预测
站在巨人的肩膀上成长:经典的CNN模型
1、参考经典的CNN结构,将其核心思想运用到新模型设计
2、使用经典的CNN模型结构提取图像重要轮廓,再建立MLP模型
经典的CNN模型:leNet-5、AlexNet、VGG
LeNet-5
是用来处理简单的灰度图像的。filter均为5*5(s=1);池化为avg pool(f=2,s=2),卷积与池化先后成对使用;随着网络越深,图像的高度和宽度在缩小,通道在增加
AlexNet
特点:
输入图像:2272273RGB图,3个通道
训练参数:约60000000个
引入图像填充,采用max pool;更为复杂的结构,能够提取出更丰富的特征;适用于识别较为复杂的彩色图,可识别1000种类别。正是AlexNet的诞生让很多研究者相信在计算机视觉应用中,深度学习可以很好的完成任务。
VGG-16
输入图像:2242243 RGB图,3个通道
训练参数:约138000000个
特点:
1、filter均为33,步长为1,卷积前均使用了图像填充padding(same convolution)
2、池化均为max pool,窗口尺寸均为22,步长都是2
3、使用更多的filter提取轮廓信息,进一步提高识别准确率
序列模型(Sequence Model)
任务:识别所说的话。在进行语音识别时,给定了一个输入音频片段X,并要求输出对应的文字记录Y。基于语音内容及其前后信息进行文字预测
任务:物体位置预测。T=5s的时候,车在什么位置?通过目标前一个时刻所处的位置、速度和方向,可以预测其下一时刻的位置。
#序列模型(Sequence Model):输入或者输出中包含有序列数据的模型叫做序列模型。
特点:1、输入(输出)元素之间是具有顺序关系。不同的序列,得到的结果应该是不同的,比如“不睡觉”和“睡觉不”这两个短语的意思是不同的2、输入输出不定长。不如聊天机器人,聊天之间的对话长度都是不定的。
循环神经网络(RNN)
一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)的神经网络。
#基本的RNN结构:一个输入样本对应一个输出结果。应用:特定信息查找。
多输入多输出且输入输出样本数量相同的RNN结构
#基本的RNN结构:多对一。多输入单输出RNN结构。应用:情感识别。
#基本的RNN结构:一对多。单输入多输出RNN结构。应用:序列数据生成器(图像字幕、音乐生成、文章生成)
#基本的RNN结构:多对多,多输入多输出。应用:机器翻译
RNN结构中的信息丢失问题
1、前部序列信息在传递到后部的同时,信息权重下降,导致重要信息丢失
2、反向传播算法进行模型求解时,梯度消失
长短期记忆网络(LSTM)***
通过ai传递前部序列信息,距离越远信息丢失越多;增加记忆细胞ci,可以传递前部远处重要信息
1、忘记门:选择性丢弃ai-1与xi中不重要的信息
2、更新门:确定给记忆细胞添加哪些信息
3、输出门:筛选需要输出的信息
特点:即使网络结构很深(很多层),前部的重要信息也能在后续预测中保留;减少了普通RNN在求解中梯度消失问题
双向循环神经网络(BRNN):后部序列信息也用于前部信息的预测
深度循环神经网络(DRNN):对于更难提取的复杂信息,可以把单层RNN叠起来或和mlp结构结合使用
迁移学习(transfer learning)
是一种机器学习方法,就是把任务A开发的模型作为初始点,给予其结构或权重系数实现任务B模型的快速搭建与学习。目的:运用已有的知识帮助发现信息中的规律,并将其应用到解决不同但相似领域的问题。
应用:小汽车识别模型应用到公交车识别;美式英语翻译系统模型应用于英式英语翻译系统
#迁移学习通过任务A的数据,模型A学习了核心的模型结构、权重系数(weights);机器基于模型A与新的数据,实现了对模型A的部分结构或权重系数的更新,得到模型B。
迁移学习的三种实现方法
1、特征提取:使用模型A,对原数据进行特征信息提取(通常会移除模型A的预测输出层)
2、结构引用:直接使用模型A的结构,利用新的数据对其重新/二次训练,实现权重系数的更新
3、部分训练:直接使用模型A的结构,利用新数据重新/二次训练,更新其指定的部分权重系数。
如何选择:根据新样本数和任务相似度;没有固定的方法,可以根据情况灵活应用
如果新数据多、任务相似度高,可基于原有结构,重新训练:结构引用,保留结构、更新系数。
如果新数据少、任务相似度高,保留原模型大部分结构与权重系数。特征提取,替换输出层。
如果新数据少、任务相似度低,可尝试更新部分系数。部分训练,更新部分系数。
如果新数据多、任务相似度低,原有模型可能不适用,尝试全新结构。全新模型,新结构、系数。
迁移学习的价值
数据,对样本数量需求相对较小;时间,待更新参数少,训练速度快;表现,通常会必很多新的模型有更好的表现。
在线学习(Online learning)
即将新数据输入给已经训练好的模型,实现模型更新,发现新的价值信息。
价值:对于新数据,不需要对全数据集进行再次训练,但能高效地发现新规律。
要求:需要有连续的数据流输入模型
特点:模型结构保持,权重系数更新
#案例:针对物流快递价格,不同时期,如何进行定价。
方案一:专家模型:考虑距离、运输量、天气、同期其他公司价格、历史参考价格等等,建立一个专家模型
方案二:根据客户的实时下单情况,预测客户对不同价格的购买意愿,根据意愿调整价格
混合学习
#半监督学习:是监督学习与无监督学习相结合的一种学习方法。半监督学习使用大量的未标记数据,以及同时使用标记数据,来进行模型识别工作。
伪标签学习(pseudo-labelling)
用有标签数据训练一个分类器,然后用这个分类器对无标签数据进行分类,这样就会产生伪标签(pseudo label)或软标签(soft label),挑选你认为分类正确的无标签样本(预先设定一个挑选准则),把选出来的无标签样本用来训练分类器。
伪标签学习的局限性:
1、标签数据可能都是同一个类别,无法训练出有效的分类器
2、可能无法寻找到合适的筛选准则
半监督的核心:尽可能将数据中正确信息利用起来
伪标签学习的局限性:
1、标签数据可能都是同一个类别,无法训练出有效的分类器
2、可能无法寻找到合适的筛选准则
半监督的核心:尽可能将数据中正确信息利用起来:1、相似样本的共同特性2、标签样本的监督信息
半监督学习:聚类分析+结果矫正,利用有标签的部分数据,对聚类模型结果进行结果矫正
半监督学习没有特定的训练方式,多尝试,实现监督学习+无监督学习的灵活运用:有标签数据提取特征的半监督学习:用有标签数据训练网络;通过训练好的模型的提取无标签数据特征,帮助简历模型完成任务。有标签数据并不局限于自己收集到的数据,还可以利用别人使用的相似的数据或者模型,比如:利用VGG16提取图像特征
#奇特草莓检测:
普通草莓:监督学习(有标签数据实现结果矫正、VGG16)、无监督学习(很多样本没有标签,聚类算法)
奇特草莓:深度学习(CNN图像特征提取)+机器学习(聚类分析)
深度学习+机器学习
数据预处理:数据标准化、异常检测、数据降维等
输出预测:聚类(Kmeans、Meanshift等)、分类(逻辑回归、决策树)、回归(线性、非线性等)
+复杂特征提取:多层感知器MLP、卷积神经网络CNN、循环神经网络RNN
均值漂移聚类Meanshift:一种基于密度梯度上升的聚类算法(沿着密度上升方向寻找聚类均值点)
算法流程:
1、随机选择未分类点作为中心点
2、找出离中心点距离带宽之内的点,记作集合S
3、计算从中心点到集合S中每个元素的漂移向量M
4、中心点以向量M移动
5、重复2-4,直到收敛
6、重复1-5直到所有的点都被归类
7、分类:根据每个类,对每个点的访问频率,取访问频率最大的那个分类,作为当前点的集合