Machine Learning:Introduction

文章目录

    • Machine Learning
    • Training
      • Step 1.Contract Function with Unknown Parameters
      • Step 2.Define Loss from Training Data
      • Step 3.Optimization
    • Linear Model
      • Piecewise Linear Curve
      • Beyond Piecewise Liner?
        • Function
        • Loss
        • Optimization
      • Model Deformation

Machine Learning

​ 机器学习就是让机器具备学习的能力,具体而言,是让机器具备找一个函数的能力,具此能力找到一个函数后,可以将某输入转化成某输出,例如:AlphaGo的输入是一个棋盘的当前状态或图片,输出即为下一步最佳落子位置.

​ 根据要找的函数不同,可以将机器学习分为多种类别:

  • 回归(regression):假设要找的函数的输出是一个数值,一个 标量(scalar),这种机器学习的任务称为回归.如房价预测.
  • 分类(classification):分类任务要让机器做选择题。 人类先准备好一些选项,这些选项称为类别(class),现在要找的函数的输出就是从设定好的 选项里面选择一个当作输出,该任务称为分类.如垃圾邮件识别.

​ 在机器学习领域里面,除了回归跟分类以外,还有结构化学习(structured learning)。机 器不只是要做选择题或输出一个数字,而是产生一个有结构的物体,比如让机器画一张图,写 一篇文章。这种叫机器产生有结构的东西的问题称为结构化学习。

Training

Step 1.Contract Function with Unknown Parameters

Model: y=b+w*x (based on domain knowledge)

Feature: y (output) x(input)

Parameters: w(weight) b(bias)

Step 2.Define Loss from Training Data

Loss也是一个函数 -> L(b,w) => how good a set of values is

通过代入实际参数,以及x,获得y,与真实值(label)计算差距e,最后计算累加平均
L = 1 N ∑ e n L=\frac{1}{N}\sum e_n L=N1en
其中,N 代表训验数据的个数,计算出一个 L,L 是每一笔训练数据的误差 e 相加以后的结果。L 越大,代表现在这一组参数越不好,L 越 小,代表现在这一组参数越好。

​ 估测的值跟实际的值之间的差距,其实有不同的计算方法,计算绝对值的差距,,称为平均绝对误差(Mean Absolute Error,MAE)。

e = ∣ y ^ − y ∣ e=|\widehat{y}-y| e=y y

​ 如果算平方的差距,则称为均方误差(Mean Squared Error,MSE)。

e = ( y ^ − y ) 2 e=(\widehat{y}-y)^2 e=(y y)2
​ 有一些任务中 y 和 标签 都是概率分布,这个时候可能会选择交叉熵(cross entropy)

​ 根据不同参数所得损失画出的等高线图称为误差表面(error surface)

image-20250209175809764

Step 3.Optimization

找到一个w*,b*= arg min L(w,b)

如何找到? -> 梯度下降法(Gradient Descent)

  1. 随机选取初始值 w0(或b0)
  2. 计算偏导(梯度值)
  3. 根据梯度值对w更新,使变换后的新梯度下降
  4. 斜率大小和预设learning rate 决定步进速度(hyperparameter-超参数->预设)

image-20250209181846979

缺点:从本例中可以明显看出,梯度下降法可能只能找到局部最小值,而非全局最小值

但是,局部最小值算得上一个真正的问题吗?


Linear Model

在机器学习中,线性模型和非线性模型指的是模型如何处理输入数据以预测输出。

  • 线性模型 线性模型假设输入特征(比如房屋面积、房间数量等)与目标变量(比如房价)之间的关系是线性的。这意味着每个输入特征对目标变量的影响是独立的,并且这种影响是成比例的。简单来说,如果画出这些关系图,它们会形成一条直线或一个平面。例如,预测房价,把房子面积当作一个特征 ,如果是线性关系,可能就是房价等于面积乘以一个价格系数再加上一个固定值,意味着面积每增加一定量,房价就会按照固定幅度增加。
  • 非线性模型 非线性模型则认为输入特征和目标变量之间的关系不是简单的直线关系。换句话说,非线性模型能够捕捉到输入特征与目标变量之间更复杂的关系。这些关系不能通过直线或者平面来表示。比如预测一个城市的犯罪率,可能和人口密度、教育水平、经济发展程度等多个特征有关,这些特征和犯罪率之间的关系不是简单的比例关系,可能人口密度达到一定程度后,犯罪率增长的速度会变快,这就是非线性关系。

线性模型对于实际问题可能过于简单,因为x和y之间可能有比较复杂的关系,这种限制被称为Model Bias

image-20250210104217595

Piecewise Linear Curve

如图所示,线性模型有很大的限制,无法表示红色的情况.而红色线,即分段线性曲线(piecewise linear curve)可以看作是一个常数,再加上一堆蓝色的函数

