deep learning
01-regression
(1)Machine Learning
让机器具备一个找函式的能力
different types of function
预测-regression:要找的函式,他输出的是一个数值 分类-classfication:函式的输出,从设定好的选项里面选择当一个当作输出 创造-structured learning:机器学会创造,产生有结构的东西 超参数:学习率 batch的大小 模型的层数 一些比较重要的概念和名词需要多看多想多理解多记忆
(2) eg(找到函数3个步骤):
写model->输入参数个数计算loss->找到能让loss最小的参数
1.Function with Unknown Parameters(写出一个带有未知参数的函式)⇒Model
2. Define Loss from Training Data
y和lable
3. Optimization(优化)
找到能让损失函数最小的参数
补充:选->算对loss的微分->改参数值
(3)Liner model
//线性模型 根据周期性,修改模型->考虑前7天,甚至更多天的值
⭐(4)Piecewise Linear Curves
//(Sigmoid函数的意义)
1.模型定义// 定义:由多段锯齿状的线段所组成的线
⇒ 可以看作是一个常数,再加上一堆蓝色的 Function(Hard Sigmoid)
- 用一条曲线来近似描述这条蓝色的曲线:Sigmoid函数(S型的function)
- 【事实上,sigmoid的个数就是神经网络中的一层的neuron节点数(使用几个sigmoid是超参数)】
1. 可以用 Piecewise Linear 的 Curves,去逼近任何的连续的曲线
2. 每一个 Piecewise Linear 的 Curves,都可以用一大堆蓝色的 Function加上一个常量组合起来得到
3. 只要有足够的蓝色 Function把它加起来,就可以变成任何连续的曲线
(5)Sigmoid函数
x1 的值,趋近於正无穷大的⇒收敛在高度是 c 的地方 x1 负的非常大的,分母的地方就会非常大⇒ y 的值趋近於 0.
调整 w,b,c ,可以得到各种不同的sigmiod来逼近”蓝色function“,通过求和,最终近似各种不同的 Continuous 的 Function
- 如果你今天改w你就会改变斜率你就会改变斜坡的坡度 - 如果你动了b你就可以把这一个 Sigmoid Function 左右移动 - 如果你改 $c$你就可以改变它的高度 //总结:利用若干个具有不同 w,b,c的Sigmoid函数与一个常数参数的组合,可模拟任何一个连续曲线(非线性函数)
扩展到多个特征:
- j等於1 2 3,输入中x1代表前一天的观看人数,x2 两天前观看人数,x3 三天前的观看人数 - 每一个i就代表了一个蓝色的 Function,现在每一个蓝色的 Function,都用一个 Sigmoid Function 来近似它 - $w_{ij}$第i个sigmoid给第j个特征的权重
转化为矩阵计算+激活函数形式:
2. 写出loss函数
因为所有的参数统称为 \theta,所以Loss表示为 L(\theta)
设定的方式没有不同。
3. 优化过程
仍然是梯度下降。 (1) 选定初始参数值(向量)$\theta_0 (2)对每个参数求偏导/微分(即,求梯度向量) (3)更新参数,直至设定的次数
(6)Batch training
批训练->batch training 每次更新参数时,只使用1个batch里的数据计算Loss,求取梯度,更新参数 > batch大小也是超参数
(7)ReLU
模型变型⇒relu (Rectified Linear Unit,线性整流单元) 把两个 ReLU 叠起来,就可以变成 Hard 的 Sigmoid。
(8)Activation Function
激活函数