-
逻辑回归实现思路
1)初始化参数
2)计算损失函数与梯度(通过最小化损失,学习模型参数)
3)使用优化算法(梯度下降) -
数据处理
课程案例是针对动物图像做图像分类。
图像值: 图像的rgb,输出:是否为cat
图像rbg: shape=(209, 64,64,3), 209 表示照片数, 64*64 表示rgb。
label:shape=(1, 209)
1)如何将 shape=(209, 64,64,3)转换为2D模型可识别的值?
使用reshape
train_set_x_orig = np.random.rand(209, 64, 64, 3) ##创建指定纬度的矩阵
### START CODE HERE ### (≈ 2 lines of code)
print(train_set_x_orig.shape)
train_set_x_flatten = train_set_x_orig.reshape(train_set_x_orig.shape[1]*train_set_x_orig.shape[2]*3,train_set_x_orig.shape[0] )
### END CODE HERE ###
2)数据标准化
train_set_x = train_set_x_flatten/255.
-
算法框架
-
算法构建过程
(1)建立神经网络的步骤
1)定义模型结构(例如特征输入的个数)
2)初始化模型参数
3)循环:
a.计算当前样本loss(forward propagation)
注: loss 实际不参与参数更新,用于模型迭代速度与步伐的控制。
b. 计算当前梯度(backward propatation)
c. 更新参数度(使用梯度下降)
-
画loss曲线
-
进一步分析:选择learing rate
1)学习率控制参数迭代速度。
2)学习率太大(0.01),则loss大起大落。
3)学习率太小, 则容易过拟合, 表现为训练集好,但测试集不好。
4)深度学习领域
a. 学习率能更好的最小化损失函数
b.如何减少过拟合, 后面才能看到