机器学习之神经网络算法

来源:互联网 发布:淘宝代运营收费标准 编辑:程序博客网 时间:2024/06/05 05:03

本文主要记录线性回归、逻辑回归和神经网络算法的基本思想及用实现过程。


简单回顾:

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

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

1.线性回归

输入(features):

x1,x2,...,xn

假设函数(hypothesis function):
hθ(x)=θ0+θ1x1+θ2x2+...+θnxn

误差函数(cost function):
J(θ)=12mi=1n(hθ(xi)yi)2

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

θj=θjα1mi=1n(yihθ(xi))x(i)j

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

2.逻辑回归

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

  误差函数的形式与线性回归的不同,但是思想还是一致的,

J(θ)=1mi=1m[y(i)log(hθ(x(i)))+(1y(i))log(1hθ(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(θ)=1mi=1m[y(i) log(hθ(x(i)))+(1y(i)) log(1hθ(x(i)))]+λ2mj=1nθ2j

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

误差函数:

J(Θ)=1mi=1mk=1K[y(i)klog((hΘ(x(i)))k)+(1y(i)k)log(1(hΘ(x(i)))k)]+λ2ml=1L1i=1slj=1sl+1(Θ(l)j,i)2

实现步骤:
(1)为初始的权重赋以随机化的值
(2)用前向传递算法计算hΘ(x(i))
(3)计算误差函数J(Θ)
(4)用后向传递算法计算偏导Θ(l)jkJ(Θ)
(5)用梯度下降或者其他高级算法计算使得J(Θ)最小化的权重Θ

0 0
原创粉丝点击