算法工程师修仙之路:Keras(八)

本文深入探讨了深度学习的基础,重点讲解神经网络中的张量运算,特别是张量变形,包括转置操作。同时,文章阐述了张量运算的几何解释,将神经网络视为高维空间的复杂几何变换,揭示了深度学习如何逐步解析复杂数据流形。
部署运行你感兴趣的模型镜像

深度学习基础

神经网络的数学基础


神经网络的“齿轮”:张量运算

张量变形
  • 第三个重要的张量运算是张量变形(tensor reshaping)。张量变形是指改变张量的行和列,以得到想要的形状。变形后的张量的元素总个数与初始张量相同。

    >>> x = np.array([[0., 1.],
    				  [2., 3.],
    			      [4., 5.]])
    >>> print(x.shape)
    (3, 2)
    >>> x = x.reshape((6, 1))
    >>> x
    array([[ 0.],
    	   [ 1.],
    	   [ 2.],
    	   [ 3.],
    	   [ 4.],
    	   [ 5.]])
    >>> x = x.reshape((2, 3))
    >>> x
    array([[ 0., 1., 2.],
    	   [ 3., 4., 5.]])
    
  • 经常遇到的一种特殊的张量变形是转置(transposition)。对矩阵做转置是指将行和列互换,使 x[i, :] 变为 x[:, i]。

    >>> x = np.zeros((300, 20))	# 创建一个形状为 (300, 20) 的零矩阵
    >>> x = np.transpose(x)
    >>> print(x.shape)
    (20, 300)
    
张量运算的几何解释
  • 对于张量运算所操作的张量,其元素可以被解释为某种几何空间内点的坐标,因此所有的张量运算都有几何解释。

  • 通常来说,仿射变换、旋转、缩放等基本的几何操作都可以表示为张量运算。举个例子,要将一个二维向量旋转 theta 角,可以通过与一个2×2矩阵做点积来实现,这个矩阵为 R = [u, v],其中 u 和 v 都是平面向量:u = [cos(theta), sin(theta)],v = [-sin(theta), cos(theta)]。

深度学习的几何解释
  • 神经网络完全由一系列张量运算组成,而这些张量运算都只是输入数据的几何变换。 因此,你可以将神经网络解释为高维空间中非常复杂的几何变换,这种变换可以通过许多简单的步骤来实现。

  • 机器学习的内容:为复杂的、高度折叠的数据流形找到简洁的表示。

  • 深度学习特别擅长这一点:它将复杂的几何变换逐步分解为一长串基本的几何变换,深度网络的每一层都通过变换使数据解开一点点,许多层堆叠在一起,可以实现非常复杂的解开过程。

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值