小白深度学习入门系列


神经网络的构成、训练和算法

什么是神经网络

人工神经网络(Artificial Neural Network,ANN),简称神经网络(Neural Network,NN),是一种模仿生物神经网络的结构和功能的数学/计算模型,用于拟合各种函数。

一个神经网络,有两个基本要素:神经元和连接。

神经元

下图中红圈内就是一个神经元:

一个神经元,有输入(上图中神经元接受输入:x1,x2和x3x1、x2、x3),有输出(输出:yy),并在神经元内部进行操作,将输入映射为输出。

神经元内部的操作又包括两步:

  1. 对输入进行线性加权;

  2. 将线性加权结果经由激活函数映射为输出。

激活函数有很多种,下图中列举了一些常见的激活函数。

其中,NN 最常用的一种激活函数就是 Sigmoid 函数又叫做Logistic函数,就是逻辑回归的模型函数!

注意:如果神经元的激活函数是线性函数,那么这个 NN 就只能拟合线性函数。

但如果激活函数是非线性的,哪怕是非常简单的非线性(例如 ReLu),由它构建的 NN 都可以用于拟合非常复杂的线性或非线性函数。

因此实际使用中,一般都选用非线性函数作为激活函数。

连接

所谓连接,就是神经元组织在一起的形式。

不同的神经元通过连接结合在一起,形成了一个网络,例如下图:

这是一个典型的全连接两层神经网络。

其中,全连接是指前一层每一个神经元的输出都连接到后一层所有的神经元。

明明一共有三层(红、紫、绿),为什么说两层?因为最左侧的输入层是不计算到神经网络层数里面的!

一个神经网络的不同层级分为:输入层、隐含层(简称隐层)和输出层(最后一层)。除了输入层和输出层之外,所有的层都叫做隐层。

上图例子中我们只有一个隐层。

神经网络的训练

对人类神经系统的模拟

NN 可以用来做分类,也可以用来做回归,还可以用来聚类,总之这是一个几乎可以做任何事情的模型。

它的创造受到了人类中枢神经系统的启发。正是生物神经系统中的神经元及之间的连接,启发了 NN 的结构元素。

NN 的神奇之处在于,它只有结构,没有超参数,一旦结构确定,投入数据去训练就好了,并不需要一般机器学习模型必不可少的“调参”步骤。

而且,它可以用来拟合任意的函数(输入到输出的映射),具备无限的可能性。而不像统计学习模型那样,有一个预设的模型函数,适用范围明确但狭窄。

已知和未知

一个神经网络有几层,每层有几个神经元,这些神经元之间的连接是怎样的,以及这些神经元里的激活函数是什么——这些都是由用户指定的。在构建一个 NN 的时候,这些因素就都已经被定下来了。

既然这些都是确定的,那训练 NN 模型,又是在训练什么呢?实际上,对于一个典型 NN 而言,就是在训练各个神经元线性加权的权重。

NN 的学习任务可以是有监督的,也可以是无监督的,但无论如何,它实际输出的 Cost 函数都是可以得到的——对于有监督学习而言,Cost 就是输出与标签之间的差距;而对于无监督学习,Cost 则与模型的具体任务(领域)和先验假设有关。

训练过程

NN 的训练过程可以用下面这幅图来概括:

NN 的训练过程是一个迭代的过程,最初初始化可以认为是随机获得各个权值,然后每次迭代。

  • 输入样本进入到当前 NN 的每一个神经元,用现有的权值加权,然后再由激活函数输出给后面连接的神经元。这样一层层递进,最终形成 NN 整体网络的输出。

  • 这次运行的输出与目标相比对,计算出 Cost,然后再通过最小化 Cost 来反向调整网络各层、各个神经元的权值。

如此不断重复迭代,直至收敛。

训练算法

上述一次迭代中的两个运算过程,一个从前往后,从输入层算到输出层;一个从后往前,从输出层再反推回输入层。

这就引出了两个重要的概念:

前向传播(Forward Propagation,FP)和反向传播(Back Propagation,BP)。

简单而言,前向传播就是从前往后算,反向传播就是从后往前算。

当训练(Training)NN 的时候,我们既需要前向传播,也需要反向传播。但是当一个 NN 训练完成,用来进行推断(Inference)的过程中,就只需要前向传播了。(参见下图)

