机器学习概括

news/2025/2/15 17:50:06/

文章目录

  • 一、机器学习是什么?
  • 二、模型训练
    • YouTube流量预测
      • 1. 先写一个具有未知参数的函数(Function)
      • 2. 定义损失(从训练数据进行计算)
      • 3.最优化
      • 4.结果分析
    • Back to framework
      • 1.带有未知数的函数:
      • 2.定义损失(从训练数据进行计算)
      • 3. 最优化
      • 4.[激活函数](https://blog.csdn.net/weixin_39910711/article/details/114849349)
      • 5.继续改我们的模型
  • 三、Neural Network


一、机器学习是什么?

机器学习≈找一个函数
在这里插入图片描述

这个函数不是人能容易的找出来,需要借助机器的力量。
在这里插入图片描述
不同的函数:

  • 回归(Regression):函数输出一个标量。eg.对PM2.5的预测:

对PM2.5的预测

  • 分类(Classification):给定选项(类),函数输出正确的选项。eg1二分类.是否为垃圾邮件:
    是否为垃圾邮件
    eg2多分类.下围棋:
    在这里插入图片描述

二、模型训练

训练:

  • 先写一个具有未知参数的函数(Function)
  • 定义损失(从训练数据进行计算)
  • 最优化

YouTube流量预测

有没有可能找一个函数,输入是这个频道后台的数据,输出隔天的总点阅率?
在这里插入图片描述
机器学习找这个函数分为三个过程,以 YouTube流量预测为例。

1. 先写一个具有未知参数的函数(Function)

先猜测函数的类型
在这里插入图片描述

2. 定义损失(从训练数据进行计算)

损失是一个关于参数的函数
在这里插入图片描述
函数输入的值代表:这一组参数设定某一组数值,这个数值是好还是不好。
在这里插入图片描述
在这里插入图片描述
同样的方法,我们可以算出三年来每一天的预测误差。
在这里插入图片描述
接下来我们把三年的误差求平均。
在这里插入图片描述

L越小参数设置越好,越大越不好。

计算误差有很多方式,根据需求选取。
在这里插入图片描述
如果真实值与预测值是概率分布,可能选择交叉熵损失。

误差曲面:
在这里插入图片描述

3.最优化

找一组参数是的L最小
在这里插入图片描述

为此我们使用梯度下降(gradient decent)

简化过程,一个参数的gradient decent:
在这里插入图片描述
在这里插入图片描述

  • 随机选取初始点 w 0 w_0 w0
  • 计算 ∂ L ∂ w ∣ w = w 0 \frac{\partial L}{\partial w}|_{w=w_0} wLw=w0。(就是看左右哪边高,向低的跨步)
    若求出为负值(左高右低的切线),增大w,loss就变小;若求出为正值(左低右高的切线),减小w,loss就变大。
    步子跨多大,取决于:1.斜率(斜率大就跨大一点),2学习率(自己设定的)
  • 更新迭代w
    在这里插入图片描述
    ∂ L ∂ w ∣ w = w 0 \frac{\partial L}{\partial w}|_{w=w_0} wLw=w0计算为0就不在更新了。

有可能梯度下降会陷入局部最优
在这里插入图片描述

局部最小值真的会导致问题吗?(后面会说gradient decent的真正痛点)

两个参数的gradient decent:
在这里插入图片描述

  • 随机选取初始点 w 0 , b 0 w_0,b_0 w0b0
  • 计算 ∂ L ∂ w ∣ w = w 0 , b = b 0 , ∂ L ∂ b ∣ w = w 0 , b = b 0 \frac{\partial L}{\partial w}|_{w=w_0,b=b_0},\frac{\partial L}{\partial b}|_{w=w_0, b=b_0} wLw=w0b=b0bLw=w0,b=b0。(就是看左右哪边高,向低的跨步)
    若求出为负值(左高右低的切线),增大w,loss就变小;若求出为正值(左低右高的切线),减小w,loss就变大。
    步子跨多大,取决于:1.斜率(斜率大就跨大一点),2学习率(自己设定的)
  • 更新迭代w
    在这里插入图片描述
    在深度学习中,微分应该怎么算? ---- 程序会自己算
    在这里插入图片描述
    在这里插入图片描述

4.结果分析

在这里插入图片描述
能否做的更好?
在这里插入图片描述
从图中看出,7天一个循环。我们分别考虑2017-2020的前1、7、18、56天,对2021年的某一天的影响。我们采用的是Linear Model。

在这里插入图片描述
线性模型太简单了… 我们需要更复杂的模式。
在这里插入图片描述
线性模型具有严重的局限性。模型偏差我们需要一个更灵活的模式!

在这里插入图片描述

所有分段的线性曲线可以可以由常数与一系列蓝色Function组成。

在这里插入图片描述
转折越多,越复杂,需要的蓝色Function就越多。

如果不是分段曲线,而是连续曲线,我们可以使用分段线性曲线去逼近。
在这里插入图片描述
如何表示蓝色的Function呢?
在这里插入图片描述
我们可以使用 y = c 1 1 + e − ( b + w 1 x ) y=c\frac{1}{1+e^{-(b+w_1x)}} y=c1+e(b+w1x)1:
在这里插入图片描述
Sigmoid Function(S型曲线):
y = c ∗ s i g m o i d ( b + w 1 x ) = c 1 1 + e − ( b + w 1 x ) y = c*sigmoid(b+w_1x) = c\frac{1}{1+e^{-(b+w_1x)}} y=csigmoid(b+w1x)=c1+e(b+w1x)1

w改变斜率、b曲线左右移动、c改变他的高度:
在这里插入图片描述
在这里插入图片描述

新的模型:有更多的特征
在这里插入图片描述

我们把它画出来,直观
在这里插入图片描述
x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3 r 1 , r 2 , r 3 r_1,r_2,r_3 r1,r2,r3的关系我们可以用矩阵表示出来:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


Back to framework

1.带有未知数的函数:

在这里插入图片描述
特征与参数:
在这里插入图片描述

2.定义损失(从训练数据进行计算)

Loss是参数的函数 L ( θ ) L(\theta) L(θ)
Loss意味着一套参数值有多好
在这里插入图片描述

3. 最优化

在这里插入图片描述

  • 随机选取初始点 θ 0 \theta_0 θ0
  • 计算微分

(就是看左右哪边高,向低的跨步)
若求出为负值(左高右低的切线),增大w,loss就变小;若求出为正值(左低右高的切线),减小w,loss就变大。

  • 更新迭代w
    步子跨多大,取决于:1.斜率(斜率大就跨大一点),2学习率(自己设定的)
    在这里插入图片描述
    在这里插入图片描述
    直到你不想做了,或计算出的gradient为零向量。

实际做gradient decent:
N的数据分成多个Batch,计算loss,更新参数。
在这里插入图片描述
在这里插入图片描述
为什么Hard Sigmoid 要换成Soft Sigmoid?
Hard Sigmoid 表示:

在这里插入图片描述
ReLU函数:
在这里插入图片描述
从ReLU到Sigmoid:(2个ReLU合成Sigmoid)
在这里插入图片描述

4.激活函数

在这里插入图片描述
在这里插入图片描述

5.继续改我们的模型

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
机器02/14左右高估了,因为除夕。

三、Neural Network

那这个 Sigmoid 或是 ReLU,它们在机器学习里面叫做 Activation Function 激活函数。 这些Sigmoid 或 ReLU ,它们叫做 Neuron 神经元。我们这边有很多的 Neuron,很多的 Neuron 就叫做 Neural Network。
在这里插入图片描述

每一排neourn叫做hidden layer,许多layer就叫做Deep Learning。

在这里插入图片描述

为什么不做的更深呢?
会过拟合,即在训练资料上变好,在没训练的资料上变差

在这里插入图片描述
预测未知资料
在这里插入图片描述


http://www.ppmy.cn/news/867388.html

相关文章

Linux使用密钥登录

写这篇文章的起因是我要使用 rsync下载远程服务器的文件备份 但是每次使用 rsync的时候都要输入密码,非常麻烦,而且我是备份脚本,后台运行的时候不能输入密码 解决方法就是我们使用密钥登录 先来看看原理图 这种方法比较安全,只要…

imx8qxp平台,android11系统,U盘和sdcard自动挂载配置

1.前提 U盘驱动和sdcard驱动能正常加载,设备树配置没有问题 2.在device/nxp/imx8q/mek_8q/fstab.nxp中添加以下命令 /devices/platform/bus5b000000/5b110000.usb/* auto auto defaults voldmanagedusb:auto /devices/platform/bus5b000000/5b020000.mmc/mmc_hos…

SAP QM后台表

QMAT 检验类型 - 物料参数 QMHU 检验批和处理单位项目间的 QM 链接 QMTB 检验方法记录 QMTT 检验方法文本 QPAC 检验选择集的目录代码 QPAM 检验选择集目录 QPMK 检验主特性 QPMT 检验主特性文本 QPMZ 分配表检验方法/主检验特性 TQ01D QM 主数据的授权组 TQ01E QM …

利用yocto构建i.MX8QM刷机系统

//安装环境依赖 $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-d…

kernel:imx8qm平台下fastboot烧写spi_norflash

在fastboot的功能里面实现烧写flexspi的uboot到nor_flash上面 643 修改: 644 uboot/drivers/usb/gadget/f_fastboot.c 645 -25,6 25,9 646 #include <linux/compiler.h> 647 #include <version.h> 648 #include <g_dnl.h> 649 …

IMX8QM开发yocto环境搭建(L4.14.98-2.0.0_ga)

系统环境选择为考虑到编译环境的备份&#xff0c;方便移植等因素。我使用VirtualBox虚拟机的方式搭建ubuntu开发环境。 ubuntu版本&#xff1a;ubuntu-14.04.5-desktop-amd64.iso 下载地址&#xff1a; http://old-releases.ubuntu.com/releases/14.04.5/ 硬盘预留空间推荐300G…

Serv-U数据库用户

安装环境&#xff1a; ODBC 32位&#xff0c;5.3unicodeServ-U Windows-v15.1.2MySql 5.7.21(WAMP安装)操作系统 Windows 10 / Windows Server 2008ODBC介绍&#xff1a; 开放数据库连接&#xff08;Open Database Connectivity&…

状态机 | 如何从零开始构建一个QM项目

关注、星标公众号,直达精彩内容 来源:技术让梦想更伟大 作者:李肖遥 QM简介以及打开方式 QM建模工具可用于两种操作模式:交互式GUI模式和命令行模式。同时也支持windows、Linux、MaxOS操作系统上运行,其两种操作模式都是一样的,我将在windows上演示。 windows上运行QM直接…