机器学习+深度学习入门

机器学习+深度学习入门

前言:本文的材料引用自李宏毅老师的MACHINE LEARNING 2021 SPRING课程,我在第一次看这个课程时真的被震撼到了,原来机器学习可以这么讲,并且非常丝滑的引出了Deep Learning等一系列概念,在之前为了入门机器学习和深度学习也单独看了很多文章,但是都是似懂非懂的感觉,在看了李宏毅老师的课程后突然就把许多不懂或者疑惑的概念串起来了,于是将第一节课的内容课件整理成本文,非常推荐去体验老师的原课程。

机器学习就是机器自己写函数的过程,同一个函数通过调整参数值相加最终得到最终模型的函数。

Introduction

什么是机器学习

Machine Learning ~= Looking for Function

机器自己去寻找一个函数的过程

不同类型的函数(function)
  • Regression: The function outputs a scalar. 回归

  • Classification: Given options (classes), the function outputs the correct one. 分类

  • Structured Learning

    create something with structure (image, document)

    但事实上机器学习中分类和回归只是这片大地一小部分,如今机器学习面临着更多的挑战,我们将剩下的部分成为Structured Learning,这些余下的部分要求机器可以去自己创造一些东西(图片,文章等)

Pre: 机器学习的三个步骤

三个步骤合起来的过程称为训练(Training)

在这里插入图片描述

1. Function with Unknown Parameters
  • y = b + wx1 base on domain knowledge

    我们将这个函数称为一个Model,在机器学习中Model就是一个带有未知Parameter的Function。

    • x1:已知,我们称之为feature
    • w:未知,我们称之为weight
    • b:未知,我们称之为bias
2. Define Loss from Training Data
  • Loss L(b, w)

    Loss is a function of parameters.

    Loss: how good a set of values is.

    Loss也是一个function,它的input是我们model里面的parameter,output为我们将这些未知参数设定一些数值的时候,这些数值好还是不好。

  • Loss的计算原理

在这里插入图片描述

在这里插入图片描述

  • ^y: 代表真实的数据,我们将之称为label

  • e1: 代表估测的值跟真实值的差距,注意这里只是计算loss的一种方式,还有其他的方式

  • 我们将每一天的误差加起来算出平均值得到最后的Loss

  • 计算Loss的方式

    • MAE

      𝑒=|𝑦−𝑦 ̂ |

      𝐿 is mean absolute error (MAE)

    • MSE

      𝑒=(𝑦−𝑦 ̂ )^2

      𝐿 is mean square error (MSE)

    • If 𝑦 and 𝑦 ̂ are both probability distributions, we can use Cross-entropy.

3. Optimization

w*, b* = arg min(w, b) L

寻找w和b的值使Loss最小,我们将可以使Loss最小的w和b称为w*和b*,指最好的w和b。

  • Gradient Descent

      1. 先随机找一个值w0(之后会有计算出较好的w0的值的方法),这里只是举一个w0的例子

      2. 计算在w等于w0时,w这个参数对loss的微分是多少(求导)

        Negative -> Increase w
        Positive -> Decrease w
        
      3. 改变w,每次改变的值的大小受微分和n(见下)两个部分决定,n称为学习率,是一个hyperparameter,学习率越大updata的值就会越大

      4. 新的 w1 = w0 - 算出的学习率乘以微分结果

在这里插入图片描述

  • 梯度下降存在的问题

    存在local minima问题(暂定),真正的问题不是这个问题。

    在这里插入图片描述

  • Hyperparameters

    机器学习中需要自己设定的东西

我们把这种模型y = b + wx称为线性模型Linear Model

在这里插入图片描述

Aft: 机器学习的三个步骤(深度学习)
1. Function with Unknown Parameters
  • 模型的限制

    线性模型太过简单,无法表示很复杂的情况。

    我们将这种模型的限制称为Model Bias,注意这里的Model Bias跟之前的bias是不同的。

    在这里插入图片描述

  • 更复杂的模型

    1. 我们可以将这个红色的曲线看成一个常数项加上一个函数的集合。

在这里插入图片描述

  1. 我们将这个分段函数分为一个部分一个部分,然后用这个蓝色的函数去表示,这个蓝色的函数在值非常小时是一个值,非常大时是一个值,中间是一个过渡的过程,如图所示。最终我们用许多不同斜率的蓝色函数表示出了这个红色的分段函数。

在这里插入图片描述

  1. 我们发现所有的这种分段函数都可以通过这种方式来表示,越复杂的函数(红)也需要更多不同的函数(蓝)来表示

在这里插入图片描述

 即使是曲线也可以通过分很多段去无限逼近曲线

在这里插入图片描述

  1. 现在的问题是我们怎么去表示出这个蓝色的函数

    我们可以用一个曲线去逼近它,这个曲线的函数称为Sigmoid Function

    而最初的蓝色的函数,我们称之为Hard Sigmoid

在这里插入图片描述

  1. 既然有了Sigmoid Function我们就可以通过调整Sigmoid Function的参数去逼近不同斜率的Hard Sigmoid
![在这里插入图片描述](https://img-blog.csdnimg.cn/61b2348475c04312b0513517507f0516.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASnVzdExvcmFpbg==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
  1. 回到最初的问题,我们用Sigmoid Function去替换掉之前的蓝色函数得到新的表示的红色分段函数

    不同的sigmoid function有不同的参数

在这里插入图片描述

  1. 然后我们现在考虑多个参数的情况,例如考虑前7天,前28天而不是只是一天,得到新的function

在这里插入图片描述

  1. 抽象

    在蓝色虚线里面进行的事情

    • i 代表sigmoid function函数的数量,也是黑色的圆点
    • j 代表feature的数量,用之前的例子来说就是天数,也是黄色的正方形

    我们依次计算出结果最后用一个新的变量 r 来接收

在这里插入图片描述

 **我们可以把这个过程变成线性代数的矩阵计算**

在这里插入图片描述

  1. 然后我们让重新计算的r1,r2,r3通过sigmoid function

    在这里插入图片描述

  2. 继续计算

    a1, a2, a3拼起来变成向量a
    c1, c2, c3拼起来叫向量c然后对它进行Transpose(转置)
    

    在这里插入图片描述


在这里插入图片描述

  ---

在这里插入图片描述

  1. 整合变量,其中绿色的b为向量,灰色的为标量,-0称为我们所有未知的参数
![在这里插入图片描述](https://img-blog.csdnimg.cn/70cf8fc777874a8681dbbfde958a27bd.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASnVzdExvcmFpbg==,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
2. Define Loss from Training Data

在这里插入图片描述

3. Optimization

在这里插入图片描述


在这里插入图片描述


我们将数据分成N个batch,每一个batch单独算一个Loss,把所有的batch都计算一遍后称为一个epoch,每一次更新一个参数称为一次update

在这里插入图片描述

Sigmoid ->ReLU

一个sigmoid函数可以看成两个ReLU函数

在这里插入图片描述

在这里插入图片描述

Neural Network

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值