1.二元分类问题:给定一个输入特征向量𝑋来对应一张图片,你想识别这张图片识别看它是否是一只猫或者不是一只猫的图片,你想要一个算法能够输出预测,你只能称之为𝑦^,也就是你对实际值 𝑦 的估计。更正式地来说,你想让 𝑦^ 表示 𝑦 等于 1 的一种可能性或者是机会,前提条件是给定了输入特征𝑋。

2.逻辑回归模型,模型预测值让𝑦^ = 𝑤𝑇𝑥 + 𝑏。y^是一个关于输入x的线性函数,但y^的值不在0和1之间,不能表示概率。我们需要的输出是sigmoid函数。设z = y^.逻辑回归sigmoid = \sigma(z) = \frac{1}{1+e^{-z}}

3.为了训练逻辑回归模型的参数w和b,我们需要训练代价函数来得到参数w和b,损失函数又叫做误差函数,用来衡量算法的运行情况,Loss function:𝐿(𝑦^ , 𝑦). 𝐿(𝑦^ , 𝑦) = −𝑦log(𝑦^) − (1 − 𝑦)log(1 − 𝑦^)
当𝑦 = 1时损失函数𝐿 = −log(𝑦^),如果想要损失函数𝐿尽可能得小,那么𝑦^就要尽可能大,因为 sigmoid 函数取值[0,1],所以𝑦^会无限接近于 1。 当𝑦 = 0时损失函数𝐿 = −log(1 − 𝑦^),如果想要损失函数𝐿尽可能得小,那么𝑦^就要尽可能小,因为 sigmoid 函数取值[0,1],所以𝑦^会无限接近于 0。
其实就是y^越接近于y越好。损失函数越小越好。
损失函数是针对一个训练样本而言的,所有训练样本的参数的总代价叫做代价函数J(w,b)。

4.梯度下降法:𝑤 ≔ 𝑤 − 𝑎\frac{dJ(𝑤)}{d𝑤}。a是学习率(learning rate),用来控制步长(step),向下走一步的长度其实就是导数的值,用dw表示。梯度下降法就是向最优解不断迭代的过程。

5.计算图(Computation Graph):可以说,一个神经网络的计算,都是按照前向或反向传播过程组织的。首先我们计算出一个新的网络的输出(前向过程),紧接着进行一个反向传输操作。后者我们用来计算出对应的梯度或导数。计算图解释了为什么我们用这种方式组织这些计算过程。

6.逻辑回归用到的公式:z = wT + b, y^\ =\ a = \sigma(z) = \frac{1}{1+e^{-z}},\ L(a, y) = -(yloga + (1-y)log(1-a))
da = \frac{dL}{da} = -\frac{y}{a}+\frac{1-y}{1-a},\ dz = \frac{dL}{dz}=a-y


7.每一个n层的神经网络包含n-1层隐藏层和1层输出层(输入层不包含在内)。每一个隐藏层的神经单元称为一个隐藏单元,一个包含m个隐藏单元的隐藏层,输出是一个(m, 1)的矩阵向量y^,同时该输出也是下一层的输入a。a也称为激活函数,y^=a。那么第i层的激活值,称为a^{[i]},第i层的第j个神经单元的输出值,在上标为i的基础上,还应有个下标j。
若上一层的激活值为一个(x, 1)的矩阵,本层有m个神经单元,那么本层的每个神经单元的W(特征权重)也是一个(x, 1)的矩阵,b是一个(1, 1)的矩阵,最终计算得到z是一个(1, 1)的矩阵。那么把这些神经单元堆叠起来一起计算,本层的W就是一个(m, x)的矩阵(先把每个神经单元的W倒置,在纵向堆叠),b就是一个(m, 1)的矩阵,最终得到(m, 1)的矩阵为输出结果。
最终的输出层只有一个神经单元,整个神经网络的输出值是一个实数。
每一个神经单元的W应该是随机初始化的,尽量不同。

8.用向量化代替for循环,是神经网络利用GPU加速的一个重要步骤。

9.使用一个神经网络时,需要决定使用哪种激活函数用隐藏层上,哪种用在输出节点上。
sigmoid函数: a = sigma(z) = \frac{1}{1+e^{-z}}
tanh函数: a = tanh(z) = \frac{e^{z}-e^{-z}}{e^{z}+e^{-z}}
tanh函数在所有场合都优于sigmoid函数。tanh函数的值分布在-1到+1中间。在训练一个算法模型时,如果使用 tanh 函数代替
sigmoid 函数中心化数据,使得数据的平均值更接近 0 而不是 0.5。
在二分类的问题中,对于输出层,因为𝑦的值是 0 或 1,所以想让𝑦^的数值介于 0 和 1 之间,而不是在-1 和+1 之间。所以需要使用 sigmoid 激活函数。隐藏层可以使用g函数。
sigmoid 函数和 tanh 函数两者共同的缺点是,在𝑧特别大或者特别小的情况下,导数的梯度或者函数的斜率会变得特别小,最后就会接近于 0,导致降低梯度下降的速度。

10.这是很多激活函数的默认选择,如果在隐藏层上不确定使用哪个激活函数,那么通常会使用 Relu 激活函数。有时,也会使用 tanh 激活函数,但 Relu 的一个优点是:当𝑧是负值的时候,导数等于 0。


0 条评论

发表评论

邮箱地址不会被公开。