次元の災害、あまりフィット、あまりにもフィットし、L1正則、L2正則

日萌社

人工知能AI:Keras PyTorch MXNet TensorFlow PaddlePaddleが深い実用的な学習(定期的に更新されていません)


 

2.8 underfittingと過剰適合

定義1

  • 仮説:オーバーフィッティングその他の仮定より良いフィット感を得るためのトレーニングデータにしますが、テストデータセットに非常によくデータにフィットすることはできませんそして、この仮定は現象をオーバーフィット登場考えます。(モデルはあまりにも複雑)
  • Underfitting:仮説は、学習データに、より良いフィット感を得ることができない、とテストデータセットに非常によくデータにフィットすることはできませんそして、この仮定は現象をunderfitting登場考えます。(モデルは単純すぎます)

それでは、複雑なモデルの原因は?線形回帰モデルは、訓練と学習になるときはここにある対応すると言うために回帰直線状の前の2人の関係のデータを、非直線的な関係を、複雑になる、現実の無駄な機能や特徴の多くは目標値に何かがあります関係は、単純な直線的な関係ではありません。

2つの原因と解決策

  • 原因と解決策をUnderfitting
    • 理由:データの特性を学ぶためには小さすぎます
    • ソリューション:
      • 1)、追加機能の項目を追加し、時には我々は、モデルが不十分なため、リードの機能項目の時間に合わせて表示され、あなたは良い解決策に他の機能の項目を追加することができ負います。例えば、「組み合わせ」、「一般化」、「妥当性」三つの特徴は、機能を追加するための重要な手段である、何があっシーン、コピーまたは模倣、常に予期しない結果を得ることができます。上記の特徴に加えて、ように「コンテキスト機能」、「プラットフォームの特性」とは、追加する優先機能として使用することができます。
      • 2)特性多項式を追加、これは線形モデル又は立方晶の用語次モデルその汎化能力を添加することによって、例えば、機械学習アルゴリズムに内部で一般的です。
  • 原因と解決策を過剰適合
    • 理由:あまり​​にも多くのオリジナルの特徴、モデルは、アカウントに個々の試験データ点を取るしようとするには余りにも複雑であるため、いくつかの騒々しい機能、モデルがあります
    • ソリューション:
      • 我々は再洗浄に必要なデータをオーバーフィットがある場合1)再クリーニングのデータを、データをオーバーフィットの原因はまた、不純で発生することができます。
      • 2)合計データの割合が小さすぎると、トレーニングデータをトレーニングデータの量を増加させ、そして一つの理由は、我々は、トレーニングに起因するデータの量のためには小さすぎることです。
      • 3)正則
      • 4)機能寸法減少、防止次元災害

3正則

3.1正則とは何ですか

回帰過剰適合を解決するには、我々は正則を選択しました。しかし、他の機械学習アルゴリズムのために(決定木、ニューラルネットワーク)エフェクト・アルゴリズムそのものの一部に加えて、分類アルゴリズムのような問題になり、我々は削除を含め、また、より多くが自分の選択をする特徴であるが、前に言いました合併の一部の機能

どのように解決するには?

学習特徴量データは、いくつかのデータポイントは、学習(あるいは機能の影響を除去する)場合、アルゴリズムは、この機能の影響を最小限に抑える理由は、この異常のモデルまたは機能の複雑さに影響を与えるに提供される場合、これは正則であります

注:調整時間、アルゴリズムは機能の影響を知りませんが、最適化の結果のパラメータを調整します

3.2正則カテゴリ

  • L2正則
    • 役割:あなたは、いくつかのWは、小さく、ゼロに近いが、機能の影響を弱めることができます
    • 利点:小さいモデルパラメータの説明よりシンプルかつ簡単なモデル、オーバーフィッティングがより困難
    • リッジ回帰
  • L1正則
    • 処置:値Wの一部は直接0であるようなものでもよく、機能効果を削除
    • LASSO回帰