深度学习入门,一文讲解神经网络的构成、训练和算法相关推荐

  1. 深度学习入门笔记(六):误差反向传播算法

    专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...

  2. 人工智能,机器学习,深度学习入门好文,强烈推荐

    让我们从机器学习谈起 导读:在本篇文章中,将对机器学习做个概要的介绍.本文的目的是能让即便完全不了解机器学习的人也能了解机器学习,并且上手相关的实践.当然,本文也面对一般读者,不会对阅读有相关的前提要 ...

  3. 【深度学习】一文搞定面试中的优化算法

    深度学习各类优化器 借用古代炼丹的一些名词,我们可以把训练模型中的数据比做炼丹药材,模型比做炼丹炉,火候比做优化器.那么我们知道,同样的药材同样的炼丹炉,但是火候不一样的话,炼出来的丹药千差万别,同样 ...

  4. 走进深度学习:一文带你深入了解Deep Learning算法

    2020-05-02 17:00:00 全文共4028字,预计学习时长13分钟 图源:towardsdatascience 深度学习.机器学习.人工智能--你可能常常见到这些词一起出现,然而它们之间是 ...

  5. 《深度学习入门》实现三层神经网络前向传播

    使用python实现三层神经网络前向传播推理. #实现三层神经网络前向传播 import numpy as np #激活函数 def sigmoid(x):return 1 / (1 + np.exp ...

  6. MATLAB深度学习入门之旅

    目录 1. 简介 2. 使用预训练网络:使用已创建和训练后的网络进行分类 2.1 课程示例-识别一些图像中的对象 2.1.1  任务1:读取图像 2.1.2  任务2:显示图像 2.2 进行预测 2. ...

  7. 深度学习入门系列21:项目:用LSTM+CNN对电影评论分类

    大家好,我技术人Howzit,这是深度学习入门系列第二十一篇,欢迎大家一起交流! 深度学习入门系列1:多层感知器概述 深度学习入门系列2:用TensorFlow构建你的第一个神经网络 深度学习入门系列 ...

  8. 深度学习入门系列1:多层感知器概述

    本人正在学习<deep learning with python>–Jason Brownlee,有兴趣的可以一起学习. 仅供学习参考,不做商用! 大家好,我技术人Howzit,这是深度学 ...

  9. 深度学习入门系列23:项目:用爱丽丝梦游仙境生成文本

    大家好,我技术人Howzit,这是深度学习入门系列第二十三篇,欢迎大家一起交流! 深度学习入门系列1:多层感知器概述 深度学习入门系列2:用TensorFlow构建你的第一个神经网络 深度学习入门系列 ...

  10. 深度学习入门系列6项目实战:声纳回声识别

    大家好,我技术人Howzit,这是深度学习入门系列第六篇,欢迎大家一起交流! 深度学习入门系列1:多层感知器概述 深度学习入门系列2:用TensorFlow构建你的第一个神经网络 深度学习入门系列3: ...

最新文章

  1. sharepoint开机启动禁止
  2. UVa11452 Dancing the Cheeky-Cheeky(kmp)
  3. web前端面试题(含答案)
  4. 感知算法论文(四):Mask Scoring R-CNN (2019)译文
  5. CF1486B Eastern Exhibition
  6. 公众号向特定用户主动推送消息_SAP系统和微信集成的系列教程之三:微信用户关注公众号之后,自动在SAP C4C系统创建客户主数据...
  7. 看图识物_有声绘本故事《晚安,建筑工地》看图识物,嘘,晚安
  8. NHibernate.3.0.Cookbook第三章第8节的翻译
  9. java中activiti框架中的排他网关使用方法,多条件判断
  10. 【拼爹坑爹不比爹】深入理解css中position属性及z-index属性
  11. 用wxDraw.js制作酷炫的小程序canvas动画『wxDraw 小程序界的zrender』
  12. java驱动刷机_ProductTool(炬力芯片刷机工具+驱动) v5.46 中文安装免费版
  13. 权限设计=功能权限+数据权限
  14. 【清华大学陈渝】第二章 启动、中断、异常和系统调用
  15. 【Winform】 Enum逆向解析
  16. 软件工程 -- 状态转换图
  17. PPT中插入avi、mpg、flv、swf及rm、rmvb等视频文件的方法
  18. 数字电视业务PSI-SI学习系列
  19. kafka的epoch
  20. TexturePacker批处理python

热门文章

  1. php中this,self,parent三个关键字
  2. 电子学会青少年编程等级考试Python案例10
  3. June:Datawhale开源学习小程序升级啦!
  4. react 树形菜单_关于React 使用antd组件递归实现左侧菜单导航树(MenusTree)的示例...
  5. ​炸了!程序员现在没有这点技能都还不能就业了?
  6. 黑科技抗疫,Python开发者大集结!
  7. 王贻芳院士:为什么中国要探究中微子实验?
  8. ELECTRA:超越BERT,2019年最佳NLP预训练模型
  9. 阿里AI摘图像识别竞赛WebVision桂冠,万物识别准确率创世界纪录
  10. 程序员再也不能埋头敲代码了