Machine/Deep learning的基本概念


前言

本文属于李宏毅老师课程的笔记,为了加深自己的记忆与理解而写。

一、Machine Learnling 就是在找一个函数

1.本质

Alt
机器学习就是让机器具备寻找一个函数的能力,所以机器学习的本质我们也可以理解为使用一个机器学习到的一个很复杂的人类写不出来的函数来解决我们的实际问题。

2.解决的问题

Alt
图片中列举了机器学习通常解决的问题。
第一个问题是语音识别(Speech Recognition)
给机器一段声音信号,机器输出声音对应的文字,在这里找的就是一个输入是声音信号,输出是文字的复杂函数。
第二个问题是图像识别(image recognition)
让机器学会识别图像,这里要找的就是输入一张图片,输出图像中的内容的函数。
第三个问题是阿法狗
让机器学会下围棋,这里要找的就是输入是棋盘上黑子和白子的位置,输出是机器下一步要落子的位置的函数。

根据要找的函数的不同,机器学习可以分为3个类别

在这里插入图片描述

1.Regression(回归问题)

回归问题的函数输出的是一个数值。比如预测PM2.5的问题,输入是今天的PM2.5的数值、温度和臭氧的浓度,然后输出明天的PM2.5。

2.classification(分类问题)

分类问题的函数的输出是从预定义好的选项里面选择一个作为函数的结果。比如鉴别邮件是不是垃圾邮件,这就是一个分类问题,函数的输入是一封电子邮件,输出是已经准备好的选项,在鉴别邮件这个问题里面适合的选项是两个,是或否,函数从是或否中选择一个出来作为函数的输出,这就是分类问题。分类问题不仅仅只有两个选项,也可以有多个选项。
注:阿法狗也是一个分类的问题,只不过这个分类的选项比较多,选项的个数等于棋盘上的总的位置数,即19*19。

3.structured learning(create something with structrued(image、document)))

在回归和分类问题以外还有一类问题就是structured learning,比如让机器画一张图或者输出一句话。

二、机器学习如何找函数

机器学习找函数的过程分为三个步骤
在这里插入图片描述

1.Function with unknown parameters

在这里插入图片描述
图片中的红线可以由四条蓝线来表示,推广到空间中的任何一个函数,有任何一个函数都可以写成一个常数加上n个简单函数的和(像sigmoid、relu等等)。
在这里插入图片描述

上图展示了sigmoid函数以及sigmoid函数的曲线形状,可以看到sigmoid函数由三个参数c、b、w确定,这个三个参数的不同取值决定了sigmoid函数的形状。如下图所示。
在这里插入图片描述
因此这里形象的展示了为什么我们可以使用多个任意形状的sigmoid函数可以拟合出空间中任意一个函数。
下面我们来看一个具体的例子。
在这里插入图片描述
当我们将函数的特征由一个变为多个的时候,这时就变成了下图中的式子。
在这里插入图片描述
如果函数的参数只有3个,则为下图中的情况,下图中的情况清晰的展示了神经网络的前向传播的细节以及原理。
在这里插入图片描述
用矩阵来展示计算公式就是下图中内容
在这里插入图片描述
然后再考虑激活函数sigmoid的使用,一个完整的全连接神经网络就出来了
在这里插入图片描述
全部都使用矩阵来表示
在这里插入图片描述
下面重新定义各个符号的含义,x就是特征,其他矩阵统称为参数,用一个 θ \theta θ向量来表示函数中(现在也可以叫神经网络中)所有的参数。
在这里插入图片描述

2.define loss from training data

将特征输入进函数中(网络中),在参数的作用下会得到一个输出值,然后将得到的输出值 y y y与真实的值 y ^ \hat{y} y^之间的差距,所有特征的输出值与真实值之间的差距的和就是函数的loss函数。loss是参数的函数,特征 x x x是已知的量。
在这里插入图片描述

3.optimization

optimization的目的就是为了寻找到一组参数 θ ∗ \theta ^{\ast } θ使得loss的值最小。寻找 θ ∗ \theta ^{\ast } θ的过程使用的是梯度下降的算法,过程一般是先随机初始化一个 θ 0 \theta ^{0} θ0 ,然后计算loss函数在每一个参数 θ \theta θ处的梯度值,然后根据梯度来更新 θ 0 \theta ^{0} θ0,更新的过程需要一个学习率的参数,就是图中的 η \eta η
在这里插入图片描述
参数的更新过程如下图所示,每次都是计算梯度然后使用学习率来更新参数。
在这里插入图片描述
但是在实际操作中,更新参数的过程是基于bacth的,每次使用一个batch的数据来更新一次参数,叫做update。当把所有的batch都过了一遍之后叫做一次epoch。

在这里插入图片描述

三、深度学习deep learning(神经网络neural network)

在这里插入图片描述
一次激活就是一个神经元,一层的神经元就是一层hidden layer,堆叠多层的hidden layer就是深度学习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炼丹师小米

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值