鏈接原文:https://www.cnblogs.com/liwxmyself/p/14852907.html
0 前言
常言道,温故而知新,那有没有什么东西是每一次看到都像是接触了一种新的知识呢?或许机器学习相关技术发展太过迅速,或许是我之前每次接触都未深入,我总感觉机器学习相关的技术我并不能建立一个完整的概念,或者说并不深入研究的话,对于机器学习的概念都太过零碎了。
几次想要开始整理,但是因为我对机器学习的某些方面还是欠缺了解,总感觉整理不下去,初步定下以下话题吧。
-
卷积神经网络DNN和CNN
-
循环神经网络RNN
-
神经网络发展历史
-
自然语言处理 NLP
这里想要整理的是DNN和CNN,主要涉及
-
常见的视觉任务
-
神经网络DNN
-
卷积神经网络CNN
1、 常见的视觉任务
卷积神经网络最常见的应用在于计算机视觉任务,计算机视觉是关于研究计算机视觉能力的学科,或者说是使机器能对环境和其中的刺激进行可视化分析的学科。图像识别从图像分类到定位(目标检测、语义分割、实例分割)到目标追踪,主要包括以下任务:
-
图像分类:是图像识别的基础,识别出图像中有哪几类的物体
-
目标检测:识别出每一类物体具体的位置并用规则的形状框出来
-
语义分割/实例分割:每一类物品具体的形状位置识别/每一类物品种单个个体识别出来
-
场景文字识别
-
图像生成
-
目标追踪
-
人体关键点检测:人体姿势估计
-
视频分类:通常是几秒的小视频
-
度量学习:通常应用于人脸检测
2、 神经网络
神经网络技术起源于上世纪五六十年代,当时叫感知机(perceptron
),包含有输入层、输出层和一个隐藏层。输入的特征向量通过隐藏层变换到达输出层,由输出层得到分类结果。但是单层感知机对稍微复杂一些的函数都无能为力,直到上世纪八十年代Hition
、Rumelhart
等人发明了多层感知机,即具有各层隐藏层的感知机。
多层感知机可以摆脱早期离散传输函数的束缚,使用sigmoid
或tanh
等连续函数模拟神经元对激励的响应,在训练算法上使用Werbos
发明的反向传播BP
(Back-propagation algorithm)算法。这就是所说的神经网络NN
。
神经网络的层数直接决定了它对现实的刻画能力--利用每层更少的神经元你和更加复杂的函数。但是随着神经网络层数的加深,出现了两个问题:
-
优化函数越来越容易陷入局部最优解
-
梯度消失
2006年,Hition提出了深度学习的概念,引发了深度学习的热潮。具体是利用预训练的方式缓解了局部最优解的问题,将隐藏层增加到了7层,实现了真正意义上的“深度”。
为了克服梯度消失,ReLU,maxout等传输函数代替了sigmoid,形成了如今DNN的基本形式。结构跟多层感知机一样。如下图所示:
维度灾难:然而DNN中每一个下层神经元都连接