2022年5月打卡学习——李宏毅深度学习

P1:机器学习介绍

一.人工智能

image

如果一台机器能够与人类展开对话(通过电传设备)而不能被辨别出其机器身份,那么称这台机器具有智能。——图灵测试

  • 本质:机器本身的学习——寻找function
  • 方法:机器学习(深度学习是机器学习的一个部分)
  • 步骤:
graph LR
subgraph Training Data
   			 A[step 1:定义一堆function] -->B(step 2:衡量一个好的function)
   			 B --> C(step 3:找出一个最好的function)
    end    
subgraph Testing Data
   			 C -->E(step 4:使用function测试)
   			 E --> F(step 5:输出)
    end

二.机器学习的相关技术

classDiagram
      机器学习 <|-- 监督学习
      机器学习 <|-- 无监督学习
      机器学习 <|-- 半监督学习
      机器学习 <|-- 强化学习
      机器学习: +分类
      机器学习: +回归()
      class 监督学习{
          -线性回归
          -逻辑回归
          -(...)
      }
      class 半监督学习{
          -深度信念网络
          -受限玻尔兹曼机
          -(...)
      }
      class 无监督学习{
          -聚类算法
          -可视化与降维
          -(...)
      }
      class 强化学习{
          -Q-Learning
          -时间差学习
          +(...)
      }
1.监督学习

监督学习是从<x, y>这样的示例对中学习统计规律,然后对于新的X,给出对应的y。

  • 输入空间、特征空间、输出空间

image

2.无监督学习

无监督学习相比监督学习没有标注数据,也就是Y。

image

3.半监督学习

半监督学习包含大量未标注数据和少量标注数据。主要是利用未标注中的信息,辅助标注数据,进行监督学习。

例如说上传的照片都是大量未标注数据,但会有重复的同一个人的照片,可以通过无监督学习进行分类;如果你为其中一份照片标注了信息,则可以为其他未标注的数据标注信息。

4.强化学习

强化学习是指智能系统在与环境的连续交互中学习最佳行为策略的机器学习问题。例如,机器人学习行走;AlphaGo学习下棋。

强化学习的本质是学习最优的序贯决策。

在每一步t,智能系统从环境中观测到一个状态s和一个奖励r,采取一个动作a。环境根据采取的动作决定下一个时刻t+1的状态和奖励。需要学习的策略表示为给定状态下采取的动作,目标不是短期奖励的最大化,而是长期累积奖励的最大化。

image

李宏毅机器学习P2-3-regression

1.回归-Regression

Regression 就是找到一个函数 function ,通过输入特征 x,输出一个数值 Scalar。

2.流程

  • 模型:线性模型(一元多次线性模型)
  • 策略:极大似然估计,信息相对熵——L(w,b)= \sum_{}^{}\left ( \hat{y}{i}^n - (b + w·x{i}) \right )^2
  • 算法:梯度下降法,牛顿法

3.梯度下降法

\frac{\partial J(\theta)}{\partial \theta}

image

在直线⽅程中,导数代表斜率,在曲线⽅程中,导数代表切线的斜率。导数代表着\theta参数单位变化时, 损失函数J相应的的变化。通过上⾯图中的点可以发现,该点的导数为负值,所以随着参数\theta的增加,损失函数J减小,因此导数从某种意义上还可以代表⽅向,对应着损失函数J增⼤的⽅向。

综上,如果最小化⼀个函数,我们就需要得到导数再取个负数,并且再乘以⼀个系数,这个系数通常叫做 步⻓或者叫学习率(Learning rate, Lr)。\eta 的取值影响获得求最优解的速度,\eta取值不合适的话甚⾄得不到 最优解,它是梯度下降的⼀个超参数。 \eta太小,减慢收敛速度效率, \eta太大,甚⾄会导致不收敛。

-\eta\frac{\partial J(\theta)}{\partial \theta}

4.正则化

过拟合现象:如果我们使用高阶多项式,变量(特征)过多,那么这个函数能够很好的拟合训练集,但是却会无法泛化到新的数据样本中(泛化:一个假设模型能够应用到新样本的能力)。

当存在较多的变量,较少的训练数据,使得没有足够的训练集来约束这个变量过多的模型,就会导致过拟合的现象。

**参数值越小模型越简单(预防过拟合)的原因:**因为越复杂的模型,越是会尝试拟合所有的训练数据,包括一些异常样本,这就容易造成在较小的区间内预测值产生较大的波动,这种大的波动反映了在某些小的区间里导数值很大。而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。

\lambda\sum^{n}_{i=1}\theta_{i}:正则化项(\lambda为正则化参数)

