简介

神经网络,是一种电脑模拟人类大脑神经元工作的过程。
神经网络的核心思想就是线性代数。Input Layer输入的是,特征值。神经网络通过这些特征值计算出,最后的输出是什么。

关键点在于,神经网络如何对神经元进行调参,调试出最合理的参数来。

这里我们会用到一个反向传播算法。

如果输出的结果不对,那就重新调参,不断逼近正确的输出结果,这就是反向传播算法。

image.png

image.png
image.png

优化——Optimization

优化与什么有关,优化主要与求某个函数的最值有关。
我们优化的就是参数,这时候我们往往会使用,求导这样的方法来进行求解最值。
以求出最合适的系数

当然了在多元或者说多维的情况下,我们更多的是采用凸优化的各种优化方法来求解某个式子取得最值时的参数。
image.png

当我们的维数增加的时候,我们就没有办法直接计算了。
image.png

神经网络的结构

image.png
神经网络的第一层是用来加工特征的
image.png

image.png
如果我们把输出层拆掉,那么第三层留下的就是,这些数字最重要的代表特征。

https://www.bilibili.com/video/BV1Lx411j7ws?p=8

👆,这个视频很好的解释了,什么叫做Tensorflow的处理结构。

激活函数Activate Function

激活函数确定的是,隐藏层的输入值。
当输入值达到一定水平的时候,就会启动激活函数,激活函数会有一个输出,而这个输出就是隐藏层的输入值。

1.sigmoid

image.png
sigmoid函数的输出值在0到1之间,然后。
image.png
image.png
但是,sigmoid函数的导数在0-0.25之间。
这样的话,当我们反向传播的时候,我们需要对激活函数求多次导数。这样0.25进行指数模型变换之后,就会把梯度的值消磨掉。
image.png
image.png
这个问题我们称之为——梯度消失

2.Tanh

image.png
输出值在-1到1之间,导数值落于0,1之间
image.png
相对于sigmoid,Tanh可以相对减少梯度消失的问题。

3.ReLU

image.png

4.Leaky ReLU

反向传播

image.png
image.png
这是什么,这是数学公式啊!这是等号,现在我们是不是可以使用优化来对这些参数进行运算啦。

我们在机器学习中,误差就是最重要的东西,很多时候我们也叫误差为代价。
我们的目的其实都是为了让某个函数的值最小,怎么优化呢,我们可以使用凸优化的知识点了。

image.png
image.png

image.png
反向传播的意思就是。

我们对w参数——weights参数的修改是从前往后修改的。

因为我们的a是每次激活函数输出的结果,每个神经元都代表了一个特征值,我们逆向推导的时候,可以知道,我们每一级期待的a都是已知的,所以我们只需要不断优化w即可。

image.png

每个输出值,对w的改变都有自己的想法。

所以我们最后w的改变是通过加权平均得出的。

线性可分问题

线性可分的意思就是,我们可以通过,线性函数,把输入划分成不同的区域。
image.png

如果感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限,事实上,上述的,与或非问题都是线性可分问题。

为什么只拥有一层神经元就是线性可分问题呢?

因为,神经网络就是不断地进行线性组合。如果我们只有一层功能神经元,就只能生成一次线性函数。

解决非线性可分问题

要解决非线性可分问题,就要使用多层功能神经元。image.png