深度学习-李宏毅学习笔记(LECTURE1 Introduction)
来源:互联网 发布:文网文备案域名 编辑:程序博客网 时间:2024/06/05 10:50
最近要做关于深度学习的调研报告,看了李宏毅的300页PPT,学习笔记如下:
LECTURE 1 Introduction
深度学习的介绍
深度学习实质上就是寻找一个函数模型,这个寻找的过程分为三个步骤: 定义模型(神经网络), 模型性能, 挑选最佳模型。
神经网络
深度学习的模型实质上就是一个神经网络,其中有许多神经元组成
神经元
神经网络的最小单位是神经元
图中所示的符号含义为:
w——权值
b——偏离值
σ( )——激活函数
全连接前馈网络
全连接前馈网络是最简单的人工神经网络,是最常用的模型之一。
全连接: 输出是上一层所有输出的加权和处理的结果
前馈:各层之间没有反馈
输出层
由于不同属性对应的值大小差异会很悬殊,直接处理可能会导致结果偏离真实方向。因此我们需要将 softmax 层作为输出层,来对数据进行归一化。
模型性能
训练集
为了使初始模型经过训练后成为一个能够满足我们要求的模型,我们需要准备一个训练集,这个训练集中包括输入的数据啊、图片啊、音频啊什么的,还包括一个与之分别相对应的我们所期待的输出结果。
学习目标
我们训练模型的目的就是为了在输入数据后,所期待输出的对应的y值最大。例如,在识别手写数字时,我们输入一个手写数字“1”的图片,那么输出为“1”所对应的y值是所有y值中最大的。
误差
当然,如果手写数字太潦草了,别说模型了,就连我们自己也很难识别出来,因此我们对真实值和测量值之间的差距进行量度。
总体误差
把所有输入经过模型后输出的误差相加,就得到了总体误差。总体误差应该越小越好,我们需要找的最优模型应该具有最小的误差,而这个模型之间误差的不同的原因在于模型中的参数不同。
挑选最优模型
如何寻找最优模型
找最优模型等效于得出一系列模型参数(weights & b)使得总体误差最小化。
梯度下降
为了找到使得总体误差最小化的模型,我们可以利用梯度下降算法进行此操作。以下是梯度下降算法操作的步骤。
step1:
首先假设一个模型,具有模型参数{w1, w2, …, b1, b2, …},这个模型的总体误差为L,梯度下降算法将对单个参数w进行处理。
step2:
给w定义一个初始值,这个初始值可以是个随机值,也可以是一个RBM值。但要注意梯度下降不保证全局最小值,不同的起点值会到达不同的最小值点
step3:
对总体误差L求w的偏导,如果偏导值为正数,则减小w,如果偏导值为复数,则增大w,因此我们定义一个公式,以便求解下一个w值。
其中η为学习率,是一个正数。重复此操作,直到偏导值足够小。
step4:
对所有的模型参数进行梯度下降的处理后可以得到一个最终坐标(w1, w2, …, b1, b3,…),如下图所示,就能得到一个最佳模型。
WHY DEEP?
参数越多,模型性能越好
“Hello World”for Deep Learning
本节简单教大家如何使用Keras进行深度学习,使训练的模型具有识别手写数字的能力。
"""Keras:是一个基于Python的深度学习库"""import Keras.#step1:define a set of functionmodel = Sequential()model.add(Dense( input_dim = 28 * 28, output_dim = 500))model.add( Activation('sigmoid'))model.add( Dense( output_dim = 500))model.add( Activation('sigmoid'))model.add( Dense(output_dim = 10))model.add( Activation('softmax'))#step2 goodness of function#step3.1 configurationmodel.compile(loss='mse', optimizer=SGD(lr=0.1), metrics=['accuracy'])#step3.2 find the optimal network parametersmodel.fit(x_train, y_train, batch_size=100, nb_epoch=20)
关于Keras的文档:https://keras.io/
- 深度学习-李宏毅学习笔记(LECTURE1 Introduction)
- 台湾大学深度学习课程 学习笔记 lecture1-1 Introduction
- CS224n学习笔记:Lecture1 & 2
- 台湾大学深度学习课程 学习笔记 lecture1-2 Neural Network Basics
- MIT算法导论学习笔记-Lecture1
- 【Lecture1】Introduction
- Lecture1: Introduction
- Stanford机器学习(Andrew Ng)Lecture1
- Introduction to Algorithms算法导论笔记-Lecture1
- [机器学习入门] 李弘毅机器学习笔记-7 (Brief Introduction of Deep Learning;深度学习简介)
- CNTK学习笔记 -- Introduction
- 一、openCV学习笔记(Introduction)
- 机器学习笔记01-介绍(introduction)
- Lecture1-1Course Introduction
- CS301n:Lecture1--Introduction
- 机器学习-斯坦福大学-Lecture1-机器学习介绍
- [深度学习与计算机视觉] 斯坦福 CS231n 2017 学习笔记 -1 (Lecture 1: Introduction;课程介绍)
- Chapter 1 - Introduction - 深度学习的来历
- jdbc java数据库连接 6)类路径读取——JdbcUtil的配置文件
- php实现简单的用户注册,登录,修改个人信息接口
- TinkerPop中的遍历:图的遍历步骤(2/3)
- weblogic unable to get file lock问题
- Java Web项目常用的第三方接口
- 深度学习-李宏毅学习笔记(LECTURE1 Introduction)
- tensorflow Gpu 安装 版本的最新方案
- 雇佣兵的战斗力最大可以到达多少
- TCP长连接与短连接的区别
- 查会议的网站
- js需要注意的地方
- 查看oracle数据库的连接数以及用户
- windows驱动开发学习入门调研
- 对DStream.foreachRDD的理解