1.1监督学习和无监督学习
首先对于监督学习和无监督学习,用例子来区分比较更形象,
现在有一堆苹果和梨组合而成的水果,想用机器将两者分离出来,但是机器不知道苹果和梨长什么样,用苹果和梨的大量图片,告诉机器苹果和梨的样子,经过多轮的训练,机器知道苹果和梨的样子,此时,再让机器进行识别,会将苹果和梨准确的按类别分开,这就是监督学习的过程。
如果我们没有事先给机器进行大量图片识别训练工作,而是直接让机器进行识别,机器就会靠“”直觉“”判断,然后分类。这就是无监督学习的过程
1.1.1监督学习
定义::提供一组输入数据和其对应的标签数据,然后
搭建 个模型,让模型在通过训练后准确地找到输入数据和标签数据之间的最优映射关系,在输入新的数据后,模型能够通过之前学到的最优映射关系 快速地预测出这组新数据的标签 这就是 个监督学习的过程。
分为回归问题和分类问题
1.回归问题:其实就是让我们的模型通过训练后建立起来一个线性映射关系,映射模型是线性连续对应关系,并且能够对新的数据进行预测。
线性回归的使用场景是我 已经获得 部分有对应关系的原始数据,并且问题的最终答案是得到 连续的线性映射关系,其过程就是使用原始数据对建立的初始模型不断地进行训练,让模型不断拟合和修正,最后得到我们想要的线性模型,这个线性模型能够对我们之后输入的新数据准确地进行预测
如下图的例子:

深度神经网络基础图中有 条弧形的曲线,这条曲线就是我们 使用单点数据通过监督学习的方法最终拟合出来的线性映射模型。
2.分类问题
分类问题就是要建立一个离散的映射关系,从而对新的数据进行区分。例如:
深度神经网络基础在图中使用的依然是两个维度的数据, x轴表示肿瘤的尺寸大小,y 轴表示肿瘤的属性,即是良性肿瘤还是恶性 瘤。因为 y轴只 有两个离散的输出结果 ,即 0,1,所以用 0表示良性肿瘤,用1 表示恶性 瘤。 我们通过监督学习 方法对 己有的数据进行训练,最后得到1 个分类模型 ,这个分类模型 够对我们输入的新数据进行分类,预测它们
最有可能归属的类别,因为这个分类模型最终输出的结果只有两个,所以我们通常也把这类型的分类模型叫作 分类模型
但是分类模型的最终结果不是只有1和0,而是也可以有多种分类结果,即多分类。

1.1.2无监督学习
定义:提供1 组没有任何标签的输入数据,将其在我们搭建好的模型中进行训练,对 1个训练过程不做任何干涉,最后得 1个能够发据之间隐藏特征的映射模型,使用这个映射模型能够实现对新数据的分类,这就是 1个无督学 习的过程 无监督学习主要依靠模型自己寻找数据中隐藏的规律和特征,人工参与的成分远远少于监督学习 的过程。如图:

深度神经网络基础右图显示 的就是无监督学 习的过程,虽然数据也被最终分成了两类 但没有相应的数据标签,统 一使用圆点表示,这就像实现了将具有相似关系的数据聚集在一 起,所以使用 无督学习实现分类 算法又 叫作聚类。在无监督 练的整个过程中 ,我们 需要做的仅仅是将 训练数据提供给我们的无监督模型,让它自己挖掘数据中的特征和关系。

小结:
我 发现监督学习和无监督学习的主要区别如下。
1.通过监督学习能够按照指定的 训练数据搭建出想要的模型,但这 过程需要投入大量 的精力处理原始数据, 因为我们 的紧密参与,所以最后得到的模型更符合设计者的需求和初衷。
2.通过无监督学 习过程搭建的训练模型能够自己 找数据之间隐藏的特征和关系,更具有创造性,有时还能够挖掘到数据之间让我们意想不到的映射关系,不过最后的结果也可能会向不好的方向发展。
1.1.3欠拟合和过拟合
欠拟合和过拟合其实就是来评价一个模型的好坏。
欠拟合:
深度神经网络基础
图b就是一个欠拟合模型,这个模型虽然捕获 了数据的 部分特征,但是不能很好地对新数据进行准确预测,因为这个欠拟合模型的缺点非常明显,如果输入的新数据的真实价格在该模型上下抖动,那么相同面积的房屋在模型中得到的预测价格会和真实价格存在较大的误差:
如何解决欠拟合:

  1. 增加特征项:在大多数情况下出现欠拟合是因为我们没有准确地把握数据的主要特征,所以我们可以尝试在模型中加入更多的和原数据有重要相关性的特征来训 练搭建的模型。
    (2 )构造复杂的多项式: 这种方法很容易理解,我们知 道一次项函数就是一条直线,二次项函数是一条抛物线 一次项和 二次项函数的特性决定了它们的泛化能力 是有局限性的,如果数据不在直线或者抛物线附近,那么必然出现欠拟合的情形,所以我们可以通过增加函数中的次项来增强模型的变化能力 ,从而提升其泛化能力。
    (3 )减少正则化参数: 正则化参数出现的目的其实是防止过拟合情形的出现 但是如果我们的模型己经出现了欠拟合的情形,就可以通过减少正则化参数来消除欠拟合。
    过拟合:
    深度神经网络基础图b是个过拟合的模型,可以看到这个模型过度捕获了原数据 的特征 不仅同之前的欠拟合模型存在同样的问题,而且过拟合模型受原数据中的噪声数据影响非常严重,图c所示,如果噪声数据严重偏离既定的数据轨道,则拟合出来的模型会发生很大改变,这个影响是灾难性的。
    如何解决过拟合:
    ( 1) 增大训练的数据量: 在大多数情况下发生过拟合是因 为我们用于模型训练的数据量太小,搭建的模型过度捕获了数据 的有限特征,这时就会出现过拟合,在增加参与模型训练的数据量后 ,模型自 然就能捕获数据的更多特征,模型就不会过于依赖数据的个别特征。
    (2 )采用正则化方法:正则化 一般指在目标函数之后加上范数,用来防止模型过拟合的发生在实践 最常用 到的正则化方法有 LO 正则、 L1 正则和 L2 正则。
    (3) Dropout 方法: Dropout 方法在 神经网络模型中使用的频率较高 ,简单来说就是在神经网络模型进行前向传播的过程中,随机选取和丢弃指定层次之间的部分神经连接,
    因为整个过程是随机的,所以能有效防止过拟合发生。
    1.1.4后向传播
    深度学 习中的后向传播主要用于对我们搭建的模型 中的参数进行微调 在通过多次后向传播后,就可以得到模型的最优参数组合。接下来介绍后向传播这一系列的优化过程具
    如何实现的。深度神经 网络中的参数进行后向传播的过程其实就是一 个复合 函数求导的过程。
    深度神经网络基础
    深度神经网络基础

