吴恩达深度学习第一课第三周编程作业(下)

调用sklearn的包使用简单的逻辑回归发现准确率为47%,这是因为数据集本身不是线性可分的,所以逻辑回归的表现不好。下面介绍使用神经网络进行分类。

建立神经网络的一般步骤如下:

Step1:定义神经网络的结构:输入层单元数,隐藏层单元数等;

Step2:初始化模型参数;

Step3:循环

3.1:前向传播计算

3.2:计算代价函数

3.3:反向传播得到梯度

3.4:更新参数(梯度下降)

接下来就逐个实现这个过程中需要用到的相关函数,并整合到nn_model中。

附:(反向传播算法背景知识:在机器学习中,很多算法最后都会转化为求目标损失函数最小值。如果可以解析出求最值的表达式就能解决这个问题了,但往往目的损失函数及其复杂,所以由最值表达式求最值的办法行不通。梯度下降法的出现可以解决求最小值的问题,但是需要确定梯度值,而反向传播算法的目的就是求出梯度值,后续用梯度下降法更新模型参数值。反向传播算法从模型的输出层开始,利用函数求导的链式法则,逐层从后往前求出模型梯度。)

一、定义神经网络的结构

二、初始化模型参数(w,b)

注:W初始化为很小的数,b初始化为0.之所以让W比较小,是因为如果使用sigmoid函数或者tanh函数作为激活函数,W比较小,得到的|z|也比较小(靠近零点),而零点区域的梯度比较大,这样能大大提高梯度下降算法的更新速度,尽快找到全局最优解。如果W比较大,得到的|z|也比较大,附近曲线平缓,梯度较小,训练过程会慢很多。(激活函数为Relu或者Leaky Relu函数不需要考虑这个问题)

三、循环

3.1 前向传播计算

3.2 计算代价函数

3.3 反向传播得到梯度。计算公式如下:

 3.4 更新参数(梯度下降)

四、代码模块化

五、预测。使用正向传播来预测结果

六、运行模型查看其如何在二维数据集上运行。

与逻辑回归相比,可以看到准确率更高。 

 七、调整隐藏层大小

 

说明

  • 较大的模型(具有更多隐藏的单元)能够更好地拟合训练集,直到最终最大的模型过拟合数据为止。
  • 隐藏层的最佳大小似乎在n_h = 5左右。的确,此值似乎很好地拟合了数据,而又不会引起明显的过度拟合。
  • 之后将学习正则化,帮助构建更大的模型(例如n_h = 50)而不会过度拟合。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值