解开“神经网络”的神秘面纱(一)

解开“神经网络”的神秘面纱(一)

 

人工智能的热度,神经网络的热度我就不说了。我也是在这个大潮中才接触人工智能,神经网络的。最近看了塔里克.拉希德的《Python神经网络编程》,然后跟着书也作出了神经网络,首先感谢作者无私的分享。我对高等数学不了解,Python也是新手,所以到作出自己的神经网络,花了近半个月时间。所以写点东西总结一下。

其实神经网络就像一个黑盒子,你从一边输入数据,而从另一边可以接受到一个完全不同的数据。哈哈,你可能会说,这不就是像一截生锈的管子,干净的水从这边流进去,而从另外一边得到的是带铁锈味的脏水吗?恭喜你答对了!

那我们就开始做我们的高大上的“神经网络”吧!

书上是这样一个问题:1千米等于多少英里?先看一张神经网络的原理图吧。

 

 

# 这里先设计神经网络的蓝图(专业术语叫类),
# 如果没接触过面向对象编程的小伙伴需要额外充电一下哟
class NeuralNetwork:
    def __init__(self):
        self.weight = None  # 这里先申明权重,外面再修改

    # 训练方法(函数)
    def train(self, basis_value, right_value):
        result = basis_value * self.weight  # 正向计算
        error = right_value - result  # 统计和正确结果的差异
        self.weight += error / basis_value  # 根据差异修改权重

    # 预测方法(函数)
    def forecast(self, basis_value):
        return basis_value * self.weight  # 返回预测结果


nn = NeuralNetwork()  # 实例化神经网络
# 我们必须先用正确的结果训练神经网络,就像教小孩认字,
nn.weight = 0.5  # 这个0.5就随便设的

# 开始训练神经网络
# 第一个为基础信息,就是基础值,在这个值的基础上预测出正确结果
# 第二个参数是正确的结果,这里的结果必须是正确的,要不然就误人子弟了~~
nn.train(100, 62.137)
# 一句就训练完毕了!神奇吧,觉得神奇的就鼓掌吧。
# 那我们看见神经网络的核心,权重值变成什么样了
print('神经网络的权重:', nn.weight)  # 这里得到的结果是0.62137,很正确嘀~~~

# 神经网络已经被我们训练好了,那我们开始用神经网络帮我们干活吧
basis_value = 520  # 先修改基础值(输入信息)
# 预测是我们传入基础值,返回预测结果
print('预测结果:', nn.forecast(basis_value))  # 得到的结果果然是323.1124,和我们用计算器算的一样

# 至此,一个简单的神经网络就完成了

    聪明的小伙伴会发现从上面代码中发现有很多问题?

   

    1.这个题目中,不就是为了得到一个权重值,不就一道除法题吗?为什么非要搞这么复杂呢?

    答:这个简单的神经网络,就是为了展现一个完整的神经网络构架,后面我们再在后面添砖加瓦,完成更为复杂的事情。到时就不是简单的除法题目了。

   2.神经网络必须用Python语言编程吗?

    答:不是必须用Python,用其他语言也可以,C语言啊,JAVA啊,都可以。只是用Python的比较多,Python中numpy用于科学计算的比较方便。

3.程序运行一次就完了,我怎么重复使用?我没需要预测都需要训练一下神经网络吗?

    答:神经网络的核心就是神经网络的权重值(nn.weight),我们只需要把权重值(nn.weight)保存起来,比如存入一个txt(文本文件)里面,下次需要预测的时候,再吧这个值取出来就可以。我们可以把上面的文件保存为独立的3部分,一部分是类部分,一部分是训练部分,再一部分就是预测部分。上面写在一起是为了方便大家直观理解。

 

    我也是个新手,如果有贻笑大方的地方,多多包涵啊!

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值