Deep Learning Tutorial 李宏毅(一)深度学习介绍

大纲

  1. 深度学习介绍
  2. 深度学习训练的技巧
  3. 神经网络的变体
  4. 展望

深度学习介绍

深度学习介绍

深度学习属于机器学习的一种。介绍深度学习之前,我们先大致了解一下机器学习。 机器学习,拿监督学习为例,其本质上是要找到一个函数映射:输入数据(也就是训练样本)通过函数映射(也就是我们的机器学习算法)到输出空间上(也就是目标值,如果是分类问题,映射到某一类上)。 $$Meachine Learning \approx LookingFor A Function.$$ 那么我们如何从一个函数空间里找到目标函数呢?这里必然存在一个指标来评价映射函数的好坏,比如说:准确率,错误率等等。通过这个最优化数据指标我们就能找到 最好的映射函数,也就是机器学习里的算法模型。 所以,机器学习模型训练过程主要有三个阶段:

  1. 确定模型,从而确定函数映射空间;
  2. 将训练数据应用于函数空间,对模型进行训练;
  3. 找出最好的模型;之后,我们可以将训练好的模型应用到unseen data上(这也是我们最终的目的)。

这样,我们也可以大致推断出深度学习的构建过程:

神经网络

神经网络由一系列神经元通过相互连接而形成。因此,在深入理解神经网络之前,先了解一下什么是神经元? 神经元本质上是一个简单函数,其函数形式为: $$f = \sigma(z);$$ $$z = a_1w_1+a_2w_2+a_iw_i+...+a_Kw_K+b;$$ 其中,$\sigma函数$属于一个激活函数,$z$是一个线性函数,其结果可以是任意值,通过激活函数,给模型带来非线性因素,增加模型的表达能力;通常情况下,线性模型的表达能力不够。 神经元的$w_i$和$b$就是神经元模型的训练参数;参数不同,形成的神经元也不相同。

神经元的不同连接方式形成的网络架构也各不相同。神经网络的参数包括所有神经元的$w_i(weights)$和$b(biases)$。 如果说,一个神经元是一个简单函数$function$,那么神经网络就是一个简单函数集$a,function,set$. 深度学习中的“深度”是指神经网络的层数有很多。 神经网络可以用在识别手写数字。

FAQ: Q:设计神经网络时,多少层合适?每层多少个神经元合适? $$Trial;and;error + Intuition(随缘,多试)$$

评测模型好坏goodness of function

以手写数字识别为例,首先我们知道这是一个监督学习问题;其训练数据为实现收集的手写数字和标签;最终达到输入一个手写的数字能给出其所属的类别(0-9)。 之前我们定义的函数集合,如何评价这个函数集合(模型)表现如何呢?所以需要定义一个评价指标。这里定义的评价指标为Loss函数,指输出值和真实值之间的差距(可以通过计算两个值之间的距离来表示)。最终我们通过优化在所有数据上的总损失Loss来找到最优的模型!本质上就是通过最小化Loss函数来找到最合适的$参数\theta^*$,从而确定最优化的模型。

怎么找到最优化的参数$\theta^* pick the best function$

最先引入脑海的方法就是穷举法,把所有可能的取值都试一次。这种方法肯定不可取!因为,通常情况下深度学习模型层数不止3层,而每层的神经元又有很多,导致最后要优化的参数也是一个非常大的数字。 方法一:Gradient Descent 梯度下降算法

这种方法存在的一个问题:最后求解出来的最小值,不是全局最小值,而是局部最小值。 同时,由于初始的权重系数$w_i$是随机选取的,导致最后的最优化结果也各不相同。 方法二:Backpropagation 反向传播算法 Caffe,TensorFlow等都支持的这种求解方法。

为什么模型总是越来越长,而不是越来越胖?

Deeper is Better. 一般而言,参数越多,模型表现效果越好。

实验数据来自:Seide, Frank, Gang Li, and Dong Yu. "Conversational Speech Transcription Using Context-Dependent Deep Neural Networks." Interspeech. 2011

对于任意的连续函数$f$,定义为: $$f : R^N\to R^M$$ 理论上来讲,这种能由深度学习解决的问题,也可以通过有一个隐藏层的网络模型来解决(给它足够多的神经元)。但是为什么不采用这种方法呢?

实验效果并不好?为什么不好? 论文:Learning Functions: When Is Deep Better Than Shallow(还没有看!)一种理由是说deep models可以抽取更多的特征相比于Fat models。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

一种面向高维数据的集成聚类算法

一种面向高维数据的集成聚类算法 聚类集成已经成为机器学习的研究热点,它对原始数据集的多个聚类结果进行学习和集成,得到一个能较好地反映数据集内在结构的数据划分。...

4437
来自专栏李智的专栏

PRML笔记

其中,除以NN让我们能够以相同的基础对比不同大小的数据集,平方根确保了ERMSE_{RMS}与目标变量tt使用相同的规模和单位进行度量。

892
来自专栏专知

【前沿】R-FCN每秒30帧实时检测3000类物体,马里兰大学Larry Davis组最新目标检测工作

【导读】美国马里兰大学、复旦大学和Gobasco人工智能实验室联合提出R-FCN-3000实时3000类目标检测框架,对R-FCN框架中的物体检测和分类进行解耦...

5166
来自专栏机器学习原理

机器学习(11)——非线性SVM

前言: 上一篇介绍了线性SVM还有一些尾巴没有处理,就是异常值的问题。 软间隔 线性可分SVM中要求数据必须是线性可分的,才可以找到分类的超平面,但是有的时候...

3915
来自专栏机器学习算法与Python学习

最小二乘支持向量回归机(LS-SVR)

前面连续的七篇文章已经详细的介绍了支持向量机在二分类中的公式推导,以及如何求解对偶问题和二次规划这个问题,分类的应用有很多,如电子邮箱将邮件进行垃圾邮件与正常邮...

6619
来自专栏AI科技大本营的专栏

深度 | 机器学习中的模型评价、模型选择及算法选择

作者:Sebastian Raschka 翻译:reason_W 编辑:周翔 简介 正确使用模型评估、模型选择和算法选择技术无论是对机器学习学术研究还是工业场景...

5894
来自专栏新智元

训练神经网络的五大算法:技术原理、内存与速度分析

【新智元导读】 训练神经网络的算法有成千上万个,最常用的有哪些,哪一个又最好?作者在本文中介绍了常见的五个算法,并从内存和速度上对它们进行对比。最后,他最推荐莱...

4659
来自专栏SIGAI学习与实践平台

机器学习中的目标函数总结

几乎所有的机器学习算法最后都归结为求解最优化问题,以达到我们想让算法达到的目标。为了完成某一目标,需要构造出一个“目标函数”来,然后让该函数取极大值或极小值,从...

6351
来自专栏PaddlePaddle

激活函数

深度学习基础理论-CNN篇 激活函数 ? 激活函数(activation function)层又称非线性映射层,顾名思义,激活函数的引入为的是增加整个网络的...

2929
来自专栏desperate633

‘神经网络’初探

本文从感知器开始讲起,引入激活函数,最后引出了神经网络的基本概念和思想,希望能帮助读者对神经网络有一个初步的了解!

1063

扫码关注云+社区