当前位置:网站首页>李宏毅机器学习(2017版)_P13:深度学习
李宏毅机器学习(2017版)_P13:深度学习
2022-07-26 22:42:00 【北海虽赊,扶摇可接】
目录

相关资料
开源内容:https://linklearner.com/datawhale-homepage/index.html#/learn/detail/13
开源内容:https://github.com/datawhalechina/leeml-notes
开源内容:https://gitee.com/datawhalechina/leeml-notes
视频地址:https://www.bilibili.com/video/BV1Ht411g7Ef
官方地址:http://speech.ee.ntu.edu.tw/~tlkagk/courses.html
1、深度学习的三个步骤
1.1、神经网络(Neural Network)
1.1.1、概念
神经网络(Neural network)里面的节点,类似我们的神经元。
神经网络:不同的连接方式会产生不同的结构(structure)。
神经网络里面有很多逻辑回归函数,其中每个逻辑回归都有自己的权重和自己的偏差,这些权重和偏差就是可以优化的参数。
1.1.2、全连接前馈神经网络(Fully Connect Feed forwardNetwork)
前馈or前向(feedforward):输入信号进入网络后,信号流动是单向的,无反馈流动。即信号从前一层流向后一层,一直到输出层。
神经网络如果权重和偏差都知道的话就可以看成一个函数。这个函数输入是一个向量(输入层维度),对应的输出也是一个向量(输出层维度)。不论是做回归模型(linear model)还是逻辑回归(logistics regression)都是定义了一个函数集(function set)。
1.1.3、隐藏层

结构:
- 输入层(Input Layer):1层
- 隐藏层(Hidden Layer):N层
- 输出层(Output Layer):1层
- 全连接:layer之间两两都有连接,所以叫做Fully Connect;
- 前馈or前向:传递的方向是由后往前传,所以叫做Feedforward。
通过隐藏层进行特征转换:
使用隐藏层进行特征提取,替代原来的特征工程。最后一个隐藏层输出的就是一组新的处理过的特征;对于输出层,其实是把前面的隐藏层的输出(最好的特征)当做输入,然后通过一个多分类器(可以是softmax函数)得到最后的输出y。
Example:Minist
输入:一个16*16=256维的向量,每个pixel对应一个dimension,有颜色用(ink)用1表示,没有颜色(no ink)用0表示
输出:10个维度,每个维度代表一个数字的置信度。
Tips:
- 对于有些机器学习相关的问题,一般用特征工程来提取特征。但是对于深度学习,我们只需要设计神经网络模型来进行就可以了。对于语音识别和影像识别,深度学习是个好的方法,因为特征工程提取特征并不容易。
- 有很多设计方法可以让机器自动找到神经网络的结构的,比如进化人工神经网络(Evolutionary Artificial Neural
Networks)但是这些方法并不是很普及 。 - 可以自己设计网络结构,例如 CNN卷积神经网络(Convolutional Neural Network)
2、模型评估(Goodness of function)
2.1、单个数据损失

对于神经网络来说,采用交叉熵(cross entropy)函数来对 y y y和 y ^ \hat{y} y^的损失进行计算,接下来就是调整优化参数,让交叉熵越小越好。
2.2、模型数据总体损失

对于总损失,计算整体所有训练数据的损失,然后把所有的训练数据的损失都加起来,得到一个总体损失L。接下来就是在function set里面找到一组函数能最小化这个总体损失L,即是找一组神经网络的参数 θ \theta θ,来最小化总体损失L。
3、选择最优函数(Pick best function)

使用梯度下降找到最优的函数和最好的一组参数,计算偏微分,并不断自身迭代优化参数。
在神经网络中计算损失最好的方法就是反向传播,可以用很多框架来进行计算损失,比如说TensorFlow,Pytorch等。
深度学习框架,核心是对于反向传播的计算。
4、思考
- 理论上,隐藏层越多越好。我认为实际可能不是。一方面是会存在过拟合问题,另一方面,例如ResNet,隐藏层过多,如果不采用残差结构,可能无法训练计算。
- 对于任何一个连续的函数,都可以用足够多的隐藏层来表示。
边栏推荐
猜你喜欢

One of the Flink requirements - sideoutput (Application of side output flow: output the temperature higher than 30 ℃ to the mainstream, and output the temperature lower than 30 ℃ to the side flow)

基于Flink实时计算Demo:用户行为分析(四:在一段时间内到底有多少不同的用户访问了网站(UV))

李宏毅机器学习(2017版)_P21:卷积神经网络CNN

Redisson 工作原理-源码分析

redis——缓存雪崩、缓存穿透、缓存击穿

MySQL index optimization: under what circumstances do you need to build an index (several situations suitable for building an index)

网站日志采集和分析流程

腾讯升级视频号小程序直播功能,腾讯持续推广直播的底气是这项叫视立方(MLVB)的技术

MLVB 云直播新体验:毫秒级低延迟直播解决方案(附直播性能对比)

Simple explanation of database table connection
随机推荐
MySQL uses and implements ranking functions rank and deny_ Rank and row_ NUMBER
Flink1.11 Jdcb方式写mysql测试用例
李宏毅机器学习(2021版)_P7-9:训练技巧
腾讯云直播插件MLVB如何借助这些优势成为主播直播推拉流的神助攻?
Scala-模式匹配
Channel shutdown: channel error; protocol method: #method<channel. close>(reply-code=406, reply-text=
Flink based real-time computing Demo - Data Analysis on user behavior
Flink1.11 intervaljoin watermark generation, state cleaning mechanism source code understanding & demo analysis
Logback custom messageconverter
Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=406, reply-text=
MySQL第二篇
深入理解Golang - 闭包
李宏毅机器学习(2017版)_P3-4:回归
Spark源码学习——Memory Tuning(内存调优)
Uni-app开发App和插件以后如何开通广告盈利:uni-AD
[WUSTCTF2020]CV Maker
Contextcompat. Checkselfpermission() method
腾讯升级视频号小程序直播功能,腾讯持续推广直播的底气是这项叫视立方(MLVB)的技术
Spark数据倾斜解决办法
李宏毅机器学习(2017版)_P5:误差