文章目录
写在前面:路漫漫其修远兮
1 机器学习和深度学习的介绍
-
深度学习
是机器学习的分支,以人工神经网络为基础,对数据的特征进行学习的方法。 -
机器学习和深度学习的区别
a. 特征抽取
机器学习:人工的特征抽取过程
深度学习:自动的进行特征抽取
b. 数据量
机器学习:数据量少,效果不好特别好
深度学习:数据量多,效果更好 -
框架
a. 目前企业中常用的深度学习框架有很多,比如说Tensorflow,Caffe2,Keras,Theano, Pytorch,Chainer,DyNet,MXNet,CNTK 等等
b. Pytorch的使用和python的语法相同,整个操作类似Numpy的操作,并且Pytorch使用的是动态计算,会让代码调试变得更加简单。
2 介绍神经网络
2.1 概念
人工神经网络(ANN,Artificial Neural Network)简称神经网络或者类神经网络,是一种模仿生物 神经网络的结构和功能的数学模型,用于对函数进行估计或者近似。
2.2 神经元
神经网络的基本单元,相互连接,组成神经网络。
如果神经元上的计算值超过“阈值”,神经元就会被“激活”,也说成是“兴奋”,在这种状态下,这个神经元就会向其他神经元发送信息。
M-P神经网络如下图:
数学公式如下:
t = f ( W T A + b ) t= f(W^TA+b) t=f(WTA+b)
人工神经网络的区别就是神经元连接的不同,所以学习神经网络的关键就是神经元怎么搭。
2.3 单层神经网络
是最基本的神经网络形式
由有限个神经元构成,所有神经元的输入向量都是同一个向量。
由于每一个神经元都会产生一个标量结果,所以,单层神经元的输出是一个向量,向量的维数等于神经元的个数。
最后,要知道最常见的神经网络应该是两层的,一个是输入层,一个是隐藏层,这一种单层神经网络并不是很常见。
2.4 感知机
感知器是由两层神经网络组成,输入层和输出层,输出层是MP-神 经元。
2.4.1 感知机的作用
感知器是一个非常常见的二分类模型。
把 一个n维向量空间 用一个超平面分割为两个部分。作用:给定一个输入向量,超平面可以判断这个向量是属于超平面的哪一面,也就得到了正 和 负 两种输出。
2.5 多层神经网络
多层神经网络就是由单层神经网络进行叠加之后得到的。
- 输入层:神经元接收大量非线性输入消息。
- 输出层:消息在神经元中传输、分析、权衡,形成输出结果
- 隐藏层:输入层和输出层之间众多神经元 链接组成的各个层面。隐层有一个或多个,隐层的节点数目不确定,但是一般来说,数目越多、层数越多,神经网络的非线性拟合能力越显著,神经网络的强健性越显著。
2.6 全连接层
概念: 当前一层和前一层的每一个神经元相互链接,我们称当前这一层为全连接层。
全连接层,也就是在前一层的输出的基础上进行一次 Y = W x + b Y=Wx + b Y=Wx+b 的变化。(不考虑激活函数的情况下)
- 换言之(不准确):数据shape的变化
2.7 激活函数
如果一层全连接层解决不了分类问题,那么就会想到再加一层全连接层。
但是可以发现,两个线性函数是可以合并的,最后依旧只能拟合出直线,所以说,就需要引入激活函数的概念。
- 作用:增加模型的非线性分割能力。
- 增加模型的鲁棒性、稳健性
- 缓解梯度小时
- 加速模型的收敛
常见的激活函数:
2.8 总结
深度学习的思想:
输入的最原始、最基本的数据,通过模型来进行特征抽取,进行更加高级的特征学习,然后通过传入的数据来确定合适的参数,让模型去更好的拟合数据。
sigmoid:不咋用了,会导致梯度爆炸,而且计算复杂
多用relu,因为比较简单,而且可以去噪!