深度学习 基于python语言和tensorflow平台(2)

接上回,从线性问题转化为非线性问题。

第五章 用神经网络解决非线性问题

二分类问题——是否为三好学生

问题:已知三门科目成绩,已知是否被评选为三好学生,不知道总分,同样是求三门科目在总分中所占权重。
评选规则(仅学校知道):总分大于等于95当选,总分=语文 * 0.6+数学 * 0.3+英语 * 0.1
分析:
首先看已知,我们知道三门科目成绩,知道其对应的评选结果,而结果只有两种可能是或者不是。也就是说我们建一个神经网络输入各科成绩输出是与否(在计算机中可用0、1代替)。
故这是一个关于分类的问题,又因为结果只有两个,所以叫做二分类问题。
同时因为其不能用一个线性公式表示出来所以它也是个非线性问题。

设计神经网络模型

激活函数sigmoid
sigmoid函数功能:可以把任何数字变成一个0到1范围之间的数字。
在这里插入图片描述
sigmoid函数这个功能经常被用来处理二分类问题。
建立的神经网络模型如下图:
在这里插入图片描述

准备训练数据

上一篇我们使用的是直接输入三位学生的科目成绩和总分,这种方式麻烦且训练数据有限。所以在这里我们使用随机数的方式来准备训练数据。
在这里插入图片描述
这里的0.6、0.3、0.1分别对应的是各科真正的比例,在这里我们使用这个规则来准备随机数就像是家长提前收集真正的数据一样。只是有这些数据来训练我们的模型而不是提前把规则透露出去了。

完整代码

完整的代码在前面的基础上加上了偏移量b,因为如果只靠前面的代码运行结果中误差调整不明显,w没有任何变化一直是0.
原因是:y值是三科总分进行sigmoid函数运算后的值而总分的值一般在70-100之间,根据sigmoid函数几乎所有y的取值都是1。而loss值是y-ytrain的差不是0就是1。优化器在调整可变参数w时感受不到调整带来的变化,所以无法进行合理的调整。
因此我们要增加一个偏移量使得总分(n2)的值在-5~5之间。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后的运行结果发现b的值接近评选规则里的95分,证明网络模型的正确性。

所以到此为止三好学生问题结束(鼓掌)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值