深度学习入门(鱼书)学习笔记

第1章 Python入门

第2章 感知机

第3章 神经网络

3.2.激活函数

sigmoid函数:
h ( x ) = 1 1 + exp ⁡ ( − x ) h(x)=\frac{1}{1+\exp(-x)} h(x)=1+exp(x)1
ReLU(Rectified Linear Unit)函数:
h ( x ) = { x , ( x > 0 ) 0 , ( x ≤ 0 ) h(x)= \begin{cases} x, & (x>0) \\ 0, &(x \le 0) \end{cases} h(x)={x,0,(x>0)(x0)

3.5.输出层的设计

softmax函数:
y k = exp ⁡ ( a k ) ∑ i = 1 n exp ⁡ ( a i ) y_k=\frac{\exp (a_k)}{\sum_{i=1}^n \exp (a_i)} yk=i=1nexp(ai)exp(ak)

第4章 神经网络的学习

4.2.损失函数

交叉熵误差(cross entropy error):
E = − ∑ k t k log ⁡ y k E=-\sum_{k} t_k \log y_k E=ktklogyk

问题:为什么数值微分的计算非常费时?复杂度有多高?

4.3.数值微分

# 数值微分
def numerical_diff(f, x):
	h = 1e-4
	return (f(x+h) - f(x-h)) / (2*h)

4.4.梯度

梯度下降法
学习率

第5章 误差反向传播法

5.1.计算图

计算图解题流程:

1.构建计算图

2.在计算图上,从左向右进行计算

使用计算图的原因:可以通过反向传播高效计算导数。

计算图的优点:可以通过正向传播和反向传播高效地计算各个变量的导数值。

5.2.链式法则

定义:如果某个函数由复合函数表示,则该复合函数的导数可以用构成复合函数的各个函数的导数的乘积表示。
∂ z ∂ x = ∂ z ∂ t ∂ t ∂ x \frac{\partial z}{\partial x}=\frac{\partial z}{\partial t}\frac{\partial t}{\partial x} xz=tzxt
举例: z = ( x + y ) 2 ,   t = x + y z=(x+y)^2, \ t=x+y z=(x+y)2, t=x+y
反向传播计算过程如下:
深度学习入门(鱼书)学习笔记_第1张图片
图5.7-5.8 计算图的正向与反向传播

5.3.反向传播

加法的反向传播:将上游的值传给下游,不需要正向传播的输入信号。
乘法的反向传播:将上游的值乘以正向传播时的输入信号的“翻转值”后传给下游,需要正向传播的输入信号。
深度学习入门(鱼书)学习笔记_第2张图片

图5-14 购买苹果的反向传播的例子

5.4.简单层的实现

深度学习入门(鱼书)学习笔记_第3张图片
图5-17 购买2个苹果和3个橘子

5.5.激活层函数的实现

深度学习入门(鱼书)学习笔记_第4张图片
图5-18 ReLU层的计算图

深度学习入门(鱼书)学习笔记_第5张图片
图5-21 Sigmoid层的计算图(简洁版)

为什么是exp(-x)而不是exp(x)?
深度学习入门(鱼书)学习笔记_第6张图片
图5-22 Sigmoid层的计算图:可以根据正向传播的输出y计算反向传播

5.6.Affine/Softmax层的实现

todo

你可能感兴趣的:(深度学习,python)