财新传媒
位置:博客 > 集智俱乐部 > AI江湖 | 筑基篇——人工神经网络

AI江湖 | 筑基篇——人工神经网络

文 | 集智小仙女
 
现今人工智能概念的火爆到什么程度?
 
各大科技媒体争相报道关于人工智能的最新消息,AI初创公司的数量不断增长,人工神经网络、深度学习技术时时刻刻都被提及......
 
我们知道,在人工智能领域,目前应用最广泛的是深度学习技术。而深度学习是基于人工神经网络的。那么问题来了,到底什么是人工神经网络,它到底干嘛了,才让计算机拥有“智能”?
 
通常来讲,神经网络是一种数学模型,是人们在计算机上构建的模拟生物神经网络的系统,所以又叫作人工神经网络(Artificial Neural Network,即ANN)。
 
神经网络由大量的神经元节点和节点之间的联系构成。神经元可以起到传递和加工信息的作用,同时也可以通过训练被强化。通过向神经网络输入大量训练数据,改变神经元之间连接的参数,可以让神经网络整体“被训练”而能够拟合出输入输出间的关系。
 
 
上图就是一个典型的神经网络系统,它具有多个层级。多个层级构成了“深度”,也就是我们常说的深度学习网络。不管网络有多深,一般都会包含“输入层”、“隐藏层”和“输出层”。输入层负责接收信息,比如,一只猫的图片。隐藏层负责在网络中,对输入的信息进行加工处理。而输出层就是根据隐藏层计算的数据,得出计算机对输入信息的认知,比如判断输入的图片是不是一只猫。
 
听起来有些因吹丝汀?!那么就让我们看看神经网络到底是如何被训练的吧!
 
首先,它需要大量的训练数据。如果要让神经网络判断一张图片是不是一只猫,那么就必须给它看大量的猫猫狗狗的图片。既然要训练神经网络,那么肯定也要告诉它这些图片哪张是猫,哪张不是,也就是给这些图片“打标签”。
在训练的过程中,神经网络会先依靠自己的“主观意识”,尝试对图片进行判断。然后将判断结果与图片标签做对比,看看自己是不是判断错了。当然一开始它的判断几乎全是错的,但每当它判断错误时,错误的判断结果会被计算而转化成宝贵的学习经验。神经网络利用积累下来的经验去改善“自我”,以至于下次可以作出更佳准确的判断。
 
 
那么它究竟是如何从经验中学习的哪?首先就是比对正确答案和错误答案之间的差别,计算出预测误差值,然后再把这个误差值反向传播回去,依据误差值去调整不同层神经元之间的连接参数。初期的误差较大,所以反向对神经元连接参数的调整就比较大;随着训练次数的增加,预测准确性增加,误差减小,此时反向对神经元连接参数的调整就变的微小。慢慢的神经元连接参数趋于稳定,整个神经网络能够较好的完成预测,训练就可以结束了。
 
那么这个反向传播到底是什么?为什么就能将神经网络调整的越来越好?
 
有没有更高明的方法,可以让神经网络训练的更快?
 
还有除了上面介绍的简单神经网络,CNN,RNN,LSTM,又是怎样工作的?
推荐 0