wordpress邀请有奖,青岛seo精灵,做英文网站,wordpress要求1. 人工神经网络的概念 人工神经网络#xff08;英语#xff1a;Artificial Neural Network#xff0c;ANN#xff09;#xff0c;简称神经网络#xff08;Neural Network#xff0c;NN#xff09;或类神经网络#xff0c;是一种模仿生物神经网络#xff08;动物的中…1. 人工神经网络的概念 人工神经网络英语Artificial Neural NetworkANN简称神经网络Neural NetworkNN或类神经网络是一种模仿生物神经网络动物的中枢神经系统特别是大脑的结构和功能的数学模型用于对函数进行估计或近似。 和其他机器学习方法一样神经网络已经被用于解决各种各样的问题例如机器视觉和语音识别。这些问题都是很难被传统基于规则的编程所解决的。
2. 神经元的概念 【人工神经网路中最小的结构】 在生物神经网络中每个神经元与其他神经元相连当它“兴奋”时就会向相连的神经元发送化学物质从而改变这些神经元内的电位如果某神经元的电位超过了一个“阈值”那么它就会被激活即“兴奋”起来向其他神经元发送化学物质。 1943 年McCulloch 和 Pitts 将上述情形抽象为上图所示的简单模型这就是一直沿用至今的 M-P 神经元模型。把许多这样的神经元按一定的层次结构连接起来就得到了神经网络。 【神经元神经网络中的基础单元相互连接组成神经网络】
一个简单的神经元如下图所示 其中 a_1,a_2a_n 为各个输入的分量 w_1,w_2 w_n$为各个输入分量对应的权重参数 b为偏置 f 为激活函数常见的激活函数有tanhsigmoidrelu t 为神经元的输出
使用数学公式表示就是 可见一个神经元的功能是求得输入向量与权向量的内积后经一个非线性传递函数得到一个标量结果。
3. 单层神经网络 是最基本的神经元网络形式由有限个神经元构成所有神经元的输入向量都是同一个向量。由于每一个神经元都会产生一个标量结果所以单层神经元的输出是一个向量向量的维数等于神经元的数目。
示意图如下 4. 感知机 感知机由两层神经网络组成输入层接收外界输入信号后传递给输出层输出1正例-1反例输出层是 M-P 神经元 其中从w_0,w_1w_n都表示权重 【输出仅有一个神经元组成】
感知机的作用 把一个n维向量空间用一个超平面分割成两部分给定一个输入向量超平面可以判断出这个向量位于超平面的哪一边得到输入时正类或者是反类对应到2维空间就是一条直线把一个平面分为两个部分。 【简单的2分类模型给定阈值判断数据属于哪个部分】
5. 多层神经网络 多层神经网络就是由单层神经网络进行叠加之后得到的所以就形成了层的概念常见的多层神经网络有如下结构 输入层Input layer众多神经元Neuron接受大量输入消息。输入的消息称为输入向量。 输出层Output layer消息在神经元链接中传输、分析、权衡形成输出结果。输出的消息称为输出向量。 隐藏层Hidden layer简称“隐层”是输入层和输出层之间众多神经元和链接组成的各个层面。隐层可以有一层或多层。隐层的节点神经元数目不定但数目越多神经网络的非线性越显著从而神经网络的强健性robustness更显著。
示意图如下 概念全连接层
全连接层当前一层和前一层每个神经元相互链接我们称当前这一层为全连接层。 【全连接层第N层和N-1层中的神经元两两之间都有连接】
思考假设第N-1层有m个神经元第N层有n个神经元当第N层是全连接层的时候则N-1和N层之间有1这些参数可以如何表示 【共m*n个矩阵乘法中间可能会有偏置】 从上图可以看出所谓的全连接层就是在前一层的输出的基础上进行一次YWxb的变化(不考虑激活函数的情况下就是一次线性变化所谓线性变化就是平移(b)和缩放的组合(*w))
6. 激活函数
在前面的神经元的介绍过程中提到了激活函数那么他到底是干什么的呢
假设我们有这样一组数据三角形和四边形需要把他们分为两类 【显然我们不需要红色的分割线目标分割线应该为绿色的就需要用到激活函数】
通过不带激活函数的感知机模型我们可以划出一条线, 把平面分割开 假设我们确定了参数w和b之后那么带入需要预测的数据如果y0,我们认为这个点在直线的右边也就是正类三角形否则是在左边四边形
但是可以看出三角形和四边形是没有办法通过直线分开的那么这个时候该怎么办
可以考虑使用多层神经网络来进行尝试比如在前面的感知机模型中再增加一层 对上图中的等式进行合并我们可以得到
上式括号中的都为w参数和公式y w_1x_1 w_2x_2 b完全相同依然只能够绘制出直线
所以可以发现即使是多层神经网络相比于前面的感知机没有任何的改进。
但是如果此时我们在前面感知机的基础上加上非线性的激活函数之后输出的结果就不在是一条直线 【线性并非就是直线线性——系统函数f模型f(x)y;符合两个条件f(x1x2)y1y2;f(kx1)ky1,就为线性】 如上图右边是sigmoid函数对感知机的结果通过sigmoid函数进行处理
如果给定合适的参数w和b就可以得到合适的曲线能够完成对最开始问题的非线性分割
所以激活函数很重要的一个作用就是增加模型的非线性分割能力
常见的激活函数有 看图可知 sigmoid 只会输出正数以及靠近0的输出变化率最大 tanh和sigmoid不同的是tanh输出可以是负数 Relu是输入只能大于0,如果你输入含有负数Relu就不适合如果你的输入是图片格式Relu就挺常用的因为图片的像素值作为输入时取值为[0,255]。
激活函数的作用除了前面说的增加模型的非线性分割能力外还有 提高模型鲁棒性 缓解梯度消失问题 加速模型收敛等
6. 神经网络示例 一个男孩想要找一个女朋友于是实现了一个女友判定机随着年龄的增长他的判定机也一直在变化
14岁的时候 无数次碰壁之后男孩意识到追到女孩的可能性和颜值一样重要于是修改了判定机 在15岁的时候终于找到呢女朋友但是一顿时间后他发现有各种难以忍受的习惯最终决定分手。一段空窗期中他发现找女朋友很复杂需要更多的条件才能够帮助他找到女朋友于是在25岁的时候他再次修改了判定机 在更新了女友判定机之后问题又来了很多指标不能够很好的量化如何颜值什么样的叫做颜值高什么样的叫做性格好等等为了解决这个问题他又更新了判定机最终得到超级女友判定机 上述的超级女友判定机其实就是神经网络它能够接受基础的输入通过隐藏层的线性的和非线性的变化最终的到输出
通过上面例子能够理解深度学习的思想 输出的最原始、最基本的数据通过模型来进行特征工程进行更加高级特征的学习然后通过传入的数据来确定合适的参数让模型去更好的拟合数据。 这个过程可以理解为盲人摸象多个人一起摸把摸到的结果乘上合适的权重进行合适的变化让他和目标值趋近一致。整个过程只需要输入基础的数据程序自动寻找合适的参数。