吴恩达深度学习课程第一课—第二周学习笔记
二分类问题
二分类问题就是简单的“是否”、“有无”问题,如判断图1中是否有猫,我们的视神经系统能够轻易的分辨出这张图中的猫,但是对于机器来说分辨这张图却不是那么容易,更具体的来说机器只能读取这幅图的数字特征(如图像的大小,通道数等),在此我们以每个像素点的三原色对应的数值作为这幅图的数组特征。
符号定义 :
x:表示一个n_x维数据,为输入数据,维度为(n_x,1);
y:表示输出结果,取值为(0,1)
(x(i),y(i))(代表x的(i)上标,y的(i)上标):表示第i组数据,可能是训练数据,也可能是测试数据,此处默认为训练数据;
X=[x(1),x(2),…,x^(m)]:表示所有的训练数据集的输入值,放在一个 n_x×m的矩阵中,其中m表示样本数目;
Y=[y(1),y(2),…,y^(m)]:对应表示所有训练数据集的输出值,维度为1×m。
Sigmoid函数/交叉熵损失函数/成本函数
Sigmoid函数
由函数图像可以看出, sigmoid 函数可以很好地将 (−∞,∞) 内的数映射到 (0,1) 上。于是我们可以将 g(z)≥0.5 时分为"1"类, g(z)<0.5 时分为"0"类。
单个样本的交叉熵损失函数:
当y=1时,损失函数就为:
要想损失值越小,就要让y^ 越大,y^ 的取值是[0.1],所有y^ 应该取1;
同理当y=0时函数变为:
也是y^ 为0时L最小。
这样的好处是模型会倾向于让预测输出更接近真实样本标签 y。
成本函数
成本函数一般指数据集上总的成本和损失,简单来说就是把所有单个损失加起来取平均
我们要求w,b为何值时成本值最小
梯度下降法
通过改变w,b的值寻找J(成本函数)的最小值
以下为二维解释:w=w-a(学习率)*该点的导数
用梯度下降法时,导数为正w减小左移,导数为负w增加右移,在这过程中不断靠近J(损失函数)的最小值。
python中的广播
当一个列向量加上一个实数时,python会将这个实数自动展开形成和这个列向量相同的形式,又如 一个m x n的矩阵加上一个1 x n的矩阵,python会将1 x n的矩阵行方向复制m次形成m x n的矩阵再继续运算,如下图;