吴恩达机器学习(Machine Learning)课程总结笔记---Week 1

0. 概述

   吴恩达老师在Week 1课程中对机器学习进行了概括性的介绍,包括了机器学习的定义,发展和分类等。同时通过最简单的单变量线性回归,让同学们直观的了解到了机器学习的使用。
下面我们开始进入Week 1的学习。

1. 课程大纲

下图是本周课程的大纲摘要,后续小节将分解描述。
备注:下图中图片不太清晰,如需查看请前往 https://github.com/GH-SUSAN/Machine-Learning-MarkDown/tree/master/week1 下载查看。
Week 1 课程大纲

2. 课程内容

2.1 引言

(1) 什么是机器学习?

什么是机器学习

(2) 为什么学习机器学习?

  1. 机器学习已经深入到生活的各个领域
  2. 机器学习有很好的钱途
       我自己是做Android前端的,Android这几年变化极快,新的Android版本迭代,大前端技术,新的开发框架和语言层出不穷,从而使得开发门槛越来越低,需要学习的东西也越来越多。所以既然都要学习,何不学习更加前沿的技术,更加有持续性的知识,更加能够在未来沉淀下来的东西,这是我的初衷。
    不知道你是什么原因,可以在blog下留言分享。

(3) 机器学习的分类?

   机器学习的主流分为三大类:有监督学习,无监督学习,强化学习。
   参考:https://xiaozhuanlan.com/topic/9356127804

a. 有监督学习

   有监督学习可分为“回归(regression)”和“分类(Classification)”两大问题。
回归问题:预测一个连续值,即试图将输入变量和输出用一个连续函数对应起来。参考课程中的房价预测。
分类问题:预测一个离散值,即试图将输入变量与离散的类别对应起来。参考课程中的癌症恶性和良性预测。
特点:每个数据都有结果标注,。比如,一张图片是西瓜还是苹果,一套100平米的房子1000万。

b. 无监督学习

   无监督学习中,并不知道有什么结果、什么结构,但可以通过聚类的方式从数据中提取一个特殊的结构,即让机器自行发现规律。
聚类:无监督学习算法是以某种方式组织数据,然后找出数据中存在的内在结构将数据进行聚类。参考课程中的DNA聚类
降维:找到更简单的方式处理复杂数据,使复杂数据看起来更简单。
特点:与有监督学习相比,其训练数据没有明确的标注。

c. 强化学习

   战胜李世石的Alpha Go就是使用的强化学习,强化学习是一种学习模型,在不断的试错中找到最优结果。就像小时候你做错事,老妈给你一巴掌,你做对事,老妈给你一块糖,久而久之就知道哪些是对的,哪些是错的了。
   强化学习不需要标签,你选择的行动越好,得到的反馈越多,就是要不断地尝试。比如围棋先下它3千万盘,根据输赢调整策略。

2.2 单变量线性回归

(1) 模型假设

a. 数据约定

x ( i ) x^{(i)} x(i) -代表第i个输入变量
y ( i ) y^{(i)} y(i) -代表第i个输出变量
( x ( i ) , y ( i ) ) \left(x^{(i)}, y^{(i)}\right) (x(i),y(i))-代表第i个训练数据
( x ( i ) , y ( i ) ) ; i = 1 , … , m \left(x^{(i)}, y^{(i)}\right) ; i=1, \dots, m (x(i),y(i));i=1,,m-代表具有m个数据的训练集

b. 学习目标
h ( x ) h(x) h(x)-假设函数, X → Y X \rightarrow Y XY,输入到输出的映射
通过数据拟合出一个假设函数,通过输入x能够得到输出y。

学习假设函数

(2) 损失函数(Cost Function)

不论是机器学习何种方法,代价函数是贯穿始终的优化目标,通过优化代价函数得到最终需要的结果。
a. 直线方程假设
假设房子的大小和房价成直线关系,因此我们定义假设函数 h θ ( x ) h_{\theta}(x) hθ(x)如下所示:
h θ ( x ) = θ 0 + θ 1 x h_{\theta}(x)=\theta_{0}+\theta_{1} x hθ(x)=θ0+θ1x
b. 损失数定义
如何选择 θ 0 , θ 1 \theta_{0,} \theta_{1} θ0,θ1,使得 h θ ( x ) h_{\theta}(x) hθ(x)更接近训练集 ( X , Y ) (X, Y) (X,Y)
定义损失函数(Cost Function),表示预测值与实际值差值的平方和,除以2m,即:
J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( y ^ ( i ) − y ( i ) ) 2 = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m} \sum_{i=1}^{m}\left(\hat{y}^{(i)}-y^{(i)}\right)^{2}=\frac{1}{2 m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2} J(θ0,θ1)=2m1i=1m(y^(i)y(i))2=2m1i=1m(hθ(x(i))y(i))2
其中, y ^ i \hat{y}_{i} y^i= h θ ( x i ) h_{\theta}\left(x_{i}\right) hθ(xi)即对应训练数据 x ( i ) x^{(i)} x(i) 输入的预测输出。
c. 优化目标
求解$h_{\theta}(x)的问题,转化求 θ 0 , θ 1 \theta_{0,} \theta_{1} θ0,θ1 使得代价函数最小化。
min ⁡ θ 0 θ 1 J ( θ 0 , θ 1 ) \min _{\theta_{0} \theta_{1}} \mathrm{J}\left(\theta_{0}, \theta_{1}\right) minθ0θ1J(θ0,θ1)

