神经网络(一)——什么是神经网络

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/riddle1981/article/details/79749440

现今时代随着AI技术的火热,深度学习,机器学习、人工智能等词汇越来越多的出现在视野当中,那么这些之间有什么关系呢?我们先来看看定义:

人工智能:人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。
机器学习:涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。
神经网络:它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
深度学习:深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
也就是说它们的关系如下:
这里写图片描述

由图中不难看出从人工智能到深度学习是一个领域更加明确,范围逐渐变窄的过程。

那么本文主要就是要来谈谈机器学习的一个基础算法神经网络。
一、感知器
在来讨论神经网络之前,先来看看感知器。感知器可以看做是最简单的前馈神经网络。而感知器就是受到神经元的启发,来看看人脑是如何处理信息的。
这里写图片描述
细胞核周围有很多树突,树突负责接收信号通过突触进行整型来放大缩小信号,信号传递给细胞核,细胞核进行加权处理通过轴突传递给下一个细胞核。
这里写图片描述

上图代表一个感知器。它接受多个输入(x1,x2,x3…),产生一个输出(output),好比神经末梢感受各种外部环境的变化,最后产生电信号。其中x1,x2…xm是信号输入,y为信号输出。比如新出了一部电影,你周末首映要不要去就可以用感知器判断。假设考虑条件有以下几个

  • 电影是否好看
  • 有没有同伴一起
  • 周末是否有别的计划

但是这些条件对你来说并非同等地位,比如如果没有同伴就算有空也不会独自看电影 那么是否有同伴就成了决定性因素,那么这个条件占比就会高。如果只是想去看一次电影首映不在乎电影是否好看,第一个条件的权重就会低一些。假设三个条件的权重分别是3、7、5,事件发生则输入1否则输入0.那么当电影不好看但是有同伴且周末没别的计划的时候去看电影这个事件的值就是12.这个时候需要设置一个阈值,比如当值大于8就去看电影,否则不去。去的话输出为1否则输出0.那么就可以得出如下计算公式:
这里写图片描述

从上例中我们可以看出感知器是用来做决策的,根据输入的加权处理根据阈值进行决策。对于一个感知器来说,所需要解决的难点就是确定每一个条件的权值w和阈值v。因为实际情况下我们很难给出一个具体的权值和阈值,而这需要大量的数据进行训练,如果我们将你最终去看电影的情况记为圆,不去记作三角。感知器通过不断试错,改变权值或者阈值去根据已有数据训练模型。最终经过大量训练确定出一个线性方程来判断你在不同条件下是否会去看电影。
这里写图片描述

二、神经网络

刚刚已经了解了单个感知器的工作模式,当有多层感知器的时候就构成了神经网络,就想由神经元构成神经网一样。
这里写图片描述
神经网络由输入层,隐藏层,输出层构成。将第一层的结构作为第二层的输出继续计算,如此循环往复我们将可以解决无比复杂的问题。而每一层都可以看做上例提到的感知器。但是实际上我们要解决的问题要复杂的多,因此我们需要用到的感知器模型如下:
这里写图片描述

偏移量就是刚刚例子中的阈值,那么什么是激活函数我们为什么要使用激活函数呢?
激活函数众所周知有tanh,sigmoid,ReLU等。
tanh   双切正切函数,取值范围[-1,1]
sigmoid  采用S形函数,取值范围[0,1]
ReLU 简单而粗暴,大于0的留下,否则一律为0。
可以看出激活函数也就是映射。而激活函数的作用是给神经网络加入非线性的因素.激活函数一般都是非线性函数,要是没有了激活函数,那么神经网络难以对于生活中常见的非线性的数据建模.所以,神经网络中激活函数是不可缺少的.
如果还是很难理解的话看以下例子:
我们还是用圆和三角来看,为了更加显眼进行了颜色区分。也就是通过多层感知器我们依然可以将圆和三角进行分类

这里写图片描述
但是如果圆和三角的分布如下,我们很难通过线性方程去进行分类了,因为多层的线性计算依然只能解决线性问题。
这里写图片描述

此时如果要进行分类,我们需要这样:
这里写图片描述

而当我们加入了激活函数后,输出由直线变为了曲线,多层感知器也就有只能进行线性计算变成了可以进行非线性计算
图一

那么多层感知器可处理的情况就由图1变成了图2。也就是说,激活函数可以引入非线性因素,解决线性模型所不能解决的问题。
图1
这里写图片描述

理解了神经网络的基本原理,但真正要让它运作起来需要大量数据的训练去确定权值和偏移量。而如何去进行数据训练将会在下一篇进行知识点总结。

猜你喜欢

转载自blog.csdn.net/riddle1981/article/details/79749440