文档章节

什么是深度学习

hoolev
 hoolev
发布于 2017/07/14 16:00
字数 1340
阅读 19
收藏 1

现在人工智能这么火,不跟上是不是以后就要被淘汰了?为什么选深度学习呢?因为目前最火嘛,哈哈啊! 后续这些文章只是学习笔记,记录一个只听说过深度学习大名的程序员深度学习的过程。

什么是深度学习

深度学习是机器学习的一种方法,机器学习就是让机器根据一些训练资料,自动找出有用的函数。 例如语音识别,就是机器根据一堆声音信号和其对应的文字,找到对应的函数,当输入一段声音信号时,输出该信号对应的文字。

一般机器学习要经过三个步骤:

  1. 人类提供给机器一个由函数构成的集合(函数集)
  2. 人类根据训练资料定义函数的优劣
  3. 机器自动从函数集中找出最优的函数

既然深度学习是机器学习的一种方法,那么必然符合三个步骤。下面就分别从这三个步骤来理解深度学习。

人工神经网络(Artificial Neural Network)

在深度学习中,人类在第一个步骤中提供的函数集由人工神经网络定义,即人工神经网络就是函数集。

神经元

与人的大脑类似,人工神经网络也由神经元连接而成,只不过这里的神经元是一个简单的函数,函数的输入是一组数值(也就是一个向量),输出是一个数值。 下图描述了一个神经元及其工作方式: 输入图片说明 其中该神经元的输入是左侧的橙色框中的2,-1,1三个数值,输出是右侧蓝色框中的数值4。 每个输入都有一个权重(weight),图中灰色框中数值就是每个输入对应的权重。 先将输入和其对应的权重相乘后求和,再加上绿色框中的阈值(bias)作为激活函数(activation function)的输入,激活函数的输出就是神经元的输出。 激活函数是一个预先定义好的非线性函数,其输入和输出都是数值。

函数集

人工神经网络由神经元连接而成,作为提供给机器的函数集。

当人工神经网络中的每个神经元的参数都确定时,该神经网络就是一个非常复杂的函数。 神经元不同的连接方式组成的神经网络结构就不一样,不同的网络结构就是不同类的函数,相同的网络结构不同的参数就是不同的函数。

不同的任务的适用函数集不一样,即适合的人工神经网络不一样。 例如卷积神经网络(CNN,Convolutional Neural Network)适合做图像处理,循环神经网络(RNN,Recurrent Neural Network)适合处理序列化信息,语言翻译,语音识别等。

所以人工神经网络结构的选择对深度学习的效果有很大影响,这个选择依赖使用者的经验,直觉和尝试,可以说“运用之妙,存乎一心”。

定义函数的优劣

有了人工神经网络作为函数集后,接下来就要定义函数的优劣,以便在下一步让机器选择最优函数。 如何定义函数的优劣这个就需要在实践中去摸索(先留坑。。。)。

找出最优函数

根据训练资料可以决定一个函数的优劣,接下来就是从函数集中找出最优函数,也就是最优的参数组合,也就是所谓的“调参”。

如何找出最优参数组合,跟破解密码一样,最直接的办法就是穷举所有可能。如果计算能力足够的话,这也是最简单有效的办法。 但是,计算能力是不可能足够的,所以我们需要其他方法,也就是“学习”算法,深度学习中学习就是此意。

梯度下降法(gradient descent)是目前经常采用的学习算法。在该算法中,机器先随机指定第一组参数,再稍微调整第一组参数,找出比第一组参数略佳的第二组参数,接下来再稍微调整第二组参数,找出比第二组参数略佳的第三组参数,以此类推,反复进行直到找不出更加的参数为止。

当参数过多,梯度下降法找到最优函数的效率不够高的时候,我们就需要想办法提高参数调整的效率。反向传播算法(BP,backpropagation),就是用来提高参数调整效率的一个算法。

总结

通过机器学习的三个步骤,我们大概了解了深度学习。知道了RNN,CNN,BP,激活函数和梯度下降法等是干什么用的,接下来就是深入学习为什么(算法原理)和怎么应用(tesorflow)。

© 著作权归作者所有

共有 人打赏支持
hoolev
粉丝 13
博文 26
码字总数 12445
作品 0
广州
高级程序员
私信 提问
高手问答第 209 期 — 深度学习如此火热,你了解得怎么样了?

OSCHINA 本期高手问答(2018 年 8 月 22 日 — 8 月 28 日)我们请来了@玉来愈宏 为大家解答关于深度学习方面的问题。 张玉宏,电子科技大学博士,美国西北大学访问学者,现执教于河南工业大学...

局长
08/21
2.3K
29
深度学习12大常见问题解答(附答案)

阿尔法狗让深度学习登上了数据科学世界的巅峰。深度学习成为了当今最热门的话题之一,但对于大多数人来说,这是一个陌生而又神秘的学科。很多人认为,深度学习就是包括了大量的数学和统计知识...

【方向】
06/01
0
0
机器学习 vs 深度学习到底有啥区别?

一. 什么是机器学习? 通常,为了实现人工智能,我们会使用机器学习。我们有几种用于机器学习的算法。例如: Find-S 决策树(Decision trees) 随机森林(Random forests) 人工神经网络(A...

巡山巡到秋名山
12/04
0
0
观点 | 为什么深度学习仍未取代传统的计算机视觉技术?

  选自zbigatron   作者:Zbigatron   机器之心编译   参与:张楚、黄小天      本文作者认为,深度学习只是一种计算机视觉工具,而不是包治百病的良药,不要因为流行就一味地使...

机器之心
03/20
0
0
Hello Apollo - 自动驾驶公开课

活动主题:解析Apollo 1.5背后的“核”能力 活动摘要:9月20日,有着“汽车界安卓”之称的百度Apollo自动驾驶平台进行了新一轮的升级开放。更新迭代后的Apollo 1.5自动驾驶平台,为开发者提供...

tt0820
2017/10/18
14
0

没有更多内容

加载失败,请刷新页面

加载更多

【阿里面试系列】之前有人问过我一个这样的面试题

文章简介 很多人对Thread.join的作用以及实现了解得很少,毕竟这个api我们很少使用。这篇文章仍然会结合使用及原理进行深度分析 扩展阅读: 「阿里面试系列」搞懂并发编程,轻松应对80%的面试...

Java架构资源分享
9分钟前
1
0
CentOS 7.2 yum方式安装MySQL 5.7

CentOS 7.2 yum方式安装MySQL 5.7 CentOS 7之后的版本yum的默认源中使用MariaDB替代原先MySQL,因此安装方式较为以往有一些改变: 下载mysql的源 wget http://dev.mysql.com/get/mysql57-co...

yizhichao
10分钟前
1
0
nginx-tutorial

Nginx 本项目是一个 Nginx 极简教程,目的在于帮助新手快速入门 Nginx。 demos 目录中的示例模拟了工作中的一些常用实战场景,并且都可以通过脚本一键式启动,让您可以快速看到演示效果。 <!...

吴伟祥
11分钟前
2
0
分布式系统下的Session共享问题

分布式系统下的Session共享问题 分布式服务器有多台,用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,就会出现很多问题,比如说最常见的登...

晨猫
15分钟前
1
0
2018 中国短视频开发者创意大赛震撼来袭,万元现金大奖邀你来战!

当下,短视频 App 已成为各个年龄层最火最潮的应用,而在短视频行业发展如火如荼时,又掀起了一轮潮流新玩法的探讨,为短视频新形势下提供更多可能性。2018 年 12 月 3 日,中国短视频开发者...

七牛云
19分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部