TensorFlow笔记-06-神经网络优化-损失函数 自定义损失函数 交叉熵

本文介绍了TensorFlow中神经网络的优化,重点关注自定义损失函数和交叉熵在模型训练中的应用。通过实例展示了如何根据业务需求定制损失函数,并分析了不同情况下的预测效果。同时,解释了交叉熵的概念及其计算公式,以及softmax函数在多分类问题中的作用。
摘要由CSDN通过智能技术生成
                       

TensorFlow笔记-06-神经网络优化-损失函数,自定义损失函数,交叉熵

  • 神经元模型:用数学公式比表示为:f(Σi xi*wi + b), f为激活函数
  • 神经网络 是以神经元为基本单位构成的
  • 激活函数:引入非线性激活因素,提高模型的表达能力
    常用的激活函数有relu、sigmoid、tanh等
  • (1)激活函数relu:在Tensorflow中,用tf.nn.relu()表示
    这里写图片描述
  • (2)激活函数sigmoid:在Tensorflow中,用tf.nn.sigmoid()表示
    这里写图片描述
  • (3)激活函数tanh:在Tensorflow中,用tf.nn.tanh()表示
    这里写图片描述
  • 神经网络的复杂度:可用神经网络的的层数和神经网络中待优化参数个数表示
  • 神经网络的层数:一般不计入输入层,层数 = n个隐藏层 + 1个输入层
  • 神经网络待优化的参数:神经网络中所有参数w的个数 + 所有参数b的个数
  • 例如:
    这里写图片描述
    在该神经网络中,包含1个输入层,1个隐藏层和1个输出层,该神经网络的参数为2层
    在该神经网络中,参数的个数是所有参数w的个数加上所有参数b的总数,第一层参数用三行四列的二阶张量表示(即12个线上的权重w)再加上4个偏置b;第二层参数是四行二列的二阶张量(即8个线上的权重w)再加上2个偏置b
    总参数 = 34+4 + 42+2 = 26

损失函数

  • 损失函数(loss):用来表示预测(y)与已知答案(y_)的差距。在训练神经网络时,通过不断改变神经网络中所有参数,使损失函数不断减小,从而训练出更高准确率的神经网络模型
  • 常用的损失函数有均方误差,自定义和交叉熵等
  • 均方误差mse:n个样本的预测值(y)与(y_)的差距。在训练神经网络时,通过不断的改变神经网络中的所有参数,使损失函数不断减小,从而训练出更高准确率的神经网络模型
    这里写图片描述
  • 在Tensorflow中用loss_mse = tf.reduce_mean(tf.square(y_-y))
  • 例如:
  • 预测酸奶日销量y,x1和x2是两个影响日销量的因素
  • 应提前采集的数据有:一段时间内,每日的x1因素、x2因素和销量y_。且数据尽量多
  • 在本例子中用销量预测产量,最优的产量应该等于销量,由于目前没有数据集,所以拟造了一套数据集。利用Tensorflow中函数随机生成x1、x2,制造标准答案y_ = x1 + x2,为了真实,求和后还加了正负0.05的随机噪声
  • 我们把这套自制的数据集喂入神经网络,构建一个一层的神经网络,拟合预测酸奶日销量的函数
  • 代码tf07sale文件:https://xpwi.github.io/py/TensorFlow/tf07sale.py
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值