目录
1.Function with Unknown Parameters
编辑 2.Define Loss from Training Data
3.Function with Unknown Parameters
4.Define Loss from Training Data
摘要
这周学了机器学习的基本概念,包括机器学习的函式输入输出类型以及函数类别有哪些,分析training过程的三个步骤,包括简版和复杂模型版。以及神经网络的的结构,通过正向传播得到神经网络计算的结果的误差值,采用反向传播求误差对权重的梯度,回传误差,以调整权值降低误差。
一、机器学习基本概念
- 函数的输入可以是向量、矩阵、序列等等;
- 函数的输出可以是数值(称为regression 回归)、类别(classification 分类)、文本、图片等
函数的类型:
- regression:函数的输出是一个数值
- classification:首先要给出类别选项,函数根据输入进行判断,输出其正确的类别,例如,输入一封邮件可,函数判断是否是垃圾邮件,给出yes/No两个选项,从中先出一个选项。classification 的选项可以有多个。
- structure learning:让机器学会创造
二、Training简版三步骤
1.Function with Unknown Parameters
2.Define Loss from Training Data
loss函数可自己定义,以下常见两类:MAE、MSE,根据需求以及对任务的理解选择误差e计算方式。
3.Optimization(最佳化)
寻找最佳的参数值w*、b*使得L的值最小,即最优解。
可以根据观察的数据进行合适的调整,如图所示数据呈现周期性规律,七天为一个周期。
因此需要修改模型,将前七天的数据都列入考虑。当考虑的天数越多时,L的值越小,当考虑天数到达一个极限时,L的值就不会再发生变化。
这些模型都是把输入的x(feature)乘上一个weight加上bias,这样的模型有一个共同的名字叫作Linear Models。
三、更为复杂的Linear Models三步骤
1.Models Bias
对于Linear models来说,x跟y的关系就是一条直线,无论怎么改w、b,它永远是一条直线。因此无法拟合复杂的折线。
2.怎么找到一个含有复杂参数的Function
观察红线是可以由一个常数加上若干条蓝色的Function组成。红线=0+1+2+3
任何piecewise linear curve(分段线性线段)都可以看作是一个常数,再加上一堆蓝色的Function。
任何连续曲线,你只要取足够多的转折点,你都能用piecewise linear curve去逼近他
3.Function with Unknown Parameters
用来表示这些蓝色折线的Function就是Sigmoid Function。
- 调整w:函数的斜率变化
- 调整b:函数的水平位置变化
- 调整c:函数的高度变化
把不同的Sigmoid Function 叠起来以后,你就可以去逼近各种不同的Piecewise Linear 的 Function,然后Piecewise Linear 的 Function,可以拿来近似各种不同的 Continuous 的 Function。
更有弹性的含有未知参数的Function,可以通过带入不同的w、b、c,就可以变成不同的Function。通过Sigmoid函数可以一步一步进行扩展。
此时x表示为输入的特征内容。一个x即一个输入特征,j个x则为j个特征。
例如第二天的播放量y与前28天的播放量x均相关时,则需输入28个特征值。
将上图的蓝框式子用网络结构图展开表示:其中r为x的线性组合
所以总过程可以总结为下图三个向量式。
1. 先由x的线性组合得到r;
2. 再将r输入进sigmoid得到向量a;
3. 再将a进行一个线性组合得到最终输出y。
最后 y 可以用一个线性代数式表示,其中x是特征向量(feature),W , b , cT, b (注意两个b不是一个意思哦~)是未知参数 ,将未知参数列成一列,统称为θ
此时我们就重写了机器学习的第一步,重新定义了一个带多个未知参数的function!
4.Define Loss from Training Data
跟简版相比,区别就只是计算y的参数增多
5.Optimization of New Model
寻找最佳的参数值组*使得L的值最小,即最优解。
当数据数据很多的情况下,进行训练的时候,可以将数据分为几个batch。每个batch对应一批新的输入,即对应一批新的参数,即生成一个专属loss和一个专属梯度g。
第一个batch使用初始θ0,计算出专属L1和g1后,利用g1更新参数θ0 -> θ1;
第二个batch使用更新后的θ1,计算出专属L2和g2后,利用g2更新参数θ1 -> θ2;
第三个batch...
以此类推,直到最后一个batch优化最后一次θ,该θ即为最优θ。
把所有的batch看过一遍,称为一个epoch。例如,N=10000,B=10,那么一个epoch包含1000次update。
6.ReLU
两个relu叠起来就可以变成一个Hard Sigmoid,故ReLU的数量为2i。ReLU和Sigmoid在机器学习里就叫Activatiom function(激活函数)。
7.神经网络
输入x加权求和加偏差b后进入激活函数中称为一层layer,将输出a继续这个步骤第二次进入激活函数后输出称为第二层layer。多层意味着深,这样组成的网络即为deep learning。
将激活函数称作Neuron(神经元),运算的网络结构称为neural network(神经网络)
layer越多越好吗?
随着层数增加,测试集损失值在逐渐下降。但是,到第4层的时候,测试集的损失值反而上升了。我们把这种现象称为“过拟合”。意思就是在训练过得资料上有变化,但是在没看过的资料上没有变化。
四、深度学习
1.正向传播
一排neuron可能有若干个,Layer1的每个neuron会接给每一个Layer2的neuron,因此Layer2中的neuron的输入就是Layer1中每个neuron的输出,所以叫Fully Connect(全连接)。传递的方向是从前往后,所以是Feedforward(正向传递)