Chinese, Computer Science, Technology
Machine Learning Chinese NLP :::: Neural Networks Model Representation II
Neural Networks Model Representation II
在前面的视频里 我们
解释了怎样用数学来
定义或者计算
神经网络算法的假设
在这段视频中 我想
告诉你如何
高效地进行计算
并展示一个向量化的实现方法
更重要的是 我想
让你们明白为什么
这样表示神经网络
是一个好的方法 并且明白
它们怎样帮助我们学习复杂的非线性假设
以这个神经网络为例
以前我们说
计算出假设输出
的步骤
是左边的这些
方程 通过这些方程
我们计算出
三个隐藏单元的激励值
然后利用
这些值来计算
假设h(x)的最终输出
接下来 我要
定义一些额外的项
因此 这里
我画线的项
把它定义为
z上标(2) 下标1
这样一来 就有了
a(2)1 这个项
等于
g(z(2)1)
另外顺便提一下
这些上标2
的意思是
在z(2)和a(2)中
括号中的
2表示这些值
与第二层相关
即与神经网络中的
隐藏层有关
接下来 这里的项
我将同样定义为
z(2)2
最后这个
我画线的项
我把它定义为z(2)3
这样 我们有a(2)3
等于
g(z(2)3)
所以这些z值都是
一个线性组合
是输入值x0 x1 x2 x3的
加权线性组合
它将会进入一个特定的神经元
现在 看一下
这一堆数字
你可能会注意到这块
对应了
矩阵向量运算
类似于矩阵向量乘法
x1乘以向量x
观察到一点
我们就能将
神经网络的计算向量化了
具体而言 我们定义
特征向量x
为x0 x1
x2 x3组成的向量 其中x0
仍然等于1
并定义
z(2)为
这些z值组成的向量 即z(2)1 z(2)2 z(2)3
注意 在这里 z(2)
是一个三维向量
下面 我们可以这样
向量化a(2)1 a(2)2 a(2)3的计算
我们只用两个步骤
z(2)等于θ(1)
乘以x
这样就有了向量z(2)
然后 a(2)等于
g(z(2))
需要明白 这里的z(2)是
三维向量 并且
a(2)也是一个三维
向量 因此这
里的激励g 将s函数
逐元素作用于
z(2)中的每个元素
顺便说一下 为了让我们
的符号和接下来的
工作相一致
在输入层 虽然我们有
输入x 但我们
还可以把这些想成
是第一层的激励
所以 我可以定义a(1)
等于x 因此
a(1)就是一个向量了
我就可以把这里的x
替换成a(1)
z(2)就等于θ(1)乘以a(1)
这都是通过在输入层定义a(1)做到的
现在 就我目前所写的
我得到了
a1 a2 a3的值
并且
我应该把
上标加上去
但我还需要一个值
我同样需要这个a(2)0
它对应于
隐藏层的
得到这个输出的偏置单元
当然 这里也有一个
偏置单元
我只是没有
画出来 为了
注意这额外的偏置单元
接下来我们
要额外加上一个a0 上标(2)
它等于1 这样一来
现在
a(2)就是一个
四维的特征向量
因为我们刚添加了
这个额外的
a0 它等于
1并且它是隐藏层的
一个偏置单元 最后
为了计算假设的
实际输出值 我们
只需要计算
z(3) z(3)等于
这里我画线的项
这个方框里的项就是z(3)
z(3)等于θ(2)
乘以a(2) 最后
假设输出为h(x)
它等于a(3)
a(3)是输出层
唯一的单元
它是一个实数 你可以写成a(3)
或a(3)1 这就是g(z(3))
这个计算h(x)的过程
也称为前向传播(forward propagation)
这样命名是因为
我们从
输入层的激励开始
然后进行前向传播给
隐藏层并计算
隐藏层的激励 然后
我们继续前向传播
并计算输出层的激励
这个从输入层到
隐藏层再到输出层依次计算激励的
过程叫前向传播
我们刚刚得到了
这一过程的向量化
实现方法
如果你
使用右边这些公式实现它
就会得到
一个有效的
计算h(x)
的方法
这种前向传播的角度
也可以帮助我们了解
神经网络的原理
和它为什么能够
帮助我们学习非线性假设
看一下这个神经网络
我会暂时盖住
图片的左边部分
如果你观察图中剩下的部分
这看起来很像
逻辑回归
在逻辑回归中 我们用
这个节点 即
这个逻辑回归单元
来预测
h(x)的值 具体来说
假设输出的
h(x)将
等于s型激励函数
g(θ0
xa0
+θ1xa1
+θ2xa2
+θ3xa3)
其中
a1 a2 a3
由这三个单元给出
为了和我之前的定义
保持一致 需要
在这里
还有这些地方都填上上标(2)
同样还要加上这些下标1
因为我只有
一个输出单元 但如果你只观察蓝色的部分
这看起来
非常像标准的
逻辑回归模型 不同之处在于
我现在用的是大写的θ 而不是小写的θ
这样做完
我们只得到了逻辑回归
但是 逻辑回归的
输入特征值
是通过隐藏层计算的
再说一遍
神经网络所做的
就像逻辑回归 但是它
不是使用
x1 x2 x3作为输入特征
而是用a1 a2 a3作为新的输入特征
同样 我们需要把
上标加上来和之前的记号保持一致
有趣的是
特征项a1 a2
a3它们是作为
输入的函数来学习的
具体来说 就是从第一层
映射到第二层的函数
这个函数由其他
一组参数θ(1)决定
所以 在神经网络中
它没有用
输入特征x1 x2 x3
来训练逻辑回归
而是自己
训练逻辑回归
的输入
a1 a2 a3
可以想象 如果
在θ1中选择不同的参数
有时可以学习到一些
很有趣和复杂的特征 就可以
得到一个
更好的假设
比使用原始输入
x1 x2或x3时得到的假设更好
你也可以
选择多项式项
x1 x2 x3等作为输入项
但这个算法可以
灵活地
快速学习任意的特征项
把这些a1 a2 a3
输入这个
最后的单元 实际上
它是逻辑回归
我觉得现在描述的这个例子
有点高端 所以
我不知道
你是否能理解
这个具有更复杂特征项的
神经网络 但是
如果你没理解
在接下来的两个视频里
我会讲解一个具体的例子
它描述了怎样用神经网络
如何利用这个隐藏层
计算更复杂的特征
并输入到最后的输出层
以及为什么这样就可以学习更复杂的假设
所以 如果我
现在讲的
你没理解 请继续
观看接下来的两个视频
希望它们
提供的例子能够
让你更加理解神经网络
但有一点
你还可以用其他类型的图来
表示神经网络
神经网络中神经元
相连接的方式 称为神经网络的架构
所以说 架构是指
不同的神经元是如何相互连接的
这里有一个不同的
神经网络架构的例子
你可以
意识到这个第二层
是如何工作的
在这里 我们有三个隐藏单元
它们根据输入层
计算一个复杂的函数
然后第三层
可以将第二层
训练出的特征项作为输入
并在第三层计算一些更复杂的函数
这样 在你到达
输出层之前 即第四层
就可以利用第三层
训练出的更复杂的
特征项作为输入
以此得到非常有趣的非线性假设
顺便说一下 在这样的
网络里 第一层
被称为输入层 第四层
仍然是我们的输出层
这个网络有两个隐藏层
所以 任何一个不是
输入层或输出层的
都被称为隐藏层
我希望从这个视频中
你已经大致理解
前向传播在
神经网络里的工作原理:
从输入层的激励
开始 向前
传播到
第一隐藏层 然后传播到第二
隐藏层 最终到达输出层
并且你也知道了如何
向量化这些计算
我发现
这个视频里我讲了
某些层是如何
计算前面层的复杂特征项
我意识到这可能
仍然有点抽象 显得比较高端
所以 我将
在接下来的两个视频中
讨论具体的例子
它描述了怎样用神经网络
来计算
输入的非线性函数
希望能使你
更好的理解
从神经网络中得到的复杂非线性假设
Sorry, the comment form is closed at this time.