【机器学习周报第六周】

摘要

深度学习提供了一种解决“两难”问题的方法。通过深度学习模型,我们可以在相对较小的模型规模下学习和表示复杂的模式和特征。这使得我们能够从有限的、与完整数据集不完全相似的训练数据中获得较好的结果。深度学习的优势在于它能够自动从数据中学习到特征表示,并根据目标函数进行优化,而不需要手动定义特征或阈值。因此,深度学习为我们提供了一种解决理想与现实之间差距的方法。通过适当选择模型规模和使用深度学习技术,我们可以在现实条件下获得较好的结果,同时避免过度拟合或无法找到适当阈值的问题。空间变换层是深度学习中的一种特殊层,用于实现对输入数据的空间变换。它可以在模型内部自动学习输入数据的几何变换,并通过调整变换参数来实现图像的平移、旋转、缩放和透视变换等操作。通过引入空间变换层,神经网络可以自动学习输入数据的几何变换,并根据学习到的变换参数对输入数据进行适应性的变换。这样,网络可以更好地适应不同的视角、尺度和位置变化,提高模型的鲁棒性和泛化能力。

Abstract

Deep learning provides a solution to the “dilemma” by allowing us to learn and represent complex patterns and features with relatively smaller model sizes. This enables us to achieve good results from limited training data that may not be fully similar to the complete dataset. The strength of deep learning lies in its ability to automatically learn feature representations from the data and optimize them based on the objective function, without the need for manual feature engineering or threshold determination.Spatial transformer layer is a special layer in deep learning that enables spatial transformations of input data. It automatically learns the geometric transformations of the input data and adjusts transformation parameters to achieve operations such as translation, rotation, scaling, and perspective transformations on images. By introducing the spatial transformer layer, neural networks can learn adaptive transformations of input data, allowing them to better accommodate variations in viewpoints, scales, and positions, thus enhancing robustness and generalization capability.

一、鱼与熊掌可以兼得的深度学习

在之前的学习中遇到了一个“两难”的问题。当模型比较大,即 ∣ H ∣ |H| H的值较多时,虽然,可以找到一个更好的 h h h使得损失函数的值较小,但是现实中难以找到一个与 D a l l D_{all} Dall相似的数据集。所以理想与现实差距较大。而选择较小的模型时,虽然解决了理想与现实差距较大的问题,但是却很难找到一个损失函数较小的阈值 h h h。深度学习可以解决这个两难的问题。
在这里插入图片描述
如下图所示,随着模型的层数越来越高,该模型的 ∣ H ∣ |H| H就会越来越大,就可以更加容易地找到阈值 h h h使损失函数较小。
在这里插入图片描述
使模型变大的另一种方法是使模型横向发展,与深度学习的“高瘦”模型相对,这种模型十分“矮胖”,只有一层。它也可以使模型更加容易地找到损失函数更小的阈值 h h h。那么这两种方式孰优孰劣?在两个模型的参数量一样的情况下,比较两个模型的性能。
在这里插入图片描述
虽然一层隐藏层就可以表示出任何函数,但是使用更深层的结构会更加有效率。更深层的模型比一层的模型做同样的事情时,需要的参数一般较少。
在这里插入图片描述
一个神经元的激活函数是ReLu,那么输出和输入的关系如下图所示。其中,输入x为纵轴,输出为横轴。
在这里插入图片描述
当需要输出 2 k 2^k 2k条线段时,如果使用深度学习,每层设置2个神经元,只需要k层就可以完成要求。但是如果使用一层的模型,就需要 2 k 2^k 2k个神经元。模型的复杂程度比较高的模型大得多,很容易过拟合。
综上所述,深度学习是一个 ∣ H ∣ |H| H相对较小,并且损失函数值也相对较小的方法,可以实现“鱼与熊掌兼得”。
在这里插入图片描述

二、空间变换层(Spatial Transformer Layer)

空间变换层是一种在卷积神经网络中引入空间变换的机制。它允许网络自动学习输入图像的几何变换,以提高网络的鲁棒性和性能。通过空间变换层,卷积神经网络可以自适应地对输入图像进行旋转、平移、缩放和扭曲等几何变换,从而使网络具备对输入图像的空间变化具有一定的不变性和鲁棒性。这对于处理不同尺度、不同角度和不同姿态的图像非常有用,能够提高网络在复杂场景下的性能和泛化能力。空间变换层的引入可以使卷积神经网络具备一定的几何变换能力,提高网络对输入图像的处理能力和适应性。它在许多计算机视觉任务中都得到了广泛的应用,如目标检测、图像分类和图像生成等。
在这里插入图片描述

2.1 How to transform an image/feature map

平移本质上来说就是调整权重的过程。通用层中, a n m l a_{nm}^l anml的公式如下图所示。所以,如果需要实现图形的平移操作,只需要修改 w n m , i j l − 1 w_{nm,ij}^{l-1} wnm,ijl1的值即可。如果需要向下平移一行,那么当 i = n − 1 i=n-1 i=n1时,将 w w w的值设置为1,其他情况下设置为0。
在这里插入图片描述
如果需要实现向右旋转的操作, a 11 l − 1 a_{11}^{l-1} a11l1对应 a 13 l a_{13}^l a13l,当 i = 1 , j = 3 i=1,j=3 i=1j=3时,将 w w w设为1,其他情况设为0; a 12 l − 1 a_{12}^{l-1} a12l1对应 a 23 l a_{23}^l a23l,当 i = 2 , j = 3 i=2,j=3 i=2,j=3时,将 w w w设为1,其他情况设为0。以此类推,就可以实现图形的向右旋转。这种权重的变换可以通过一个全连接层来实现。
在这里插入图片描述

2.2 image transformation

对图形的转化操作如下图所示,将图像的每个像素点坐标化,在进行一系列的坐标变化就可以实现图像的平移和旋转。
在这里插入图片描述
在这里插入图片描述
根据以上的例子可以看出,实现图像的平移、缩放和旋转等转换操作需要改变六个参数。这里的x,y是每一层输出的下标。通过矩阵的计算,就可以得到不同层的对应关系。如果参数为小数的话,这种做法就不可行了,因为其无法进行梯度下降。所以对于参数是小数的情况,可以使用插值的方法来解决这种特殊情况。
在这里插入图片描述
Interpolation(插值)是一种数值计算方法,用于在给定数据点之间推断或估计其他位置的数值。插值方法通过利用已知数据点之间的趋势或模式来填补数据点之间的空缺或缺失。它在信号处理、图像处理、地理信息系统等领域中被广泛应用。在插值中,假设我们有一组已知的数据点,包括其自变量(通常是一维或二维的坐标)和相应的因变量值。通过插值方法,我们可以推断出在这些已知数据点之间的其他位置的因变量值,就可以进行梯度下降的计算。
在这里插入图片描述

总结

深度学习通过允许我们使用较小的模型学习和表示复杂的模式和特征,为“两难”问题提供了解决方案。空间变换层进一步增强了网络学习自适应空间变换的能力,提高了模型的鲁棒性和泛化能力。下周我将学习循环神经网络(RNN)相关知识。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值