机器学习day1

李宏毅2021春机器学习课程

P1

使用代码python
辅助库,numpy(多维矩阵计算库),matplotlib(numpy的图形库)

P2

一、什么是机器学习?

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

二、函数的种类

Progression 输出的只是一个数
Classification 输出的是分类,如YES/NO
Structured Learning 创造

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

分三步

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

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

  3. Optimization 最优化
    使用Gradient Descent 梯度下降Loss方法
    η:Learning rate 学习速度:参数改变的速度
    hyperparameters:超参数 自己设定的(比如学习多少次)
    1)先给自定义的a和b初始值
    2)学习过程的函数:

    3)找到最优a和b
    local minima: 局部最小,有这个问题,但不是关键
    global minima: 全局最小

P3

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

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

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

函数模型的变化

最终表达式

未知参数

总参数合计 θ

Loss函数则表示为 L(θ)

寻找最佳 θ*

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

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

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

每一个激活函数组成一个神经元
现在成为隐藏层Hidden Layer

整个结构就是一个神经网络
现在不这么说,现在说,深度学习

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

课外:


P4

Tensor 张量

PyTorch和TensorFlow优缺点

# 生成张量
import torch

x = torch.tensor([[1, -1], [1, -1]])
print(x)

y = torch.zeros([3, 3])
print(y)

z = torch.ones([1,2,3])
print(z)

# 增加减少维度
print(z.shape)
z = z.squeeze(0)
print(z.shape)
z = z.unsqueeze(1)
print(z.shape)





posted @ 2021-08-06 10:59  fyhtom  阅读(52)  评论(0编辑  收藏  举报