机器学习--神经网络

cyx-garen cyx-garen     2022-12-21     468

关键词:

以下是最近在学习人工智能时整理的一点心得,没有很深的东西,觉得可以简单的了解一下机器学习与神经网络是什么

机器学习

所谓机器学习,就是在大量数据的运行下,使得计算机可以进行归纳,预测

 

机器学习分为三类:监督学习,无监督学习,强化学习

      

抛开强化学习不讲,这里的监督学习与无监督学习的根本区别在于:有无数据的标记(即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

  1. 我们不妨设w,b初始都为0,此时求得的所有y1也为0
  2. 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,训练出合适的模型

 

神经网络的底层就是机器学习/线性回归,在其基础上不断增加层数,增加神经元,来进行更为复杂的映射函数求解

机器学习12卷积神经网络(代码片段)

...法,深度学习是一种实现机器学习的技术。 2.全连接神经网络与卷积神经网络的联系与区别。  卷积神经网络也是通过一层一层的节点组织起来的。和全连接神经网络一样,卷积神经网络中的每一个节点就是一个神经元。... 查看详情

机器学习:神经网络之表达

...遂有此系列博客。本系列博客包含线性回归、逻辑回归、神经网络、机器学习的应用和系统设计、支持向量机、聚类、将维、异常检測、推荐系统及大规模机器学习等内容。* 查看详情

机器学习:深度学习简介

文章目录深度学习简介一、神经网络简介二、深度学习各层负责内容深度学习简介一、神经网络简介深度学习(DeepLearning)(也称为深度结构学习【DeepStructuredLearning】、层次学习【HierarchicalLearning】或者是深度机器学... 查看详情

学习《神经网络与机器学习(第3版)》高清英文pdf+中文pdf

神经网络是计算智能和机器学习的重要分支,在诸多领域都取得了很大的成功。在众多神经网络著作中,影响最为广泛的是SimonHaykin的《神经网络原理》(第3版更名为《神经网络与机器学习》)。结合近年来神经网络和机器学习... 查看详情

机器不学习:用神经模块网络学习推理

...收集问题,图像和答案的大型数据集,并训练一个单一的神经网络,从问题和图像直接映射到答案。如果大多数问题看起来像左边那个,我们就有一个熟悉的图像识别问题,而这类单一的方法是非常有效的:但是对于像右边那样... 查看详情

深度学习和传统的人工神经网络机器学习有啥区别? [关闭]

】深度学习和传统的人工神经网络机器学习有啥区别?[关闭]【英文标题】:WhatisthedifferencebetweenDeepLearningandtraditionalArtificialNeuralNetworkmachinelearning?[closed]深度学习和传统的人工神经网络机器学习有什么区别?[关闭]【发布时间】... 查看详情

机器学习基础——绪论

...上。一种可以比较好解决贡献度分配的问题的模型是人工神经网络,简称神经网络。因为神经网络模型一般比较复杂,从输入到输出的信息传递路径一般比较长,所以复杂神经网络的学习可以看成一种深度的机器学习... 查看详情

机器学习基础——绪论

...上。一种可以比较好解决贡献度分配的问题的模型是人工神经网络,简称神经网络。因为神经网络模型一般比较复杂,从输入到输出的信息传递路径一般比较长,所以复杂神经网络的学习可以看成一种深度的机器学习... 查看详情

python神经网络学习--机器学习--西瓜书学习笔记

...0c;学习路线应该是:机器学习->深度学习(包含神经网络)那么今天从西瓜书的绪论开始吧,我会尽量把我学到的以及书上难 查看详情

python神经网络学习--机器学习--西瓜书学习笔记

...0c;学习路线应该是:机器学习->深度学习(包含神经网络)那么今天从西瓜书的绪论开始吧,我会尽量把我学到的以及书上难 查看详情

人工智能,神经网络算法,机器学习,深度学习三者关系

对于很多初入学习人工智能的学习者来说,对人工智能、机器学习、深度学习的概念和区别还不是很了解,有可能你每天都能听到这个概念,也经常提这个概念,但是你真的懂它们之间的关系吗?那么接下来就给大家从概念和特... 查看详情

14深度学习-卷积(代码片段)

...一种实现机器学习的技术和学习方法。 2. 全连接神经网络与卷积神经网络的联系与区别。解析:卷积神经网络也是通过一层一层的节点组织起来的。和全连接神经网络一样,卷积神经网络中的每一个节 查看详情

机器学习进化史:从线性模型到神经网络

 【深度】机器学习进化史:从线性模型到神经网络本文作者:天诺2015-05-0516:54导语:RezaZadeh是斯坦福大学工程计算和数学研究所顾问教授,他主要专注于机器学习理论和应用,分布式计算。如果你对人工智能感兴趣,那他讲... 查看详情

14深度学习-卷积

...:是一种实现机器学习的技术,适合处理大数据2.全连接神经网络与卷积神经网络的联系与区别。联系:  全连接神经网络与卷积神经网络都是通过一层 查看详情

机器学习-神经网络(neuralnetwork)算法

...深度学习基础介绍:机器学习》课程背景以人脑中的神经网络为启发,最著名的算法是1980年的backpropagation多层向前神经网络(MultilayerFeed-ForwardNeuralNetwork)Backpropagation被使用在多层向前神经网络上多层向前神经网... 查看详情

重磅福利!!机器学习和深度学习学习资料合集

比較全面的收集了机器学习的介绍文章,从感知机、神经网络、决策树、SVM、Adaboost到随机森林、DeepLearning。《机器学习经典论文/survey合集》介绍:看题目你已经知道了是什么内容,没错。里面有非常多经典的机器学习论文值得... 查看详情

深度学习神经网络介绍

目录1深度学习简介2神经网络介绍1深度学习简介在介绍深度学习之前,我们先看下这幅图:人工智能>机器学习>深度学习深度学习是机器学习的一个子集,也就是说深度学习是实现机器学习的一种方法。与机器学... 查看详情

视觉机器学习读书笔记--------bp学习

...m)即BP学习属于监督式学习算法,是非常重要的一种人工神经网络学习方法,常被用来训练前馈型多层感知器神经网络。一、BP学习原理1、前馈型神经网络   是指网络在处理信息时,信息只能由输入层进入网络,随后... 查看详情