听课(李宏毅老师的)笔记,方便梳理框架,以作复习之用。本节课主要介绍了什么是机器学习,机器学习的类型和流程,用一个现实中的例子详细地展示了整个工作流程。
1. 机器学习的定义
2. 不同的函数类型
- 预测数字
- 分类(不仅包括二分类,还有像阿尔法狗下围棋也是一种分类,不过是更复杂的分类)
但是除了这两个类型外还有更复杂的任务——结构学习
就是创造一些有结构的东西,比如图片和文档
3. 用一个例子来了解机器学习的过程
3.1 定义一个函数
3.2 定义损失函数
总的损失函数值就是把每个真实数据与预测值相减,取绝对值,相加,再除以数据个数。当然这只是一种计算损失函数的方法称为MAE,还有MSE等。
3.3 最优化
优化问题有很多方法,最常用的是梯度下降。
整体计算方法如下图红框所示
3.4 总过程小结
一共三步
4. 预测时发现问题并引入数据的周期性
我们之前定义函数的时候,只考虑到了前一天对预测结果的影响,实际上预测出来的效果就像是真实数据向右移动了一天一样。仔细观察发现人们观看该channel的频次具有周期性,所以建立函数时也应考虑到周期性。
调整函数为:
我们也可以如上图所示以28天、56天为周期
5. 线性模型太简单,引入激活函数Sigmod函数
前面建立的都是线性模型(Linear models),就算考虑到了周期性,这些模型也是非常简单的,我们需要考虑到更复杂的模型——sigmod函数。
6. 结合产生新模型:考虑到model bias和周期性
7. Batch与Epoch
batch有batch size,总的数据除以batch size就是batch 的个数。
看一次batch后更新一次theta参数。一个Epoch就是把所有batch看过一遍。
8. 更常见的激活函数ReLU函数
实际上就是跟0比较谁大谁就是输出,很直接很暴力很简洁,我喜欢
9. 多来几次以上流程就是套娃而已
10. 这么好怎么不多来几层
物极必反啊家人们,会出现过拟合现象。模型会在训练集上训练过度,超级模仿训练数据,导致在测试集上表现不好