北大公开课-人工智能基础 67 机器学习的模型之网络化模型


网络化模型是指在机器学习中,使用多个模型来完成一个任务,这些模型之间通过网络连接起来,形成一个整体。这种方法可以提高模型的准确性和效率。例如,深度神经网络就是一种网络化模型,它由多个神经元组成,每个神经元都与其他神经元相连。这种模型可以用于图像识别、语音识别、自然语言处理等领域。除了深度神经网络,还有很多其他的网络化模型,例如卷积神经网络、循环神经网络等等。这些模型都有各自的优点和缺点,需要根据具体的任务来选择合适的模型。


从生理结构上,人工神经元模拟生物神经元的功能
核心功能是从输入导出输出。








【前馈神经网络FNN】
前馈神经网络是一种最简单的神经网络结构,各神经元分层排列,每个神经元只与前一层的神经元相连。接收前一层的输出,并输出给下一层,各层间没有反馈。是应用最广泛、发展最迅速的人工神经网络之一。前馈神经网络也称为 FNN (Feedforward Neural Network)。在前馈神经网络中,各神经元分别属于不同的层,每一层的神经元可以接收前一层神经元的信号,并产生信号输出到下一层。第0层称为输入层,最后一层称为输出层,其他中间层称为隐藏层。整个网络中无反馈,信号从输入层向输出层单向传播,可用一个有向无环图表示。前馈神经网络可以用于分类、回归等任务。
【循环神经网络RNN】
循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络。循环神经网络是一种能够处理序列数据的神经网络。它的主要特点是在网络内部引入循环结构,可以对序列数据中的时间依赖关系进行建模。RNN 的主要应用领域是自然语言处理、语音识别、时间序列预测、机器翻译等。

【反向误差传播BP】
反向误差传播(Backpropagation,BP)是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度。反向传播算法是一种在人工神经网络中用来训练多层感知器的常见方法,它是误差反向传播算法的简称。该算法通过将输出误差反向传播,将误差分摊给各层所有单元,从而获得各层单元的误差信号,进而修正各单元的权值。

【反向传播算法的步骤】
前向传播:计算网络的输出值。
计算误差:计算输出值与真实值之间的误差。
反向传播误差:将误差从输出层向输入层传播,计算每个神经元的误差贡献。
计算梯度:计算每个神经元的梯度,即误差对权重的导数。
更新权重:使用梯度下降法更新权重,使误差最小化。
这些步骤中,前向传播和计算误差是比较简单的,反向传播误差和计算梯度是比较复杂的。反向传播算法通过将误差从输出层向输入层反向传播,计算每个神经元的误差贡献,进而修正各单元的权值。


随机梯度下降(Stochastic Gradient Descent,SGD)是一种常用的优化算法,其步骤如下:
随机选择一个样本。
计算该样本的梯度。
更新模型参数。
重复步骤1-3,直到满足停止条件。
随机梯度下降算法的主要作用是优化模型参数,使得模型在训练数据上的损失函数最小化。相比于批量梯度下降算法,随机梯度下降算法具有更快的收敛速度和更低的计算复杂度。但是,由于随机梯度下降算法只使用一个样本来更新模型参数,因此其更新方向具有一定的随机性,可能会导致收敛到局部最优解而不是全局最优解。


以中间隐藏层的数量(>2层)来分类浅层与深层的神经网络


从生物学角度,信息的加工本身就是多层次的,不同的器官承担不同的信息加工功能。



卷积神经网络(Convolutional Neural Networks,CNN)是一种前馈神经网络,是深度学习的代表算法之一。它是一种包含卷积计算且具有深度结构的前馈神经网络,常用来分析视觉图像。卷积神经网络的权重共享的网络结构显著降低了模型的复杂度,减少了权值的数量。它具有一种所谓的人工神经元,能够在一定的范围之内和其他的单元进行相应,从而很好地处理图像,尤其是大型图像。

类似于一种降维的策略

生成对抗网络(GAN)是一种非监督式学习的方法,透过两个神经网络相互博弈的方式进行学习。GAN由两个重要的部分构成:生成器和判别器。生成器通过机器生成数据(大部分情况下是图像),目的是“骗过”判别器;判别器判断这张图像是真实的还是机器生成的,目的是找出生成器做的“假数据”。
GAN的优点是可以生成高质量的数据,而且不需要标注数据,因此可以用于无监督学习。此外,GAN还可以用于图像修复、图像超分辨率、图像风格转换等任务。GAN的缺点是训练过程不稳定,容易出现模式崩溃和模式崩溃问题,而且生成的数据可能会出现一些不合理的情况。



历时一个月,终于学完了这门课程。
感觉说的还挺详细,而且也没有太多的代码计算量,小白也看得懂,很不错的一套入门基础课程。