• 人脸识别智能小程序 | 深度学习基础 | 01


    内容概况

    卷积神经网络是深度学习汇中一种非常有代表性的网络结构,所以这里会先介绍一些深度学习的相关概念。

    深度学习发展历程

    人工神经网络的概念其实在50年代已经提出,但是受限于时代,不被重视。

    06年Hinton提出,将多层感知机就命名为深度学习。

    12年,Hinton的学习Alex设计提出AlexNet,在ImageNet的图像分类比赛中一鸣惊人,从此引爆了深度学习的热潮。

    什么是人工神经网络?

    人工神经网络就是深度学习(06年Hinton说的),然后深度学习是机器学习的一种大类方法,和它同等地位的有类似聚类算法、支持向量机等。

    如上图,图中一个一个圆圈就是一个一个神经元,多个神经元按照层次的形式组成神经网络。

    神经网络的数据是按照层次结构从左向右流动的,依次可以划分输入层、隐藏层、输出层

    人工神经网络就是一个多层感知器模型。

    什么是感知器?

    感知器

    • 第一个具有完整算法描述的神经网络学习算法
    • 任何线性分类或线性回归问题都可以使用感知器来解决

    分类:预测的结果是离散值。

    回归:预测的结果是连续值。

    感知器可以理解为就是一个神经元!

    从多层感知器到人工神经网络

    类似上图这么划分,可以把多层感知器划分成一个一个的单个感知器。

    什么是深度学习?

    深度学习:含多隐层多感知器就是一种深度学习结构。

    深度学习其实就是人工神经网络中,有多个隐藏层,多个感知器。

    如上图网络结构,隐藏层足够多,层数足够深,那么就可以归属于深度学习。

    深度学习中的概念变迁总结

    神经元(单层感知器)=》神经网络(多层感知器)=》含多隐层、多神经元的神经网络(深度学习)

    前向运算:“怎么用“?也就是网络结构向前运算的过程。

    反向传播:”怎么学“?也就是网络结构如何学习参数的过程。(有监督过程)

    前向运算

    前向计算:计算输出值的过程

    不一定是线性进行运算,这个神经元的运算方式可以自己定义,但是这里以线性运算作为例子讲解。将处理的函数抽象为(f(),g())

    注意:(w_{11},w_{12},...,b_1,b_2,...)这些的取值都是不一致的(也有可能一样,但各自是独立的变量)

    然后上图中的(w,b)是需要通过反向传播来计算的。

    反向传播

    反向传播:神经网络(参数模型)训练方法

    • 解决神经网络的优化问题
    • 计算输出层结果与真实值之间的偏差来进行逐层调节参数(梯度下降 自动)

    BP算法是神经网路参数求解的一种算法,对于神经网络,参数的求解过程,也被称为“训练”。

    神经网络的结构一般是人为先定义好,有多少层,每一层的结构具体是什么作用。但是每一层的具体参数是不知道的,那么就需要用到BP算法来帮助求解参数。训练的过程需要有标签的数据,所以神经网络也被称为有监督的算法。

    神经网络=网络结构 + 参数

    • 网络结构,人工设计的,规定好网络的层次,以及各层网络的作用,只需要规定好超参数
      • 超参数:需要人工给定的参数
    • 参数:BP算法求解

    神经网络参数训练是一个不断迭代的过程

    上图给出一个损失函数的例子(loss(w,b)=min({|wx+b-y|}^2)) 也就是(w,b)这两个是要优化求解的变量。

    梯度下降法

    导数:在一元函数中,可以理解为是变化率,是切线的斜率;在物理上可以理解为是瞬时速度,或是加速度。

    在多元函数(这里以三维为例子),一个点可以有无数条切线,所以为了描述这些各个方向的斜线的斜率,就有了方向导数的概念。过该点的每个方向的切线都有对应的方向导数。

    偏导数:对多元函数进行降维。 比如把二元降维为一元。

    理解偏导数对理解梯度下降算法有重要意义。

    梯度:(在多元函数中)函数在A点无数个变化方向中变化最快的那个方向。

    上图,A到B的过程,如果一直都是沿着切线的斜率方向(导数),那么就是到达B点最快的方式。那么该过程我们可以看作是一个寻找最小值的过程。

    如果是一个非凸的函数,例如右下图有B,D两个最低点,如果是从A开始,那么找到的最低点就是B,如果从C开始,那么找到的最低点就是D。

    梯度下降算法:沿着导数下降的方法,进行参数更新。

    [{Theta}^1={Theta}^0-alpha abla(Theta) ]

    具体形式化公式如上图所示,

    选择合适的步长/学习率,是参数优化中非常重要的一点。

    学习率过大,容易错过最优解;学习率过小,找到最优解需要很多步骤。

    一般一开始的学习率设置会比较大,比如0.01,目的就是为了让模型快速收敛。伴随网络迭代的过程,逐步调节学习率,使得学习率逐步的变小,比如1w次迭代后,将学习率调整为0.001,然后再迭代1w次后,再调整学习率为0.0001。

    非凸函数(函数中存在多个极值)最优化求解,一直是学术界和工业界非常难的问题。

    通过梯度下降算法,并不能保证求解出来的解是最优的,有可能只是局部最优。

    后面会讲解如何尽量保证最优解,这里不多做讨论。

    深度学习发展迅猛的原因

    常见深度学习模型

    小结

    什么是人工神经网络?

    人工神经网络就是深度学习(06年Hinton说的),然后深度学习是机器学习的一种大类方法,和它同等地位的有类似聚类算法、支持向量机等。
    
    人工神经网络就是一个多层感知器模型。
    

    什么是感知器?

    第一个具有完整算法描述的神经网络学习方法
    任何线性分类或线性回归问题都可以用感知器来解决(牛逼!)
    
    感知器可以理解为就是一个神经元!
    

    分类和回归的概念

    分类:预测的结果是离散值。
    回归:预测的结果是连续值。
    

    什么是深度学习?

    深度学习:含**多隐层**和**多感知器**就是一种深度学习结构。
    
    深度学习其实就是人工神经网络中,有多个隐藏层,多个感知器。
    

    前向计算和反向传播(BP算法)

    前向计算:计算输出值的过程
    反向传播:确定网络参数的过程(一般指权值和偏置),BP算法是神经网络(参数模型)训练方法
    
    **BP算法是神经网路参数求解的一种算法,对于神经网络,参数的求解过程,也被称为“训练”。**
    

    机器学习的训练过程是指?

    使用BP算法不断迭代优化参数的过程,就是机器学习的训练过程。
    

    导数、方向导数、偏导数、梯度

    导数:一元,切线的斜率(在一元情况下,导数就是梯度)
    方向导数:多元,过A点的切线有无数条,每个方向过A点的斜率叫做方向导数
    偏导数:对多元函数进行降维
    梯度:多元,过A点无数个方向中变化最快的那个方向
    

    梯度下降算法、学习率、局部最优

    梯度下降算法:沿着导数下降的方法,进行参数更新。 
    
    选择合适的步长/学习率,是参数优化中非常重要的一点。
    学习率过大,容易错过最优解;学习率过小,找到最优解需要很多步骤。
    
    非凸函数(函数中存在多个极值)最优化求解,一直是学术界和工业界非常难的问题。
    通过梯度下降算法,并不能保证求解出来的解是最优的,有可能只是局部最优。
    
  • 相关阅读:
    jquery+ajax+ashx。ashx的使用方法
    如何在ashx页面获取Session值
    模式DIV。
    .net 中文传参
    5分钟无操作,退出,操作方法,关闭页面
    SQL Server DATEDIFF() 函数(SQL计算时间差)
    Sql server 事务的两种用法
    正则表达式相关
    jQuery AJAX实现调用页面后台方法。调用ashx方法
    时间差(类.精确到秒).net中实现Datediff类C#
  • 原文地址:https://www.cnblogs.com/Rowry/p/15011615.html
Copyright © 2020-2023  润新知