人工神经网络是对生物神经网络的模仿,神经网络对一个问题的学习,需要经历数据输入、网络参数的训练、超参数的调节等部分。

这次我们来详细讨论一下神经网络的学习过程。

假设我们要训练一个神经网络去识别一张图片里面是否有一只狗,当然现阶段我们只是宽泛的讨论神经网络处理该问题的流程。

首先,我们会有一个规范化的图片集,里面包含了各种类型的图片(像素为28*28),有小狗的,没有小狗的,称为训练数据集。还有一个测试数据集,用来验证神经网络的学习情况。

然后,我们需要设计一个神经网络,用以学习这个问题。假设我们采用S型神经元,并使用如下的网络结构:

图中输入神经元有784个,因为输入的图片是28*28的。

图中有两个隐藏层和一个输出层。

假设我们训练集的大小为n,则训练输入为x1,x2,....,xn

要训练神经网络,会用一个代价函数,这个代价函数的基本形式为:

  C(w,b), 是权重和偏置的函数。

我们的目标就是,找到一组权重和偏置,对于所有的输入,神经网络的输出与目标输出之间的差异最小。

常见的代价函数有:

  二次代价函数:

  

  交叉熵代价函数:

    

y表示对于输入x的函数,表示期望的输出。a表示输入为x时,网络的输出。

从上述两种代价函数的形式可以看出,代价函数就是用来标记网络输出与正确值之间的差异。

神经网络的训练过程正是一个寻找到最佳的权重和偏置,使得对于所有的输入与预期输出的差异最小的过程。

那么,用什么样的算法进行上述过程的计算呢?

我们知道,代价函数是权重和偏置的函数,即C(w, b)

学过高等数学的人应该都知道,对于函数的某一点,沿着梯度的反方向运动,函数的值减小的最快。

神经网络的梯度下降学习算法正是基于此,我们初始化一个权重和偏置的矩阵,然后沿着代价函数梯度的方向去改变权重和偏置,直到代价函数足够小。

因此,我们通过如下的规则,来更新权重和偏置,让代价函数逐步变小:

梳理一下,神经网络的学习过程,大致如下:

1. 输入x1, 计算a,并代价函数求和中的一项,并对所有样本重复上述过程,得到代价函数C(w,b)

2.计算所有的偏导分量

3.更新权重和偏置,重复上述过程。

从上述过程中,可以看出,如果样本量很大的话,权重和偏置更新的速度就会非常的慢,学习的效率就会变低。

因此,在生产中,一般都会把样本随机的分成一个一个的小批量数据,计算完一个小批量数据后就可以更新权重和偏置,这样就可以加快学习的速度,这叫随机梯度下降。

