BP神经网络

          本文介绍机器学习里的BP神经网络Back Propagation neural networks算法。它之所以叫神经网络,是因为它的模型结构很像神经生物学上的神经网络,它实际上就想模仿人类的神经网络学习事物的过程,来到达能学习某样东西的能力。这里的说的“学习某样东西”听起来似乎太抽象,解析抽象东西的一个好方法就是举实际的例子啦~大家肯定遇到过垃圾短信、垃圾邮件吧?大家有没有发现有的APP或者邮件能自动识别垃圾短信、垃圾邮件?像识别垃圾短信、垃圾邮件这个功能就可以用神经网络来做,当然实现这个功能的方法有很多,神经网络只是一种,并且,神经网络能做的事也很多,绝不仅仅是识别某样东西那么简单。那BP又是什么意思呢?其实是神经网络的一种训练算法,后面会解释。

        那么,这和“学习”有什么关系呢?假设一个这样的场景:假设你之前从来没见过垃圾短信,就是说不知道什么样的短信才叫垃圾短信,现在我给你看1000条垃圾短信,就是告诉你,垃圾短信大概是长这个样子的~然后再给你看1000条非垃圾的短信,就是告诉你,正常的短信是这个样子的~好了,等你看完之后,我再给你看一条你从来没见过的短信,你就能识别出来它是正常短信,还是垃圾短信。再举个生活中的例子,世界上的车你不可能之前每一辆都见过呢?那为什么你看到一辆你从来没见过的车,你却能知道它是车?因为你有学习的能力,你能学习到垃圾短信、正常短信、车具有什么样的特征。因此,当你看到一辆你从没见过的车时,你会对车进行特征提取,然后把提取到的特征和你以前学习到的车的特征比对,然后发现二者高度相似,你就识别出了车。同样,我们希望算法有这种学习能力,比如给它看1000条垃圾短信,1000条非垃圾的短信,然后新来了一条短信,希望它能尽可能准确地告诉我这条短信是不是垃圾短信。

        我们先来看看神经网络长什么样子,下面的图是一个3层的神经网络:


            神经网络一般来说有三种层(注意这里说的是三种,不是三个),即输入层、隐藏层和输出层,那些个圆圈叫做神经元。输入层和输出层一般各有一个,而隐藏层则可以有多个,一般来说,隐藏层越多,神经网络的学习能力就越强,但是学习(或者说是训练)的难度就越大。继续刚才的垃圾短信的例子,那么假设这个神经网络已经训练好了,就是它已经知道垃圾短信和非垃圾短信长什么样了,至于是怎么训练的,下面会说。这时对于一条短信,它输入这个神经网络,输出就应该是它是或者不是垃圾短信,这怎么往这个模型里套呢?模型里都是数字的变量啊。所以,首先你得把文字信息变成数字的,说得专业一点就是特征提取(feature extraction),有很多种方法,简单的可以直接用TF,或者TF-IDF,做得好一点的可以先filter掉stopword再提取,总之方法很多啦,这样之后,一段话就可以转化成一个特征向量eigenvector)了,那么输出呢?因为我们的识别结果只有两种,要么是垃

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值