机器学习之神经网络
小标 2018-09-21 来源 : 阅读 1366 评论 0

摘要:本文主要向大家介绍了机器学习之神经网络,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

本文主要向大家介绍了机器学习之神经网络,通过具体的内容向大家展现,希望对大家学习机器学习入门有所帮助。

以下是最近在学习人工智能时整理的一点心得,没有很深的东西,觉得可以简单的了解一下机器学习与神经网络是什么
机器学习
所谓机器学习,就是在大量数据的运行下,使得计算机可以进行归纳,预测
 
机器学习分为三类:监督学习,无监督学习,强化学习
      
抛开强化学习不讲,这里的监督学习与无监督学习的根本区别在于:有无数据的标记(即y值)
我们将输入的数据称之为数据的特征,一组特征为一个样本,需要求得的结果为标签
 
例:
  1. 有一组数据,格式为(身高,体重,BMI)
        这里使用监督学习的效果为: 输入若干样本的特征值(身高,体重)与对应的标签(BMI),让计算机得出一个可以得出 Y=AX+b 这样的函数(称之为模型),然后对后续的样本值,根据模型计算得出标记
 
  2.一组数据,格式为(身高,体重)        即无y值
        无监督学习:   根据身高,体重将他们聚类,如高瘦的一组,低矮的一组
 
 
监督学习
监督学习分为:分类,回归
       分类,就是指y为离散数据, 如通过 特征(尺寸,logo)判别 标签(手机品牌)
       回归则是指y为连续数据,如上述通过 特征(身高,体重)判别 标签(bmi)
 
线性回归
以上面的身高,体重 BMI为例
(但是由于三维图不方便绘画,且认为BMI与身高相关,由二维开始理解原理)    
如图1-1所示,我们可以看出来有一条虚线可以拟合出身高与BMI的关系,但是如何根据样本数据求得该直线
下面说一下机器学习的步骤:
       W指权重,b指偏差值,y1为预测的输出值,y为真实值      y1 = wx+b

我们不妨设w,b初始都为0,此时求得的所有y1也为0
Loss函数(损失函数)指的是预测得出的y1与真实的y的平方差,(此处加上1/2是为了计算方便),由图1-2可以看出,loss函数为凸函数,在导数(即斜率)为0时,loss函数值最小,即此时的w与b最佳,但由于很难做到预测的y1完全等于y,所以在此处我们需要得出可以使得(y1-y)2尽可能小的w与b

    我们在开始y1=0时,位于a1点,由图1-2可以得出,始终沿着斜率下降的方向,我们总会走到最低点附近,此时的w与b满足loss函数最小,则y1=wx+b为我们所求模型
    具体请看公式1
    根据斜率逐渐趋近于0来使得loss损失函数最小的方式称之为梯度下降(Gradient Descent)
 
 
  3.对于y1,y1=wx+b, 因此上面的损失函数对y1求导可以解析为L对w,b求导
  又根据链式法则(图中公式),可以求出此处L对w与b的导数,然后根据求得结果重新定义w,b作为y1的模型
  根据先定义的w,b求得y1,再根据y1反推w,b并重构造,称作反向传播
 
 
  4. 接下来就很好理解了,我们将样本不断输入,使得w,b不断地重构造,最终会得出结果使得Loss函数位于最低点附近,此时的模型就符合我们的需求
 
  对于多个特征值来说,y1=w0x0+w1x1+w2x2…+b 同理
 
逻辑回归
线性回归只可以拟合普通的线性函数,但是对于不满足线性条件无法做到,因此我们引入逻辑回归,构造非线性函数
逻辑回归公式,如图公式1(在线性回归基础上做了一个转换)
在逻辑回归中,损失函数与线性函数不同,使用交叉熵公式(但是原理一至)
同线性回归,对其进行梯度下降与反向传播,求出使得损失函数最小的w,b
 
 
 
 
 
逻辑回归是非线性回归,他可以拟合出下面这种情况(这里不谈过拟合/欠拟合的概念)
       之所以逻辑回归可以这样表示,这就需要了解泰勒公式
       e^x = 1+x+x^2/2!+x^3/3!+…+…
 
 
 
 
机器学习还有许多的内容,如:SVM,决策树,朴素贝叶斯…
神经网络
首先需要知道几个知识:
       神经网络包含:输入层,隐层,输出层(对应输入样本特征,不可见的计算过程,输出的标签)
       逻辑回归可以看做是最简单的神经网络
       在计算神经网络层数时,往往不考虑输入层
      
       逻辑回归LR与简单神经网络NN区别如图
      
 
 