My blog in AI -- 梯度下降算法的更多相关文章

  1. AI-2.梯度下降算法

    上节定义了神经网络中几个重要的常见的函数,最后提到的损失函数的目的就是求得一组合适的w.b 先看下损失函数的曲线图,如下 即目的就是求得最低点对应的一组w.b,而本节要讲的梯度下降算法就是会一步一步地 ...

  2. 机器学习算法(优化)之一:梯度下降算法、随机梯度下降(应用于线性回归、Logistic回归等等)

    本文介绍了机器学习中基本的优化算法—梯度下降算法和随机梯度下降算法,以及实际应用到线性回归.Logistic回归.矩阵分解推荐算法等ML中. 梯度下降算法基本公式 常见的符号说明和损失函数 X :所有 ...

  3. 梯度下降算法实现原理(Gradient Descent)

    概述   梯度下降法(Gradient Descent)是一个算法,但不是像多元线性回归那样是一个具体做回归任务的算法,而是一个非常通用的优化算法来帮助一些机器学习算法求解出最优解的,所谓的通用就是很 ...

  4. 梯度下降算法的一点认识(Ng第一课)

    昨天开始看Ng教授的机器学习课,发现果然是不错的课程,一口气看到第二课. 第一课 没有什么新知识,就是机器学习的概况吧. 第二课 出现了一些听不太懂的概念.其实这堂课主要就讲了一个算法,梯度下降算法. ...

  5. ng机器学习视频笔记(二) ——梯度下降算法解释以及求解θ

    ng机器学习视频笔记(二) --梯度下降算法解释以及求解θ (转载请附上本文链接--linhxx)   一.解释梯度算法 梯度算法公式以及简化的代价函数图,如上图所示. 1)偏导数 由上图可知,在a点 ...

  6. 监督学习:随机梯度下降算法(sgd)和批梯度下降算法(bgd)

    线性回归 首先要明白什么是回归.回归的目的是通过几个已知数据来预测另一个数值型数据的目标值. 假设特征和结果满足线性关系,即满足一个计算公式h(x),这个公式的自变量就是已知的数据x,函数值h(x)就 ...

  7. [机器学习Lesson3] 梯度下降算法

    1. Gradient Descent(梯度下降) 梯度下降算法是很常用的算法,可以将代价函数J最小化.它不仅被用在线性回归上,也被广泛应用于机器学习领域中的众多领域. 1.1 线性回归问题应用 我们 ...

  8. Spark MLib:梯度下降算法实现

    声明:本文参考< 大数据:Spark mlib(三) GradientDescent梯度下降算法之Spark实现> 1. 什么是梯度下降? 梯度下降法(英语:Gradient descen ...

  9. Logistic回归Cost函数和J(θ)的推导(二)----梯度下降算法求解最小值

    前言 在上一篇随笔里,我们讲了Logistic回归cost函数的推导过程.接下来的算法求解使用如下的cost函数形式: 简单回顾一下几个变量的含义: 表1 cost函数解释 x(i) 每个样本数据点在 ...

随机推荐

  1. Java并发编程原理与实战三十:CountDownLatch与CyclicBarrier 区别

    相信每个想深入了解多线程开发的Java开发者都会遇到CountDownLatch和CyclicBarrier,大家也在网上看到各种介绍原理,代码的,以及他们区别(应付面试)的,但是很少能讲清楚:他们到 ...

  2. ECMAScript6语法检查规范错误信息说明

    项目中使用ECMAScript6的时候经查会使用语法检查,下面是常见错误信息的汇总: “Missing semicolon.” : “缺少分号.”, “Use the function form of ...

  3. Mongodb开启远程连接并认证

    环境: Mongodb版本:3.4.6 步骤: 1.  mongo创建管理员: 在mongo shell下: use admin db.createUser( { user: "testus ...

  4. R7—左右内全连接详解

    在SQL查询中,经常会用到左连接.右连接.内连接.全连接,那么在R中如何实现这些功能,今天来讲一讲! SQL回顾 原理 # 连接可分为以下几类: 内连接.(典型的连接运算,使用像   =   或   ...

  5. LintCode 158: Anagram

    LintCode 158: Anagram 题目描述 写出一个函数anagram(s, t)判断两个字符串是否可以通过改变字母的顺序变成一样的字符串. 样例 给出s = "abcd" ...

  6. bzoj 5055: 膜法师——树状数组

    Description 在经历过1e9次大型战争后的宇宙中现在还剩下n个完美维度, 现在来自多元宇宙的膜法师,想偷取其中的三个维度为伟大的长者续秒, 显然,他能为长者所续的时间,为这三个维度上能量的乘 ...

  7. 【leetcode 简单】 第九十五题 数字转换为十六进制数

    给定一个整数,编写一个算法将这个数转换为十六进制数.对于负整数,我们通常使用 补码运算 方法. 注意: 十六进制中所有字母(a-f)都必须是小写. 十六进制字符串中不能包含多余的前导零.如果要转化的数 ...

  8. iOS学习笔记(3)— 屏幕旋转

    一.屏幕旋转机制: iOS通过加速计判断当前的设备方向和屏幕旋转.当加速计检测到方向变化的时候,屏幕旋转的流程如下: 1.设备旋转时,系统接收到旋转事件. 2.系统将旋转事件通过AppDelegate ...

  9. SpringMVC控制器 跳转到jsp页面 css img js等文件不起作用 不显示

    今天在SpringMVC转发页面的时候发现跳转页面确实成功,但是JS,CSS等静态资源不起作用: 控制层代码: /** * 转发到查看培养方案详情的页面 * @return */ @RequestMa ...

  10. 【codeforces】【比赛题解】#915 Educational CF Round 36

    虽然最近打了很多场CF,也涨了很多分,但是好久没写CF的题解了. 前几次刚刚紫名的CF,太伤感情了,一下子就掉下来了,不懂你们Div.1. 珂学的那场我只做了第一题……悲伤. 这次的Education ...