Power 0 码力 |
10 页 |
610.60 KB
| 2 年前 3 0 码力 |
15 页 |
940.28 KB
| 2 年前 3 法线方程: $ y - y_{0} = -\frac{1}{f'(x_{0})}(x - x_{0}), f'(x_{0}) \neq 0 $
## 高等数学
### 5. 四则运算法则
设函数 $ u = u(x) $ , $ v = v(x) $ 在点x可导,则:
(1) $ (u \pm v)' = u' \pm v' $
(2) $ (u 复合函数,反函数,隐函数以及参数方程所确定的函数的微分法
(1) 反函数的运算法则: 设 $ y = f(x) $ 在点 x 的某邻域内单调连续,在点 x 处可导且 $ f'(x) \neq 0 $ ,则其反函数在点 x 所对应的 y 处可导,并且有 $ \frac{dy}{dx} = \frac{1}{\frac{dx}{dy}} $
(2) 复合函数的运算法则: 若 $ \mu = \varphi(x) 是 x 的函数,则 y 的函数是 x 的复合函数。例如 $ \frac{1}{y} $ , $ y^{2} $ ,lny, $ e^{y} $ 等均是 x 的复合函数。对 x 求导应按复合函数连锁法则做。
2) 公式法. 由 $ F(x, y) = 0 $ 知 $ \frac{dy}{dx} = -\frac{F'_{x}(x, y)}{F'_{y}(x, y)} $ ,其中, 0 码力 |
28 页 |
787.86 KB
| 2 年前 3 x_{0}) $
法线方程: $ y - y_{0} = -\frac{1}{f'(x_{0})}(x - x_{0}), f'(x_{0}) \neq 0 $
### 5. 四则运算法则
设函数 $ u=u(x) $ , $ v=v(x) $ 在点x可导,则:
(1) $ (u \pm v)' = u' \pm v' $
$$ (2)\ (uv)^ 复合函数,反函数,隐函数以及参数方程所确定的函数的微分法
(1) 反函数的运算法则:设 $ y = f(x) $ 在点x的某邻域内单调连续,在点x处可导且 $ f'(x) \neq 0 $ 。
0,则其反函数在点x所对应的y处可导,并且有 $ \frac{dy}{dx}=\frac{1}{\frac{dx}{dy}} $
(2)复合函数的运算法则:若 $ \mu=\varphi(x) $ 在点x可导,而 的函数,则 y 的函数是 x 的复合函数。例如 $ \frac{1}{y} $ , $ y^{2} $ , $ \ln y $ , $ e^{y} $ 等均是 x 的复合函数。对 x 求导应按复合函数连锁法则做。
2) 公式法. 由 $ F(x,y)=0 $ 知 $ \frac{dy}{dx}=-\frac{F'_{x}(x,y)}{F'_{y}(x,y)} $ ,其中, $ 0 码力 |
31 页 |
1.18 MB
| 2 年前 3 47 std::cout << sum << std::endl;
48 }
这个 Vector 类有哪些问题?
## 三五 法则:规则类怪谈
1. 如果一个类定义了解构函数,那么您必须同时定义或删除拷贝构造函数和拷贝赋值函数,否则出错。
2. 如果一个类定义了拷贝构造函数,那么您必须同时定义或删除拷贝赋值函数,否则出错,删除可导致低效。 如果一个类定义了移动构造函数,那么您必须同时定义或删除移动赋值函数,否则出错,删除可导致低效。
4. 如果一个类定义了拷贝构造函数或拷贝赋值函数,那么您必须最好同时定义移动构造函数或移动赋值函数,否则低效。
三五法则是前人总结的,避免犯错的经验。只告诉做什么,不告诉为什么,是不深入的。让我们通过撞南墙的方式来深入理解一下。