神经网络的原理同逻辑回归 (梯度下降,反向传播)
理论证明:多层神经网络可以拟合任意函数
通过门,以及不断增加的神经元,可以得到所求函数的反函数的近似形状,然后再进行sigmod转型,得到目标函数
多层指  1~n层隐层 + 1层输出层
 
人工神经网络可以分为以下三种类型
       DNN             深度神经网络
       CNN             卷积神经网络
       RNN             循环神经网络
      
其中,CNN常用来图像分析,        RNN用于自然语言处理,时序预测
 
结合智能网管业务业务存在忙时,闲时的场景具体分析,进行RNN的lstm进行时间预测分析
 
 
RNN神经网络
       两层(多层)神经网络可以近似的拟合任意函数
      
  但是对于非一般性的函数,
  如:时间序列预测,NLP自然语言处理,机器翻译
  这些由前面多个值影响后者的函数  就需要使用到RNN(循环神经网络)
 
       RNN神经网络与普通神经网络不同点在于: 每一次的输出,不仅受当前影响,也受前几个输入值影响
       比如:
              天气的变化:          可以由前几个时间段的值来进行评估
              自然语言处理:      由前面的词出现的频率对其进行预测
              语音识别:             根据前面的语音进行预测
 
       具体如下图,在考虑y值时,不仅需要计算x4,还需要考虑到x1-3,进行加权求和
      
 
 
 
 
根据一定数量的输入样本,进行前馈传播计算出y值,然后根据反向传播重定义w,b 不断缩减误差,训练出模型
由多层神经网络可以拟合任意函数得出结论: 若阈值与前若干个阈值存在一定的联系,则在RNN网络下,一定可以求出模型,近似拟合该函数
 
 
RNN不具备长期记忆能力, 如果间隔很长,会导致梯度爆炸,反向传播时会梯度消失,训练成本很大
x0,x1 很难影响到 ht+1 反向传播亦如此
现实意义就是很难由较多时间段前的数据影响到后者
(I’m from China,……..,I speak ___  ?Chinese)
 
 
 
因此采用RNN特殊类型的LSTM网络
 
LSTM
LSTM网络的核心就是解决了RNN的梯度爆炸/消失问题,可以学习长期依赖信息
下图是LSTM隐层的实现过程:
 
 
 
 
 
LSTM有三个门:
       忘记门,输入门,输出门
 
忘记门   
  可以理解为当前值xt 对前面向量和ht-1 的影响,并对当前细胞状态Ct-1进行部分保留(如前面ht-1为I come from … ,当前xt为She,则将细胞状态Ct-1中遗忘掉I )
 
输入门
       遗忘门负责将细胞状态中部分遗忘,添加则由输入门负责
 
输出门
       经过计算后,得出输出的结果
 
 
所有RNN可以做的LSTM都可以做到,而且消除了梯度消失的问题.
搭建LSTM神经网络:
 
       根据前20日的阈值来估计随后一天的阈值
      
1.引入数据,数据集按照时间排序,以[0:20][1:21]每20天的阈值 作为输入集, [21][22]…作为标签集  数据需要标准化
 
      
 
2. 搭建lstm神经网络,采用tensorflow框架,一层隐层,5个神经元
 
 
 
3.训练模型,训练数据为指定DN的前5/7个样本集,迭代10000次,以batch流输入,并保存模型
 
 
 4.使用模型进行预测,
  预测对象为指定DN的后2/7个样本集
  第一组:    第一次输入层为20个时间段前的数据集合,接着将预测值插入输入层尾(即保持使用预测的值作为输入层)
  第二组:    使用测试集进行预测

 
 
 
 
 
结果如图所示:
 
蓝色       训练集的阈值
黄色       全部基于预测的值不断迭代进行的分析
绿色       以测试集真实值X进行的预测
 
可以看出,在全部以预测的值为基础的前提下,开始的效果很好,但若是根据该值继续进行,越往后,偏差越大
如果以每日的准确阈值来对后几日进行预测,结果于真实值相差不多
 
 
 
 
总结
神经网络,我个人理解 就是一个找出最佳拟合函数模型的实现方式,根据样本的持续输入,由误差函数反向传播,推倒出w,b,训练出合适的模型
 
神经网络的底层就是机器学习/线性回归,在其基础上不断增加层数,增加神经元,来进行更为复杂的映射函数求解

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标人工智能机器学习频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程