image-20250210120627125

Beyond Piecewise Liner?

Function

在分段线性曲线上取足够多且位置合适的点,分段线性曲线就可以逼近这一个连续的曲线,就可以逼近有角度的、有弧度的这一条曲线。 所以可以用分段线性曲线去逼近任何的连续的曲线,而每个分段线性曲线都可以用一大堆蓝色的函数组合起来。

image-20250210140320792

如何构造一些蓝色函数,x和y的关系比较复杂时,并不容易直接写出,但是可以用一条曲线来理解它,即用Sigmoid函数逼近Hard Sigmoid,其表达式为:
y = c ∗ 1 1 + e − ( b + w x ) y=c*\frac{1}{1+e^{-(b+wx)}} y=c1+e(b+wx)1
其横轴输入为x1,输出为y, c为常数:

image-20250210141554463

显然,y会收敛于0~c之间,也可以写成y=c*sigmoid(b+wx1),这样通过修改参数,构造不同的sigmoid

组合不同sigmoid函数,就完成了对原始分段线性曲线的逼近了

image-20250210143126303

此外,我们可以不只用一个特征x1,可以用多个特征代入不同的c, b,w,组合出各种不同的函数,至此完成从线性到非线性,从简单函数 到更有灵活性(flexibility)的函数:

image-20250210143252168

形象化如下图:

image-20250210154208298

至此,我们完成了模型构造

Loss

损失函数的参数变更为提取出的未知参数集

image-20250210161926013

Optimization

在参数比较少的情况下,我们可以直接进行枚举,得到最小损失的参数,然而,由于参数非常多,必须采用一些如梯度下降的优化技巧来更好的降低损失

image-20250210162058007

通过此过程计算出梯度为0向量,导致无法再更新参数为止,不过在实现上几乎不太可能梯度为0,通常会停下来就是我们不想做了。

在实际梯度下降过程中,会把数据随机分成多个batch,进行分组计算损失,每个batch计算出损失后,根据其计算梯度,再更新参数.按这种分组方法将全部数据计算过一次后,称为一个epoch

Model Deformation

之前,我们用Sigmoid函数来逼近Hard Sigmoid,事实上,Hard Sigmoid可以看作两个Rectified Linear Unit (ReLU)的合并,其公式为:
c ∗ m a x ( 0 , b + w x ) c*max(0,b+wx) cmax(0,b+wx)
image-20250210165930330

诸如此类的函数,称之为激活函数,通过增加更多激活函数逼近真实情况,但是效果仍有限,于是对模型进行改进,将一次输出作为输入再次进入新模型优化,这样就产生了一个类似人脑神经元的模型.

image-20250210171727059

如上图,Sigmoid 或ReLU 称为神经元(neuron),很多的神经元称为神经网络(neural network),人脑中就是有很多神经元,很多神经元串起来就是一个神经网络,将每排神经元看作一层,称为隐藏层(hidden layer),这套技术就称为了深度学习.

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java】多线程和高并发编程(三):锁(下)深入ReentrantReadWriteLock

文章目录 4、深入ReentrantReadWriteLock4.1 为什么要出现读写锁4.2 读写锁的实现原理4.3 写锁分析4.3.1 写锁加锁流程概述4.3.2 写锁加锁源码分析4.3.3 写锁释放锁流程概述&释放锁源码 4.4 读锁分析4.4.1 读锁加锁流程概述4.4.1.1 基础读锁流程4.4.1.2 读锁重入流程4.4.1.…

使用redis实现 令牌桶算法 漏桶算法

流量控制算法,用于限制请求的速率。 可以应对缓存雪崩 令牌桶算法 核心思想是: 有一个固定容量的桶,里面存放着令牌(token)。每过一定时间(如 1 秒),桶中会自动增加一定数量的令牌…

金媒婚恋交友系统V10.5的CRM操作提示:“您没有权限执行此操作”解决方法

大家都知道新年2.5日新版10.5已经升级了,这次升级相对以前更新内容相当重量级!最突出的就是CRM系统的更新和UI改观吐槽的内容都改进了我愿意和大家分享代码和新得~关注我昵称就能知道我哦!! 出现原因:是这个红娘账号没…

ubuntu使用最佳流程2:ubuntu20.04安装cuda(多版本切换),cudnn,显卡驱动

