python:人工神经网络学习算法-基础篇,看这一篇就够啦
神经网络顾名思义就是类似人的大脑相互连接的神经细胞,同样可以传递和处理信息。又怎么和计算机的逻辑对应起来的呢?我们想,大脑神经元的两种状态“兴奋”和“抑制”正好对应计算机的“1”和“0”。当大脑神经细胞膜电位电压超过阈值时,大脑神经进入“兴奋”状态,产生神经冲动输出,即计算机输出“1”;当大脑神经细胞膜电位电压低于阈值时,大脑神经进入“抑制”状态,神经冲动不输出,即计算机输出“0”。是不是很神奇啊。
本篇文章为人工神经网络学习算法-基础篇,重点介绍神经网络的原理。通过通俗易懂的语言让大家对神经网络算法有一个更加清晰的认识。本篇重在加深对神经网络的理解。
一、神经网络的原理
我们还是从线性模型的一般公式讲起啊,这样比较容易理解。线性模型的公式是不是这样的:
这个线性数学公式的网络线性回归图如下图。

其中,x[0]-x[n]是输入的样本特征值数据,w[0]-w[n]是每个特征值数据的权重,是是所有特征值数据带着各自权重的加权求和。
线性的计算过程理解了吧。那我们就立刻给出神经网络的原理啦。如下图神经网络结构图。

注意啦,神经网络就是:
(1)在线性模型的输入和输出之间增加了一个隐藏层;
(2)输入的样本特征数据分别带着权重系数w做加权求和计算隐藏层里的每个节点h[1]-h[n]。
(3)对h[1]-h[n]分别做非线性处理。目的是为了将样本特征进行简化(全部约束到同一小的范围内),从而使神经网络可以对复杂的非线性数据集进行学习。处理方法是: 在生成隐藏层之后,对结果进行非线性矫正,简称为relu或者是进行双曲正切处理,简称为tanh。relu和relu处理效果如下图。
(4)计算后的隐藏层节点数据h[1]-h[n]再带着各自的权重v做加权求和计算,得到最终结果y。
哈哈,这就是神经网络的原理,是不是很容易理解啊,当然,隐藏层可以根据需要多加几个(多层神经网络)。

relu和relu处理效果图
我们把上面的再用数学公式表达一下,比如经过relu非线性处理后,h[1]-h[n]的公式分别为:
最后y值的计算公式为
在模型中, w 和v 都是通过对数据的学习所得出的。而用户所要设置的参数,就是隐藏层中节点的数量。一般来讲,对于小规模数据集或者简单数据集,节点数量设置为10 就己经足够了,但是对于大规模数据集或者复杂数据集来说,要么增加隐藏层中的节点数量,要么添加更多的隐藏层。如下图,在大型神经网络当中,一般设置很多的隐藏层,也就是为什么叫“深度学习”中“深度”啦。

以上就是本篇的全部内容。希望大家能有收获。为了大家容易掌握和消化,我们没有放太多的内容。
下一篇,我们将重点介绍神经网络的参数设置,通过python具体程序领会感受不同参数设置的不同效果。
感谢大家,请关注、点赞、收藏吧。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)