概述

神经网络最主要的作用是作为提取特征的工具,最终的分类并不是作为主要核心。

人工神经网络也称为多层感知机,相当于将输入数据通过前面多个全连接层网络将原输入特征进行了一个非线性变换,将变换后的特征拿到最后一层的分类器去分类。

神经网络是由多个神经元组成的拓扑结构,由多个层排列组成,每一层又堆叠了多个神经元。通常包括输入层,N个隐藏层,和输出层组成。

输出层:分类任务中如果是二分类任务输出层只需要1个神经元,如果是K个分类问题,输出层要有K个神经元。对输出层的每个神经元代入分类函数就可以得到每个分类的概率大小,取最大概率的作为分类结果。对于多分类问题的分类器模型常采用Softmax回归模型,即多分类问题的Logistic回归模型。

输入层:以一个128x128像素的图像为例,人工神经网络只能处理一维的数据。所以要把图像按顺序展开为一维的像素数据。即(1,16384)1行和16384列的数据也是16384个特征。输入层的每个神经元仅接收一个输入特征,因此输入层的神经元个数和图像的特征数也即像素个数一样有16384个。那么每个神经元的1个输入需要求1个权重w,每个神经元要求一个参数b,因此输入层的待求参数就有16384x2 =32768。

隐藏层:中间的每层隐藏层可以根据需求设置多个神经元。其中每个神经元都要输入和前一层神经元的个数个输入特征。输入层比较特殊一个神经元只对应一个输入X,中间隐藏层每个神经元对应输入前一层所有神经元的个数个x。假如该隐藏层有328个神经元组成。连接的前一层是输入层有128x128=16384个神经元。那么每个神经元都对应16384个输入x,因此一个神经元的待求参数量为16384个w和1个b,那么该层所有的待求参数量为:(16384+1)x328=5,374,280‬个待求参数。可见人工神经网络的参数量非常多,难以计算而且很容易过拟合。

1、前馈神经网络具有很强的拟合能力,常见的连续非线性函数都可以用前馈 神经网络来近似.

2、根据通用近似定理,神经网络在某种程度上可以作为一个“万能”函数来使 用,可以用来进行复杂的特征转换,或逼近一个复杂的条件分布

3、一般是通过经验风险最小化和正则化来 进行参数学习.因为神经网络的强大能力,所以容易在训练集上过拟合.

4、神经网络的优化问题是一个非凸优化问题,而且可能面临梯度消失的问题。

单个神经元模型: 

神经网络结构: 

主要内容

神经元的模型:

在前馈神经网络中,各神经元分别属于不同的层.每一层的神经元可以接收 前一层神经元的信号,并产生信号输出到下一层.第0层称为输入层,最后一层称 为输出层,其他中间层称为隐藏层.整个网络中无反馈,信号从输入层向输出层 单向传播,可用一个有向无环图表示.

前馈神经网络结构

神经网络的本质是可以对输入特征进行任意复杂的非线性变换转换为易分类特征

前馈神经网络具有很强的拟合能力,常见的连续非线性函数都可以用前馈 神经网络来近似.

根据通用近似定理,对于具有线性输出层和至少一个使用“挤压”性质的激 活函数的隐藏层组成的前馈神经网络,只要其隐藏层神经元的数量足够,它可 以以任意的精度来近似任何一个定义在实数空间 ℝ

通用近似定理只是说明了神经网络的计算能力可以去近似一个给定的连续 函数,但并没有给出如何找到这样一个网络,以及是否是最优的.此外,当应用到 机器学习时,真实的映射函数并不知道,一般是通过经验风险最小化和正则化来 进行参数学习.因为神经网络的强大能力,反而容易在训练集上过拟合.

根据通用近似定理,神经网络在某种程度上可以作为一个“万能”函数来使 用,可以用来进行复杂的特征转换,或逼近一个复杂的条件分布

在机器学习中,输入样本的特征对分类器的影响很大.以监督学习为例,好 的特征可以极大提高分类器的性能.因此,要取得好的分类效果,需要将样本的 原始特征向量,这个过程叫作特征抽取.

多层前馈神经网络可以看作一个非线性复合函数 ,将输入映射到输出.因此,多层前馈神经网络也可以看成是一种特 征转换方法,其输出

作为分类器的输入进行分类.

(1)网络模型

 原输入特征经过多层隐藏层网络的非线性变换后                                                                             在最后输出层后面使用一个常用的传统机器学习分类器进行分类

***以上内容讲解了神经网络的结构,以及模型公式原理,怎样从输入数据x构建模型到输出y。           对应实战课程中构建模型的第一步,及其原理的讲解。

(2)构建损失函数,参数学习

完成了第一步,有了模型,下一步就是构建用于优化的损失函数,利用损失函数来优化出网络中所有的待求参数w和b

常用的损失函数使用过的是交叉熵损失函数,求其最小化

 yt对应真实标签,y_是模型预测的结果

(3)有了损失函数就可以根据实际的需要选择合适的优化器迭代优化上面的损失函数

(4)在实战应用中最后要构建模型评价指标如测试准确率,来监控模型训练的状态

优化过程采用反向传播来逐步更新参数梯度值,实际应用中各平台都支持自动梯度计算,这里暂不讲解。

补充:

神经网络的参数学习比线性模型要更加困难,

主要原因有两点:1)非凸优 化问题和2)梯度消失问题.

