zoukankan      html  css  js  c++  java
  • 神经网络设计过程

    1.背景: 

     

     

    输出 y 中,1.01 代表 0 类鸢尾得分,2.01 代表 1 类鸢尾得分,-0.66 代表 2 类鸢尾得分。通过输出 y 可以看出数值最大(可能性最高)的是 1 类鸢尾,而不是标签 0 类鸢尾。这是由于最初的参数 w 和b 是随机产生的,现在输出的结果是蒙的
     
    为了修正这一结果,我们用损失函数,定义预测值 y 和标准答案(标签) y_ 的差距,损失函数可以定量的判断当前这组参数 w 和b 的优劣,当损失函数最小时,即可得到最优 w 的值和b 的值。
    损失函数的定义有多种方法,均方误差就是一种常用的损失函数,它计算每个前向传播输出 y 和标准答案 y_ 的差求平方再求和再除以 n 求平均值,表征了网络前向传播推理结果和标准答案之间的差距。
    通过上述对损失函数的介绍,其目的是寻找一组参数 w 和b 使得损失函数最小。为达成这一目的,我们采用梯度下降的方法。损失函数的梯度表示损失函数对各参数求偏导后的向量,损失函数梯度下降的方向,就是是损失函数减小的方向。梯度下降法即沿着损失函数梯度下降的方向,寻找损失函数的最小值,从而得到最优的参数。梯度下降法涉及的公式如下
    上式中,lr 表示学习率,是一个超参数,表征梯度下降的速度。如学习率设置过小,参数更新会很慢,如果学习率设置过大,参数更新可能会跳过最小值。
    上述梯度下降更新的过程为反向传播,下面通过例子感受反向传播。利用如下公式对参数 w 进行更新。
    设损失函数为 2 (w+1) ,则其对 w 的偏导数为 2w+ 2 。设 w 在初始化时被随机初始化为 5,学习率设置为 0.2。则我们可按上述公式对 w 进行更新:
    第一次参数为 5,按上式计算即5 − 0.2×(2×5 + 2) =2.6。
    同理第二次计算得到参数为 1.16,第三次计算得到参数为 0.296……
    画出损失函数 2 (w+1) 的图像,可知 w = −1时损失函数最小,我们反向传播
    优化参数的目的即为找到这个使损失函数最小的 w = −1值
     

     

     
  • 相关阅读:
    Chapter 4
    Chapter 3
    chapter 2
    Python编程指南 chapter 1
    BASE64 编码和解码
    生成 PDF 全攻略【2】在已有PDF上添加内容
    IDEA 和 Eclipse 使用对比
    web 前端常用组件【06】Upload 控件
    聊聊 Web 项目二维码生成的最佳姿势
    依附大系统 【数据实时获取】解决方案
  • 原文地址:https://www.cnblogs.com/GumpYan/p/13548703.html
Copyright © 2011-2022 走看看