《python神经网络编程》之一神经网络初探

        《python神经网络编程》这是一本适合入门神经网络的书,作者使用的是循序渐进的思维方式,从0开始,带领读者逐渐搭建一个自己的神经网络,这样可以很清楚的了解到,在一个网络里各部分的作用与功能是什么,跟着此书一边读一边敲代码一边记笔记,就会入门神经网络,受益匪浅。

         本文章也会带领大家学习本书,最终动手实现自己的神经网络

1.1 一台简单的预测机

        输入---------流程(计算)----------输出

我们来稍微增加一下难度

        千米----------计算???-------------英里

我们只知道英里 = 千米 * C,不过C不知道是多少,现在有两组数据

实例千米英里
100
2100

62.137

现在我们尝试用C为0.5计算一下,

         100千米-----------50英里

显然这与62.137是有差距的    误差=真实值 - 计算值 = 12.137

既然我们知道有误差了,那么再来指导第二次的C值猜测,这次将0.5变为0.6,得到计算值100千米=60英里,误差值为2.137,这一次进步还是比较大的。

有些人会觉得为什么不使用代数法直接计算呢,其实很多有趣的问题并不是一个简单的公式可以得到答案的,

我们继续来改变C值,这次设置为0.7,得到结果70,啊,糟糕,过头了,62.137-70= -7.863,负号告诉我们,不是不足,而是这次调整的太多了,我们欣然接受了0.6这个值,不过,为什么不再精确一点呢,选择0.61,得到误差为1.137,这样一直计算下去,最终我们便可以一步步的优化我们的C值。

 

无论你相信与否,刚刚我们所做的,就是走马观花的浏览了一遍神经网络中学习的核心过程。

我们并没有一步到位,相反,我们尝试一个答案,然后多次改进,这被称为迭代。

 

1.2 分类器与预测器

这是花园里的毛虫和瓢虫,我们使用一个直线来将两者分开,不过现在这条直线貌似不太成功,

这次好像也不太行,现在我们来着手做一个训练简单的分类器

实例宽度长度小虫
13.01.0瓢虫
21.03.0毛虫

  现在来绘制出一个二维图像

首先随机使用一条分界线,,y=Ax,我们尝试用0.25来开始

 

这个不是一个很好的直线,观察得到,直线需要上移,不过我们不能使用上帝视角,直接通过观察就给出答案

现在通过计算得到 y = 3.0 * 0.25 = 0.75,这和数据中的1.0相差0.25,所以得出,0.25这个数字小了,我们希望

得到的结果大于1.0,我们希望分界线在它之上而不是穿过它,好的,那我们的期望值设定为1.1,那么误差便为

1.1 - 0.75 = 0.35

 

增加A后的值应为 t = (A+ΔA)*x,E便为误差 = t-y = (ΔA)*x,哇,我们发现了误差竟然与ΔA有着如此的联系。

可以根据等式计算出ΔA 为0.1167 再加上最初的 0.25 得到新的A值为0.3667.

 

不过,我们发现这条线离某些小虫太近了,离另一些又太远了,其实这就是机器学习中的一个重要思路--改进。

就像最初的千米英里的关系一样,先使用十分位,后使用百分位,这便是改变了公式中的调节系数,他有一个名字叫做学习率。

 

在解决了这个问题之后,我们发现这种方法并不是万能的,因为对于异或问题,它并不能解决

似乎并不能通过一条直线讲两种小圆圈分开,起码要两条直线才可以,看来我们要换一种方法了,接下来先为大家介绍神经元的基本概念吧,听到这个名词,忽然觉得眼前一亮,距离理想中的人工智能越来越近了。

在生物体内,有无数个神经元,它的计算方式是接受前一个神经元传输的信号,然后自己把它一阵处理,再传输给下一个,其中的一阵处理,就是看看接受的信号值不值得传给下一个,也就是说我们现在的神经元有没有被信号激活。

在数学上,有许多激活函数可以达到这样的效果,S函数就是其中一个,全名就是耳熟能详的sigmoid

以上是S函数的图形与表达式,我们现在会使用S函数来代替神经元中一阵处理的那个操作。

神经元就是这样工作的,经过S函数并达到阈值时,才会被激活并输出

 

这就是神经元们间的结构以及我们所模仿出的模型,神经元之间并不是干巴巴的连接,而是各有不同的连接权重

其中的各个连接权重,就是我们的宝贝了,最重要的工作就是不断的改变这些参数的值,使得输入可以准确的得到输出

 

神经元之间的连接权重需要怎么样去优化呢,最终的输出结果什么时候才能够满意呢,神经网络具体是如何工作的呢

欲知后事如何,且听下回分解

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值