cuda安装(多版本cuda安装:可切换) 查看系统硬件配置 查询Linux系统的版本号 lsb_release -a查询显卡型号 待更新下载 CUDA官方传送门 找到适合自己的命令行下载安装即可 安装 accept 第一个driver去掉(点击enter&#xff…

Crowdin 在线本地化平台调用硅基流动AI预翻译

平台介绍 硅基流动(AI服务平台) 官网:https://siliconflow.cn/zh-cn/ 官方介绍 我主要使用:云服务平台 SilliconCloud 此平台已经将热门的开源大语言模型部署,花钱买额度,就能使用 API 最近有上线 Deep…

二、通义灵码插件保姆级教学-IDEA(使用篇)

一、IntelliJ IDEA 中使用指南 1.1、代码解释 选择需要解释的代码 —> 右键 —> 通义灵码 —> 解释代码 解释代码很详细,感觉很强大有木有,关键还会生成流程图,对程序员理解业务非常有帮忙,基本能做到哪里不懂点哪里。…

游戏引擎学习第97天

回顾昨天并计划今天 在这期节目中,主要讲解了光照的概念,并进一步讨论了法线贴图光照的实现。节目的内容大致分为几个部分: 光照的基础概述:讨论了光的工作原理以及如何在编程图形时需要考虑光照问题。尽管这些概念并没有深入到…

python+unity落地方案实现AI 换脸融合

先上效果再说技术结论,使用的是自行搭建的AI人脸融合库,可以离线不受限制无限次生成,有需要的可以后台私信python ai换脸融合。 TODO 未来的方向:3D人脸融合和AI数据训练 这个技术使用的是openvcinsighface,openvc…

Python——批量图片转PDF(GUI版本)

目录 专栏导读1、背景介绍2、库的安装3、核心代码4、完整代码总结专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注 👍 该系列文章专栏:请点击——>Python办公自动化专…

AutoMQ 如何实现没有写性能劣化的极致冷读效率

前言 追赶读(Catch-up Read,冷读)是消息和流系统常见和重要的场景。 削峰填谷:对于消息来说,消息通常用作业务间的解耦和削峰填谷。削峰填谷要求消息队列能将上游发送的数据堆积住,让下游在容量范围内消费…

[AI]Mac本地部署Deepseek R1模型 — — 保姆级教程

[AI]Mac本地部署DeepSeek R1模型 — — 保姆级教程 DeepSeek R1是中国AI初创公司深度求索(DeepSeek)推出大模型DeepSeek-R1。 作为一款开源模型,R1在数学、代码、自然语言推理等任务上的性能能够比肩OpenAI o1模型正式版,并采用MI…

MariaDB *MaxScale*实现mysql8读写分离

1.MaxScale 是干什么的? MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。 2.MaxScale 实验环境 中间件192.168.12…

Ollama 简单 好用 好玩

简介 Ollama https://github.com/ollama/ollama/ 是一个基于 Go 语言 的 本地大语言模型运行框架,专注于本地化运行大型语言模型(LLM)的开源工具。 类 Docker 产品(支持 list,pull,push,run 等命令),更好玩…

存储可靠性:从基于磁盘的RAID到分布式纠删码(EC),多副本

文章目录 0.简介1.RAID1.1 RAID 01.2 RAID 11.3 RAID 51.4 RAID 61.5 RAID 10 2.EC(纠删码)2.1 概念2.2 原理 3.多副本4. 总结和优缺点比较 0.简介 在选择数据存储方案时,一个绕不开的话题就是数据存储的可靠性(面对故障时的应对…

【自然语言处理】利用Memory Layer替换Transformer中的FFN

论文地址:https://arxiv.org/pdf/2412.09764 相关博客 【自然语言处理】利用Memory Layer替换Transformer中的FFN 【自然语言处理】【大模型】BitNet:用1-bit Transformer训练LLM 【自然语言处理】BitNet b1.58:1bit LLM时代 【自然语言处理】…

Redis持久化的两种方式:RDB和AOF

redis中的数据存储在缓存中,如果没有持久化的策略,Redis一旦宕机,那么将会导致数据丢失;因此redis提供了以下两种持久化方式:RDB和AOF 一般来说,大部分公司对这两种方式都是同时开启的 一、RDB RDB策略全…

linux查看所有程序占用的本地端口

sudo ss -tulwnp ss是Socket Statistics的缩写,用来替代旧的netstat工具,功能更强大,执行更快。它用于查看系统的网络连接情况,包括TCP、UDP等协议的信息。 查阅ss的帮助文档(man ss),发现选项…

组件库选择:ElementUI 还是 Ant Design

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

9 数据流图

9 数据流图 9.1数据平衡原则 子图缺少处理后的数据操作结果返回前端应用以及后端数据库返回操作结果到数据管理中间件。 9.2解题技巧 实件名 存储名 加工名 数据流

CEF132 编译指南 MacOS 篇 - 基础开发工具安装实战 (二)

1. 引言 在 macOS 平台上编译 CEF132 之前,首要任务是搭建一个完善的开发环境。与 Windows 和 Linux 环境不同,macOS 的开发环境主要以 Xcode 为核心。本篇将作为 CEF132 编译指南系列的第二篇,详细指导读者如何在 macOS 系统上安装和配置 X…