李宏毅机器学习笔记(1)—机器学习基本概念+深度学习基本概念
机器学习基本概念
1、获取模型
步骤
1.1、假定未知函数
带未知参数的函数
1.2、定义损失函数
真实值:label
MAE
MSE
几率分布,cross-entropy?
1.3、优化
- 单独考虑一个参数
让损失函数最小,找导数为零的点
单独考虑w,w0是随机选取的一个数
斜率为负,左高右低,提高w,反之则反
埃塔:调整步伐,学习速率,自己设定的(即hyperparameters)
- 考虑两个参数
2、验证模型
预测未来数据
3、模型调整
观察真实资料,周期性的,每隔七天就特别低,这个模型显示只能预测一天,我们应该看一个周期七天的的数据,可能模型更精准,因此要调整模型,考虑七天的数据
线性回归模型太简单了,需要一个复杂的模型模拟预测,线性模型存在Model Bias
引入threshold
Piecewise LInear Curve线段组成
如果是连续的曲线,逼近
因此,假设X和Y关系复杂,那么我们假定一个带有未知数的函数,这个函数表示一堆蓝色的函数(Hard SIgmoid)加上一个常数。这个蓝色函数公式如何写?直接写不容易,可以用曲线逼近,用sigmoid函数(即S形的函数)
调整b和w,可以获得不同形状的函数,来逼近蓝色函数
逼近模拟后获取新模型,之前使用单个特征值(x),接下来过渡到使用多个feature(x)
直观方式,考虑3个特征,j=1,2,3;i:一个i代表一个蓝色函数/sigmoid函数。wij表示第i个sigmoid函数在第j个特征处的权重
转换成矩阵
用向量矩阵表示防治法,则转换成如下
接下来,找未知参数,重新定义一下符号,x:feature;未知参数:w,b,cT,b,把这些拼起来,编程一个长向量
至此,完成了机器学习第一步:函数定义
接下来进行第2步,求损失函数
最后,优化,找一组set使误差最小,对每个一未知的参数计算微分
取部分资料进行计算,再用下一个资料算gradient,再更新参数,每次参数更新叫做update,所有batch看过后叫epoch
区别update和epoch,batch size也是hyperparams
- ReLU函数
hard sigmoid vs soft sigmoid
换成relu函数
接下来,继续改模型,反复求a,多做几次的sigmoid或relu运算
一层的意思是,通过一次ReLU运算
除夕,机器不知道
测试了几个模型,还不知道一个好名字,
神经网络,80,90年代已经出现,很多layer就叫deep,神经网络越叠越深
反复用ReLu或sigmoid函数,为什么不变胖,而是变深
overfitting(过拟合):在训练资料好,在测试资料上不好
为了预测未来的资料,应该选3层还是4层,选模型问题