本系列文档按课程视频的章节(P+第几集)进行分类,记录了学习时的一些知识点,方便自己复习。
课程视频P43——非线性假设
图1 表示当变量特别多,比如在计算机视觉图像识别上,就算是50x50的一小块区域就包含2500个像素,每个像素算做一个变量,按灰度计算每个像素就有255个颜色,如果按RGB来计算每个像素就有7500个颜色,如此以来总的特征就超过了3 million 个,因此用线性方式表示就不合适了,会导致计算量太大。
课程视频P44——神经元与大脑
由此,提出了神经元的方式来表示。
通过神经网络可以更好的表示特征量很大时的关系。图3中表示一个3层神经网络结构,第一层称作输入层(Input layer), 最后一层称作输出层(Output layer), 中间层称作隐藏层(Hidden layer)。
图4 表示了由第一层推出第二层各个神经元的推导公式。其实就是运筹学动态规划的思想,当前的状态对后面的状态会产生影响。
以第二层第一个神经元为例:
a
1
(
2
)
a^{(2)}_1
a1(2)=
x
0
∗
x_0*
x0∗其对
a
1
(
2
)
a^{(2)}_1
a1(2)的权重
θ
10
(
1
)
\theta_{10}^{(1)}
θ10(1)+
x
1
∗
x_1*
x1∗其对
a
1
(
1
)
a^{(1)}_1
a1(1)的权重
θ
11
(
1
)
\theta_{11}^{(1)}
θ11(1)+
x
2
∗
x_2*
x2∗其对
a
1
(
2
)
a^{(2)}_1
a1(2)的权重
θ
12
(
1
)
\theta_{12}^{(1)}
θ12(1)+
x
3
∗
x_3*
x3∗其对
a
1
(
2
)
a^{(2)}_1
a1(2)的权重
θ
13
(
1
)
\theta_{13}^{(1)}
θ13(1)。
其他的以此类推。
课程视频P45——前向传播法(Forward propagation)
前向传播法(Forward propagation)即为从输入层(第一层)推导出第二层、第三层…直到输出层(最后一层)。除了第一层是给定的初始值,其余的每层的各个神经元都等于上一层的各神经元
∗
*
∗各自对应的的权重,求和后再套进g()函数。
这一切都可以用向量的形式来表示,由此就能更加简结的写出整个过程,编程计算时速度也能更快。由图5右边所示,用g函数就能表示层与层之间的过度函数,g()函数括号里的内容就能用z表示,z又能用x向量和权重
θ
\theta
θ向量点乘(或后一个向量转置后再相乘)来表示。最后一层的g函数其实也能称作h函数。
** 用刚刚了解的再看图6 就会一目了然。**
** 图7 表示了神经网络的结构,除了输入层(Input layer)和输出层(Output layer),中间其他的都被称作隐藏层(Hidden layer)。**
课程视频P46
图8 举例展示了一种简单的神经网络,输入层
x
1
,
x
2
x_1,x_2
x1,x2只有0,1两种情况;其输出层只有一个神经元,决定输出层值的
h
θ
(
x
)
=
g
(
x
)
h_{\theta}(x)=g(x)
hθ(x)=g(x)的函数图像由右上所示,所有的输出结果如右下所示。
课程视频P48
图9 表示另一个简单例子。
课程视频P49
当只需要输出0,1,或者只需要判断是/不是,再或者说处理二分类问题时,输出层只需要一个神经元就够了,但是当输出结果要表示多个值时,如图10 表示当输出值要区分4个类别时,其输出层就需要4个神经元来表示,分别用向量
[
1
0
0
0
]
,
[
0
1
0
0
]
,
[
0
0
1
0
]
,
[
0
0
0
1
]
\left[\begin{matrix}1\\0 \\0 \\0\end{matrix}\right], \left[\begin{matrix}0\\1 \\0 \\0\end{matrix}\right], \left[\begin{matrix}0\\0 \\1 \\0\end{matrix}\right], \left[\begin{matrix}0\\0\\0 \\1\end{matrix}\right]
⎣⎢⎢⎡1000⎦⎥⎥⎤,⎣⎢⎢⎡0100⎦⎥⎥⎤,⎣⎢⎢⎡0010⎦⎥⎥⎤,⎣⎢⎢⎡0001⎦⎥⎥⎤来表示行人(Pedestrian),轿车(Car),摩托车(Motorcycle),卡车(Truck)四种类别。
如图11 表示了用与或表示的第二层两个神经元和第三层的一个神经元的关系。
图12所示的就是图10所描述的内容。)
图13 表示了两种输出结果和4(多)种输出结果时分别使用二进制和向量表示输出结果的方式。
**图14 表示了神经网络的代价函数,与之前我们所描述的Logistic线性回归函数的代价函数差不多的,不同点在于神经网络作为一个网络有着很多交叉的求积,求和计算,其中
∑
i
=
1
m
\sum_{i=1}^m
∑i=1m表示的是有一共有m层,
∑
k
=
1
K
\sum_{k=1}^K
∑k=1K表示的是第i层一共有K个神经元,两个
∑
\sum
∑表示的是将每一层的每一个神经元遍历,一网打尽。
在正则化部分,需要计算多元的矩阵运算,当前
θ
\theta
θ矩阵中的列数i等于我们当前层中的节点数(包括偏差单元) ,在当前的
θ
\theta
θ矩阵中,行数j等于下一层的节点数(不包括偏置单元) ,
∑
l
=
1
L
−
1
\sum_{l=1}^{L-1}
∑l=1L−1表示的是有一共有L-1层,在逻辑回归之前,将每一项都进行平方。
课程视频P51——后向传播法(Back propagation)
图15 再次展示了前向传播法(Forward propagation)的过程,可以用z函数与g函数来表示。
图15 展示了后向传播法(Back propagation)的过程,由误差
δ
\delta
δ表示,
δ
\delta
δ又用每个神经元的预测值与其真实值的差来表示。
图17 表示了其具有多层与多神经元时的符号表示方法。
课程视频P52
图18 描述了每个神经元的推导过程
图19 表示神经网络的代价函数表示方式与线性函数的差值平方和的表示方式其实思想差不多。
图20 表述了神经网络的误差
δ
\delta
δ其实就是线性函数的每个神经元的代价函数对该神经元的z函数求偏导的结果。
未完待续…