1.1 感知机
你可以把感知机(Perceptron)通俗理解为一个函数,向函数输入变量,函数会输出。哪函数是如何做到的呢?很简单,我们为每个分配一个权重,根据大于或小于阈值,输出不同的结果。其公式如下:
我们设:阈值,则上式可以简化一下:
通俗解释下:一个女生选男票,代表身高,代表性格,代表长相。如果女生更青睐性格好的男生,那么对应的取值就会大,不在乎长相,那么对应的取值就会小。同时衡量了女生想谈恋爱的程度,越大说明女生越渴望恋爱。反之亦然。
1.2 S型神经元
我们对上面的,做一下处理有:,其中为:,也叫sigmoid function。于是有:
你可能会问我,为什么要这样做?因为sigmoid function 可以将的结果压缩到,,。并且sigmoid function 是一个可导函数,我们可以用导数进一步研究输出值与之间的关系。
1.3 神经网络的架构
其中hidden layer中每一个圈都代表一个S型神经元。这样的一个神经网络中我们有输入值和输出值。我们希望有⼀个算法,能让我们找到(m为上图中的箭头数)和(k为hidden layer,output layer神经元个数),以⾄于⽹络的输出 能够拟合所有的训练输⼊ 。为了量化我们如何实现这个⽬标,我们定义⼀个代价函数 :
其中a表示预测值我们的目标很明确就是寻找对应所有输入使函数取最小值时的。
1.4梯度下降法
分析一下上面的函数(loss function):是输入模型的所有样本,为对应的标签,两者都是不变的。所以的大小只与有关。于是便想:我们可不可以逐步探索,调整使的取值越来越小?于是有了梯度下降法(Gradient descent)。
对于一个函数,梯度下降的主要思想:
1.初始化。
2.不断改变的值,使不断减小至最小值。
梯度下降的过程如图所示:
现在你可能会说:鬼知道应该怎么调整会使变小。这时我们便要使用微积分工具了:
我们要使变小,即。于是有。我们取,,。
带入上式于是有。好了我们只要按照以下规则更新。就会使变小。
。
重复上述过程,直到的保持稳定。注意:的值要同时更新,切记不要求一次导更新一次!
2.1
网友评论