概要

现有的三大类任务:Regression和Classification,做的比较成熟,超级深坑—Generation(产生语句,画图)

怎样告诉机器,你想找什么样的函数

最常见的例子——Supervised Learning

  1. 需要给机器大量的训练数据,以及理想输出(Label)。
  2. 函数的Loss,判断这个函数有多好,或者多不好
  3. 接下来机器自动找出Loss最低的Function

Reinforcement Learning(vs. Supervised Learning)

以围棋为例:
Supervised:给出一张围棋的图像,然后下一步应该走在哪里
Reinforcement Learning:First move->……many moves……->Win!
机器输或赢的结果就是Reward,是机器学习的方向。

UNsupervised Learning

给出大量没有标注的数据

给定机器函数寻找的范围

函数寻找方法 - Gradient Descent

机器学习大型笔记—Regression
圆圈Easy 三角Normal 五角星Challenging
Network Compression-> 怎么把巨大的模型加载在移动设备或更小的设备上。
Transfer Learning -> 如何基于现有结果的基础上,让他更加试用
Meta Learning -> 让机器学习如何学习(普遍的效率很低)
现在大部分的机器学习天分不佳,只能靠后天刻苦训练来变得更强。
Life-long Learning->让机器终身学习,学习一系列的任务,不限范围。

Regression

Application:

  1. Stock Market Forecast
  2. Self-driving Car
  3. Recommendation

Step1: Model

y=b+wxy = b + w*x
w 和 b 是可为任意值的参数
线性模型:y=b+wixiy = b + \sum w_ix_i
xix_i:输入x的一个属性(feature)wiw_i:权重 b:偏重(bias)

Step2:Goodness of Function

Traning Data:(x1,y^1)(x2,y^2)(x3,y^3)(x^1, \hat{y}^1)(x^2, \hat{y}^2)(x^3, \hat{y}^3)……(xn,y^n)(x^n, \hat{y}^n)
有了训练集以后就可以定义一个Function的好坏:Loss Function
L:Input:a function,Output:how bad it is
L(f)=L(w,b)L(f) = L(w,b) 获取一个function告诉你这个function的好坏
L(f)=n=1N(y^n(b+wxn))2L(f)=\sum_{n=1}^N( \hat{y}^n - (b+w*x^n))^2 估测误差

Step3: Best Function—Gradient Descent

A set of function -》Goodness of function f 《- Training Data
f=argminfL(f)f^* = arg \mathop{min}\limits_{f}L(f)
w,b=argminw,bL(w,b)w^*,b^* = arg\mathop{min}\limits_{w,b}L(w,b)
=argminw,bn=1N(y^n(b+wxn))2=arg\mathop{min}\limits_{w,b}\sum\limits_{n=1}^N(\hat{y}^n - (b+w*x^n))^2

Gradient Descent

一个参数的问题

w=argminwL(w)w^* =arg\mathop{min}\limits_{w}L(w)

  1. 先随机选取一个初始的点w0w^0
  2. 计算dLdww=w0\frac{dL}{dw}|_{w=w^0} 理解为切线斜率,如果为负值,证明左高右低,我们的参数应该向右边移动,反之斜率为正,参数向左方移动。
  3. 移动一步多大取决于两件事情,1.微分值有多大 2.Learning rate η\eta
    w1w0ηdLdww=w0w^1\leftarrow w^0-\eta \frac{dL}{dw}|_{w=w^0}
  4. 计算dLdww=w1\frac{dL}{dw}|_{w=w^1} w2w1ηdLdww=w1w^2\leftarrow w^1-\eta \frac{dL}{dw}|_{w=w^1}
  5. 经过不断多的迭代找到最优解(现在仍然包括局部最优解和全局最优解的情况)

两个参数的情况

  1. 随机选择两个参数的初始值w0和b0
  2. 分别计算在该初始值得情况下对w和b的偏微分
  3. 初始值减去学习率乘以偏微分分别计算出w1和b1的更新值
  4. 反复迭代,找到Loss相对小的w和b的值

再线性回归模型中,没有Local Optimal的情况

选择另一个模型

y=b+w1x+w2x2y = b + w_1*x + w_2*x^2
测试集上的误差一般比训练集要大一些
还可以选择更加复杂的模型,一般效果会更好一些
y=b+w1x+w2x2+w3x3y = b + w_1*x + w_2*x^2 + w_3*x^3
在某一个例子中,最佳值
b=6.4,w1=0.66,w2=4.3103,w3=1.8106b = 6.4, w_1=0.66 ,w_2 = 4.3*10^{-3}, w_3 = -1.8*10^{-6}

当我们的线性模型继续复杂下去,他会越来越符合我们的训练集,可是在测试集上效果越来越差。这就是线性模型上的过拟合。

回到第一步:给线性模型加上If语句

xsx_s = species of x
If xsx_s = species 1: y=b1+w1xy = b_1 + w_1*x
If xsx_s = species 2: y=b2+w2xy = b_2 + w_2*x
If xsx_s = species 3: y=b3+w3xy = b_3 + w_3*x
If xsx_s = species 4: y=b4+w4xy = b_4 + w_4*x

转换成线性方程:y=b+wixiy = b + \sum w_ix_i
y=b1δ(xs=s1)+w1δ(xs=s1)xy = b1*\delta(x_s = s1) + w_1*\delta(x_s = s1)x
+b2δ(xs=s2)+w2δ(xs=s2)x+b2*\delta(x_s = s2) + w_2*\delta(x_s = s2)x
+b3δ(xs=s3)+w3δ(xs=s3)x+b3*\delta(x_s = s3) + w_3*\delta(x_s = s3)x
+b4δ(xs=s4)+w4δ(xs=s4)x+b4*\delta(x_s = s4) + w_4*\delta(x_s = s4)x

模型更加复杂化
xsx_s = species of x
If xsx_s = species 1: y=b1+w1x+w5x1y = b_1 + w_1*x + w_5*x^1
If xsx_s = species 2: y=b2+w2x+w6x2y = b_2 + w_2*x + w_6*x^2
If xsx_s = species 3: y=b3+w3x+w7x3y = b_3 + w_3*x + w_7*x^3
If xsx_s = species 4: y=b4+w4x+w8x4y = b_4 + w_4*x + w_8*x^4

回到第二步:Reguarization

y=b+wixi y = b + \sum w_ix_i
L(f)=n=1N(y^n(b+wxn))2+λ(wi)2 L(f)=\sum_{n=1}^N( \hat{y}^n - (b+w*x^n))^2 +\lambda\sum(w_i)^2

为什么 平滑的方程是更受欢迎的呢?
如果一些噪音发生在输入端,他会对输出端产生较小的影响

λ\lambda越大,函数越平滑:他会越考虑w本身的值,而减少考虑error的值
我们喜欢比较平滑的function,但不要太平滑

在做Regularization的时候,不需要考虑bias项,他不会对平滑程度产生影响。

相关文章:

  • 2021-06-12
  • 2022-12-23
  • 2021-12-25
  • 2021-05-03
  • 2021-10-20
  • 2021-06-06
  • 2021-04-05
  • 2021-07-03
猜你喜欢
  • 2021-05-16
  • 2022-12-23
  • 2021-07-30
  • 2022-12-23
  • 2021-07-10
  • 2021-10-13
  • 2021-09-05
相关资源
相似解决方案