李宏毅机器学习第一周_机器学习基本概念

目录

摘要

ABSTRACT

一、什么是机器学习

二、不同类别的机器学习(Different types of Functions)

 三、如何找出函数(由w、b确定的函数)

step1:写出一个带有未知参数的函数 y = b + wx 

step2:定义Loss函数 

step3:最佳化

四:如何找出函数(多个参数确定的Sigmoid函数)

step1:写出一个带有未知参数的Sigmoid函数  

step2:求Loss

step3:最佳化

五:hard sigmoid ➟ ReLU

六:什么是深度学习


摘要

本文介绍了机器学习的基础知识,包括机器学习的定义、不同类型的函数,以及如何通过Gradient Descent算法找到最佳函数。具体而言,本文以机器学习视频播放量的预测为例,介绍了如何通过调整参数w、b、c得到不同的函数。同时,本文还介绍了深度学习中的神经网络和隐藏层,以及可能出现的过拟合问题。最终,通过学习本文的内容,读者可以了解机器学习和深度学习的基本工作原理和实践方法。

ABSTRACT

This article introduces the fundamentals of machine learning, including the definition of machine learning, different types of functions, and how to find the optimal function through the Gradient Descent algorithm. Specifically, using the prediction of video play counts as an example, this article demonstrates how to adjust parameters such as w, b, and c to obtain different functions. Additionally, this article discusses neural networks and hidden layers in deep learning, as well as the potential problem of overfitting. By studying the contents of this article, readers can gain an understanding of the basic principles and practical methods of machine learning and deep learning.

一、什么是机器学习

机器学习通过大量的数据和对数据的分析,可以自动发现数据中的模式和规律,推断出一个函数进而做出预测和决策。如

  1. 语音辨识,机器通过函数,输入一段语音,输出的是“How are you”
  2. 图像辨识,机器通过函数,输入一张图片,输出的是“CAT”。
  3. 阿尔法围棋(AlphaGo),机器通过函数,输入当前棋盘上的黑子和白子的位置,输出的是下一步棋子该走哪个位置。

二、不同类别的机器学习(Different types of Functions)

REGRESSION:输出的是一个数值。如:预测未来某一天的PM2.5值,输入的是当前的PM2.5值、温度值、臭氧浓度值,输出第二天的PM2.5值。

CLASSIFICATION:给出一系列选项(类别),选择出正确的一项。

如:1.通过函数,判断所收到的邮件是不是垃圾邮件。2.阿尔法围棋(AlphaGo)就是通过函数来在19*19的棋盘上选择出一个正确的位置来作为下一步的下棋选择。

 STRUCTURED LEARNING:机器产生一个有结构的部件(机器会创造东西)如:机器画图、写文章等等。

 三、如何找出函数(由w、b确定的函数)

(以机器学习视频播放量为例)一共有三个步骤

  1. function with unknown 
  2. define loss from training data
  3. optimization

step1:写出一个带有未知参数的函数 y = b + wx 

y 代表的是未来某一天的播放量  x 代表的是当前已知的某一天的播放量  b w 是未知的参数

step2:定义Loss函数 

Loss是一个函数,这个函数的输入就是b w,输出值代表当前输入的b w值是好还是不好。

  如L(0.5k,1)代入函数,可以预测第二天的播放量,并与真实的播放量取绝对值,可以求得三年来每一天的误差。

 接下来对三年来每一天的误差求平均值,所得到的L即为Loss,L越大则表示这组参数越不好,L越小表示这组参数越好。(求误差的方式可以用取绝对值,也可以用求平方的方法)

 取不同的w 不同的b 计算各个组合的L 可以得到以下等高线图,图中颜色越偏红色,表示L值越大,L(w,b)组合则越不好,颜色越偏蓝色,表示你L值越小,L(w,b)组合则越好。

step3:最佳化

找出一组L(w,b)使Loss值最小

Gradient Descent:假设未知参数只有w 

  1. 随机选取一个w0
  2. 计算w=w0时的微分(求偏导得出函数斜率)如果斜率为正,则增加w值,反之斜率为负,减少w值。增加或减少w值取决于斜率的大小,或者由用户定义的hyperparameters 学习速率。

  3. 反复进行以上两个步骤。(停下来的两种情况:1.用户设置的上限 2.微分值/斜率为0)但是,显而易见,wT取到的L值并不是最小的。所以Gradient Descent有Local minima的问题。

 以上是只有一个参数w的情况下,那么同时有w b值的时候也是同样的步骤。如下图所示。

 不断更新w b,计算微分值,可以得出下图,找出一组最好的L(w,b)。根据真实的数据可以得到w = 0.97,b = 0.1k L(w,b) = 0.48k.

