机器学习-02(深度学习的基本概念)

机器学习的步骤

1.定义带有未知参数的函数

线性模型(linear models)具有较大的限制(Model Bias)

        y = b + wx

无论如何更改b或者w,其只会呈现出一条直线,不能满足更加复杂的现实情况。

我们可以将复杂的函数(分段函数)看作:常数(其大小为实际函数与Y轴的交点)+激活函数(在小于某个数值时,为某个常数,在大于某个数值时,为某个常数)

红色为Piecewise Linear Curves(分段函数),蓝色为Hard Sigmoid(激活函数)

第一激活函数的转折点设在实际函数的第一个转角。分段函数的斜率与实际函数的斜率相同。同理第二个激活函数的转折点设为实际函数的第二个转角处,斜率相同......

最终实际函数等于f0+f1+f2+f3 

有多个线段组成的函数称为Piecewise Linear Curves(分段函数),其都可以通过上面的方法组合出来。其转折的次数越多,需要的蓝色函数也越多。

在曲线问题上,我们可以通过微分的思想,在曲线上取足够多的点,以直代曲,这样就可以用直线来逼近这条连续的曲线。

所以可以通过分段函数去逼近任何连续的曲线。

激活函数可以使用一段S型曲线(sigmoid funcation)来逼近它

可以简写为:y = c sigmoid(b+wx1)

通过不断调整b、w和c来制造出不同的S型曲线

前面所求的分段函数就是多个激活函数累加之后的结果

i代表激活函数(蓝色函数),j代表特征的编号(如j = 10,则取前十天的样本进行计算)

wij代表在第i个激活函数里面的第j个特征的权重

其中r1、r2 和r3可以简化为矩阵与向量的加法和乘法:

所以
就可以写成

其中x是输入的特征,灰色的b是标量,w为矩阵,_c{^{T}}和绿色的b是向量

将所有的未知参数进行拆分,拼成一个很长的向量统称为\theta

2.定义来自训练数据中的损失函数

拥有了新的模型之后,Loss与之前的定义方法还是一样的,只是符号更改了一下,变为:        

        L(w,b) ====> L(\theta)  用\theta来代表所有的未知参数

损失函数(Loss function)所作的事情就是,当\theta为某一个数值的时候,会有多好还是有多不好

计算方法与只有两个参数的时候类似,假设给定一个\theta值,再输入一个x,查看估算的y值,计算与真实的\hat{y}(label)之间的差距,以此类推。把所有的误差加起来就得到了Loss

3.最佳化问题

optimization的演算法还是gradient descent。

寻找一组\theta让Loss最小,将这一组\theta称之\theta*。

寻找\theta*:
1.随机选一个初始值\theta0

2.计算微分,对每一个未知的参数都去计算起对L的微分,之后把微分集合起来组成一个向量g(gradient)。

通常的表示方法:,其中倒三角形的意思是把所有的参数\theta1、\theta2、\theta3等对L做微分,算微分的\theta值为\theta0。

3.更新参数列表

其中两式相减是因为梯度的方向式函数增长最快的方向,朝着负方向式下降最快的方向。

重复以上的步骤,不断更新\theta,直至不想继续更新或者得出\theta = 0。

在实际操作中,不是使用全部的数据去计算Loss,而是将数据分为多个batch(批)。多次进行计算,算出L1、L2、L3等,之后计算出gradient。

一次查看所有批次称之为一次epoch,epoch指的是整个训练数据集通过神经网络一次的过程。 每一次更新参数称之为update。、

所以一个epoch并不是更新参数一次。更新次数由batch size决定

例如:

ReLU(另外一种激活函数)

hard sigmoid可以看作式两个rectifier linear unit的叠加。

ReLU比Sigmoid更优。

Sigmoid或者ReLU等可以叫作Neuron,很多的Neuron可以叫作Neuron Network

过拟合(Overfitting) 

指的是在已知的训练资料上变好,而在未知的训练资料上没有变好。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/912980.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/912980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

InspireFace C++ 架构分析

InspireFace C 架构分析 https://github.com/deepinsight/insightface/tree/master/cpp-package/inspireface 1. 项目概述 InspireFace 是一个高性能的人脸识别和分析 SDK,采用 C 开发,提供了完整的人脸检测、跟踪、特征提取、活体检测、属性分析等功…

【网络安全】Webshell命令执行失败解决思路

前言费尽心思上传了webshell,上传下载都没问题,却发现命令执行总是失败?最近也打点也遇到了这些问题,网上有部分文章,但都是零碎知识点并且实战不一定能用,今天就结合我个人经验剖析webshell上线后cmd命令执…

【机器人】复现 HOV-SG 机器人导航 | 分层 开放词汇 | 3D 场景图

HOV-SG 是通过语言指令实现机器人导航的,核心特点是分层结构、开放词汇、3D场景图。 来自RSS 2024,大规模、多层次的环境构建精确的、开放词汇的3 场景图,并使机器人能够通过语言指令在其中有效地导航。 论文地址:Hierarchical …

jvm 锁升级机制

Java 虚拟机(JVM)中的锁升级机制(也称为锁膨胀)是 HotSpot 虚拟机为了优化 synchronized 关键字的性能而引入的一项重要技术。它的核心思想是:根据实际遇到的竞争激烈程度,动态地将锁从开销最小的状态逐步升…

金蝶云星空 (9.0版本) ERP的WebApi接口随机出现SSLException

环境: java-1.8.0-openjdk-1.8.0.131 hutool-all 依赖, 5.8.25版本 项目背景: 发版上线,用的hutool工具类 HttpUtil.createPost() ,请求域名为https://xxx.ik3cloud.com/k3cloud 的金蝶ERP webapi接口 问题&#xff1…

