传统机器学习与深度学习
尽管深度学习在学习能力上由于传统的机器学习, 但是深度学习中仍有机器学习的影子, 深度学习的理论是离不开传统的机器学习的. 比如线性模型, 卷积核, ReLU 激活函数, softmax 等, 这些都应用在深度学习中的神经网络中. 下面简单介绍一下传统机器学习与深度学习的对比.
传统机器学习建立过程
数据预处理 & nbsp; -----------> 特征提取 & nbsp; -----------> 选择分类器 | ||
归一化 降维 去噪 | 人工设计模式 图像:SIF, LBP, Fisher, Gabor,Hog 语言:MFCC, 小波, Word2vec | SVM, 决策树,随机森林,贝叶斯网络,线性回归,聚类 |
深度学习建立过程
数据准备 & nbsp; -----------> 设计模型 & nbsp; -----------> 训练 | ||
数据,label | CNN, RNN CNN+RNN | 调结构 损失函数 训练参数 |
深度学习应用特点
优点:
学习能力强, 覆盖范围广, 适应性好, 可移植性好 (例如迁移学习)
缺点:
计算量大, 便携性差, 硬件需求高, 模型设计复杂, 有可能被 "hack" - 有可能将某些图案识别成别的物体, 长于计算, 弱于算计
深度学习框架比较
框架 | 语言 | 文档资料 | CNN 兼容 | RNN 兼容 | 上手难易 | 速度 | 并行支持 | keras 兼容 | 支持团队 |
Theano | Python/C++ | ++ | ++ | ++ | + | ++ | + | + | 蒙特利尔大学 |
Tensor Flow | Python | +++ | +++ | ++ | +++ | ++ | ++ | + | |
Torch/Pytorch | Lua, Python | + | +++ | ++ | ++ | +++ | ++ |
| |
Caffe | C++ | + | ++ |
| + | + | + |
| 贾杨清,加州伯克利 |
MXNet | Python,R,Julia | ++ | ++ | + | ++ | ++ | +++ | + | 李沐,陈天奇等,Amazon |
Neon | Python | + | ++ | + | + | ++ | + |
| Intel |
CNTK | C++ | + | ++ | +++ | + | ++ | + |
| Microsoft |
TensorFlow
文档丰富, 适合初学者, 安装非常方便, 谷歌支持, 长期有效, 自动求导, 只需关注模型设计, Keras 支持, 方便迅速开发.
https://www.tensorflow.org/
TensorFlow 的具体应用可以看一下中文的一些网站比如 TensorFlow 中文社区, 还有 c 语言中文网的 http://c.biancheng.net/tensorflow/ , 当然也可以学习英文的相关文档.
深度学习基本概念的了解
人工神经网络又叫神经网络, 是借鉴了生物神经网络的工作原理形成的一种数学模型. 神经网络是机器学习诸多算法中的一种, 它既可以用来做有监督的任务, 如分类, 视觉识别等, 也可以用作无监督的任务. 同时它能够处理复杂的非线性问题, 它的基本结构是神经元, 如下图所示: 这是简单的神经元只有一层
其中, x1,x2,x3 代表输入, 中间部分为神经元, 而最后的 hw,b(x) 是神经元的输出. 整个过程可以理解为输入 --> 处理 --> 输出.
由多个神经元组成的就是神经网络: 它由输入层, 隐藏层和输出层组成, 如下图是鸢尾花数据集经过训练的结果, 当然此图是盗用别的博客 https://www.cnblogs.com/fundebug/p/9143667.html 的:
卷积核是图像处理的基本算子, 卷积神经网络将卷积核应用到了神经网络中, 可以从下图了解一下卷积的大概过程:
接下来就是对深度学习开始系统的学习一番了.
来源: http://www.bubuko.com/infodetail-3280862.html