您的位置:首页 > 理论基础 > 计算机网络

机器学习之神经网络算法

2017-04-22 14:36 375 查看
本文主要记录线性回归、逻辑回归和神经网络算法的基本思想及用实现过程。

简单回顾:

  机器学习的主要组成部分:输入、算法、输出、训练集;核心思想:通过训练集数据优化算法的参数,以提升对未知输入的输出预测精度。这一算法优化过程被形象的描述为学习

一、最基础的机器学习就是线性回归逻辑回归了。

1.线性回归

输入(features):

x1,x2,...,xn

假设函数(hypothesis function):

hθ(x)=θ0+θ1x1+θ2x2+...+θnxn

误差函数(cost function):

J(θ)=12m∑i=1n(hθ(xi)−yi)2

为使误差函数值最小,用梯度下降(gradient descent)多次迭代计算合适的θi:

θi=θi−α∂∂θiJ(θ)

即θj=θj−α1m∑i=1n(yi−hθ(xi))x(i)j

由于不同的特征值(输入)取值范围趋于一致时可以加快梯度递减,所以可以对特征值进行适当缩放或标准化:

x=x−us

2.逻辑回归

  逻辑回归亦可称为分类问题。首先从简单的二元逻辑回归入手,即输出y={0,1}可以看做是线性回归基础上的变异,用sigmoid函数hθ(x)=11+eg(z) 对线性回归的输出估计值进行了归一化处理,hθ(x)∈(0,1)。

  误差函数的形式与线性回归的不同,但是思想还是一致的,J(θ)=−1m∑i=1m[y(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]

  计算合适的θi用的还是上面相同的梯度下降法。

  过拟合的问题:训练完的算法对训练集中的数据预测过于精准,使得函数对未知的输入出现较大的预测误差。

  解决方法:正则化

正则化的线性回归:

J(θ)=12m ∑i=1m(hθ(x(i))−y(i))2+λ ∑j=1nθ2j

Repeat { θ0:=θ0−α 1m ∑i=1m(hθ(x(i))−y(i))x(i)0 θj:=θj−α [(1m ∑i=1m(hθ(x(i))−y(i))x(i)j)+λmθj]} j∈{1,2...n}

正则化的逻辑回归:

J(θ)=−1m∑i=1m[y(i) log(hθ(x(i)))+(1−y(i)) log(1−hθ(x(i)))]+λ2m∑j=1nθ2j

3.神经网络算法

  神经网络算法虽然称得上是非线性算法,但是究其局部而言还是运用了线性回归的思维方式。

误差函数:

J(Θ)=−1m∑i=1m∑k=1K[y(i)klog((hΘ(x(i)))k)+(1−y(i)k)log(1−(hΘ(x(i)))k)]+λ2m∑l=1L−1∑i=1sl∑j=1sl+1(Θ(l)j,i)2

实现步骤:

(1)为初始的权重赋以随机化的值

(2)用前向传递算法计算hΘ(x(i))

(3)计算误差函数J(Θ)

(4)用后向传递算法计算偏导∂∂Θ(l)jkJ(Θ)

(5)用梯度下降或者其他高级算法计算使得J(Θ)最小化的权重Θ
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