1. 什么是神经网络
神经元模型是一个包含输入,输出和计算功能的模型。输入可以类比为神经元的树突,而输出可以类比为神经元的轴突,计算可以类比为细胞核。
神经网络的发展:
2. 感知器
-
感知器有两个层次:输入层和输出层。
-
输入层里的“输入单元”只负责传输数据,不进行计算。输出层里的“输出单元”则需要对前面一层的输入进行计算。
-
把需要计算的层次称之为“计算层”,并把拥有一个计算层的网络称之为“单层神经网络”。
-
预测值可以为单个值z,扩展为向量[z1,z2],当然也可以扩展为任意长度向量。
-
图中两个公式就是线性代数方程组。因此可以用矩阵乘法来表这两个公式。
-
例如,输入的变量是[a1,a2,a3]T(代表由a1,a2,a3组成的列向量),用向量a 来表示。方程的左边是[z1,z2] T,用向量z来表示。系数则是矩阵,W(2行3列的矩阵,排列形式与公式中的一样)。
-
于是这个输出公式可以改写成:g(W*a)=z;
这个公式就是神经网络从前一层计算后一层的矩阵运算。
3. 神经网络的扩展
- 两层神经网络除了包含一个输入层呢,一个输出层之外,还增加了一个中间层。
- 权值矩阵增加了两个,用上标来区分不同层次之间的变量。ax(y)代表第y层的第x个节点。
- 在神经网络的每个层次中,除了输出层以外,都会含有一个偏置单元。正如线性回归模型与逻辑回归模型中的一样。
- 偏置单元与后一层的所有节点都有连接,设这些个参数值为向量b,称之为偏置。
- 最终矩阵运算如下 :
在神经网络中,把函数g称作激活函数,对线性加权结果进行一个非线性的变换,常见的激活函数包括:SIGMOD函数,tanh函数,ReLU函数Melu函数,PreLU函数。
神经网络的扩展:
λ 训练:
机器学习模型训练的目的,就是使得参数尽可能的与真实的模型逼近。
λ 具体做法: - 首先给所有的函数附上随机值
- 使用这些随机生成的参数值,来预测训练数据中的样本。样本的预测目标为z,真实目标为y。那么,定义一个值loss:
loss = (z - y)2
目标就是使对所有训练数据的损失和尽可能的小。
loss = (z - y)2
loss = (g(W(2) * a(2) + b(2)) - y)2
loss = (g(W(2) * g(W(2) * a(1) + b(1)) + b(2)) - y)2
可以看出损失loss就是权重W的函数。
- 在梯度方向上更新权重W,使得loss函数达到的最小值
- 梯度方向的值通过求导或偏导进行求取
- 在神经网络中通过反向传播来快速的计算梯度
4. tensorflow playground
演示:http://playground.tensorflow.org/
5. 神经网络的空间变换理解
●数学式子: y= a(W*x+B) ,其中x是输入向量,y是输出向量,B是偏移向量,W
是权重矩阵,a()是激活函数。每层仅仅是把输入x经过如此简单的操作得到y。
●数学理解:通过如下5种对输入空间(输入向量的集合)的操作,完成输入空间一>输出空间
的变换(矩阵的行空间到列空间)。注:用“空间”二字的原因是被分类的并不是单个事物,而是
-类事物。空间是指这类事物所有个体的集合。
●1.升维/降维
●2.放大/缩小
●3.旋转
●4.平移
●5.“弯曲”这5种操作中, 1,2,3的操作由W .正完成, 4的操作是由+b完成, 5的操作则是
由a()来实现。
每层神经网络的数学理解:用线性变换跟随着非线性变化,将输入空间投向另-个空间。
1.了解神经网络的基本概念和当前发展
2.掌握神经网络的数学模型和构建
3.感知器到多层神经网络的扩展
4.全连接神经网络向CNN、DBN和RNN的发 展
5. Tensorfow playground展 示和体验神经网络的强大功能。
6.通过空间变换和物理组合对神经网络的解释