4まとめ

  • Underfitting [マスター]
    • 訓練にテストセットのパフォーマンスが悪い、悪いパフォーマンスを設定します
    • ソリューション:
      • 学ぶために続行
        • 追加機能の項目を追加します。1.
        • 多項式の機能を追加2.
  • 過剰適合マスタリング]
    • 良好なパフォーマンスを設定し、トレーニング、テストセットのパフォーマンスの低下で
    • ソリューション:
      • 1.再クリーニングのデータセット
      • 2.トレーニングデータの量を増やします
      • 3.正則
      • 4.縮小次元特徴
  • 正則[マスター]
    • 係数のオーバーフィッティング高次項を制限することによって防止することが
    • L1正則
      • 理解:直接高次項の係数の前に0になります
      • なげなわ復帰
    • L2正則
      • 理解:高次の項の前の係数は、特に小さな値となります
      • リッジ回帰

次元の災害

1次元の災害とは何ですか

寸法を大きくすると、分類器の性能は徐々に上昇し、特定のポイントに到達した後、その性能は徐々に低下します

有一系列的图片,每张图片的内容可能是猫也可能是狗;我们需要构造一个分类器能够对猫、狗自动的分类。首先,要寻找到一些能够描述猫和狗的特征,这样我们的分类算法就可以利用这些特征去识别物体。猫和狗的皮毛颜色可能是一个很好的特征,考虑到红绿蓝构成图像的三基色,因此用图片三基色各自的平均值称得上方便直观。这样就有了一个简单的Fisher分类器:

If  0.5*red + 0.3*green + 0.2*blue > 0.6 : return cat;
    else return dog;

使用颜色特征可能无法得到一个足够准确的分类器,如果是这样的话,我们不妨加入一些诸如图像纹理(图像灰度值在其X、Y方向的导数dx、dy),就有5个特征(Red、Blue、Green、dx、dy)来设计我们的分类器:

也许分类器准确率依然无法达到要求,加入更多的特征,比如颜色、纹理的统计信息等等,如此下去,可能会得到上百个特征。那是不是我们的分类器性能会随着特征数量的增加而逐步提高呢?答案也许有些让人沮丧,事实上,当特征数量达到一定规模后,分类器的性能是在下降的。

随着维度(特征数量)的增加,分类器的性能却下降了

2 维数灾难与过拟合

我们假设猫和狗图片的数量是有限的(样本数量总是有限的),假设有10张图片,接下来我们就用这仅有的10张图片来训练我们的分类器。

增加一个特征,比如绿色,这样特征维数扩展到了2维:

增加一个特征后,我们依然无法找到一条简单的直线将它们有效分类

再增加一个特征,比如蓝色,扩展到3维特征空间:

在3维特征空间中,我们很容易找到一个分类平面,能够在训练集上有效的将猫和狗进行分类:

在高维空间中,我们似乎能得到更优的分类器性能。

从1维到3维,给我们的感觉是:维数越高,分类性能越优。然而,维数过高将导致一定的问题:在一维特征空间下,我们假设一个维度的宽度为5个单位,这样样本密度为10/5=2;在2维特征空间下,10个样本所分布的空间大小25,这样样本密度为10/25=0.4;在3维特征空间下,10个样本分布的空间大小为125,样本密度就为10/125=0.08.

如果继续增加特征数量,随着维度的增加,样本将变得越来越稀疏,在这种情况下,也更容易找到一个超平面将目标分开。然而,如果我们将高维空间向低维空间投影,高维空间隐藏的问题将会显现出来:

过多的特征导致的过拟合现象:训练集上表现良好,但是对新数据缺乏泛化能力。

高维空间训练形成的线性分类器,相当于在低维空间的一个复杂的非线性分类器,这种分类器过多的强调了训练集的准确率甚至于对一些错误/异常的数据也进行了学习,而正确的数据却无法覆盖整个特征空间。为此,这样得到的分类器在对新数据进行预测时将会出现错误。这种现象称之为过拟合,同时也是维灾难的直接体现。

简单的线性分类器在训练数据上的表现不如非线性分类器,但由于线性分类器的学习过程中对噪声没有对非线性分类器敏感,因此对新数据具备更优的泛化能力。换句话说,通过使用更少的特征,避免了维数灾难的发生(也即避免了高维情况下的过拟合)

