深度学习入门:基于Python的理论与实现这本数的阅读笔记
根据自己的情况总结的,可能有些简单的就没做笔记。
NumPy
在深度学习的实现中,经常出现数组和矩阵的计算。NumPy的数组类(numpy.array)中提供了很多便捷的方法,在实现深度学习时,我们将使用这些方法。我们来简单介绍一下后面会用到的NumPy。
上面就是定义numpy数组以及加减乘除的运算。
上面代码就是看数据类型以及其形状。
上面代码主要是索引访问元素,以及将其变成一维的。
Matplotlib
在深度学习的实验中,图形的绘制和数据的可视化非常重要。Matplotlib是用于绘制图形的库,使用Matplotlib可以轻松地绘制图形和实现数据的可视化。这里,我们来介绍一下图形的绘制方法和图像的显示方法。
plt.legend()
是 Matplotlib
库中的一个函数,用于添加图例。在使用 plt.plot()
绘图时,我们可以在其中传入 label
参数设置该线条的标签,然后调用 plt.legend()
函数就可以在图中显示出该标签所对应的图例。该函数通常在绘制完所有的线条或散点图之后进行调用。
上面那个是绘制图形,这个是绘制图片。
感知机
感知机是什么? 感知机接收多个输入信号,输出一个信号。
以一个接收两个输入信号的感知机的例子:
x1
、x2
是输入信号,y
是输出信号,w1
、w2
是权重
输入信号被送往神经元时,会被分别乘以固定的权重。神经元会计算传送过来的信号的总和,只有当这个总和超过 了某个界限值时
,才会输出1。这也称为“神经元被激活”
。这里将这个界限值称为阈值
,用符号θ
表示。
请用梯度法求f(x0+x1)=x02 +x12 的最小值。
import numpy as np
def function(x):#函数
return x[0]**2+x[1]**2
def numerical_gradint(f,x):#计算梯度
h=1e-4
grad=np.zeros_like(x)
for idx in range(x.size):
tmp_val=x[idx]
x[idx]=tmp_val+h
fxh1=f(x)
x[idx]=tmp_val-h
fxh2=f(x)
grad[idx]=(fxh1-fxh2)/(2*h)
x[idx]=tmp_val
return grad
def gradient_descent(f,init_x,lr=0.01,step_num=100):#根据梯度更新
x=init_x
for i in range(step_num):
grad=numerical_gradint(f,x)
x-=lr*grad
return x
init_x=np.array([-3.0,4.0])
temp=gradient_descent(function,init_x=init_x,lr=0.1,step_num=100)
print(temp)
输出结果:
[-6.11110793e-10 8.14814391e-10]#接近于[0,0]