正则化参数要做的就是控制两个目标之间的平衡关系:在最小化训练误差的同时正则化参数使模型简单。

1.最小化误差是为了更好的拟合训练数据。

2.正则化参数是为了防止模型过分拟合训练数据。

所以正则化参数要保证模型简单的基础上使模型具有很好的泛化性能。

1)L_0范数

L_0范数是指向量中非零元素的个数(设0^0=0)

\left\|x\right\|_0=\sum^{n}_{i=1}x_{i}

若用L_0范数来规则化参数矩阵,就是希望参数矩阵大部分元素都为0,使特征矩阵稀疏。但是很难优化求解。

2)L_1范数

L_1范数是指向量中各个绝对值元素之和

\left\|x\right\|_1=\sum^{n}_{i=1}|x_{i}|

因为参数的大小与模型的复杂度成正比,所以模型越复杂,范数就越大。使用范数也可以实现特征稀疏。正则化是正则化的最优凸近似,相对范数的优点是容易求解,因此通常都是用范数进行正则化,而不是范数。

3)L_2范数

L_2范数是各参数的平方和再求平方根

\left\|x\right\|_2=\sqrt{\sum^{n}_{i=1}|x_{i}|^{2}}

让L_2范数的正则化项‖W‖_2最小,可以使W的每个元素都很小,都接近于零。但是与范数L_1不同,它不使每个元素都为0,而是接近于零。越小的参数模型越简单,越简单的模型越不容易产生过拟合现象。

**L_2范数的好处:**L_2范数不仅可以防止过拟合,而且还使优化求解变得稳定与迅速。

# 随机梯度下降法
def fit(self, X_train, y_train):
is_wrong = False
while not is_wrong:
wrong_count = 0
for d in range(len(X_train)):
X = X_train[d]
y = y_train[d]
if y * self.sign(X, self.w, self.b) <= 0:
self.w = self.w + self.l_rate * np.dot(y, X)
self.b = self.b + self.l_rate * y
wrong_count += 1
if wrong_count == 0:
is_wrong = True
return 'Perceptron Model!'

李宏毅机器学习P5-8 误差和梯度下降法

1.误差——偏差与方差

偏差(Bias)描述的是预测值和真实值之差;⽅差(Variance)描述的是预测值作为随机变量的离散程度。
image

模型的偏差与方差

**偏差:**描述样本拟合出的模型的预测结果的期望与样本真实结果的差距,要想偏差表现的好,就需要复杂化模型,增加模型的参数,但这样容易过拟合,过拟合对应上图的 High Variance,点会很分散。低偏差对应的点都打在靶⼼附近,所以喵的很准,但不⼀定很稳;

**方差:**描述样本上训练出来的模型在测试集上的表现,要想方差表现的好,需要简化模型,减少模型的复杂度,但这样容易欠拟合,欠拟合对应上图 High Bias,点偏离中⼼。低⽅差对应就是点都打的很集 中,但不⼀定是靶⼼附近,手很稳,但不⼀定瞄的准。

  1. 梯度下降法
\frac{\partial J(\theta)}{\partial \theta}

image
在直线⽅程中,导数代表斜率,在曲线⽅程中,导数代表切线的斜率。导数代表着\theta参数单位变化时, 损失函数J相应的的变化。通过上⾯图中的点可以发现,该点的导数为负值,所以随着参数\theta的增加,损失函数J减小,因此导数从某种意义上还可以代表⽅向,对应着损失函数J增⼤的⽅向。

综上,如果最小化⼀个函数,我们就需要得到导数再取个负数,并且再乘以⼀个系数,这个系数通常叫做 步⻓或者叫学习率(Learning rate, Lr)。\eta 的取值影响获得求最优解的速度,\eta取值不合适的话甚⾄得不到 最优解,它是梯度下降的⼀个超参数。 \eta太小,减慢收敛速度效率, \eta太大,甚⾄会导致不收敛。

-\eta\frac{\partial J(\theta)}{\partial \theta}
  1. 梯度下降的限制与解决


容易陷入局部极值 还有可能卡在不是极值,但微分值是0的地方 还有可能实际中只是当微分值小于某一个数值就停下来了,但这里只是比较平缓,并不是极值点

解决方法:
  • 以多组不同参数值初始化,按照标准方法训练后,取其中误差最小的解作为最终参数;
  • 使用“模拟退火”技术。模拟退火在每一步都以一定的概率接受比当前解更差的结果,有助于跳出局部极小
  • 使用随机梯度下降。


浙ICP备19012682号