一、机器学习和深度学习的介绍
1、定义:
机器学习:是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
深度学习:是机器学习的分支,是一种以人工神经网络为架构,对数据进行特征学习的算法。
2、区别
项目 | 特征提取 | 数据量 |
---|---|---|
机器学习 | 人工进行提取 | 效果一般 |
深度学习 | 自动地进行特征抽取,如盲人摸象,将不同特征组合到一起,期望目标是一头大象 | 效果更好 |
3、场景
深度学习目前更流行,我们玩他。
4、深度学习框架
TensorFlow、PyTorch、MXNet等等,我们这里玩的是PyTorch,没有为什么,那么多框架,能玩一种就很开心了。
二、神经元和神经网络的介绍
1、定义:
神经网络:模仿生物神经网络,如大脑结构,对函数进行估计或近似。
神经元:生物神经网络中,每个神经元与其他神经元项链,就会向相连的神经元发送化学物质,从而改变这些神经元内点位。如果电位超过阈值,神经元就会被激活,向其他神经元发送化学物质。上述情景抽象成简单模型,就是M-P神经元模型,它是神经网络的基础单元。如果他们以不同层次结构连接起来,就得到了一个神经网络。一个神经元的功能是求得输入向量与权向量的内积后,经一个非线性传递函数得到一个标量结果。
三、感知机和多层神经网络的介绍
1、定义:
单层神经网络:是最基本的神经元网络形式(每一列为一层),所有输入向量都是同一向量,由于每个神经元都会产生一个标量结果,所以单层神经元的输出是一个向量,向量的维数等于神经元的数量。
感知机:由两层神经网络组成,输入层接收外界的信号传递给输出层,输出层是MP-神经元模型。它的作用是把一个n维向量空间用一个超平面分割成两部分,给定一个阈值,超平面可以判断出这个向量位于平面的哪一边。结构分为输入层(接收大量输入消息的神经元)、输出层(输出神经元链接中的分析、权衡后的结果)。
多层神经网络:单层神经元网络进行叠加后得到,结果分为输入层、输出层、隐藏层(可以有多层,每一层数量不定,但数目越多,非线性越显著,决定了网络深度)。
全连接层:第N层和第N-1层中,神经元两两之间都有链接,可用矩阵乘法来表示输入的参数数量,进行的是Y = Wx+b
四、激活函数和神经网络思想
1、定义:
激活函数:感知机能把一个平面分成两部分,但因为是直线,并不完全能把数据准确分为两部分。因此需要在感知机的基础上,加上非线性的激活函数(如SigmoidthnhReLUELUMaxoutLeaky ReLU等等,需要注意范围),这样画的是曲线,可以保证数据分为两部分,使得结果更准确。作用:增加模型的非线性分割能力(数据分类更准确)、提高模型鲁棒性(适应性更强)、缓解梯度消失问题、加速模型收敛(训练时间更短)等
2、神经网络思想:
女友判定机,随着年龄的增长,判定机不断变化:
15岁:颜值为标准
18岁:颜值、性格为标准
20岁:…
判定机:对不同的标准项进行加权,但还不好量化。于是将颜值分为身高、长相、皮肤等等继续加权。类似于一张图片,最终被分成像素点,不同像素点进行特征提取,最终组合成期望的结果。此时,自动更新了加权值这些参数,使其不断趋于稳定。