以上都是在已经知道真实数据的情况下进行预测,即训练(Training),但是我们真正关心的是未来的数据,所以接下来我们来预测未来的播放量。可以得到在2017-2020的预测上,误差L=0.48k,在2021误差为0.58k。

下面是L(0.97,0.1k)的结果图,横轴代表2021.01.01-2021.02.14的天数,纵轴代表播放量(单位为k)。红色为真实的播放量数据,蓝色为机器预测出来的播放量。可以明显的看出来蓝色的线就是将红色的线向右平移一格。因为这个函数就是拿前一天的播放量来预测第二天的播放量。

 观察上图中数据可以看出,每隔七天就有一个周期(周五、周六播放量最低),所以我们写了一个新的函数,这个函数将前七天的播放量都列入考虑。可以得出在2017-2020的误差为0.38k,2021的误差为0.49k,明显比只考虑前一天的函数误差值降低。同样,如果将更多的天数列入考虑范畴,那么误差值也会降低。例如将一个月,两个月列入考虑范畴。

 以上的几个函数即Linear models,我们可以通过调整w、b的值来改变斜率和起始位置,但是无法改变函数一直是线性增长的,即如果前一天观看的人数多,那么第二天观看的人数也就多。显然Linear models有很大的限制,即Model Bias。所以我们需要写一个更有弹性的函数才能更好的预测真实的播放量。

四:如何找出函数(多个参数确定的Sigmoid函数)

由常数+Hard Sigmoid可以得到red curve,常数项就是看红色的线与y的交点,Hard Sigmoid函数斜线的起点设在红色函数的起点位置,斜线终点位置设红色函数的转角位置,并保持红色函数和Hard Sigmoid函数的斜率相同。图中的蓝色线条就是由Sigmoid函数,调整不同的w b c所得到的。所得到的的新的函数很好的克服了Linear models的Model Bias问题。

 

 How to represent this function?(如何表达蓝色函数)

step1:写出一个带有未知参数的Sigmoid函数  

用Sigmoid Function,当x趋向于无穷大时,y就无限趋向于C。当x趋向于无穷小时,y就无限趋向于0。

 调整b w c就可以得到不同类型的Sigmoid函数。

  1. 修改w,就可以得到不同斜率的Sigmoid函数 
  2. 修改b,就可以将Sigmoid函数左右移动。
  3. 修改c,就可以改变Sigmoid函数的高度。

 如果要考虑到前一个月,前两个月的播放量也是类似的,改变w b c的值。

j=1,2,3代表前一天、前两天、前三天的情况

i=1,2,3代表三个Sigmoid Function

将各个值代入函数求和,再加上b,得到r1、r2、r3。

 简化可得:

 即:

 将求得的r1、r2、r3分别代入到Sigmoid Function得到a1、a2、a3。再将a1、a2、a3乘以c1、c2、c3。求和得到了y。

可以用线性代数的方法简化为: 

step2:求Loss

 将各个值代入到函数中,将求得的值与真实的值差值即为Loss(和只有两个参数w、b时的计算方法一模一样)

step3:最佳化

找出使Loss值最小的参数(和只有两个参数w、b时的计算方法一模一样)

Gradient Descent:

  1. 1.随机选取一个初始数值 
  2. 计算每一个参数的微分
  3. 反复进行以上两个步骤。(停下来的两种情况:1.用户设置的上限 2.微分值/斜率为0)不断更新参数值,计算微分值,可以得出下图,找出最好的参数值。

 

 在做Gradient Descent时,通常随机分成多个batch。只拿一个batch出来算Loss得到L1,根据L1计算gradient,再更新参数。反复重复上述操作。所有的batch计算过一次叫做一个epoch,每一次更新参数叫做update.

五:hard sigmoid ➟ ReLU

hard sigmoid 转化为 ReLU:将两个ReLU叠起来,就可以变成hard sigmoid

通过真实的数据可以得出:ReLU胜于hard sigmoid。

六:什么是深度学习

大量的Neuron(神经),现在叫做hidden layer。由许多的hidden layer所组成的就叫做Deep Learning(深度学习)

 过拟合的情况:当预测2021年时,4 layer的误差反而高于3 layer,这就是出现了过拟合的情况。

 

 

 七:总结

这周我学习了机器学习的基本知识,包括机器学习的定义、不同类型的函数以及如何通过Gradient Descent算法找到最佳函数。通过视频播放量的预测,我学会了如何通过调整参数来得到不同的函数,并且了解了深度学习中神经网络和隐藏层的概念。同时,也了解到可能出现的过拟合问题。通过这一周的学习,我对机器学习和深度学习的基本工作原理和实践方法有了更加深入的了解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值