斯坦福大学CS231课程笔记1

本文介绍了从简单的线性回归逐步过渡到复杂的神经网络的过程,涵盖了Mini-batch SGD、正向传播、反向传播等核心概念,并深入讨论了批量正则化(Batch Normalization)、激活函数的选择、学习率调整策略以及优化方法如Adam和RMSProp等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从线性回归到神经网络


Mini-batchSGD

正向传播计算loss反向传播计算梯度,根据梯度更新参数

图的拓扑排序正向和反向

class ComputationalGraph(object):
   def forward(inputs):
   # 1.[pass inputs to input gates...]
   # 2.forward the computational graph:
    for gate in self.graph.nodes_topologically_sorted():
      gate.forward()
    return loss #the final gate in the graph outputs the loss
   def backward():
    for gate in reversed(self.graph.nodes_topologically_sorted()):
      gate.backward() #little piece of backprop (chain rule applied)
    return inputs_gradients

BatchNormalization 批量正则化

优势:提升梯度流向,可是使用更大的学习率;减少对初始化的依赖;由正则化的作用,减少dropout的使用

激活函数

数据预处理

学习率

loss不下降,学习率太小
loss爆炸,学习率太大,出现Nan时,就是学习率太大

学习率衰减

1.一定epoch次数后减小
2.指数级减小
3.随时间线性减小

优化方法

Adam


RMSProp

二阶最优化方法

dropout



为什么dropout有效?dropout相当于一堆模型的组合,每个开闭就是一种模型,测试时,蒙特卡洛估计就是使用不同的模型对所有的结果求平均。或者使用一次前向传播,把所有的节点都打开



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值