(3) 梯度下降法

   关于为什么使用梯度下降法,求得 θ 0 , θ 1 \theta_{0,} \theta_{1} θ0,θ1 使损失函数最小,从而得到$h_{\theta}(x)。后面讲会有一篇专门讲解,从导数,偏导数,方向导数最后引出梯度下降。
   由于优化木目标是最小化损失函数 J ( θ 0 , θ 1 ) J\left(\theta_{0}, \theta_{1}\right) J(θ0,θ1),梯度下降的基本思想:
a. 基本步骤
step1 : 初始化 θ 0 , θ 1 \theta_{0,} \theta_{1} θ0,θ1 ,比如 θ 0 = 0 , θ 1 = 0 \theta_{0}=0, \theta_{1}=0 θ0=0,θ1=0
step2 : 沿着梯度下降的方向,不断修改 θ 0 , θ 1 \theta_{0,} \theta_{1} θ0,θ1 ,从而使得 J ( θ 0 , θ 1 ) J\left(\theta_{0}, \theta_{1}\right) J(θ0,θ1)不断减少,最终达到最小(全局或者局部最小)值。
temp ⁡ 0 : = θ 0 − α ∗ ∂ ∂ θ 0 J ( θ 0 , θ 1 ) \operatorname{temp}0 :=\theta_{0}-\alpha * \frac{\partial}{\partial \theta_{0}} \mathrm{J}\left(\theta_{0}, \theta_{1}\right) temp0:=θ0αθ0J(θ0,θ1)
temp ⁡ 1 : = θ 1 − α ∗ ∂ ∂ θ 1 J ( θ 0 , θ 1 ) \operatorname{temp}1:=\theta_{1}-\alpha * \frac{\partial}{\partial \theta_{1}} \mathrm{J}\left(\theta_{0}, \theta_{1}\right) temp1:=θ1αθ1J(θ0,θ1)
θ 0 : = \theta_{0} := θ0:= temp0
θ 1 : = \theta_{1} := θ1:= temp1
注意: θ 0 , θ 1 \theta_{0,} \theta_{1} θ0,θ1 必须同步更新,不能一次仅更新其中一个。

如下图所示:
在这里插入图片描述
b. 学习率控制
上述过程中 α \alpha α 叫做学习率,控制柜每次更新 θ 0 , θ 1 \theta_{0,} \theta_{1} θ0,θ1 的幅度。
α \alpha α 太小:容易造成训练时间过长,收敛过慢
α \alpha α 太大:容易造成不收敛,甚至发散
如下图所示:
在这里插入图片描述

2.3 线性代数基础

   由于训练数据庞大,特征向量维数较多,从而引入了多变量线性回归。这时候使用这种数值公式的表示,不太简洁方便,因此引入了矩阵和向量来定义 h θ ( x ) h_{\theta}(x) hθ(x) J ( θ 0 , θ 1 ) J\left(\theta_{0}, \theta_{1}\right) J(θ0,θ1)
X ( i ) = [ x 0 ( i ) x 1 ( i ) x 2 ( i ) ⋯ x j ( i ) ] X^{(i)}=\left[ \begin{array}{l}{x_{0}^{(i)}} \\ {x_{1}^{(i)}} \\ {x_{2}^{(i)}} \\ {\cdots} \\ {x_{j}^{(i)}}\end{array}\right] X(i)=x0(i)x1(i)x2(i)xj(i)-表示第i个输入变量,有j维度,默认 x 0 ( i ) x_{0}^{(i)} x0(i)=1

θ = [ θ 0 θ 1 ⋯ θ j ] \theta=\left[ \begin{array}{l}{\theta_{0}} \\ {\theta_{1}} \\ {\cdots} \\ {\theta_{j}}\end{array}\right] θ=θ0θ1θj-参数 θ \theta θ
h θ ( x ) = θ 0 + θ 1 x 1 + … + θ j x j = θ T X h_{\theta}(x)=\theta_{0}+\theta_{1} x_{1}+\ldots+\theta_{j} x_{j}=\theta^{T} X hθ(x)=θ0+θ1x1++θjxj=θTX

这样就简洁的定义了多变量线性回归的 h θ ( x ) h_{\theta}(x) hθ(x)
关于线性代数的基础知识,将单独用一篇博客来总结。

3. 总结

   以上就是本周的全部知识,我理解难点在于梯度下降这块,对梯度和偏导数不太熟悉的同学,请就相关知识点补充。

千里之行始于足下,加油!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值