0%

水下机器人视觉_3_深度神经网络

非线性模型

分类例子--没那么简单

多层感知机(神经网络)

  • 通过线性模型拼出非线性模型
  • bias提供偏差
  • 通过sigmoid函数处理使结果为处于0-1之间的概率
  • 调整感知机的权重, 会获得不同的曲线(非线性模型)

神经网络

神经网络的表示方式

多层感知机的两种表示方式

神经网络分为三层:

  • 输入层
  • 隐藏层(可以有多层)
  • 输出层

神经网络各层

深度神经网络: 隐藏层大于一层

深度神经网络

多分类和softmax

多少种分类代表输出层的神经元有多少个

多分类使用softmax函数
二分类使用sigmoid函数

softmax函数

使用softmax函数的原因:

使用softmax函数的原因

sigmoid是softmax的一个特例, 如下图(图片来源: https://www.zhihu.com/question/294679135)

sigmoid是softmax的一个特例

第一步:
创建一个函数集
Create a function set

feedforward(前向传播)

神经网络是一个函数, 输入向量, 输出向量
给定一个网络结构, 定义一个函数集合
通过调整W和b的值(调参), 来不断降低误差函数的值, 优化神经网络j

神经网络前向传播

每个神经元进行矩阵运算
使用并行计算技术可以加速矩阵运算

矩阵运算-并行计算

第二步:
定义什么样函数是好的函数
Define goodness of function

误差公式

第三步:
获得最好的函数
Get the best function

backpropagation(反向传播)

让梯度下降效率更高

训练神经网络过程

训练神经网络过程:

  • 做前向传播操作(feedforward)
  • 比较模型输出和期望输出(\(\hat{y}\)和\(y\))
  • 计算误差(error function)
  • 运行梯度下降算法散布误差到每个权重(backpropagation)
  • 利用这个去更新权重, 从而获得一个更好的模型
  • 持续这个过程, 直到获得一个好的模型

模型出错的原因:

  • 迭代次数有问题
  • 或者学习率的设置有问题
Thank you for your reward !