文章目录
- 背景
-
物体识别简介
-
自动驾驶
- 淘宝京东使用物体识别技术
- 公司业务需求
-
深度学习简介
-
深度学习的位置
- 深度学习概念
- 深度学习优势
-
深度学习基础知识
-
感知机
- 激活函数
- 多层感知机
- 卷积神经网络
-
卷积层 * 池化层
- 模型训练
-
前向传播 * 反向传播与参数优化
-
深度学习服务端框架
-
tensorFlow
- keras
- pytorch
- Caffe/Caffe2.0
-
caffe框架
-
为何选择caffe
- caffe环境搭建
- caffe基础
-
数据集 模块概要图 solver(prototxt) 执行者配置 神经网络可视化 caffe中的基础概念
-
blobs layer 神经层 net 神经网络 * forward/backward 前向传播/反向传播
* caffe+mnist数据集+lenet
* caffe+cifar10+caffenet
* caffe+cifar10+mobilenet
* caffe+voc2012+vgg(finetune)+ssd(物体检测模型)
-
轻量级客户端框架-ncnn
-
ncnn简介
- ncnn+caffe+mobilenet实战
-
ncnn环境搭建 * 模型转化(caffe格式-> ncnn格式)
- 源码解析
-
文件目录 执行流程 重点代码 效果展示 其他工程的效果图
-
相关学习资料
-
教学视频
- 开源项目
- 参考博客
背景
产品以后的发展需要添加更多科技元素,如下:
- 人脸识别
- 物体识别
- 场景识别
以下以物体识别为重点,使用到了深度学习技术,以下我们将逐一展开。
本次分享的重点是深度学习+caffe+ncnn,其余部分将简单的进行带过。
注:本文主要以有监督的学习为主(分类和回归问题),无监督学习不作为分享范围。
物体识别简介
物体识别(俗称Object detection),是近年来兴起的技术,这也是人工智能的首要目标之一。这是一种完全模拟人眼识别的技术,即使在物体旋转、变色、部分展示等的情况下,同样具备优秀的识别效果。
人工智能目标是:
- 让机器看世界
- 让机器听世界
- 让机器独立思考
自动驾驶
在驾驶领域中,引入物体识别技术将大大降低交通事故发生的概率。
淘宝京东使用物体识别技术
公司业务需求
近期产品提出物体识别的相应需求,能识别出家长和老师发送图片中的物体,来开展相应的业务。以下是一张海边游玩的照片。
深度学习简介
深度学习的位置
深度学习分别属于人工智能和机器学习的一部分。与深度学习相并行的另外一种机器学习方法,被称之为传统的机器学习(例如svm、逻辑回归)。
深度学习概念
人工神经网络是一个分层的有向图,第一层输入节点接受输入的信息,也称为输入层。来自这些点的数值按照它们输出的弧的权重(wn),进行线性加权(得到G),然后再做一次函数变化f(G),赋给第二层的节点Y。
第二层的节点照此将数值向后传递,直到第三层节点,如此一层层传递,直到最后一层,最后一层又被称为输出层。在模式分类时,一个模式(图像、语音、文字等)的特征值(比如坐标),从输入层开始,按照上面的规则和公式一层层向后传递。最后在输出层,哪个节点的数值最大,输入的模式就被分在了哪一类。
------------------引自《数学之美—Google大脑和人工神经网络》
深度学习优势
神经网络与传统的机器学习相比:
- 能支持更复杂的分类边界
- 非线性表征更加丰富
- 准确率会随着数据集的增加而突破传统学习的瓶颈
- 与svm相比,在大数据集上收敛的更快
- 轻量级神经网络具备高性能的前向传播,方便部署到移动设备
深度学习基础知识
参考:https://www.cnblogs.com/wj-1314/p/9754072.html
感知机
可以简单的理解为是线性分类。假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练数据集正实例点和负实例点完全正确分开的分离超平面。
感知机重点包含以下两点:
- 线性加权
- 依靠损失函数进行权重优化
数学公式略,将在其他博文中进行阐述。
感知机的缺陷:只支持线性分类,对于简单的异或问题也不能进行分类。以下是异或问题中最简单的情况,可以看到无论哪一条直线都不能进行完美的分割。
激活函数
针对于感知机不能表达非线性的问题,激活函数诞生了。
在人工神经网络中,规定神经元函数只能对输入变量(指向他的节点的值)线性组合后的结果进行一次非线性变换。
这次非线性变化成为“激活函数”
----《数学之美》
为了神经网络的通用性,每一层的非线性变化都选择同一类函数。
激活函数包括:
- relu
- sigmoid
- tanh
- 等等
激活函数参考博客:https://blog.csdn.net/tyhj_sf/article/details/79932893
多层感知机
多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构