Deep-Learning2


全连接层

如图

hidden layers中每一层中的每一个参数都与上一层的每一个参数有连接,所以称为全连接

对于手写数字的识别

输入16*16=256维的张量,通过神经网络的处理,输出10维的张量。

GPU可以加速矩阵运算的原因

  1. 并行计算能力:GPU具有大量的处理单元,可以同时执行多个计算任务。与此相比,传统的中央处理单元(CPU)通常拥有较少的处理单元。在矩阵运算中,可以将矩阵的不同元素或者矩阵的不同部分分配给不同的处理单元并行计算,从而提高计算效率。
  2. 内存带宽:GPU具有高带宽的全局内存,可以更快地读取和写入数据。在矩阵运算中,需要频繁地读取和写入大量的数据。GPU的高内存带宽使得数据传输速度更快,减少了数据传输的瓶颈,提高了计算速度。
  3. 专门的硬件优化:GPU的设计目标是处理图形渲染和计算密集型任务,因此在硬件层面进行了针对性的优化。例如,GPU通常采用了SIMD(单指令多数据)架构,能够同时执行多个相同的操作,从而进一步提高计算效率。此外,GPU还具有高速缓存和专用的矩阵计算单元(如张量核心),用于加速矩阵运算。
  4. 广泛的并行计算库支持:GPU有丰富的并行计算库,如CUDA(Compute Unified Device Architecture)和OpenCL(Open Computing Language),这些库提供了高效的矩阵运算函数和算法实现,简化了开发者的工作。开发者可以利用这些库来编写并行化的矩阵运算代码,充分发挥GPU的计算能力。

CPU(中央处理单元)是一种通用处理器,主要用于执行各种计算任务和控制计算机的操作。它的设计目标是提供较高的单线程性能和灵活性。CPU的优势在于处理复杂的逻辑和控制流程,以及执行单个线程的任务。它通常具有较大的缓存和更高的时钟速度,适用于顺序任务、串行算法和对于响应时间要求较高的应用程序,如操作系统、编译器、数据库和一些单线程的应用程序。

GPU(图形处理单元)是一种专门为并行计算而设计的处理器。它最初用于图形渲染和处理,但由于其并行计算的能力,被广泛应用于科学计算、机器学习、深度学习等领域。GPU的优势在于处理大规模数据并行任务,如矩阵运算、图像处理、物理模拟等。它具有大量的处理单元和高内存带宽,适用于高度并行的算法和任务。

实际应用中,常常会使用CPU和GPU的组合,充分发挥它们各自的优势,以提高计算效率和性能。在机器学习中,通常使用CPU进行数据预处理和模型训练的控制流程,而使用GPU进行矩阵运算和模型推理的并行计算部分。

反向传播

在机器学习的梯度下降算法中,为了优化参数,很关键的一点是计算每一个参数对于Loss的偏微分,以此来调整参数,而在多层神经网络中,使用反向传播可以有效利用链式法则计算这些偏微分的结果。


$$
\frac{\partial z}{\partial w}即是输入x,而\frac{\partial C}{\partial z}则需要链式法则从后向前计算(这里需要反向传播的过程)
$$

事就这样成了

在模型中只要使用简单的一句loss.backward()即可。


文章作者: chris2ease
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 chris2ease !
  目录