​李宏毅2021春机器学习课程​​P1

使用代码python

辅助库,numpy(多维矩阵计算库),matplotlib(numpy的图形库)


P2

一、什么是机器学习?

机器学习是寻找一个函数的过程,这个函数可以完成我们的需求。

二、函数的种类

Progression 输出的只是一个数

Classification 输出的是分类,如YES/NO

Structured Learning 创造

三、机器怎么找这个函数?(训练)

分三步



写出一个多项式,猜测(domain knowledge 当前领域的经验(模型)),如y = a*x + b
a:weight 权重,乘数
b:bias 偏移,加数



定义一个Loss(a,b) 值体现了a和b是否好
label 正确的数值(标签)
误差e,分为MAS和MSE



Optimization 最优化
使用Gradient Descent 梯度下降Loss方法
η:Learning rate 学习速度:参数改变的速度
hyperparameters:超参数 自己设定的(比如学习多少次)
1)先给自定义的a和b初始值
2)学习过程的函数:
机器学习day1_梯度下降
3)找到最优a和b
local minima: 局部最小,有这个问题,但不是关键
global minima: 全局最小



P3

上述 ​​y = ax + b​​ 这是一个线性模型,比较简单,因此存在问题,称之为Model Bias

Piecewise Linear 分段线通过蓝色函数(hard sigmoid)组成:

机器学习day1_Machine Learning_02

用如下sigmoid函数来逼近上述分段函数(一种​​激活函数​​)

机器学习day1_Machine Learning_03

函数模型的变化

机器学习day1_梯度下降_04

最终表达式

机器学习day1_迭代_05

未知参数

机器学习day1_Machine Learning_06

总参数合计 ​​θ​

机器学习day1_Machine Learning_07

Loss函数则表示为 L(θ)

寻找最佳 θ*


  1. 取初始值 θ0
  2. 更新参数,方法同P2,使用微分
    把所有练习数据分成很多batch(批),分组训练(批量梯度下降)
    看完所有batch叫一次epoch
  3. 得到最后的值

目前超参数:sigmoid,batch数,Learning rate

可以多次迭代,得到更多​​隐藏层​​,使得结果更好,多层感知

每一个激活函数组成一个神经元

现在成为隐藏层Hidden Layer

整个结构就是一个神经网络

现在不这么说,现在说,深度学习

但是层数过多会出现问题:

Overfitting 过拟合

课外:

机器学习day1_迭代_08


P4