机器学习之神经网络算法

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


简单回顾:

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

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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值