山东大学人工智能实验说明及代码

实验一

内容:

使用numpy实现深度学习任务中的一些基本操作,包括以下函数:

  1. sigmoid function
  2. sigmoid gradient function
  3. softmax function
  4. cross entropy loss function

目标:

  1. 熟悉numpy的一些基本函数
  2. 理解sigmoid, softmax, cross entropy loss等函数

代码要求:

  1. 按代码模板实现函数功能

文档要求:

  1. 代码运行结果截图(main函数里的内容不要修改)
  1. sigmoid函数的公式及图像
  2. sigmoid函数梯度求解公式及图像
  3. softmax函数公式
  4. cross entropy loss function公式
  5. 它们在神经网络中有什么用处?

实验二

内容:

假设X有n个样本,属于m=3个类别, am

表示样本属于第m类的概率,请实现

的三次前向传播及反向传播(更新参数ω

b

),每次反向传播结束后更新并输出参数ω

b

的值,计算cross entropy loss,其中σ(∙)

表示sigmoid函数。

目标:

  1. 理解前向传播和反向传播
  2. 应用实验一中提到的基本操作

代码要求:

  1. 按代码模板实现函数功能

文档要求:

  1. 前向传播及反向传播涉及到的公式计算(参考
  2. 粘贴代码输出结果截图。

实验三

内容:

建立Logistic回归分类器用来识别猫。参考1 参考2

目标:

  1. 基于实验二的拓展,进一步理解神经网络的思想
  2. 理解逻辑回归实际上是一个非常简单的神经网络

数据集介绍:

  1. datasets/train_catvnoncat.h5

保存的是训练集里面的图像数据(本训练集有209张64x64的图像)及对应的分类值(0或1,0表示不是猫,1表示是猫)

  1. datasets/ test_catvnoncat.h5

保存的是测试集里面的图像数据(本训练集有50张64x64的图像)及保存的是以bytes类型保存的两个字符串数据,数据为:[b’non-cat’ b’cat’]。

  1. lr_utils.py中有加载数据集的函数

代码要求

  1. 定义模型结构
  2. 初始化模型的参数
  3. 循环
  1. 计算当前损失(前向传播)
  2. 计算当前梯度(反向传播)
  3. 更新参数(梯度下降)

文档要求:

  1. 尝试不同的学习率(至少三种),观察不同学习率下随着迭代次数的增加损失值的变化,请粘贴不同学习率下损失的变化曲线图像,放到一张图像上,例如:
  1. 分析不同的学习率对模型准确率的影响及原因,如何选择合适的学习率。

实验四

内容:

利用具有1层隐藏层的神经网络分类红色和蓝色的花。参考1 参考2

数据集:

2分类数据集flower,红色和蓝色点的“花”。使用X, Y = planar_utils.load_planar_dataset()加载数据集,X为样本,共有400个,Y为样本对应的标签,0表示红色,1表示蓝色。

目标:

  1. 建立具有隐藏层的完整神经网络
  2. 善用非线性单位
  3. 实现正向传播和反向传播,并训练神经网络
  4. 了解不同隐藏层大小(包括过度拟合)的影响

代码要求:

  1. 定义模型结构
  2. 初始化模型的参数
  3. 循环
  1. 计算当前损失(前向传播),请使用Relu激活函数。
  2. 计算当前梯度(反向传播)
  3. 更新参数(梯度下降)

文档要求:

  1. 对比使用逻辑回归和使用具有1层隐藏层神经网络的分类效果(请粘贴2种方法分类效果图),哪种效果更好,分析原因。
  2. 调整隐藏层大小(至少5种大小),观察不同大小隐藏层的模型的不同表现,请粘贴分类效果图,当隐藏层过大或过小时,会出现什么问题,并分析原因。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值