前言
吴恩达机器学习视频第
一、第七章
神经网络模型是许多神经元按照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。这些神经元(也叫激活单元,activation unit)采纳一些特征作为输入,并且根据本身的模型提供一个输出。下图为一个 3 层的神经网络,第一层称为输入层(Input Layer),最后一 层称为输出层(Output Layer),中间一层称为隐藏层(Hidden Layers)。在神经网络中,参数又可被称为权重(weight)。我们为每一层都增加其中,
x
1
x_1
x1,
x
2
x_2
x2,
x
3
x_3
x3是输入单元(input units),我们将原始数据输入给它们。
a
1
(
2
)
a^{(2)}_1
a1(2),
a
2
(
2
)
a^{(2)}_2
a2(2),
a
(
2
)
3
a^{(2)_3}
a(2)3 是中间单元,它们负责将数据进行处理,然后呈递到下一层。 最后是输出单元,它负责计算
h
θ
(
x
)
h_\theta(x)
hθ(x)。
下面引入一些标记法来帮助描述模型:
a
j
(
i
)
a^{(i)}_j
aj(i)代表第 j 层的第 i 个激活单元。
θ
(
j
)
\theta^{(j)}
θ(j) 代表从第 j 层映射到第 j+1 层时的权重的矩阵,其尺寸为:以第 j+1 层的激活单元数量为行数,以第 j 层的激活单元数加一为列数的矩阵。例如
θ
(
1
)
\theta^{(1)}
θ(1)代表从第一层映射到第二层的权重的矩阵,它的尺寸为 3*4。
对于上图所示的模型,激活单元和输出分别表达为:
从本质上讲,神经网络能够通过学习得出其自身的一系列特征。
在普通的逻辑回归中,我们被限制为使用数据中的原始特征 x 1 x_1 x1, x 2 x_2 x2, x 3 x_3 x3
我们虽然可以使用一些二项式项来组合这些特征,但是我们仍然受到这些原始特征的限制。
在神经网络中,原始特征只是输入层,在我们上面三层的神经网络例子中,第三层也就是输出层做出的预测利用的是第二层的特征,而非输入层中的原始特征,我们可以认为第二层中的特征是神经网络通过学习后自己得出的一系列用于预测输出变量的新特征。
神经网络中,单层神经元(无中间层)的计算可用来表示逻辑运算,比如逻辑与(AND)、逻辑或(OR)。
我们可以用这样的一个神经网络表示 AND 函数: 假设输入
x
1
,
x
2
∈
{
0
,
1
}
x_1,x_2\in\{0,1\}
x1,x2∈{0,1}
其中
θ
0
=
−
30
\theta_0=-30
θ0=−30,
θ
1
=
20
\theta_1=20
θ1=20,
θ
2
=
20
\theta_2=20
θ2=20输出函数
h
θ
(
x
)
h_\theta(x)
hθ(x)即为:
h
θ
(
x
)
=
g
(
−
30
+
20
x
1
+
20
x
2
)
h_\theta(x)=g(-30+20x_1+20x_2)
hθ(x)=g(−30+20x1+20x2)
结果可能的取值:
所以我们的:
h
θ
(
x
)
≈
x
1
A
N
D
x
2
h_\theta(x)\approx x_1ANDx_2
hθ(x)≈x1ANDx2
同时逻辑或(OR) 与 AND 整体一样,区别只在于权值的取值不同。 我们把权值改为
θ
0
=
−
10
\theta_0=-10
θ0=−10,
θ
1
=
20
\theta_1=20
θ1=20,
θ
2
=
20
\theta_2=20
θ2=20 输出函数即为:
h
θ
(
x
)
=
g
(
−
10
+
20
x
1
+
20
x
2
)
h_\theta(x)=g(-10+20x_1+20x_2)
hθ(x)=g(−10+20x1+20x2)这样我们就得到了一个 OR 函数。
多分类任务
如果我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车,在输出层我们应该有 4 个值。例如,第一个值为 1 或 0 用于预测是否是行人,第二个值用于判断是否为汽车。 输入向量 x 有三个维度,两个中间层,输出层 4 个神经元分别用来表示 4 类,也就是每一个数据在输出层都会出现[𝑎,𝑏,𝑐,𝑑]𝑇 ,且 a,b,c,d 中仅有一个为 1,表示当前类。下面是该神经网络的可能结构示例:
分类问题的Label(即y)编码问题:
one-hot的基本思想:将离散型特征的每一种取值都看成一种状态,若你的这一特征中有N个不相同的取值,那么我们就可以将该特征抽象成N种不同的状态,one-hot编码保证了每一个取值只会使得一种状态处于“激活态”,也就是说这N种状态中只有一个状态位值为1,其他状态位都是0。
如果分类问题有四个结果,
我们不会将y的取值为:0,1,2,3 而是会将y表示为一个1*4的向量,如下图。
二、第八章
在逻辑回归中,我们只有一个输出变量,又称标量(scalar),也只有一个因变量 y,逻辑回归问题中代价函数为:
但是在神经网络中,可以有很多输出变量,我们的ℎ𝜃(𝑥)是一个维度为 K 的向量,并且训练集中的因变量也是同样维度的一个向量,因此我们的代价函数会比逻辑回归更加复杂一些。
正则化的那一项只是排除了每一层𝜃(0)后,每一层的矩阵𝜃的和。最里层的循环 j 循环所有的列, 由
s
l
+
1
s_l+1
sl+1层的激活单元数决定,循环 i 则循环所有的列,由该层(
s
l
s_l
sl层)的激 活单元数所决定。即:
h
θ
(
x
)
h_\theta(x)
hθ(x)与真实值之间的距离为每个样本-每个类输出的加和,对参数进行 regularization 的 bias 项处理所有参数的平方和。
由于计算的结果会与结果有所出入,所以需要一种方法去更新权重矩阵,从而使预测结果更加准确这里需引入反向传播算法。
视频中讲的确实不太清楚,我也不多赘述,下面这个博主写的就挺好的
https://blog.youkuaiyun.com/weixin_38347387/article/details/82936585