Deep Learning Tutorial 李宏毅(一)深度学习介绍
大纲
- 深度学习介绍
- 深度学习训练的技巧
- 神经网络的变体
- 展望
深度学习介绍
深度学习介绍
深度学习属于机器学习的一种。介绍深度学习之前,我们先大致了解一下机器学习。
机器学习,拿监督学习为例,其本质上是要找到一个函数映射:输入数据(也就是训练样本)通过函数映射(也就是我们的机器学习算法)到输出空间上(也就是目标值,如果是分类问题,映射到某一类上)。
\[Meachine Learning \approx LookingFor A Function.\]
那么我们如何从一个函数空间里找到目标函数呢?这里必然存在一个指标来评价映射函数的好坏,比如说:准确率,错误率等等。通过这个最优化数据指标我们就能找到 最好的映射函数,也就是机器学习里的算法模型。
所以,机器学习模型训练过程主要有三个阶段:
- 确定模型,从而确定函数映射空间;
- 将训练数据应用于函数空间,对模型进行训练;
- 找出最好的模型;之后,我们可以将训练好的模型应用到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。
Deep Learning Tutorial 李宏毅(一)深度学习介绍的更多相关文章
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1
3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 ...
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.2
3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.2 http://blog.csdn.net/sunbow0 ...
- Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.3
3.Spark MLlib Deep Learning Convolution Neural Network(深度学习-卷积神经网络)3.3 http://blog.csdn.net/sunbow0 ...
- Deep Learning 教程(斯坦福深度学习研究团队)
http://www.zhizihua.com/blog/post/602.html 说明:本教程将阐述无监督特征学习和深度学习的主要观点.通过学习,你也将实现多个功能学习/深度学习算法,能看到它们为 ...
- #Deep Learning回顾#之基于深度学习的目标检测(阅读小结)
原文链接:https://www.52ml.net/20287.html 这篇博文主要讲了深度学习在目标检测中的发展. 博文首先介绍了传统的目标检测算法过程: 传统的目标检测一般使用滑动窗口的框架,主 ...
- 【Deep Learning读书笔记】深度学习中的概率论
本文首发自公众号:RAIS,期待你的关注. 前言 本系列文章为 <Deep Learning> 读书笔记,可以参看原书一起阅读,效果更佳. 概率论 机器学习中,往往需要大量处理不确定量,或 ...
- 【deep learning】斯坦福CS231n—深度学习与计算机视觉(资料汇总)
官网 链接:CS231n: Convolutional Neural Networks for Visual Recognition Notes: 链接:http://cs231n.github.io ...
- 深度学习材料:从感知机到深度网络A Deep Learning Tutorial: From Perceptrons to Deep Networks
In recent years, there’s been a resurgence in the field of Artificial Intelligence. It’s spread beyo ...
- Deep Learning Tutorial - Classifying MNIST digits using Logistic Regression
Deep Learning Tutorial 由 Montreal大学的LISA实验室所作,基于Theano的深度学习材料.Theano是一个python库,使得写深度模型更容易些,也可以在GPU上训 ...
随机推荐
- Python爬虫实战---抓取图书馆借阅信息
Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...
- [翻译] ZLHistogramAudioPlot
ZLHistogramAudioPlot A hardware-accelerated audio visualization view using EZAudio, inspired by Audi ...
- 配置nginx官网yum源
由于yum源中没有我们想要的nginx,那么我们就需要创建一个“/etc/yum.repos.d/nginx.repo”的文件,其实就是新增一个yum源 二.添加nginx.repo 文件: [roo ...
- 北美IT求职攻略
http://www.followmedoit.com/bbs/forum.php?mod=viewthread&tid=19&extra=page%3D1 身在北美,想留下来并能过得 ...
- EntityFramework Code First便捷工具——数据迁移
使用EntityFramework Code First开发,数据迁移是一个不得不提的技术. 在我们的开发过程中,难免需要对模型进行改进,模型改进后,会导致实体集与数据库不一致,当然我们可以通过删除数 ...
- 超强IIS站点工具一键设置PHP,支持多个PHP同时运行
PHPWAMP8.8.8.8IN支持三大主流Web服务器:iis.apache.nginx NGINX站点管理.IIS站点管理.Apache站点管理均支持php多版本同时运行,无限自定义mysql.p ...
- 【笔记】关于TCP三次握手和四次挥手的理解
1. 三次握手: 服务器一定处于Listen状态,否则客户端发过来的连接会被拒绝.注:服务器和客户端的角色是相对的. 客户端发送第一次握手(客户端发送连接请求(SYNC包)到服务器)之后由Closed ...
- echarts中datazoom相关配置
dataZoom=[ //区域缩放 { id: 'dataZoomX', show:true, //是否显示 组件.如果设置为 false,不会显示,但是数据过滤的功能还存在. backgroundC ...
- 关于elasticsearch 6.x及其插件head安装(单机与集群)5分钟解决
第一步,下载es6 +head wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.zip wg ...
- 2339: [HNOI2011]卡农
Description 首先去除顺序不同算一种的麻烦,就是最后答案除以总片段数\(2^m-1\) 设\(f_i\)表示安排\(i\)个片段的合法种类 那么对于任何一个包含\(i-1\)个片段的序列(除 ...