机器学习和深度学习的区别
区别1 :特征提取
从特征提取的角度出发:
机器学习需要有人工的特征提取的过程
深度学习没有复杂的人工特征提取的过程,特征提取的过程可以通过深度神经网络自动完成
2.2 区别2:数据量
从数据量的角度出发:
深度学习需要大量的训练数据集,会有更高的效果
深度学习训练深度神经网络需要大量的算力,因为其中有更多的参数
深度学习的应用场景
图像识别
物体识别
场景识别
人脸检测跟踪
人脸身份认证
自然语言处理技术
机器翻译
文本识别
聊天对话
语音技术
语音识别
常见的深度学习框架
目前企业中常见的深度学习框架有很多,TensorFlow, Caffe2, Keras, Theano, PyTorch, Chainer, DyNet, MXNet, and CNTK等等
其中tensorflow和Kears是google出品的,使用者很多,但是其语法晦涩而且和python的语法不尽相同,对于入门玩家而言上手难度较高。
所以在之后的课程中我们会使用facebook出的PyTorch,PyTorch的使用和python的语法相同,整个操作类似Numpy的操作,并且 PyTorch使用的是动态计算,会让代码的调试变的更加简单
人工神经网络
人工神经网络(英语:Artificial Neural Network,ANN),简称神经网络(Neural Network,NN)或类神经网络,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型,用于对函数进行估计或近似。
和其他机器学习方法一样,神经网络已经被用于解决各种各样的问题,例如机器视觉和语音识别。这些问题都是很难被传统基于规则的编程所解决的。
神经元的概念
在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”,那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物质。
1943 年,McCulloch 和 Pitts 将上述情形抽象为上图所示的简单模型,这就是一直沿用至今的 M-P 神经元模型。把许多这样的神经元按一定的层次结构连接起来,就得到了神经网络。
一个简单的神经元如下图所示,
其中:
a
1
,
a
2
…
a
n
a_1,a_2\dots a_n
a1,a2…an 为各个输入的分量
w
1
,
w
2
⋯
w
n
w_1,w_2 \cdots w_n
w1,w2⋯wn 为各个输入分量对应的权重参数
b
b
b 为偏置
f
f
f 为激活函数,常见的激活函数有tanh,sigmoid,relu
t
t
t 为神经元的输出
使用数学公式表示就是:
t
=
f
(
W
T
A
+
b
)
t = f(W^TA+b)
t=f(WTA+b) 可见,一个神经元的功能是求得输入向量与权向量的内积后,经一个非线性传递函数得到一个标量结果。
pytorch
要添加一个高斯噪声