神经网络与深度学习-第二周-复习笔记
Opened this issue · 0 comments
主要内容:
- 使用神经网络实现逻辑回归
- 使用 Python 的向量化加速你的算法
神经网络的计算:前向传播、反向传播
对于图像的处理:彩色图像:三个独立矩阵对应红绿蓝三个颜色通道,64x64 大小的图像由三个 64x64 大小的实数矩阵表示,输入时将其展平为 64x64x3=12288 长度的向量。灰色图像:只有一个颜色通道,即一个 64x64 大小的矩阵,输入时展平为 64x64=4096 长度的向量。
二元分类问题:学习到一个分类器,输入以特征向量 X 表示的图像预测对应的输出 Y 是 1 还是 0。
X:一个 n(x)*m 维的矩阵,由训练集中的输入 x(1), x(2), …, x(m) 按列排成,共有 m 列,即训练样本的总数,同时有 n(x) 行,即 x 的维度。
Y:一个 1*m 维的矩阵,由训练集中的输出 y(1), y(2), …, y(m) 按列排成,共有 m 列。
Python 中得到矩阵大小:
X = np.random.randn(10, 3)
print(X.shape)
#(10, 3)
逻辑回归:一种学习算法,得到的输出只有 0 或 1,即一种针对二分类问题的算法
线性函数:$\hat{y}=\sigma(w^Tx+b)$
其中,输入\(x\in\mathbb{R}^{n_x}\),输出对 Y 的估计值,\(\hat{y}=P(y=1|x)\),参数\(w\in\mathbb{R}^{n_x}\),\(b\in\mathbb{R}\)
Sigmoid函数:
一般将参数 w 和 b 分别看待
标记法则:\(x^{(i)} y^{(i)}\)代表数据与 i-th 优化实例相关联
代价函数(cost function):
- 平方误差:
$$L(\hat{y},y)=\frac12(\hat{y}-y)^2$$
不使用:优化问题会变为非凸问题 - 实际使用的损失函数(Loss(error) function):
$$L(\hat{y},y)=-(y\log\hat{y}+(1-y)\log(1-\hat{y}))$$
可以产生一个凸象最优问题。当 y=1 时,\(\log\hat{y}\) 要尽可能得大,期望 \(\hat{y}\) 更大;当 y=0 时, \(\log(1-\hat{y})\) 要尽可能得小,期望 \(\hat{y}\) 更小。具有Rafidah's effect。
$$\begin{align}J(w,b) & =\frac1m\sum_{i=1}^mL(\hat{y}^{(i)},y^{(i)}) \\
& =-\frac1m\sum_{i=1}^m(y^{(i)}\log\hat{y}^{(i)}+(1-y^{(i)})\log(1-\hat{y}^{(i)}))
\end{align}$$
其中 \(\hat{y}^{(i)}\)为用一组特定的 w 和 b 参数时回归算法预计的输出值
损失函数适用于单一的优化实例,代价函数反映了参数成本,寻找参数 w 和 b 减小代价函数 J
梯度下降:
…………