
深度学习笔记
主要是记录给自己看的
小嘿黑15斤
磨刀中
展开
-
偏导数——含有多个变量
定义我们看一下式 (4.6) 表示的函数。虽然它只是一个计算参数的平方和的简单函数,但是请注意和上例不同的是,这里有两个变量。def function_2(x): return x[0] ** 2 + x[1] ** 2 # 或者return np.sum(x**2)这里,我们假定向参数输入了一个 NumPy 数组。函数的内部实现比较简单,先计算 NumPy 数组中各个元素的平方,再求它们的和(np.sum(x**2) 也可以实现同样的处理)。我们来画一下这个函数的图像。结果如图原创 2022-05-01 18:10:47 · 1461 阅读 · 0 评论 -
导数——数值微分的例子
数值微分利用微小的差分求导数的过程称为数值微分 (numerical differentiation)。用上述的数值微分对简单函数进行求导。先来看一个由下式表示的 2 次函数。实现方法:import numpy as npimport matplotlib.pyplot as pltdef numerical_diff(f, x): h = 1e-4 return (f(x + h) - f(x - h)) / (2 * h)def function_1(x):原创 2022-05-01 17:03:39 · 691 阅读 · 0 评论 -
导数的定义(哎,忘光了)
1.定义导数就是表示某个瞬间的变化量。它可以定义成下面的式子。式(4.4)表示的是函数的导数。左边的符号 df(x)dx\frac{{\rm d}f(x)}{{\rm d}x} dxdf(x)表示 f (x )关于 x 的导数,即 f (x )相对于 x 的变化程度。式(4.4)表示的导数的含义是,x 的“微小变化”将导致函数 f (x )的值在多大程度上发生变化。其中,表示微小变化的 h 无限趋近 0,表示为 :limh→0\lim_{h\to0} h→0lim2.代码实现不好的示例d原创 2022-05-01 16:01:12 · 2386 阅读 · 0 评论 -
mini-batch 学习
1.mini-batch 学习前面介绍的损失函数的例子中考虑的都是针对单个数据的损失函数。如果要求所有训练数据的损失函数的总和,以交叉熵误差为例,可以写成下面的式(4.3)。这里,假设数据有 N 个,tnk 表示第 n 个数据的第 k 个元素的值(ynk 是神经网络的输出,tnk}是监督数据)。式子虽然看起来有一些复杂,其实只是把求单个数据的损失函数的式(4.2)扩大到了 N 份数据,不过最后还要除以 N 进行正规化。通过除以 N ,可以求单个数据的“平均损失函数”。通过这样的平均化,可以获得和训练数原创 2022-04-30 20:36:08 · 1624 阅读 · 0 评论 -
损失函数(交叉熵误差)
损失函数神经网络以某个指标为线索寻找最优权重参数。神经网络的学习中所用的指标称为损失函数 (loss function)。这个损失函数可以使用任意函数,但一般用均方误差和交叉熵误差等。交叉熵误差除了均方误差之外,交叉熵误差 (cross entropy error)也经常被用作损失函数。交叉熵误差如下式所示。这里,log 表示以e为底数的自然对数(loge )。yk是神经网络的输出,tk 是正确解标签。并且,tk 中只有正确解标签的索引为 1,其他均为 0(one-hot 表示)。因此,式(4.2原创 2022-04-30 18:28:16 · 2485 阅读 · 0 评论 -
损失函数(均方误差)
损失函数神经网络以某个指标为线索寻找最优权重参数。神经网络的学习中所用的指标称为损失函数 (loss function)。这个损失函数可以使用任意函数,但一般用均方误差和交叉熵误差等。均方误差可以用作损失函数的函数有很多,其中最有名的是均方误差 (mean squared error)。均方误差如下式所示。这里,yk 是表示神经网络的输出,tk 表示监督数据,k 表示数据的维数。如式(4.1)所示,均方误差会计算神经网络的输出和正确解监督数据的各个元素之差的平方,再求总和。现在,我们用 Pyth原创 2022-04-30 16:38:28 · 4643 阅读 · 0 评论 -
简单3 层神经网络Mnist数据集的推理实现之批处理
批处理import os, sysimport numpy as npbase_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.append(base_dir)from dataset.mnist import load_mnistimport pickledef sigmoid(x): return 1 / (1 + np.exp(-x))def softmax(x):原创 2022-04-30 15:27:57 · 1021 阅读 · 0 评论 -
简单3 层神经网络Mnist数据集的推理实现
简单3 层神经网络Mnist数据集的推理实现import os, sysimport numpy as npbase_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.append(base_dir)from dataset.mnist import load_mnistimport pickledef sigmoid(x): return 1 / (1 + np.exp(-x))原创 2022-04-30 14:00:54 · 1067 阅读 · 0 评论 -
PIL的学习点点
显示图片from tensorflow.keras.datasets import mnistfrom PIL import Imagedef img_show(img): pil_img = Image.fromarray(img) pil_img.show()(x_train,y_train),(x_test,y_test) = mnist.load_data(r'f:\datasets\mnist.npz')image = x_train[0]print(image原创 2022-04-30 13:13:03 · 329 阅读 · 0 评论 -
激活函数之softmax函数
softmax函数分类问题中使用的 softmax 函数可以用下面的式表示:exp(x ) 是表示 ex 的指数函数(e 是纳皮尔常数 2.7182 …)。式(3.10)表示假设输出层共有 n 个神经元,计算第 k 个神经元的输出 yk 。如式(3.10)所示,softmax 函数的分子是输入信号 ak 的指数函数,分母是所有输入信号的指数函数的和。import numpy as npdef softmax(x): exp_a = np.exp(x) sum_exp_a =np原创 2022-04-23 17:01:05 · 6060 阅读 · 0 评论 -
简单3 层神经网络的实现
3 层神经网络3 层神经网络为对象,实现从输入到输出的(前向)处理。巧妙地使用 NumPy 数组,可以用很少的代码完成神经网络的前向处理。3 层神经网络:输入层(第 0 层)有 2 个神经元,第 1 个隐藏层(第 1 层)有 3 个神经元,第 2 个隐藏层(第 2 层)有 2 个神经元,输出层(第 3 层)有 2 个神经元。实现分解代码实现import matplotlib.pyplot as pltimport numpy as npdef init_network():原创 2022-04-23 16:06:55 · 855 阅读 · 0 评论 -
激活函数之relu函数
relu函数ReLU (Rectified Linear Unit)函数。ReLU 函数在输入大于 0 时,直接输出该值;在输入小于等于 0 时,输出 0。import matplotlib.pyplot as pltimport numpy as npdef relu(x): return np.maximum(0,x)if __name__ == '__main__': x = np.arange(-5, 5, 0.1) y = relu(x) plt原创 2022-04-23 10:52:08 · 1015 阅读 · 0 评论 -
激活函数之sigmoid函数
sigmoid函数import matplotlib.pyplot as pltimport numpy as npdef sigmoid(x): return 1 / (1 + np.exp(-x))if __name__ == '__main__': x = np.arange(-5, 5, 0.1) y = sigmoid(x) plt.plot(x, y) plt.ylim(-0.1, 1.1) plt.show()原创 2022-04-23 10:37:54 · 298 阅读 · 0 评论 -
激活函数之阶跃函数
阶跃函数阶跃函数以 0 为界,输出从 0 切换为 1(或者从 1 切换为 0)。它的值呈阶梯式变化,所以称为阶跃函数。import matplotlib.pyplot as pltimport numpy as npdef step_function(x): y = x>0 print(y.shape,y.dtype) return y.astype(np.int32)# def step_function(x):# print(x>0)#原创 2022-04-23 09:59:57 · 831 阅读 · 0 评论 -
Matplotlib_图形的绘制和数据的可视化
1.pyplot 的功能import matplotlib.pyplot as pltimport numpy as npx = np.arange(0,6,0.1)y = np.sin(x)plt.plot(x,y)plt.show()原创 2022-04-19 23:25:57 · 85 阅读 · 0 评论 -
numpy记录下学习的过程
1.生成 NumPy 数组要生成 NumPy 数组,需要使用 np.array() 方法。np.array() 接收 Python 列表作为参数,生成 NumPy 数组(numpy.ndarray )。x = np.array([1, 2, 3, 4])y = np.array([1, 1, 1, 1])print('x:', x, 'y', y, type(x))print('x+y:', x + y)print('x-y:', x - y)运行结果:x: [1 2 3 4] y [1原创 2022-04-19 21:04:10 · 656 阅读 · 0 评论