挖坑
在家准备论文,看到Datawhale发了14天动手学习AI的宣传,虽然没带笔记本回家,网也不太好,还是决定试一下。话不多说,现在开始。
首先,Task 1是
线性回归;Softmax与分类模型、多层感知机
线性回归与梯度下降
模型
这里给出的是关于房价预测的模型,我大学的时候做数学建模,用SAS曾经跑过这个model,是关于租房买房的可行性探究,先说当时的结论,在通胀率5%时,20年内租房比买房划算,通胀率达到10%左右时,25年内租房比买房划算,这是在充分考虑银行利率和合理房租上涨的前提下。
回到这个问题本身,在简化问题时,只考虑房屋面积和房龄对于房价的影响,假设线性回归的output和各个input是线性关系,那么就有
那,因为简化模型,只需要考虑和,.
因为一般机器学习算法里不会出现解析解(analytical solution),所以这里我们通过优化算法有限次迭代,得到数值解(numerical solution)。
这里用到的优化方法是小批量梯度下降(mini-batch stochastic gradient descent),选取步长大小为,批量值选取为,一般为正
训练过程
定义好模型结构之后,我们要通过以下几个步骤进行模型训练
- 初始化参数,其中包括权重ωiωi和偏置bb,对其进行初始化(如0均值,1方差)。
- 网络正向传播,计算网络输出和损失函数。
- 根据损失函数进行反向误差传播 (backpropagation),将网络误差从输出层依次向前传递, 并更新网络中的参数。
- 重复2~3步骤,直至网络训练误差达到规定的程度或训练轮次达到设定值。
Softmax与分类模型
假设有一个数组,
表示中的第个元素,那么这个元素的softmax值为:
多层感知机
多层感知机包括输入层、隐藏层和输出层
输入和输出个数为别为4和3,中间隐藏层中包含了5个隐藏单元。由于输入层不涉及计算,多层感知机的层数为2。隐藏层中的神经元和输入层各输入完全连接,输出层中的神经元和隐藏层中的各神经元也完全连接。因此多层感知机中的隐藏层和输出层都是全连接。
具体来说,给定一个小批量样本∈,其批量大小为,输入个数为。假设多层感知机只有一个隐含层,其中隐层单元个数为。记隐藏层的输出为,有∈,因为隐藏层和输出层均为全连接层,可以设隐藏层的权重参数和偏差参数为别为ℎ∈和∈,输出层的权重和偏差参数分别为∈和∈
激活函数
sigmoid函数
sigmoid函数可以将元素的值转变到0和1之间
根据链式法则求导
′()=()(1−())
tanh函数
tanh函数(双曲正切)可以将元素的值变换到-1和1之间:
根据链式法则求导
tanh函数的导数
ℎ′()=1−ℎ2()
多层感知机就是含有至少一个隐藏层的由全连接组成的神经网络,且每个隐藏层的输出通过激活函数进行变换。多层感知机的层数和各层隐藏层中隐藏单元个数都是超参数。以隐藏层为例并沿用本节之前定义的符号,多层感知机按一下方式计算输出:
其中,表示激活函数。在分类问题中,我们可以输出做softmax运算,并使用softmax回归中的交叉熵损失函数。在回归问题中,我们将输出层的输出个数设为1,并将输出直接提供给线性回归中使用的平方损失函数。
小结
多层感知机在输出层与输入层之间加入了一个或多个全连接隐藏层,并通过激活函数
对隐藏层输出进行变换
常用的激活函数包括ReLU函数,sigmoid函数,tanh函数
感悟
markdown真的是……一言难尽,还是我不熟悉的原因吧?公式敲起来真的是炒鸡麻烦,加油吧