深度学习的基础概念、基础的数学原理学习记录(一)

前言

这里是对深度学习的一些基本定义和公式原理作学习记录。

监督学习:

先用带标签的数据集合学习得到一个模型,然后再使用这个模型对新的样本进行预测。
在这里插入图片描述

基本概念

  1. 分类:得到离散值输出(属于哪一类)
  2. 回归:得到的连续值输出(具体数值)
  3. 泛化:对训练集和测试集的正确率都高(泛化能力强
  4. 过拟合:对测试集正确率低(举一反三能力差
  5. 欠拟合:对训练集正确率低(测试用的数据集再次检测都不对)

概率与概率分布

离散结果的建模情况

(0 or 1)

  1. 伯努利分布:是否为垃圾邮件?
  2. 多项分布:
  3. 泊松分布:整数的判断场景

连续结果的建模情况

正态分布
应用场景是:推测人群体重,预测考试成绩等…

非监督学习(不带标签)

聚类:物以类聚,人以群分
给定N个对象,将其分为K个子集,使得每个子集内的对象相似,不同子集之间的对象不相似。
数据变换:数据降维.[人脸图像]是高维数据,降低为[1,2,3,4]等像素数据集,为低维数据。
深度学习是机器学习领域下的一个分支,机器学习也是人工智能领域下的一个 分支。

深度学习的发展历史

深度学习是在神经网络基础上的进一步加深,层数更多
监督学习的发展史:
多层感知机------(增加多层结构)深度神经网络----------(增加卷积层)卷积神经网络
无监督学习的发展史:
受限玻尔兹曼机-------(增加多层结构)深度波尔茨曼机/深度信念网络

深度学习的训练过程示意图
在这里插入图片描述

卷积神经网络的各层解释

梯度下降:寻找全局最优解
卷积层 :得到边缘
池化层:(max-pooling)
缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性。
在这里插入图片描述
最大池化:可以提取最大的特征,目前来说,最大池化比平均池化更常用!

池化层的超参数为:
f=2;过滤器尺寸
s=2;步幅

所以,池化层的超参数是最固定的,不需要训练学习中更改!不影响权重,是静态属性!

全连接层:(Fully connected layers)
全连接层在整个卷积神经网络中起到了分类器的作用。

卷积神经网络的优化方法

超参数:超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的数据。

梯度下降分类:

  • 批量梯度下降:Batch Gradient Descent(BGD)
  • 随机梯度下降:Stochastic Gradient Descent(SGD)
  • 小批量梯度下降:Mini-batch Gradient Descent(MBGD)

线性回归:
                                   h θ ( x i ) = θ 1 x i + θ 0 h_{\theta }(x^{i})=\theta _{1}x^{i}+\theta _{0} hθ(xi)=θ1xi+θ0
                                  J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J(\theta _{0},\theta _{1})=\frac{1}{2m}\sum_{i=1}^{m}(h_{\theta }(x^{i})-y^{i})^{2} J(θ0,θ1)=2m1i=1m(hθ(xi)yi)2
J J J代表的是预测值与实际值的差值,代表目标函数(损失函数),其中, i = 1 , 2 , 3... m i=1,2,3...m i=1,2,3...m,这里的目标函数是所有样本误差和均值。系数中多个2是为了求导时把2次方约掉。我们的目的是使 J J J最小,此时 J ′ = 0 J^{{}'}=0 J=0。训练的过程就是更新权值,找到函数最小值时的 ( θ 0 , θ 1 ) (\theta _{0},\theta _{1}) (θ0,θ1)

训练过程的数学意义

神经网络在更新权值的时候需要先求得损失函数,再由损失函数求得各参数的梯度进行更新。使用梯度下降,实际就是求损失函数最小值的过程。用多少个训练样本去计算损失函数呢?用batch_size.更新参数时,用batch_size个样本来训练。
batch_size代表批量输入大小。m即batch_size,代表训练样本个数!

批次梯度下降法:batch_size=所有训练数据数量
随机梯度下降法:batch_size=1.每次仅用一个训练数据来更新权值。
小批量梯度下降法:1<batch_size<训练集。每次用部分数据来更新权值。
batch_size是超参数。

三种梯度下降算法的优缺点

在这里插入图片描述
BGD:收敛很快,但容易陷入局部最小值或鞍点,没法跳出来。测试集效果不好,泛化能力弱。一次使用全部训练数据,对显卡要求高!

SGD:能跳出局部最小值和鞍点;泛化能力强,但收敛比较慢。

MBGD:每次随机用几个数据(图片)进行更新,这几个训练数据并不完全符合训练集的规律,相当于引入了噪声,可以跳出局部最小值和鞍点,主要是batch_size的参数不好找,一般在2的幂上调参。
理想的梯度下降算法满足两点:
收敛速度要快,能全局收敛。

前向传播和反向传播

前向传播的公式:(训练集和测试集)
                                         z = w x + b z=wx+b z=wx+b
                                         A = σ ( Z ) A=\sigma (Z) A=σ(Z)
算法步骤:

  1. 前向计算每个神经元的输出值;
  2. 反向计算每个神经元的误差值;(根据标签)
     实质:损失函数对神经元加权输入的偏导数
  3. 计算每个神经元权重的梯度!

前向传播:
从输入,经过一层层神经元,不断计算每一层的Z和A,最后得到 y ′ {y}' y,再根据与真实的 y ′ {y}' y的差,计算损失函数 l o s s loss loss
反向传播:
根据损失函数 L ( y ′ , y ) L({y}',y) L(y,y)来反方向计算每一层的 z , w , x , b z,w,x,b z,w,x,b的偏导数(梯度),从而更新参数。
在这里插入图片描述

这里的上标代表层数。
每经过一次前向传播和反向传播过后,参数就更新一次,然后用新的参数再次循环上面的过程。这就是神经网络训练的过程。

神经网络层数设置

图像输入层:每个训练数据是28*28像素的图片,共784个像素,因此,输入层节点数量是784,每个像素对应一个输入点。

输出层:节点数是确定的。若是10分类,可以用10个节点,每个节点对应一个分类。

隐藏层:数量设置有几个经验公式:
                                         m = { n + l + a l o g n n l m=\left\{\begin{matrix} \sqrt{n+l} +a\\ \\ logn \\ \\ \sqrt{nl} \end{matrix}\right. m= n+l +alognnl
m m m:隐藏层个数
n n n:输入层个数
l l l:输出层个数
a a a:1到10之间的常数

线性回归与逻辑回归的区别

线性回归是为了拟合所有的数据。
逻辑回归是将y归一化,介于[0,1]之间的概率,主要为了分类。
神经元构建的逻辑步骤:

  1. 构建数据指标
    比如说人的体重,身高等

  2. 线性回归
    在这里插入图片描述
                                                             y = a 1 x + b 1 x + B y=a_{1}x+b_{1}x+B y=a1x+b1x+B

  3. sigmoid函数(逻辑回归)
    在这里插入图片描述
                                                             P = 1 1 + e − y P=\frac{1}{1+e^{-y}} P=1+ey1

正则化

过拟合是指模型包含参数过多,以至于对训练集预测的很好,但对未知数据预测很差的现象。
防止过拟合的方法有无限增大训练集的大小,但是无法做到,需要花费更多人力物力去实现。这时候便用得到正则化。
在这里插入图片描述
                                                         θ 0 + θ 1 x + θ 2 x 2 \theta _{0}+\theta _{1}x+\theta _{2}x^{2} θ0+θ1x+θ2x2
在这里插入图片描述
                                                         θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 \theta _{0}+\theta _{1}x+\theta _{2}x^{2}+\theta _{3}x^{3}+\theta _{4}x^{4} θ0+θ1x+θ2x2+θ3x3+θ4x4

正则化中将保留所有的特征变量,但是会减小特征变量的数量级(参数数值大小)
正则化的目的是,使 θ 3 , θ 4 \theta _{3},\theta _{4} θ3,θ4为0,减少过多的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

手写不期而遇

感谢你的打赏,也欢迎一起学习

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值