神经网络不神秘--初步认识ANN

  

目录

引言

神经网络是什么?

        神经网络的分类

        神经网络的最小单元

        人工神经网络的最小组成单位

        感知器

         激活函数的作用

纠正认知

      人工神经网络的结构

        单层结构

        多层结构

结语


        很多同学会好奇,啥叫神经网络,啥叫深度学习,更有的人会问,啥叫机器学习,啥叫人工智能?解释这些问题并不难,其实,很简单。

引言

        我先回答问题吧,大体的关系是,人工智能包含机器学习,机器学习包含深度学习,深度学习部分包含了神经网络,这里分享一篇讲的很细的博客,供大家参阅。

        引用博主的一张图来形象阐明关系:

在这里插入图片描述

         当然了,本篇博客的重点在于深度学习当中的神经网络

        从很早的时候开始,人们就幻想计算机能够像人一样的思考,但是人们渐渐发现,对于一些固定的,计算复杂的任务,计算机的表现十分卓越,例如解一些多元方程,算圆周率啥的,但是对于识别图片上的动物是猫还是狗这种对于人类而言轻而易举的问题,计算机却显得手足无措。

        “这是当然的!因为计算机是死板的”很多人工智能的悲观主义者往对于计算机实现人类智慧保持否定的态度,但其实我们可以仔细揣摩一下,人是由什么组成的?往小的说是细胞,我们再往小的说,那就是分子,原子,而同样,计算机其实往小了说也是由原子组成的,因此我个人认为,人工智能的研究其实是非常有意义的。

        话又说回神经这个话题,我们知道大脑是人思考的器官,而人脑进行思考和判断靠的是其中的神经系统,因此科学家们就会像能不能模仿人脑神经的结构,让计算机获得一些人类的属性?在这样的思考下,对神经网络的研究开始兴起了。

神经网络是什么?

        神经网络的分类

 (图片来源CSDN博客)

        我们所讨论的属于人工神经网络(ANN)的范畴,即我们采用人工模拟神经元细胞工作的方式来搭建计算机的“学习网络”,但是大家注意,神经网络模型不是大脑的模型。目前没有证据表明大脑的学习机制与现代深度学习模型相同。

        神经网络的最小单元

        既然是仿生,那么我们肯定是需要对人脑的神经细胞的结构有所了解。

        一个典型的神经元细胞主要分为 树突、轴突、和突触三个部分。而它的工作原理是什么?当树突(很多根)接收到化学信号后以电信号的形式沿轴突传输,最后到达突触(多根)分泌化学物质刺激后一级的神经元,许许多多的神经元如此连接,形成网络,根据每个神经元对信息的微妙处理,实现整体的功能。

        人工神经网络的最小组成单位

        感知器

        上图就是人工神经网络中的最小组成单位,我们叫“感知器”,上图示例的感知器有三个输入,一个输出。其中的W,我们习惯称作权值,y的作用的将三个输入和权值的乘积相加,g(y)叫激活函数。

        很容易得到输出与输入的关系:Output = g(X1W1+X2W2 +X3W3)

         激活函数的作用

        我们从上面的表达式可以看出,如果g(y)是个常数,或者说g(y)是个线性函数,那么其实整个感知器就是一个线性的模型,而我们知道,下一层感知器的输入就是上一层感知器的输出,因此无论我们叠加多少层的神经元,整个系统从本质上说还是个线性模型,这是一方面的原因。

        另一方面的原因就是线性模型能解决的问题是有限的,因此想提高神经网络的性能就必须要引入非线性的因素,这就是我们激活函数的作用。常用激活函数请参考这篇博客

纠正认知

     在讲结构这个问题前,我想纠正大家的一个错误认知,那就是认为神经网络是个玄学。

        我想很多刚入门的小伙伴由于对各种专业术语的不了解,以及对计算机技术的不信任,常常会Get不到精髓。其实神经网络并不是什么高深的东西,比如我举个例子:函数曲线的拟合,其实我们常称为“回归分析”

        例如一个二次函数 y = aX^{^{2}} + bX + c,我各个参数都未知,但是我有几个已知的数据点,咱们都知道其实三个数据点就能够确定这条曲线,神经网络就好比这样一个东西,我先初始化给 a、b、c一个值,你给我一个参数点,告诉我这是这条曲线上的,然后我将坐标代入方程,得到一个结果,看看和标准答案是大了还是小了,通过算法调整a、b、c的大小,然后再来第二个点,代入,然后在看误差,再调整a、b、c大小,直到得出的误差和已知的差距消失(有解问题才有可能)或者很小。这样神经网络的参数就训练出来了。

        因此,人工神经网络其实相当于计算机自动调参的过程,我们很形象地称为“学习”,并且把这些方程式计算式称为“神经网络”。像图像识别那种应用,其实计算机最后得出的结果是每个可能种类的概率,并且输出最大概率的选项而已,所以希望大家在学习的过程中忘掉“神经”两个字

        从这里我们也可以看出,影响人工神经网络神经网络的两大因素分别是算力算法。

      人工神经网络的结构

        单层结构

        如上图,这就是一个典型的单层神经网络,一个输入层,一个输出层,并且我们可以直到,输入层的节点并不算感知机,而输出层每个节点都是一个感知机 并且,输出层的每个节点都与前一层的各个节点相连,因此我们也称输出层为“全连接层”,只要该层的每个神经元都与前一层的每个神经元相连,我们就称之为“全连接层”

        虽然单层感知机后可以具有非线性的激活函数,单其只适用于处理线性可分的问题,而解决非线性可分问题,需考虑使用多层感知机。具体可以参考这篇博客

        多层结构

        所谓“多层结构”就是在输入与输出层之间有多层”隐藏层“ ,而隐藏层也是“全连接层”,并通过激活函数对隐藏层输出进⾏非线性变换。(激活函数常为ReLU函数)

        大家可以想一想,如果没有激活函数进行非线性变换,那么其实隐藏层的作用相当于没有,因为线性模型叠加后还是线性模型。

        在这里其实我们特别关注两个参数:

  1. 隐藏层数
  2. 隐藏层神经元数

        而这两个参数往往是不能通过训练得到的,我们所说的调参也就是调整这些个参数。同时我们引出一个术语:超参数。所谓超参数就是我们不能通过训练得到的参数,例如训练的迭代次数,一次训练的样本数,等等。

结语

        读完之后大家可能对神经网络有了一些了解,可能你们会恍然大悟:噢,也就那么回事,不就是做数学运算嘛?但是,这只是神经网络的九牛一毛罢了。从前的人们也是这样看神经网络的,智商不够,算力来凑呗。但是随着卷积神经网络CNN等等的兴起,人们发现臃肿的神经网络也可以变得轻巧灵动,并且迸发出巨大的应用,这也是我们为什么要学习和研究神经网络的原因。

        两千多字下来了,相信大家也看累了,下一篇我们就一起来手把手实操一遍神经网络吧!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值