由于高维而带来的数据稀疏性问题:假设有一个特征,它的取值范围D在0到1之间均匀分布,并且对狗和猫来说其值都是唯一的,我们现在利用这个特征来设计分类器。如果我们的训练数据覆盖了取值范围的20%(e.g 0到0.2),那么所使用的训练数据就占总样本量的20%。上升到二维情况下,覆盖二维特征空间20%的面积,则需要在每个维度上取得45%的取值范围。在三维情况下,要覆盖特征空间20%的体积,则需要在每个维度上取得58%的取值范围...在维度接近一定程度时,要取得同样的训练样本数量,则几乎要在每个维度上取得接近100%的取值范围,或者增加总样本数量,但样本数量也总是有限的。

如果一直增加特征维数,由于样本分布越来越稀疏,如果要避免过拟合的出现,就不得不持续增加样本数量。

数据在高维空间的中心比在边缘区域具备更大的稀疏性,数据更倾向于分布在空间的边缘区域:

不属于单位圆的训练样本比搜索空间的中心更接近搜索空间的角点。这些样本很难分类,因为它们的特征值差别很大(例如,单位正方形的对角的样本)。

一个有趣的问题是,当我们增加特征空间的维度时,圆(超球面)的体积如何相对于正方形(超立方体)的体积发生变化。尺寸d的单位超立方体的体积总是1 ^ d = 1.尺寸d和半径0.5的内切超球体的体积可以计算为:

在高维空间中,大多数训练数据驻留在定义特征空间的超立方体的角落中。如前所述,特征空间角落中的实例比围绕超球体质心的实例难以分类。

在高维空间中,大多数训练数据驻留在定义特征空间的超立方体的角落中。如前所述,特征空间角落中的实例比围绕超球体质心的实例难以分类:

事实证明,许多事物在高维空间中表现得非常不同。 例如,如果你选择一个单位平方(1×1平方)的随机点,它将只有大约0.4%的机会位于小于0.001的边界(换句话说,随机点将沿任何维度“极端”这是非常不可能的)。 但是在一个10000维单位超立方体(1×1×1立方体,有1万个1)中,这个概率大于99.999999%。 高维超立方体中的大部分点都非常靠近边界。更难区分的是:如果你在一个单位正方形中随机抽取两个点,这两个点之间的距离平均约为0.52。如果在单位三维立方体中选取两个随机点,则平均距离将大致为0.66。但是在一个100万维的超立方体中随机抽取两点呢?那么平均距离将是大约408.25(大约1,000,000 / 6)!

非常违反直觉:当两个点位于相同的单位超立方体内时,两点如何分离?这个事实意味着高维数据集有可能非常稀疏:大多数训练实例可能彼此远离。当然,这也意味着一个新实例可能离任何训练实例都很远,这使得预测的可信度表现得比在低维度数据中要来的差。训练集的维度越多,过度拟合的风险就越大

理论上讲,维度灾难的一个解决方案可能是增加训练集的大小以达到足够密度的训练实例。 不幸的是,在实践中,达到给定密度所需的训练实例的数量随着维度的数量呈指数增长。 如果只有100个特征(比MNIST问题少得多),那么为了使训练实例的平均值在0.1以内,需要比可观察宇宙中的原子更多的训练实例,假设它们在所有维度上均匀分布。

对于8维超立方体,大约98%的数据集中在其256个角上。结果,当特征空间的维度达到无穷大时,从采样点到质心的最小和最大欧几里得距离的差与最小距离本身只比趋于零:

距离测量开始失去其在高维空间中测量的有效性,由于分类器取决于这些距离测量,因此在较低维空间中分类通常更容易,其中较少特征用于描述感兴趣对象。

如果理论无限数量的训练样本可用,则维度的诅咒不适用,我们可以简单地使用无数个特征来获得完美的分类。训练数据的大小越小,应使用的功能就越少。如果N个训练样本足以覆盖单位区间大小的1D特征空间,则需要N ^ 2个样本来覆盖具有相同密度的2D特征空间,并且在3D特征空间中需要N ^ 3个样本。换句话说,所需的训练实例数量随着使用的维度数量呈指数增长

 

 

发布了351 篇原创文章 · 获赞 116 · 访问量 19万+

おすすめ

転載: blog.csdn.net/zimiao552147572/article/details/104465653