zoukankan      html  css  js  c++  java
  • 神经网络学习小节

    最近通读了三本书,《人工智能》,《机器学习》,韩立群的《神经网络》。全部都提到了神经网络,也让我能够从不同的角度认识这一传说中神秘的算法。

    首先看的是人工智能,发现神经网络非常有趣,但是讲得似乎篇幅有些小,专门找来神经网络的书看。花了大笔的时间,一个挨一个的把各种人工神经网络模型学了一遍。起初以为这本书是神经网络的发展史,一开始先简单介绍感知器,单层的,带隐藏层的,自学习的,引导学习的,反传的;然后再介绍点高级的,各种网络。越学到后来越迷糊,到底这些网络有什么意义? 最典型的是hopfield网络,吹得神乎其神,能用电子电路实现(好像也是目前唯一能用电子电路直接实现的网络模型),能记忆,像人一样想起一件事情又想起另一件然后把整个完整记忆都勾起。结果看了半天不知道干啥用,再回去看《人工智能》,里面也写到了hopfield网络,具体算法就是把各个要它记忆的向量,放在一起,算出一个权值矩阵,直接给赋值网络,以后这个网络就能“记起”这些向量了。。。。。也就是说如果我输入的向量是它记得的向量,他就保持不动。如果输入的向量它不认识,就给我输出一个他认识的相似的向量。首先前一个,输入啥输出啥,作为它的主要功能,显然毫无作用,我还不如直接拿导线把输出和输入连起来。后一个功能,输入一个不认识的,可以给我一个“相似”的,听上去有点用,其实也是狗屁,因为给的并不是它记忆中“最相似”的那个向量,只是有那么点像。这不是坑爹么,唯一看上去能应用的联想能力最后发现还是垃圾。通观全书,把各种神经网络都介绍了了一遍,最后发现基本都毫无用处,似乎业界对神经网络的认识就是BP网,也就是一开始介绍的最简单的那种网络。无语中,我又打开《机器学习》,看了一下,发现果然,这里就只介绍了bp网,其他的一概略过。但是它对bp网的介绍却要比神经网络要有用。《神经网络》介绍了很多的原理,很多的推导过程,但是对于应用和各种限制都讲得很模糊。而机器学习里面就明确讲到,输出函数应该如何取,否则无法求导。隐藏层神经元个数如何取,少了怎么样,多了怎么样,非常有指导意义。还给出了一个动态增减神经元个数的模型,这个对我的启发也非常大。下面插一段专门讲这个。记录一下我现在的想法。

    人类求知的过程一直都是比较科学的:控制变量法。寻找规律时努力控制输入条件,比如看到石头掉落,某些时候会奇妙得蹦达一下。于是就反复实验,反复重复成功的实验。先假定某个因素,比如是扔的力度必须保持某个大小。但是多次试验后发现虽然保持了力度的不变,也就是当前输入元素都不变的情况下,输出却在变化,也就是石头仍然有时蹦达有时不蹦达。这就是模型不够完整,还有其他输入没有考虑。于是我们增加考虑扔的角度。对应到神经网络就是增加新的隐藏神经元。多次试验后发现保持角度就可以使石头蹦达得那么奇妙,而改变力度却没关系,于是力度就是和这个现象无关的输入,我们可以去掉。对应到神经网络就是删除无用的神经元。也许在研究智能的时候我们可以引入其他更接近这一现象的模型,不仅仅是增加删除隐藏神经元,而应该是更多的把输入神经元一起考虑进来,我认为生物神经元应该就是这样,把io更多的相关神经元放到一起,从而得到外界各种现象和各因素之间的规律。写到这里我觉得那种规模可变的bp网络可以设计为从无隐藏层增加,然后一边增加一边删除无用的神经元,这样应该效率会更高一些。

    题外话完。接着,机器学习就结束了神经网络这一章,把所有的其他类型的网络都忽略了。我也认为那些网络有些扯淡,不过仍然是神经网络方面的有益尝试。

    那么神经网络这个学科到底目标是什么呢?到底方向在哪里?在参考了生物脑的计算方式和计算机的计算方式之间的差别之后,我认为神经网络方面研究方向应该是发明一种可自主训练,模式匹配,大规模并行,脱离cpu的模型。

    即像人脑细胞一样,可以有极大的数量,复杂的链接,但是成本低廉。现在计算机的主要问题是,当数据量大的时候,寻找模式实在太消耗时间。我们需要一种从物理层面出发的基本计算能力,可以使我们能够大规模制造有上万亿计算单元的模型。

    现在的bp模型,无法用电路来表达,就算表达了仍然是类似cpu的总线结构,不能像脑细胞一样独立自主,高容错。而hopfield模型虽然可以用电路简单表达,却毫无用处,也根本不能训练。如果能够大规律制造某种网络,我们就可以更深入得研究人工神经网络的功能,而不是像现在,搞一个图像识别的bp网络,只能接受120×100的灰度图像输入,然后训练上万次。将可以研究比如上千亿个神经元来参与的计算,神经网络的模型也可以更复杂,层层嵌套,搭建更宏伟的网络模型。现在的图像识别太扯,把每一个像素都输入到神经网络,这不就完全丢失了像素之间位置关系的信息了么。这样必然导致像素规模扩大后训练次数上升得无以复加。

    最后小节:目前的神经网络基本都和“智能”没什么关系,规模也太小,根本还摸不到智能的边。急需一种大规模的神经网络的物理实现,来进行更多的研究。

  • 相关阅读:
    由当前acitivty直接退到桌面
    Android中SharedPreference多进程数据共享出错
    java回调机制
    Android 监听apk安装替换卸载广播
    jquery中如何退出each循环
    旋转六面体源码
    用CSS3制作的旋转六面体动画
    CSS中常用的字体单位:px、em、rem和%的区别
    css属性简写集合
    小游戏--别踩白块
  • 原文地址:https://www.cnblogs.com/hyperddr/p/2194015.html
Copyright © 2011-2022 走看看