1.机器学习的任务
1.1 机器学习是什么?
具备找函数的能力 look for function
- 语音识别
- 图像识别
- 阿尔法狗,下棋(分类问题)
1.2 不同类型的函数
-1-回归: 函数输出一个标量(相当于回答填空题)
Regression:The function outputs a scalar
-2-分类:给定选项(类),函数输出正确的选项(相当于回答选择题)
Classification: Given options (classes), the function outputs the correct one
2.机器寻找函数三步曲
2.1 写出带有未知参数的函数
比如线性模型:y=b+wx
y:要预测的未知量
x:已知量 feature
w(weight)和b(bias):未知的参数,从数据中学习
2.2 定义Loss
Loss is a function of parameters 目的是表示出预测值和实际值之间的差距,是绝对值
2.3 使Loss最小化
目的:找出最好的一组w和b使Loss的值最小
方法:Gradient Descent
步骤:
1.先找出w使Loss的值最小
2.随机选取一个值w0,作为w的初始值
3.在w0处计算微分(或者斜率) Loss是纵轴,w是横轴
- 如果斜率是负的,左高右低,那么就增加w,以减小Loss
- 如果斜率是正的,左低右高,那么就减少w,以减小Loss
4.Loss减少幅度的影响因素
(1)斜率的绝对值越大,幅度越大
(2)人为规定的η值——学习速率,越大则学习越快,Loss减少越快(在模型训练的连续过程中,调节的"旋钮"叫做 hyperparameter 超参数)
5.按照以上步骤,迭代更新w,直到斜率为0
6.找出b使Loss的值最小,分开算
7.实际预测时会增加x的天数以减小Loss
3.用Soft Sigmoid优化线性模型
3.1 写出Soft Sigmoid函数表达式
线性模型有其局限性 Model bias ,数据不是一直单调递增或递减的,是有波动的
所有的红色折线都可以看成一个常数+一系列的和
用Sigmoid Function(蓝色曲线)逼近
改变w、b、c的值来改变Sigmoid Function,w改变斜率,b改变截距(左右移动),c改变height(高度)
把所有式子加起来就得到y
接下来用矩阵来简化计算,将加起来的式子展开来看
先看括号里面的,用x乘以wij再加上b
i表示sigmoid函数的数量
j表示特征的数量
用r表示b+wx
最后再用向量来表示矩阵
- 用σ表示sigmoid
- 用cT表示c1 c2 c3
- x表示特征
- 第一个b是数值,第二个b是向量
3.2 最优化Loss
W、b、cT、b均是未知的参数,统一用模型参数θ来表示
目的:找出最好的一组θ使Loss的值最小
步骤:
- 随机挑选θ的初始值θ0
- 在θ=θ0 的时候,L分别对θ求导,用g来表示
- 迭代计算,直到找到最好的Loss的值
4.怎么表示Hard Sigmoid
用Rectified Linear Unit(ReLU)来表示:c max(0,b +wx1)
Max和sigmoid都是激活函数