更多这样的前人经验可以参考:https://github.com/isocpp/CppCoreGuidelines
## 三五 法则:拷贝构造函数
• 在 = 时,默认是会拷贝的。比如右边这样:
但是这样对我们当前 Vector 的实现造成一个很大的问题。其 m_data 指针是按地址值浅拷贝的,而不深拷贝其指向的数组!
- 0 码力 |
96 页 |
16.28 MB
| 2 年前 3 不精准
符号微分:Mul(Const(2), Var(1)) -> Const(2)
■ 缺点:计算结果可能复杂;可能重复计算;难以直接利用语言原生控制流
◦ 自动微分:利用复合函数求导法则、由基本运算组合进行微分
■ 分为前向微分和后向微分
## 符号微分
## • 我们以符号微分定义表达式构建的一种语义
1. enum Symbol {
2. Constant(Double) 15. fn Symbol::compute(f : Symbol, input : Array[Double]) -> Double { ... }
## 符号微分
- 利用函数求导法则,我们计算函数的(偏)导数
$$ \begin{aligned}&\circ\frac{\partial f}{\partial x_{i}}=0 如果 f 为常值函数 \\&\circ\frac{\partial }
3. }
4. fn relu[N : Number](x : N) -> N {
5. max(x, N::constant(0.0))
6. }
## 前向微分
• 利用求导法则直接计算微分,同时计算 $ f(a) $ 与 $ \frac{\partial f}{\partial x_{i}}(a) $
○ 简单理解:计算 $ (fg)^{\prime}=f^{\prime}\times 0 码力 |
30 页 |
3.24 MB
| 2 年前 3 ### 3. BP算法
## 第三步,计算输出层阈值 $ \theta_{j} $ 的梯度 $ \frac{\partial E_{k}}{\partial \theta_{j}} $
利用链式法则,可得
$$ \frac{\partial E_{k}}{\partial\theta_{j}}=\frac{\partial E_{k}}{\partial\hat{y}_{j}^{k}}\c \theta_{j}} $
### 3. BP算法
第四步,计算隐层到输出层连接权值 $ w_{hj} $ 的梯度 $ \frac{\partial E_{k}}{\partial w_{hj}} $
利用链式法则,可得
$$ \frac{\partial E_{k}}{\partial w_{hj}}=\frac{\partial E_{k}}{\partial\hat{y}_{j}^{k}}\cdot $$
### 3. BP算法
第五步,计算隐层阈值 $ \gamma_{h} $ 的梯度 $ \frac{\partial E_{k}}{\partial \gamma_{h}} $
利用链式法则,可得
$$ \frac{\partial E_{k}}{\partial\gamma_{h}}=\frac{\partial E_{k}}{\partial b_{h}}\cdot\frac{\partial 0 码力 |
29 页 |
1.60 MB
| 2 年前 3 参考文献
第7章 反向传播算法
7.1 导数与梯度
7.2 导数常见性质
7.3 激活函数导数
7.4 损失函数梯度
7.5 全连接层梯度
7.6 链式法则
7.7 反向传播算法
7.8 Himmelblau 函数优化实战
7.9 反向传播算法实战
7.10 参考文献
第8章 PyTorch 高级用法
8 W_{3}, b_{3}\} $ ,这些梯度会自动保存在每个张量的grad成员变量中,代码如下:loss.backward() # 反向传播,计算所有参数的梯度
再使用 optim 对象自动按照梯度更新法则去更新模型的参数 $ \theta $ 。
$$ \theta^{\prime}=\theta-\eta\cdot\frac{\partial\mathcal{L}}{\partial\theta} 35,8 $$ ,张量B保存了另一个班级的成绩册,shape为 $$ 35,8 $$ 。合并这两个班级的数据时,则需要创建一个新维度,定义为班级维度,新维度可以选择放置在任意位置,一般根据大小维度的经验法则,将较大概念的班级维度放置在学生维度之前,则合并后的张量的新shape应为 $$ 2,35,8 $$ ,其中2代表两个班级。
使用 torch.stack(tensors, dim)可以以堆叠方式合并多个张量,通过 0 码力 |
439 页 |
29.91 MB
| 2 年前 3 .. 62
2.4 微积分 ..... 63
2.4.1 导数和微分 ..... 64
2.4.2 偏导数 ..... 68
2.4.3 梯度 ..... 68
2.4.4 链式法则 ..... 68
2.5 自动微分 ..... 69
2.5.1 一个简单的例子 ..... 70
2.5.2 非标量变量的反向传播 ..... 71
2.5.3 分离计算 ... 009年,如果有人设计了一个很棒的算法来预测电影评分,那可能会赢得100万美元的奈飞奖 $ ^{12} $ 。再比如,预测病人在医院的住院时间也是一个回归问题。总而言之,判断回归问题的一个很好的经验法则是,任何有关“有多少”的问题很可能就是回归问题。比如:
· 这个手术需要多少小时;
·在未来6小时,这个镇会有多少降雨量。
即使你以前从未使用过机器学习,可能不在不经意间,已经解决了一些回归问 536
536
537
537
538
#### 2.2.2 处理缺失值
注意,“NaN”项代表缺失值。为了处理缺失的数据,典型的方法包括插值法和删除法,其中插值法用一个替代值弥补缺失值,而删除法则直接忽略缺失值。在这里,我们将考虑插值法。
通过位置索引iloc,我们将data分成inputs和outputs,其中前者为data的前两列,而后者为data的最后一列。对于inputs中缺少的数 0 码力 |
797 页 |
29.45 MB
| 2 年前 3 “自带电池”,开箱即用
• 高频使用的标准库包
( net 、 http 、 strings 、 time 、 crypto 等 )
- Reflect 反射使用三大法则
• Cgo 使用的开销
- Unsafe 包的安全使用法则
## Part10 - 工程实践
## 构建、部署、代码生成、Go“坑”大检阅
• Go module
• 自定义 go 包导入路径
• Go 命令使用(包括代码生成) 0 码力 |
26 页 |
4.55 MB
| 2 年前 3
|