- 名词解释::训练集:搜集的一个真实数据集,用于训练;样本:训练集中的每行数据;标签(目标):试图预测的东西;特征:预测所依据的自变量。
- 对于一个线性假设的式子: y = ω 1 x 1 + ω 2 x 2 + b y=\omega_{1}x_{1}+\omega_{2}x_{2}+b y=ω1x1+ω2x2+b,其中 ω 1 \omega_{1} ω1和 ω 2 \omega_{2} ω2为权重, b b b为偏置,给定一个数据集,我们的目标就是寻找模型的权重和偏置。
- 一种模型质量的度量方式:平方误差损失函数,当样本
i
i
i的预测值为
y
^
(
i
)
\hat{y}^{(i)}
y^(i),其相应的真实标签为
y
(
i
)
y^{(i)}
y(i)时,平方误差可以定义为以下公式:
l ( i ) ( w , b ) = 1 2 ( y ^ ( i ) − y ( i ) ) 2 l^{(i)}(\mathbf w,b)=\frac{1}{2}(\hat{y}^{(i)}-y^{(i)})^{2} l(i)(w,b)=21(y^(i)−y(i))2,
为了度量模型在整个数据集上的质量,我们需计算在训练集 n n n个样本上的损失均值:
L ( w , b ) = 1 n ∑ i = 1 n l ( i ) ( w , b ) = 1 n ∑ i = 1 n 1 2 ( w T x + b − y ( i ) ) 2 . L(\mathbf w,b)=\frac{1}{n}\sum_{i=1}^{n}l^{(i)}(\mathbf w,b)=\frac{1}{n}\sum_{i=1}^{n}\frac{1}{2}(\mathbf w^{T}\mathbf x+b-y^{(i)})^{2}. L(w,b)=n1∑i=1nl(i)(w,b)=n1∑i=1n21(wTx+b−y(i))2.我们希望寻得一组参数 ( w ∗ , b ∗ ) (\mathbf w^{*},b^{*}) (w∗,b∗)使其最小化在所有样本上的总损失。
w ∗ , b ∗ = a r g m i n w , b L ( w , b ) \mathbf w^{*},b^{*}=\mathop{argmin}\limits_{\mathbf w,b}\ L(\mathbf w,b) w∗,b∗=w,bargmin L(w,b) - 一种能够更新模型以提高模型预测质量的方法:
梯度下降,不断地在损失函数递减的方向上更新参数来降低误差,梯度下降最简单的用法是计算损失函数关于模型参数的导数,但是计算损失函数要遍历数据集,可能非常慢,所以可以随机抽取一小批样本来计算,这种操作叫做小批量随机梯度下降。
在每次迭代中,首先随机抽样一个小批量 B B B,它是固定数量的训练样本,然后计算小批量的平均损失关于模型参数的导数(也可以称为梯度),最后将梯度乘以一个预先确定的正数 η \eta η,并从当前参数的值中减掉。
总体来讲,线性回归的算法步骤就是
①随机初始化模型参数
②随机抽取固定数量的小批量样本,并在负梯度方向上更新参数
③迭代步骤②
∣ B ∣ |B| ∣B∣表示批量大小, η \eta η表示学习率,这两个可以调整但不在训练过程中更新的参数叫做超参数 - 为了同时处理整个小批量样本,对计算进行矢量化,避免使用代价较高的for循环,而是利用线性代数库,矢量化代码通常会带来数量级的加速,以下结果显示了时间对比:
- 正态分布,若随机变量
x
x
x具有均值
μ
\mu
μ和方差
σ
2
\sigma^{2}
σ2,其正态分布概率密度函数如下:
- 函数可视化,使用plot函数,首先要有
%matplotlib inline
import matplotlib.pyplot as plt
可视化正态分布的代码如下
'''可视化正态分布'''
x = np.arange(-7,7,0.01)
figure=plt.figure(figsize=(4.5,2.5))#设置图片尺寸
'''均值和标准差对'''
params = [(0,1),(0,2),(3,1)]
for mu, sigma in params:
plt.plot(x,normal(x,mu,sigma))
legend=plt.legend([f'mean {mu}, std {sigma}' for mu,sigma in params])#添加图例
plt.xlabel('x')
plt.ylabel('p(x)')
plt.show()
效果如下
- 均方误差用于线性回归的一个原因是假设观测中包含服从正态分布的噪声,经数学证明,在高斯噪声的假设下,最小化均方误差等价于对线性模型的最大似然估计。
- 对于线性回归,每个输入都与每个输出相连,这种变换称为全连接层,或稠密层。
10.当今大多数深度学习的研究几乎没有直接从神经科学中获得灵感,我不知道是否可以,但我想试试。这就是我目前的想法。