神经网络基础知识

 

目录

1.1神经网络中的三个基本概念是:反向传播,梯度下降,损失函数。

 1.1.1反向传播和梯度下降的基本工作原理是: 

 1.1.2 梯度下降的数学理解

2.1损失函数的作用

  2.1.1均方差损失函数

  2.1.2显示只变化b时loss的变化情况

  2.1.3显示只变化w时loss的变化情况

  2.1.4显示同时变化w,b时loss的变化情况

  2.1.5 在一张图上分区域显示b的4种取值的loss情况

  2.1.6 在一张图上显示b的4种取值的比较

3.2 交叉熵损失函数

3.2.1熵

3.2.2联合熵

3.2.3条件熵

3.2.4互信息量


1.1神经网络中的三个基本概念是:反向传播,梯度下降,损失函数。

 1.1.1反向传播梯度下降的基本工作原理是: 

  1)初始化
  2)正向计算
  3)损失函数为我们提供了计算损失的方法
  4)梯度下降是在损失函数的基础上向着损失最小的点靠近而指引了网络权重调整的方向
  5)反向传播把损失值反向传给神经网络的每一层,让每一层都根据损失值反向调整权重;
  6)返回到2)直到精度足够小
 

梯度,是个矢量! 它应该即告诉我们方向,又告诉我们数值。
如果误差值是正数,我们就把权重降低一些;如果误差值为负数,则升高权重。

 1.1.2 梯度下降的数学理解

梯度下降的数学公式:

θn+1​=θn​−η⋅∇J(θ)

其中:

  • θn+1​:下一个值;
  • θn​:当前值;
  • −:减号,梯度的反向;
  • η:学习率或步长,控制每一步走的距离,不要太快以免错过了最佳景点,不要太慢以免时间太长;
  • ∇:梯度,函数当前位置的最快上升点;
  • J(θ):函数。

梯度下降的三要素

  1. 当前点;
  2. 方向;
  3. 步长。

2.1损失函数的作用

就是计算神经网络每次迭代的前向计算结果与真实值的差距,从而指导下一步的训练向正确的方向进行

如何使用损失函数呢?
具体步骤:

1)用随机值初始化前向计算公式的参数
2)带入样本,计算输出的预测值
3)用损失函数计算预测值和真实值的误差
4)根据损失函数的导数,沿梯度最小方向将误差回传,修正前向计算公式中的各个权重值
5)重复第二步操作,直到损失函数值达到一个满意的值后停止迭代
 

  2.1.1均方差损失函数

//# Copyright (c) Microsoft. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
import numpy as np
from pathlib import Path
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib.colors import LogNorm

file_name = "../../data/ch03.npz"

def TargetFunction(x,w,b):
    y = w*x + b
    return y

def CreateSampleData(w,b,n):
    file = Path(file_name)
    if file.exists():
        data = np.load(file)
        x = data["data"]
        y = data["label"]
    else:
        x = np.linspace(0,1,num=n)
        noise = np.random.unif
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值