吴恩达深度神经网络优化:第一周代码详解

需积分: 9 1 下载量 134 浏览量 更新于2024-09-07 收藏 8KB TXT 举报
在吴恩达教授的"Improving Deep Neural Networks"课程中,第一周的作业涉及了深度学习中的关键概念和编程实践。本部分代码主要关注于前向传播算法以及基本神经网络层的实现,包括sigmoid函数和ReLU激活函数。 1. **Sigmoid函数**: - Sigmoid函数是常用的非线性激活函数,定义为 `sigmoid(x) = 1 / (1 + e^(-x))`。它将任何实数值压缩到(0,1)范围内,常用于二分类问题中作为输出层的激活函数,如逻辑回归的变形。在这个作业中,sigmoid函数被用来作为隐藏层的一种选择。 2. **ReLU函数**: - ReLU(Rectified Linear Unit)是另一种常见的激活函数,`relu(x) = max(0, x)`。它简单地对输入取非负值,有助于解决梯度消失问题,并且计算速度快。ReLU在深度学习中广泛应用,特别是在卷积神经网络中,作为隐藏层的默认激活函数。 3. **前向传播函数(forward propagation)**: - 这个函数实现了深度神经网络的前向传播过程,即输入数据经过多层处理的过程。输入变量`X`代表输入数据集,形状为(input_size, number_of_examples),`Y`是对应的真实标签向量,其中0表示猫类,1表示非猫类。参数`parameters`包含了所有权重矩阵`W1, W2, W3`和偏置向量`b1, b2, b3`,这些参数用于连接各层神经元。 前向传播的步骤包括: - 初始化权重和偏置 - 应用输入数据到隐藏层1(通过矩阵乘法和加上偏置),可能使用sigmoid或ReLU激活 - 再次进行矩阵乘法和加偏置操作,这可能涉及到一个或多个隐藏层 - 最后,应用输出层的激活函数(在这里未指定,可能是softmax用于多分类,或sigmoid用于二分类) - 计算损失函数,通常使用的是交叉熵损失(vanilla logistic loss)来衡量预测与真实标签之间的差异 这段代码展示了深度学习模型的基石之一——前向传播算法的实现,它对于理解神经网络的工作原理、调整参数和优化过程至关重要。理解并能够执行这个函数是构建和训练深层神经网络的基础。随着课程的深入,学生还将学习反向传播(backpropagation)用于更新权重和优化网络结构,以提高模型性能。