神经网络的优化问题是一个非凸优化问题

这样,误差经 过每一层传递都会不断衰减.当网络层数很深时,梯度就会不停衰减,甚至消 失,使得整个网络很难训练.这就是所谓的梯度消失问题(Vanishing Gradient Problem),也称为梯度弥散问题.

由于 Sigmoid 型函数的饱和性,饱和区的导数更是接近于 0

在深度神经网络中,减轻梯度消失问题的方法有很多种.一种简单有效的方 式是使用导数比较大的激活函数,比如ReLU等.

神经网络(NN)网络构建及模型算法介绍相关推荐

  1. Plackett-Luce模型算法介绍

    1 简介 最近学习了一下机器学习上经典的排序融合算法(Rank Aggregation)--Plackett-Luce模型,它的核心思想已经深深融入到我们生活的每个角落,大到总统选举,小到生活上小抉择 ...

  2. 距离矢量算法matlab实现,一种基于最小费用距离模型的城市生态网络构建方法与流程...

    本发明涉及生态网络构建技术领域,特别是涉及一种城市网络的构建方法. 背景技术: 最小费用距离是网络分析的一种计算方法,这种方法被用于物种保护.自然保护区功能规划.动物栖息地的确定.区域生态安全格局设计 ...

  3. 卷积神经网络(CNN)网络结构及模型原理介绍

    概述 本篇内容仅介绍卷积层,池化层等网络结构部分和构建原理,以及卷积的一些前提知识.全连接层的内容和分类模型及损失函数的构建优化和全连接神经网络相同,这里不再讲解. 神经网络模型构建及算法介绍:htt ...

  4. 智能计算之神经网络(Hopfield网络-DHNN,CHNN )介绍

    目录 1. 神经网络受欢迎的原因 2. 人工神经网络定义 3. 人工神经网络的学习能力 4. 人工神经网络的基本原理 5. 神经网络的研究进展 6. 神经网络的典型结构 6.1 单层感知器网络 6.2 ...

  5. 深度学习【使用pytorch实现基础模型、优化算法介绍、数据集的加载】

    文章目录 一 Pytorch完成基础模型 1. Pytorch完成模型常用API 1.1 `nn.Module` 1.2 优化器类 1.3 损失函数 1.4 线性回归完整代码 2. 在GPU上运行代码 ...

  6. 【神经网络与深度学习】CIFAR10数据集介绍,并使用卷积神经网络训练图像分类模型——[附完整训练代码]

    [神经网络与深度学习]CIFAR-10数据集介绍,并使用卷积神经网络训练模型--[附完整代码] 一.CIFAR-10数据集介绍 1.1 CIFAR-10数据集的内容 1.2 CIFAR-10数据集的结 ...

  7. [Pytorch系列-58]:循环神经网络 - 词向量的自动构建与模型训练代码示例

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

  8. mlp参数调整_人工神经网络算法介绍及其参数讲解

    算法介绍 神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成.每个节点代表一种特定的输出函数,称为激励函数(activation function).每两个节点间的连接都代表一个对于通 ...

  9. SSD系列算法原理讲解----(1)SSD系列算法介绍(主干网络、多尺度Feature Map预测)(笔记)

    SSD系列算法原理介绍 SSD算法介绍: Single Shot MultiBox Detector(One-stage方法) - Wei Liu在ECCV 2016提出 - 直接回归目标类别和位置 ...

最新文章

  1. python arp脚本_Python scapy 实现一个简易 arp 攻击脚本
  2. mongo备份索引_【MongoDB学习之四】索引 聚合 备份与恢复 监控
  3. 搜狗输入法在idea打不了汉字_IDEA开发软件在linux环境下使用搜狗输入法无法进行中文输入...
  4. 上传文件到ftp服务器
  5. python ----元组方法以及修改细节
  6. 进阶08 Collections实现类、Comparator比较器接口
  7. 思考小型管理软件的诸多问题:附美萍部分客户的销售统计表
  8. PopWindow使用实战
  9. paypal android 教程,android端集成paypal
  10. java 2的64次幂_2的N次方对照表 2的64次方等于几?
  11. 2021年Qt路线图
  12. 全国DNS服务器IP地址大全、公共DNS大全
  13. 解决IOS微信SDK初始化失败
  14. 17、Python的循环结构(一)
  15. LA 4043 Ants 二分图完美匹配
  16. Excel·VBA自定义正则表达式函数、使用
  17. 游戏贪吃蛇(c语言)
  18. DB-Engines:2016年10月份全球数据库排名
  19. 【CCF】公共钥匙盒
  20. C#操作IIS的代码

热门文章

  1. 为什么计算机32到64位,为你解答win764位和32位有什么区别
  2. 【MATLAB】手把手教你安装MATLAB R2021b(内含安装包)
  3. matlab 电化学程序,电化学软件 - 仿真模拟电化学系统
  4. 非关系型数据库 之 图数据库Neo4j的使用(Python3)
  5. Activiti6.0 (三)核心API
  6. mipi传输距离3米_常见的网络传输介质有哪几种?
  7. C语言频率计程序,基于单片机的频率计的C语言源代码
  8. Java并发编程:可见性、原子性和有序性问题
  9. 智能存储 | 视频 DNA ,独一无二的安全标识
  10. Arduino 语法、函数使用、最常用函数、arduino教程、arduino笔记、参考手册