【BABY夜谈大数据】神经网络

举报
t-baby 发表于 2018/11/23 11:48:57 2018/11/23
【摘要】 你需要挑选芒果,你不知道什么样的芒果最好吃,所以你就尝遍了所有的芒果,然后自己总结出个大深黄色的比较好吃,以后再去买的时候,就可以直接挑选这种。 那什么是机器学习呢,就是你让机器“尝”一遍所有芒果。神经网络就是机器学习中常见的领域。本文简单阐述了什么是神经网络,帮助大家快速理解。

神经网络旨在模拟人的思考方式,思维学普遍认为,人类大脑的思维分为抽象(逻辑)思维、形象(直观)思维和灵感(顿悟)思维三种基本方式。而神经网络主要就是模拟人类的逻辑思维。

逻辑思维是人们在认识事物的过程中借助于概念、判断、推理等思维形式能动地反映客观现实的理性认识过程,又称抽象思维。它是作为对认识者的思维及其结构以及起作用的规律的分析而产生和发展起来的。只有经过逻辑思维,人们对事物的认识才能达到对具体对象本质规定的把握,进而认识客观世界。它是人的认识的高级阶段,即理性认识阶段。

同时,逻辑思维是思维的一种高级形式。是指符合世间事物之间关系(合乎自然规律)的思维方式,我们所说的逻辑思维主要指遵循传统形式逻辑规则的思维方式。常称它为“抽象思维(Abstract thinking)”或“闭上眼睛的思维”。

例如由笛卡尔提出的著名的“我思故我在”,我无法否认自己的存在,因为当我否认、怀疑时,我就已经存在!”因为我在思考在怀疑的时候,肯定有一个执行“思考”的“思考者”,这个作为主体的“我”是不容怀疑的,这个我并非广延的肉体的“我”,而是思维者的我。所以,否认自己的存在是自相矛盾的。

这个“我思故我在”就是典型的逻辑思维产物。

神经网络可以算是人工智能领域中一个小小的部分,简单来说就是通过一些列函数的串行和并行来拟合一个已经产生了一系列数据(x,y)的黑箱系统。

因为神经网络的这种特性,让人很难追溯产生的结果的原因,所以一般很少会用于推荐、运营相关方面。

作为一个数学不太好的设计师,神经网络的入门可以说是对数学要求没有那么高对我等相对来说比较友好的一个方向。

神经网络的点和点通过权重连接。把神经网络训练好了(就是权重调整好)。然后,让它去识别一个输入,把一个输入从神经网络出来后,就会被映射到一个输出(一个分类)。 所以也很适合做分类器。

我这里引用PararthShah在Quora(贾伟 翻译)上对机器学习(神经网络是机器学习的一部分)的解释:

你需要挑选芒果,你不知道什么样的芒果最好吃,所以你就尝遍了所有的芒果,然后自己总结出个大深黄色的比较好吃,以后再去买的时候,就可以直接挑选这种。
那什么是机器学习呢,就是你让机器“尝”一遍所有芒果,当然,也假设它知道哪些好吃,让机器去总结一套规律(个大深黄色),这就是机器学习。具体操作,就是你描述给机器每一个芒果的特征(颜色,大小,软硬……),描述给机器其输出(味道如何,是否好吃),剩下的就等机器去学习出一套规则。

神经网络特别适合用于分类,比如图像识别、垃圾邮件识别等等。这种能自动对输入的东西进行分类的机器,也可以叫做分类器。

每进行一次分类就被称为一个神经元,理论上只要足够多次的分类就可以把任何复杂的东西都能分类。相似的神经元构成一层。

当一层神经元搞不定的时候,怎么办?两层呗,两层搞不定就三层呗,如此反复叠加。上一层的结果可以当做下一层神经元的输入,直到最后一层再输出结果。

比如:

第一层分类出是一只狗。

第二层分类出是一只黄色的狗。

第三层分类出是一只黄色的金毛。

看到上面的例子,我相信大家都大概明白了神经网络的运作原理吧。神经网络虽然听起来特别高深、让人肃然起敬,但其实并不是特别的难。让人容易想起一个弹幕-“什么都好,就是有点傻”。

不得不说神经网络从某种程度上来说是有点傻,在实际应用上一般是不会设计超过五层的神经网络,因为层数越多越复杂、性能越低。

想要训练神经网络认识狗的话,就给它看几百万只狗、几百万只猫并标识什么是狗什么是猫,让神经网络自己提取共用特征。然后让神经网络分批看几十万张随机挑选的动物图片,每张图片可以附带一个标注(人为标注出是什么),如果神经网络得出的结果与人为标注的结果不同则自动修正。

如此反复找到识别率最高的批次。

讲到这就不得不提BP了,BP算法是一种计算偏导数的有效方法,它的基本原理是:利用前向传播最后输出的结果来计算误差的偏导数,再用这个偏导数和前面的隐藏层进行加权求和,如此一层一层的向后传下去,直到输入层(不计算输入层),最后利用每个节点求出的偏导数来更新权重。

BP神经网络可以用作分类、聚类、预测等。需要有一定量的历史数据,通过历史数据的训练,网络可以学习到数据中隐含的知识。在你的问题中,首先要找到某些问题的一些特征,以及对应的评价数据,用这些数据来训练神经网络。

BP神经网络主要是在实践的基础上逐步完善起来的系统,并不完全是建立在仿生学上的。并且里面的某些算法,例如如何选择初始值、如何确定隐藏层的节点个数、使用何种激活函数等问题,并没有确凿的理论依据,只有一些根据实践经验总结出的有效方法或经验公式。

BP神经网络虽然是一种非常有效的计算方法,但它也以计算超复杂、计算速度超慢、容易陷入局部最优解等多项弱点著称,因此人们提出了大量有效的改进方案,一些新的神经网络形式也层出不穷。

决策树和神经网络都可以用来做预测,线性回归、逻辑回归也是可以做预测。方法还挺多,但一般我们选择准确率最好的那个模型。

决策树因为其特性可以清晰和直观的知道整个决策流程,而神经网路则是通过算法产生一个最终的结果,这个结果是一些权重数据。所以在大数据的应用领域我更赞成决策树。可能这个跟自己的一些理念有关。

由于本书并不希望讲得太过高深,所以我就不在这里讲太多神经网络相关的,神经网络的学习还是需要一定时间和尝试的。本篇文章主要是给大家继决策树后补充下相关的知识。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。