上接task1的
线性模型:
定义
这些模型都是把输入的特征 x 乘上一个权重,再加上一个偏置就得到预测的结果,这样的模型为线性模型。
与task1中的函数模型相似,为y=wx+b,w为权重,b为偏置。
ps1:
模型应选取多组数据,少数的数据会有偶然误差,泛化性弱。
分段线性曲线
(由于线性曲线过于单一,而很多数据并非线性单调,所以需要分段)
并非是条纯直线段,可以是折线,与实际点更加相似。
用 Sigmoid 函数来逼近 Hard Sigmoid。
函数为y=c*1/(1+e^-(wx+b)) 图像类似于斜坡函数,当点足够多时逼近曲线。
特点:
1. w改变斜率
2. b实现左右偏移
3. c改变最大值,也该面高度
分段函数最终式:
y(终)=b+y的求和
计算方法:
利用矩阵计算
如图:
ps:
Sigmoid 的数量是由自己决定的,而且 Sigmoid 的数量越多,可以产生出来的分段线性函数就越复杂。Sigmoid 越多可以产生有越多段线的分段线性函数,可以逼近越复杂的函数。Sigmoid 的数量也是一个超参数。
定义损失函数:
前文为 L(w,b) = L(θ) 判断θ的好坏
其中L(θ*)最小
计算方法:
对每一个未知参数微分,带入不同θ值
最好利用向量的方法。直至梯度尽可能为0.
模型变形:
ps:
在机器学习里面,Sigmoid 或 ReLU 称为激活函数(activation function)。
运用多个相同函数,在训练数据上损失更低了一些,但是在没看过的数据上,损失没有变化。
神经网络在函数:
Sigmoid 或 ReLU 称为神经元(neuron),很多的神经元称为神经网络(neural network)。人脑中就是有很多神经元,很多神经元串起来就是一个神经网络,跟人脑是一样的。人工智能就是在模拟人脑。神经网络不是新的技术,80、90 年代就已经用过了,后来为了要重振神经网络的雄风,所以需要新的名字。每一排称为一层,称为隐藏层(hiddenlayer),很多的隐藏层就“深”,这套技术称为深度学习。
过拟合:
在训练数据和测试数据上的结果是不一致的,这种情况称为过拟合(overfitting)。
机器学习框架:
训练集就要拿来训练模型,训练的过程是 3 个步骤。
1.先写出一个有未知数 θ 的函数,θ 代表一个模型里面所有的未知参数。fθfθ(x) 的意思就是函数叫 fθfθ(x),输入的特征为 x,;
2.定义损失,损失是一个函数,其输入就是一组参数,去判断这一组参数的好坏;
3.解一个优化的问题,找一个 θ,该 θ 可以让损失的值越小越好。让损失的值最小的 θ 为θ∗
且 θ*=arg min(L)
有了 θ∗ 以后,就把它拿来用在测试集上,也就是把 θ∗ 带入这些未知的参数,本来 fθfθ(x)里面有一些未知的参数,现在 θ 用 θ∗ 来取代,输入是测试集,输出的结果存起来,上传到Kaggle