博客
关于我
深度学习一:深度前馈网络和反向传播
阅读量:436 次
发布时间:2019-03-06

本文共 1341 字,大约阅读时间需要 4 分钟。

深度前馈网络与非线性分类问题

深度前馈网络(Deep Feedforward Network),又称前馈神经网络(Feedforward Neural Network)或多层感知机(Multilayer Perceptron,MLP),是一种典型的机器学习模型。其核心思想是通过多层的非线性变换,将简单的单元组合起来,来表示复杂的函数关系。

网络结构

深度前馈网络的主要组成部分包括:

  • 输入层(Input Layer):接收输入信号。
  • 隐藏层(Hidden Layer):通过激活函数处理信号,增加模型的非线性表示能力。
  • 输出层(Output Layer):产生最终的预测或分类结果。

隐藏层的层数和每层的神经元数量共同决定了模型的宽度(Width)。例如,一个经典的二层神经网络模型,其结构通常是输入层-隐藏层-输出层。

线性分类问题的局限

线性分类问题是机器学习中的基础任务之一。所有数据样本满足一个线性方程,可以通过简单的直线划分。然而,这种线性模型存在明显的局限性。

例如,通过逻辑运算来实现AND、OR、NOR逻辑关系时,线性模型是可以拟合的。但是,对于XOR异或逻辑,这是一个典型的非线性问题,无法通过单一直线实现。

解决非线性问题的方法

为了解决线性分类问题的局限,机器学习引入了两种主要方法:

  • 特征非线性:通过引入非线性特征(如平方、立方等),将复杂的非线性关系嵌入到模型中。
  • 模型非线性:通过引入非线性激活函数(如Sigmoid、Tanh、ReLU等),增加模型的表达能力。
  • 激活函数

    激活函数是模型非线性化的核心。通过对线性求和结果再施加激活函数,可以将复杂的非线性关系学习进模型。

    常用的激活函数包括:

    • Sigmoid:输出范围在(0,1),适合二分类问题。
    • Tanh:输出范围在(-1,1),与Sigmoid类似。
    • ReLU:线性整流函数,输出为0(当输入<0时)或等于输入(当输入>0时),无饱和现象。
    • ELU:对ReLU的改进版,通过输出一个指数函数解决输入<0时的梯度问题。
    • Leaky ReLU:在输入<0时输出一个小的正数,提高模型的鲁棒性。

    反向传播

    反向传播(Backpropagation)是深度学习中最重要的算法之一。通过计算误差对权重的梯度,可以实现参数的优化,逐步减小损失函数的值。

    反向传播的核心方程:[ w = w - η \frac{∂E}{∂w} ]其中,( η ) 是学习率。

    损失函数

    损失函数是衡量模型预测值与真实值差异的度量。常用的损失函数包括:

    • 均方误差(MSE):适用于回归问题。
    • 交叉熵损失(CE):适用于分类问题。

    对于二分类问题,交叉熵损失函数的形式为:[ E = -t \log(z) - (1 - t) \log(1 - z) ]其中,( z = \frac{1}{1 + e^{-s}} ) 是Sigmoid激活函数的输出。

    常见面试题

  • 用Python手写反向传播神经网络。
  • 解释激活函数的作用。
  • 列出常用的激活函数及其特点。
  • 说明为什么使用交叉熵损失函数。
  • 给出交叉熵公式。
  • 讨论损失函数的类型及其应用场景。
  • 写出线性回归的表达式及损失函数。
  • 通过理解这些核心概念,可以更好地掌握神经网络的原理和实现。

    转载地址:http://vmbyz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现最小值滤波(附完整源码)
    查看>>
    Objective-C实现最小公倍数LCM算法(附完整源码)
    查看>>
    Objective-C实现最小生成树 boruvka算法(附完整源码)
    查看>>
    Objective-C实现最小编辑距离问题算法(附完整源码)
    查看>>
    Objective-C实现最小路径和算法(附完整源码)
    查看>>
    Objective-C实现最快的归并排序算法(附完整源码)
    查看>>
    Objective-C实现最短路径Dijsktra算法(附完整源码)
    查看>>
    Objective-C实现最短路径Dijsktra算法(附完整源码)
    查看>>
    Objective-C实现最短路径广度优先搜索算法(附完整源码)
    查看>>
    Objective-C实现最近点对问题(附完整源码)
    查看>>
    Objective-C实现最长公共子序列算法(附完整源码)
    查看>>
    Objective-C实现最长回文子串算法(附完整源码)
    查看>>
    Objective-C实现最长回文子序列算法(附完整源码)
    查看>>
    Objective-C实现最长子数组算法(附完整源码)
    查看>>
    Objective-C实现最长字符串链(附完整源码)
    查看>>
    Objective-C实现最长递增子序列算法(附完整源码)
    查看>>
    Objective-C实现有向图和无向加权图算法(附完整源码)
    查看>>
    Objective-C实现有序表查找算法(附完整源码)
    查看>>
    Objective-C实现有限状态机(附完整源码)
    查看>>
    Objective-C实现有限状态自动机FSM(附完整源码)
    查看>>