1.1.5损失和优化
深度神 经网络中的损失用来度量我们的 模型得到的预测值和数据真实值之间的差距,也是一个用来衡量我们训 练出来的模型泛化能力好坏的重要指标。模型预测值和真实值的差距越大,损失值就会越高,这时我们就需要通过不断地对模型中的参数进行优化来减少损失 ,同理,预测值和真实值的差 距越小,则说明我们训练的模型预测越准确,具有更好的泛化能力。
优化其实就是尽可能在不过拟合的情况下减少损失值,通过减少一部分数据的预测值和实际值之间的误差来实现。
进行损失值的计算的函数叫做损失函数,进行优化的函数叫做优化函数。
1.损失函数:
(1)均方误差函数:
计算的是预测值与真实值之差的平方的期望值 ,可用于评价数据的变化程度 ,其得到的值越小,则说明模型的预测值具有越好的精确度。均方误差函数的计算如下:
深度神经网络基础(2)均方根误差函数:
在均方误差函数 的基础上进行了改良,计算的是均方误差的算术平均根,值越小,预测的准确度越大,公式如下:
深度神经网络基础(3)平均绝对误差函数:
计算的是绝对误差 的平均值,绝对误差即模型预测 值和真实值之 间的差 的绝对值,能更好地反映预测值误差实 际情况,其得到的值越小,则说明 模型 的预测值具有越好 的精确度。平均绝对误差函数如下:
深度神经网络基础2.优化函数:
优化过中相 关参数的初始化、参数 以何种 形式进行微调 、如何选取合适的学习速率等问 题。我们可以把优化函数看作上述问题的解决方案的集合。
在实践操作中最常用到的是一 阶优 化函数,典型的一 阶优化函数包括 GD SGD Momentum Adagrad Adam 等等。一阶优化函 数在优化过程中求解的是参数的一 阶导数,这些一阶导数的值就是模型中参数的微调值。
什么是梯度:
梯度其实就是将多元 函数的各个参数求得 的偏导数以向量的形式展现 出来,也叫作 多元函数 的梯度。
下面来看几种常用的优化函数。
1.梯度下降(GD):
公式如下:
深度神经网络基础
深度神经网络基础2批量梯度下降(BGD):
批 量梯度下降就是将整个参与训 练的数据集划分为 若干 不多的训 练数据集 ,我们将其中 一个训练数据集叫做一个批量 每次用一 个批 量数据来对模型进行训练 ,井以这个批量 算得到的损失值为基准来对模型中的全部参数进行梯度更新,默认这个批量 只使用一次 然后使用下一个批量 数据来完成相同 工作,直到所有批 量的数据全部使用完毕。
深度神经网络基础3.随机梯度下降(SGD)
随机梯度下降是通过随机的方式从整个参与训 练的数据集
中选取 一部分来参与模型的训练,所以只要我们随机选取的数 据集大小合适 就不用担心计算损失函数的 时间成本和模型 训练的复杂度 ,而 且与整个参与训练的数据集 大小没有关系。
深度神经网络基础
4 Adam
Adam 在模型训练优化的过程中通过让每个参数获得自适应的学习率,来达到优化质量和速度的双重提升。
在优化过程中 出现的 学习速率消失、 收敛过慢、高方差 参数更新等导致损失值波动等,Adam 有很好 解决方案。
1.1.5**函数
1 sigmoid函数
深度神经网络基础sigmoid会导致梯度消失问题。
2.Tanh函数
深度神经网络基础仍可能出现梯度消失问题
3.Rule函数
深度神经网络基础ReLU 函数的收敛速度非常快 算效率远远高于 Sigmoid tan 不过 Re LU同样存在需要我们关注的问题:从 ReLU 的几何图形中可以看出, ReLU 的输出并不是零中心数据,这可能会导致某些神经元永远不会被**,并且这些神经元相对应的参数不断被更新。这一般是由于模型参数在初始化时使用了 全正或者全负 的值,或者在后向传播过
程中设置的学习速率太快导致的。其解决方法是对模型参数使用更高级的初始 方法Xavier ,以及设置合理的后向传播 学习速率,推荐使用自适应的算法 Adam。

相关文章:

  • 2021-04-16
  • 2022-01-17
  • 2021-12-24
  • 2021-11-11
  • 2021-08-21
  • 2021-08-22
  • 2021-08-10
  • 2022-01-02
猜你喜欢
  • 2022-03-04
  • 2021-07-11
  • 2021-06-29
  • 2021-08-30
  • 2021-12-09
  • 2021-05-05
相关资源
相似解决方案