怎么建设自己的论坛网站,电子商务公司介绍文案,php做的网站论文,seo的优化策略有哪些第三章 线性神经网络
代码#xff1a;d2l-zh/pytorch/chapter_linear-networks
3.1 线性回归
3.1. 线性回归 — 动手学深度学习 2.0.0 documentation
解析解
线性回归的解可以用一个公式简单地表达出来#xff0c;这类解叫作解析解#xff08;analytical solution…第三章 线性神经网络
代码d2l-zh/pytorch/chapter_linear-networks
3.1 线性回归
3.1. 线性回归 — 动手学深度学习 2.0.0 documentation
解析解
线性回归的解可以用一个公式简单地表达出来这类解叫作解析解analytical solution。 首先我们将偏置b合并到参数w中合并方法是在包含所有参数的矩阵中附加一列。我们的预测问题是最小化。 这在损失平面上只有一个临界点这个临界点对应于整个区域的损失极小点。 将损失关于∣∣y−Xw∣∣2||\bold y-\bold Xw||^2∣∣y−Xw∣∣2的导数设为0得到解析解
w∗(XTX)−1XTy\bold w^*(\bold X^T \bold X)^{-1} \bold X^T \bold y w∗(XTX)−1XTy
像线性回归这样的简单问题存在解析解但并不是所有的问题都存在解析解。解析解可以进行很好的数学分析但解析解对问题的限制很严格导致它无法广泛应用在深度学习里。
随机梯度下降
算法的步骤如下 1初始化模型参数的值如随机初始化 2从数据集中随机抽取小批量样本且在负梯度的方向上更新参数并不断迭代这一步骤。
最优化方法一梯度下降法_意念回复的博客-CSDN博客_梯度下降优化算法
矢量化加速
SIMD
在训练我们的模型时我们经常希望能够同时处理整个小批量的样本。 为了实现这一点需要我们对计算进行矢量化 从而利用线性代数库而不是在Python中编写开销高昂的for循环。
%matplotlib inline
import math
import time
import numpy as np
import torchn 10000
a torch.ones([n])
b torch.ones([n])c torch.zeros(n)
timer Timer()
for i in range(n):c[i] a[i] b[i]
f{timer.stop():.5f} sec
# 0.09661 sectimer.start()
d a b
f{timer.stop():.5f} sec# 0.00021 sec结果很明显第二种方法比第一种方法快得多。 矢量化代码通常会带来数量级的加速。 另外我们将更多的数学运算放到库中而无须自己编写那么多的计算从而减少了出错的可能性。
3.2 线性回归的从零开始实验
3.2. 线性回归的从零开始实现 — 动手学深度学习 2.0.0 documentation
课后题
如果我们将权重初始化为零会发生什么。算法仍然有效吗
谈谈神经网络权重为什么不能初始化为0
在单层网络中(一层线性回归层)将权重初始化为零时可以的但是网络层数加深后在全连接的情况下在反向传播的时候由于权重的对称性会导致出现隐藏神经元的对称性使得多个隐藏神经元的作用就如同1个神经元算法还是有效的但是效果不大好。
3.3 线性回归的简洁实现
3.3. 线性回归的简洁实现 — 动手学深度学习 2.0.0 documentation
为什么机器学习优化算法都采取梯度下降(一阶导算法)而不采用牛顿法(二阶导算法)收敛速度更快一般能算出一阶导 二阶导也应该能算。
为什么机器学习中通常使用梯度下降进行训练
高阶导数信息的准确估计需要训练数据的批量更大
复杂高维神经网络的代价函数具有极多鞍点使高阶方法失效
其实核心还是神经网络参数数量大造成高阶方法计算、存储成本难以接受
如果样本大小不是批量数的整数倍那需要随机剔除多余的样本吗
如果是100个样本且batchsize60
1就取剩下的40个2丢掉剩下的40个3从下一个epoch再补20个
3.4 softmax回归 全连接层的参数开销
正如我们将在后续章节中看到的在深度学习中全连接层无处不在。 然而顾名思义全连接层是“完全”连接的可能有很多可学习的参数。 具体来说对于任何具有ddd个输入和qqq个输出的全连接层 参数开销为O(dq)O(dq)O(dq)这个数字在实践中可能高得令人望而却步。 幸运的是将ddd个输入转换为qqq个输出的成本可以减少到O(dqn)O(\frac{dq}{n})O(ndq) 其中超参数nnn可以由我们灵活指定以在实际应用中平衡参数节约和模型有效性。
softmax运算 Huber’s Robust Loss 3.7 softmax回归的简洁实现
重新审视Softmax的实现