用java,把12.25.pdf从最后一个点分割,得到pdf

要在Java中从文件名 12.25.pdf 的最后一个点(.)分割文件名和扩展名,可以使用 String 类的 lastIndexOf() 和 substring() 方法。以下是一个示例代码: public class FileNameSplitter {public static void main(String[] args) {St…

UE5 重新编译插件版本

打开要转换的UE的安装目录,一直找到这个文件 不要双击,在地址栏里输入cmd打开命令行,输入如下指令 RunUAT.bat BuildPlugin -plugin"E:\OldPlugin\chatbot5.3\chatbot\chatbot.uplugin" -package"E:\NewPlugin"-plugin…

Linux下的调试器-gdb(16)

文章目录 预备知识(9-2.30.00)快速认识 gdbgdb 的命令1. 更换成 cgdb2. 打和去除断点3. 逐语句与逐过程4. 使能(激活)断点 调试思想1. 找到问题(找到问题所在的区域)2. 查看代码的上下文 补充调试技巧1. wa…

李宏毅NLP-7-计算分数和训练和测试

文章目录 分数计算训练测试 分数计算 插入式序列生成模型的概率计算逻辑,核心是将 “生成序列 h 的过程” 拆解为一系列插入操作,并通过步骤概率的乘积计算总概率 P ( h ∣ X ) P(h∣X) P(h∣X)。以下从 模型框架、步骤分解、概率计算 三个层面解析&…

Python字符与ASCII转换方法

在Python中,可以使用内置函数 ord() 和 chr() 来转换字符和ASCII码: ​获取字符的ASCII码​ - 用 ord() ascii_code ord(A) # 返回 65 ​将ASCII码转为字符​ - 用 chr() character chr(65) # 返回 A 示例: # 打印字母A-Z的ASCII码…

[IMX][UBoot] 10.启动流程 (6) - bootz 命令启动 Linux

文章链接 UBoot 启动流程 (1) - 基本流程 UBoot 启动流程 (2) - 平台前期初始化阶段 - board_init_f UBoot 启动流程 (3) - UBoot 程序重定位 - relocate_code UBoot 启动流程 (4) - 平台后期初始化阶段 - board_init_r UBoot 启动流程 (5) - UBoot 运行阶段 - main_loop …

TCP 三次握手协商 MSS 前,如何确定 MSS 值(结合 Linux 内核源码分析)

文章目录 一、SYN总结影响 SYN MSS 的因素 二、SYNACK总结影响 SYNACK MSS 的因素 结合 Linux 内核源码 一、SYN 总结影响 SYN MSS 的因素 套接字选项 TCP_MAXSEG路由选项 advmss出口 MTU 减去 40(TCP 和 IP 的固定首部大小)IPV4_MAX_PMTU - 40(同上) 二、SYNACK 总结影响 SY…

面试150 矩阵置0

思路 我们使用两个标记集合,分别记录当矩阵的元素为0的时候的横、纵坐标。然后在对矩阵元素进行遍历,如果所在行或者所在列的索引在集合中,对应的矩阵元素修改为0即可 class Solution:def setZeroes(self, matrix: List[List[int]]) -> N…

Element UI 完整使用实战示例

以下是 Element UI 的完整使用实战示例,涵盖从环境搭建、基础组件使用到项目实战的全流程,结合多个实际场景和代码示例: 一、环境搭建与基础配置 1. 安装 Element UI 通过 npm 或 yarn 安装: npm install element-ui --save # …

C# 线程同步(一)同步概念介绍

目录 1.阻塞(Blocking) 2.阻塞 VS 轮询 3.线程状态 到目前为止,我们已经阐述了如何在线程上启动任务、配置线程以及实现双向数据传递。同时,我们也说明了局部变量是线程私有的,而引用可以通过共享字段在线程间传递以…

解决leetcode第3588题.找到最大三角形面积

3588.找到最大三角形面积难度:中等问题描述:给你一个二维数组coords,大小为nx2,表示一个无限笛卡尔平面上n个点的坐标。找出一个最大三角形的两倍面积,其中三角形的三个顶点来自coords中的任意三个点,并且该…

WIFI 安全测试记录

之前为实训课特意买的无线网卡没用上,但是我怎么可能让他荒废。所以用了几个下午,浅学了WiFi,当然没找到什么好教材,自己摸索着学的很基础,主要是当练习了,特此把我此前学习…WiFi密码实践过程写上来。 省流…

android14设置--网络--Internet副标题修改

收银机订制项目 插SIM卡,设备使用数据流量时,设置–网络–Internet副标题显示对应SIM卡运营商名称,客户要求修改这时的名称(注意图标也要同步修改) packages\apps\Settings\src\com\android\settings\network\InternetPreferenceController.j…

Web3区块链有哪些岗位?

Web3区块链领域的岗位丰富多样,涵盖技术开发、产品管理、运营、商务等多个方面,以下是具体介绍: - 技术开发类: - 智能合约开发工程师:负责编写、审计和优化智能合约,常见于DeFi开发,包括抵押…

解决 Spring Boot 对 Elasticsearch 字段没有小驼峰映射的问题

场景重现在使用 MyBatis/Mybatis-Plus 框架对 MySQL 操作时习惯了字段名小驼峰映射,然而在操作 Elasticsearch 时发现字段名没有小驼峰映射。解决方法1. 使用 ObjectMapper 手动转换: 这是最直接也最常用的方法。 在 Spring Boot 应用中使用 ObjectMappe…