复旦大学公开课:深度学习的基本原理、常用算法

2023-11-05 00:30

本文主要是介绍复旦大学公开课:深度学习的基本原理、常用算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

学习资料:https://www.bilibili.com/video/BV1Bt4y1U7xq?from=search&seid=15892801515091723536

I believe in the importance of continuous learning!Just do your best !   Maybe good result will come soon !


TimeLine

  • 2020.9.24: 目前为止,了解了深度学习的一个基本流程和基础概念,尝试去阅读一些paper

深度学习的方式

  • 在input的刺激下,不断改变网络的连接权值

神经元的作用

  • 对输入空间进行线性划分

学习训练算法

  • 就是训练权值

前馈型神经网络(BP算法,也叫BP神经网络)

  • 连接方式上是全连接;输入层(数值型数据,激活函数输入==输出),隐层,输出层
  • 用于分类,找特征值
  • x和w是向量,b是偏置值,f叫激活函数,负责通过输入的加权和,得到一个输出,输出给下一层神经元
  • 训练算法
    • 批量训练处理算法:
      • 每一个样本都跑一遍神经网络,最小化 总损失函数(最小平方误差准则),通过梯度下降法对总进行权重和偏置,这叫一次poach
    • 随机梯度下降法:
      • 随机挑一小批的样本,每一个随机样本,都对权重进行修正;
    • 基于 P处理 + 随机样本
  • 梯度消失:梯度接近于0

神经网络常见的激活函数

  • Sigmoid
    • 梯度容易消失,在x很小或者x很大的时候会出现“梯度消失”;好处就是会限制在[0,1]且处处可导
  • tanh:把Sigmoid的y范围拉伸到[-1,1],也不太行,“梯度消失”
  • ReLu:分段函数
  • Leaky ReLu
  • 损失函数:交叉熵 (用于二分类问题)
  • 激活函数的特性:非线性,可微分,单调,输出范围可控,计算简单,
  • 学习率(学习步长)的确定方式
    • 固定步长
    • 用经验瞎猜
    • 动态,在训练初期,可以让步长大一点
    • Adam算法,也是动态的
  • 过拟合:训练样本还行,但是测试样本有问题。根本原因是模型复杂,节点太多
    • 解决方案
      • 惩罚性成本函数
      • DropOut 随机丢失
      • 尽早终止:每各n个epoch,测试一下检验样本对于模型的损失函数是多少,如果变大的,则说明该停止,已经过拟合了
      • 动量,有点像 模拟退火

神经网络的作用

  • 信用卡欺诈
  • 手写体识别
  • 总体流程:input data→hidden layer→output→gradient descent optimization→check for overfitting

 

深度学习的场合

  • 银行客户流失预测(BP网络)
    • 对于连续性,数值型的数据,归一化(0,1);对于离散型属性(true or false),神经网络不能直接处理,因此通过0和1代表其数值,也叫One-Hot编码
    • 数据分成两个集:训练样本集 + 测试样本集,上面有提到过
    • 标签数据:用户是否流失
    • layer3输出层用的是softmax而不是隐层的sigmoid

 

 

这篇关于复旦大学公开课:深度学习的基本原理、常用算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346211

相关文章

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.