2024年最新Keras深度学习实战(1)——神经网络基础与模型训练过程详解

本文详细介绍了神经网络中连续变量和离散变量预测的损失函数选择,重点阐述了均方误差和分类交叉熵的应用。通过前向传播计算误差值,讲解了如何实现网络的权重计算,包括随机梯度下降等优化技术,并演示了从零开始构建反向传播算法以调整权重以降低损失的过程。
摘要由CSDN通过智能技术生成

通常,当预测值为连续变量时,损失函数使用平方误差,也就是说,我们尝试通过更改与神经网络相关的权重值来最小化均方误差:

J ( θ ) = 1 m ∑ i = 1 m ( h ( x i ) − y i ) 2 J(\theta)=\frac 1 m \sum _{i=1} m(h(x_i)-y_i)2 J(θ)=m1​i=1∑m​(h(xi​)−yi​)2

其中, y i y_i yi​ 是实际值, h ( x ) h(x) h(x) 是我们对输入 x x x 进行变换以获得预测值 y y y 的网络模型, m m m 是输入数据集中的数据个数。

2.4.2 在分类(离散)变量预测中计算损失

当要预测的变量是离散变量时(也就是说,变量中只有几个类别),我们通常使用分类交叉熵损失函数。当要预测的变量具有两个不同的值时,损失函数为二分类交叉熵,而当要预测的变量具有多个不同的值时,损失函数为多分类交叉熵。

  • 二分类交叉熵公式如下:

( y l o g ( p ) + ( 1 − y ) l o g ( 1 − p ) ) (ylog§+(1−y)log(1−p)) (ylog§+(1−y)log(1−p))

  • 多分类交叉熵定义如下:

− ∑ i = 1 n y i l o g ( p n ) -\sum _{i=1} ^n y_i log(p_n) −i=1∑n​yi​log(pn​)

其中, y y y 是输入实际对应的真实值, p p p 是输出的预测值, n n n 是数据量的总数。

2.4.3 计算网络损失值

由于我们在以上示例中预测的结果是连续的,因此损失函数值是均方误差,其计算方法如下:

e r r o r = 1.23 5 2 = 1.52 error = 1.235^2 = 1.52 error=1.2352=1.52

2.5 使用 Python 实现网络前向传播

通过以上学习,我们知道了通过在输入数据之上执行以下步骤以在前向传播中可以得出误差值:

  1. 随机初始化权重

  2. 通过将输入值乘以权重来计算隐藏层节点值

  3. 对隐藏层值执行激活

  4. 将隐藏层值连接到输出层

  5. 计算平方误差损失

计算所有数据点的平方误差损失值:

import numpy as np

def feed_forward(inputs, outputs, weights):

pre_hidden = np.dot(inputs,weights[0])+ weights[1]

hidden = 1/(1+np.e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值