5-机器学习之神经网络

目录

一 为什么要引入神经网络?

二 神经网络中的术语与回归中的区别

三 常见模型

四 前向传播

五 Cost Function

六 反向传播

1.反向传播与梯度下降

2.单个神经元的计算过程

七 训练神经网络的步骤



一 为什么要引入神经网络?

  对于参数过多或维度过高的计算,线性回归和逻辑回归计算起来不太现实。神经网络是比前两者更强大的非线性分类工具

二 神经网络中的术语与回归中的区别

1.激活函数跟逻辑回归中的sigmoid函数是一回事儿

2.权重(weight) 跟 回归中的参数 是一回事儿

3 bias 跟回归中的x0是一回事儿,且x0 通常赋值为1

三 常见模型

通常,把隐含层的节点称为“激活单元(activation units)",并有如下定义:

a_{i}^{j}:第j 层的第 i 个激活单元

\varnothing (j):控制第j 层到第j+1层的映射函数的权重矩阵

四 前向传播

 对于上述模型来说隐含层的数据由数据输入层得到,输出层的数据由隐含层得到,数据从第一层逐层往后传播并最终得到输出结果的过程称为前向传播

五 Cost Function

首先给出介个定义

  • L :神经网络的总层数
  • s_{l} : 第L层的单元数量(不含偏置单元)
  • K :输出单元/类型的数量
  • h_{\theta }(x)_{k} :假设函数中的第k个输出

对于神经网络来说,它由多个神经层相连组成,所以需要对他们进行求和

以逻辑回归的cost function 为例

逻辑回归只有一个输出。而神经网络假设由K个输出,则其cost function 定义如下

六 反向传播

正向传播是计算下一层的输出值,而反向传播是为了在模型预测出错时对模型参数进行调整

原理:当得到最后一层的预测误差之后,对误差取微分,使上一层的误差变小,逐层传递回去(不包括输入层)。从而使整体误差变小。上面已经给出了代价函数的定义,反向传播是让代价函数最小的方法来实现的。

 

 

1.反向传播与梯度下降

与回归算法一样,也可以用梯度下降法来做参数的更新

但是神经网络里面通常有上百万个参数,意味着上述的向量是上百万维的。这通常是不容易求解的,所以就引入了反向传播算法

反向传播算法的目的就是求神经网络中的参数(weight+bias)

梯度下降和反向传播的关系:反向传播就是梯度下降,只不过反向传播是计算梯度下降的一种更为有效的方式(计算的较快)

数学原理:求导的链式法则

举例如下:

对于神经网络来说,对求total loss 对某个参数的偏微分可以按如下方式,两边分别求导得到

 其总Loss 为上图中的L(\theta ), 对左右两边分别求对w(其中的某个参数)的偏微分。

2.单个神经元的计算过程

先考虑其中的一个神经元

\partial z/\partial w:对所有的参数计算偏微分,称之为前向传播

\partial C/\partial z:计算所有的损失函数对激活函数的输入z的偏微分,称之为反向传播

如何计算\partial z/\partial w1呢?

很简单,直接求导即可,其偏导结果为与该权重对应(从图上看是其输入元素)的输入元素的值。

如何计算\partial C/\partial z呢?(相当于计算总Loss对神经网络中任意一层的函数输出值的偏微分)

如下图所示,假设z = w1*x1 + w2*x2 +b , 经过sigmoid函数得到a(a是激活之后的结果)那么计算总Loss对z的偏微分可以通过链式法则

\partial C/\partial z = \partial C/\partial a * \partial a/\partial z

\partial a/\partial z 就是sigmoid函数的导数值,很容易算出来

\partial C/\partial a 如何计算呢?再根据链式法则,它的后面接了2个神经元z^{'} ,z^{''}(见前文链式求导法则的case2)

\partial C/\partial a = \partial C/\partial z^{'} * \partial z^{'}/\partial a + \partial C / \partial z^{''}*\partial z^{''}/\partial a

 则后面需要计算的就是\partial C/\partial z^{'} 和 \partial C / \partial z^{''},后面可能还有很多层,我们假定这两个值已经计算得到。

则可以将\partial C/\partial z计算出来

现在从另外一个角度来重新审视上面的公式,下图中红色的线看起来像是数据从后面流动(反向传播)

七 训练神经网络的步骤

 

 

 

java大数据人工智能培训学校全套教材系列课程由1000集视频构成,基本就 是1)时下流行的java培训学校主流内部教材,2)和市面上培训学校的通 行的课程体系几乎一样。所以这套课程都能自己学下来,等于上了培训学校一次,完全可以找个java工程师的工作了。 通过学习卷积神经网络概述,为什么引入神经网络来做识别,判断,预测,训练模型,激活函数,sigmoid激活函数,导数和切线,sigmoid激活函数如何求导,链式法则,梯度,梯度下降法与delta法则,BP(back propagation)误差逆传播神经网络,卷积到底有什么作用?如何做到特征提取,池化的名字由来,dropout,Anaconda Prompt的用法,Jupyter notebook的用法,Spyder的用法,建立安装Tensorflow所需的Anaconda虚拟环境,如何在Anaconda虚拟环境安装Tensorflow与Keras概念等让大家对人工智能,卷积神经网络快速入门。课程特色:专业细致,偏案例,理论强。课程软件使用:Anaconda,Spyder,Jupyter notebook重要声明:1) 如果感觉噪音大,可以选择不用耳机,加音箱或用电脑原声 2) 既然我们的名字叫人工智能深度学习卷积神经网络入门,这个课程的特点就在于成本最低的, 让你最快速的,最容易的入门。人工智能深度学习卷积神经网络入门的最大的难点在于入门入不了,从而最终放弃。俗话说师傅领进门,修行在个人。只要入了门了,后面的事都好办。选课前,务必注意本章的学习目标和内容。想学更多,注意后边的课程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值