机器学习课程笔记(一)导论

2023-11-12

符号与名词定义

  • 有监督学习的输入被称作input variables, features, attributes,有监督学习的输出被称作output, variables,targets,输入+输出被称作training example,instance。所有的输入输出对的集合被称作training data set。
  • 我们用\mathcal{X}代表输入,\mathcal{Y}代表输出。有监督学习的过程为了找到一个函数h: \mathcal{X} \rightarrow \mathcal{Y}。在这里h(x)y的一个good predicator。h被称为hypothesis。
  • 有监督学习问题是按照输出进行分类的
    • 输出是实数空间,则是回归问题(regression)。
    • 输出是离散空间,则是分类问题(classification)。
    • 输出更为复杂,则是structured prediction。

机器学习的分类

  • 有监督学习(supervised learning)
    • 本质上就是从带有标签的数据集<x_1,x_2,...,x_3,y>中,学习一个函数f,将输入变量映射到输出空间。
    • 依赖于人工标注的有限数据。
    • 目标:在训练过程中最小化损失函数(loss function)。
  • 强化学习(reinforment learning)
    • 通过与环境的交互,获得奖励信号,进行训练。
    • 目标:分析和最大化一个长期的奖励。
  • 无监督学习(unsupervised learning)
    • 通过无标签的数据进行训练。
    • 可以做聚类或者降维

解决有监督学习问题的一般方法

  1. 确定输入输出
  2. 确定如何编码输入输出
  3. 选择假设类型
  4. 确定损失函数
  5. 选择一个高效的算法对解空间进行搜索

线性假设

在线性假设中,我们认为输入输出的关系h(x)可以用一个线性表达式解决。即h_w(x)=\sum_{i=0}^{n}w_ix_i=w^Tx

根据前面有监督学习的优化目标,我们需要找到w^T,使得误差函数最小。在这里,我们使用的是平方和误差函数J(\mathbf{w})=\frac{1}{2} \sum_{i=1}^{m}\left(h_{\mathbf{w}}\left(\mathbf{x}_{i}\right)-y_{i}\right)^{2}

如果我们使用梯度下降法进行搜索,那么具体的做法可见深度学习数学基础

如果我们要求严格解的话,那么其实就是要求J(w)的梯度,令其梯度为0.

w有解的条件是数据各个维度的特征是线性独立的。因此多数时候,我们只能找到近似解,而不能严格求解。

以上是线性假设的简单形式,我们把形式变换的复杂一点。

h_{\mathbf{w}}(\mathbf{x})=\sum_{k=0}^{K-1} w_{k} \phi_{k}(\mathbf{x})=\mathbf{w}^{T} \phi(\mathbf{x})

在这里,我们定义了一个basic function。所有的线性关系都是和basic function有关,basic function是不变的。

过拟合与欠拟合

过拟合在机器学习中是非常重要的问题,就是我们的函数可以完美地预测训练集中的数据,但是没法泛化到整个数据集全体。

我们可以使用交叉验证的手段来帮助我们。

五折交叉验证:数据分为大致均等的5等分,每次用4等分训练,1等分用来测试,得该算法的准确度。依次轮转,计算平均的准确度。

偏置-方差分解(Bias-variance decomposition)是统计学派看待模型复杂度的观点。简单来说,一个模型的误差可以分为三个部分,偏差度量了模型的期望预测和真实结果的偏离程度,刻画了模型本身的拟合能力,方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响,噪声表达了当前任务上任何模型所能达到的期望泛化误差的下界,刻画了学习问题本身的难度。

偏置-方差分解推导过程在此不在赘述,直接上最后的分解结果。

我们最后分解出来了三项。第一项就是所谓的方差,受训练集大小的影响,第二项是偏差代表了真正的系统性误差,第三项是无可避免的噪声。

偏差来源于没有好的假设h(x)。

而方差则是因为假设太多,容易收到数据扰动的影响。

我们需要在偏差和方差之间进行权衡。

对于过拟合而言,数据越多,越支持我们使用更复杂的假设,而不出现过拟合现象。

 

如何选择假设

h为假设,D为训练数据集,根据贝叶斯理论,我们有

P(h|D)=P(D|h)P(h)/P(D)

P(h|D)为条件概率,P(D|h)为似然概率,P(h)为先验概率。

我们应该选择P(h|D)最大的,实际上就是P(D|h)*P(h)最大的假设。

如果我们再假设所有先验概率都相等,那么我们可以进一步简化为选择P(D|h)最大的假设。这就是一个完全的最大似然估计的问题。

如果我们假设噪声是正态分布的,那么符合最大似然估计的w就是最小化平方和误差的w。

\mathbf{w}^{*}=\arg \min _{\mathbf{w}} \sum_{i=1}^{m}\left(y_{i}-h_{\mathbf{w}}\left(\mathbf{x}_{\mathbf{i}}\right)\right)^{2}

用不同的噪声假设,代表我们要选用不同的损失函数。

 

正则化

  • 正则化是非常有效的防止过拟合的手段。我们增加了一个损失函数项,用来惩罚过于复杂的假设。λ是决定这个惩罚大小的系数因子。J(w)=J_D(w)+\lambda J_{pen}(w)
  • 对于线性函数,我们可以把损失函数变为这样的形式\frac{1}{2}(\boldsymbol{\Phi} \mathbf{w}-\mathbf{y})^{T}(\mathbf{\Phi} \mathbf{w}-\mathbf{y})+\frac{\lambda}{2} \mathbf{w}^{T} \mathbf{w}

  • 可能存在的问题:λ不好选择,对于无关的特征,经过正则化之后权重只会很小,但是不为0.

  • 正则化可以防止过拟合的原因:好复杂,还是看其他材料吧https://www.zhihu.com/question/20700829

 

Logistic regression

下面我们来看线性分类怎么做。

sigmoid neuron:P(y=1|x)=h(x)=1/(1+e^{w^Tx})

交叉熵损失函数为J_{D}(\mathbf{w})=-\left(\sum_{i=1}^{m} y_{i} \log h\left(\mathbf{x}_{i}\right)+\left(1-y_{i}\right) \log \left(1-h\left(\mathbf{x}_{i}\right)\right)\right)

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习课程笔记(一)导论 的相关文章

  • 智能系统设计开发 java_一种基于java语言的智能系统设计与开发.doc

    一种基于java语言的智能系统设计与开发 doc 还剩 36页未读 继续阅读 下载文档到电脑 马上远离加班熬夜 亲 很抱歉 此页已超出免费预览范围啦 如果喜欢就下载吧 价低环保 内容要点 兰州交通大学毕业设计 论文 32参考文献 1 郭今吕
  • STM32 定时器的简单应用 1ms中断代码

    引言 利用定时器TIM8产生1ms中断 每中断一次 全局变量 1 计数到10即10ms 使得输出引脚翻转一次 芯片采用STM32F103VCT6 系统输入时钟12MHz 完成代码并用示波器输出 根据要求 本项目涉及系统时钟配置 中断源配置
  • 数据结构---冒泡排序

    冒泡排序 算法思想 代码实现 优化冒泡排序1 优化冒泡排序2 算法思想 把相邻的元素两两比较 当一个元素大于右侧相邻元素时 交换它们的位置 当一个元素小于或等于右侧相邻元素时 位置不变 每次冒泡 就把当前最大的元素弄出来了 冒泡排序是一种稳

随机推荐

  • Python 下载的 11 种姿势

    1 使用requests 你可以使用requests模块从一个URL下载文件 考虑以下代码 你只需使用requests模块的get方法获取URL 并将结果存储到一个名为 myfile 的变量中 然后 将这个变量的内容写入文件 2 使用wge
  • ES报错Native controller process has stopped - no new native processes can be started

    一 问题描述 在Linux中启动ES发现如下错误 Native controller process has stopped no new native processes can be started 问题如下所示 问题代码 2022 0
  • OS X Mavericks Server使用教程:安装设置

    2014年1月2日 51CTO外电头条 OS X Server 10 9增加了多项新服务 同时也通过调整让旧有服务更加易于使用 Mavericks运行Server app 3 0版本 OS X Server以更为友善的面貌亲近用户 OS X
  • springboot 事务回滚(*)

    springboot 事务回滚 springboot 事务使用 1 只有在开启事务的方法中出现异常 才会自动回滚 需要在service的public方法上面加上 Transactional rollbackFor Exception cla
  • iLogtail专题六:实际场景采集模拟

    公司一直使用的Filebeat进行日志采集 由于Filebeat采集组件一些问题 现需要使用iLogtail进行代替 现记录下iLogtail介绍和实际使用过程 这是iLogtail系列的第六篇文章 背景 由于平时日志采集存在堆栈信息日志情
  • python 学习笔记06: dict(字典)类型的操作

    usr bin env python3 coding utf 8 Created on Mon Mar 25 22 04 09 2019 author sungang 今天学习python中用数据类型 dict 字典 学习一个类型 最好的办
  • LeetCode 136.只出现一次的数字

    题目描述 给定一个非空整数数组 除了某个元素只出现一次以外 其余每个元素均出现两次 找出那个只出现了一次的元素 说明 你的算法应该具有线性时间复杂度 你可以不使用额外空间来实现吗 示例 1 输入 2 2 1 输出 1 示例 2 输入 4 1
  • 杀毒软件会从哪些方面对计算机进行保护作用(360杀毒软件)

    360杀毒软件介绍 360杀毒软件介绍 360杀毒是360安全中心出品的一款免费的云安全杀毒软件 它创新性地整合了五大领先查杀引擎 包括国际知名的BitDefender病毒查杀引擎 Avira 小红伞 病毒查杀引擎 360云查杀引擎 360
  • 《因果科学周刊》第5期:OOD 泛化

    为了帮助大家更好地了解因果科学的最新科研进展和资讯 我们因果科学社区团队本周整理了第5期 因果科学周刊 推送近期因果科学值得关注的论文和资讯信息 本期的主题是 OOD 泛化 另外在 近期社区活动 专栏 我们将介绍清华副教授崔鹏在 NeurI
  • 借助人工智能,产品文章直接生成字幕视频

    const name 产品文章生成视频 console log name 拍视频不是我的强项 但我发现现在只需要通过AI就可以直接把产品文字变成短视频 省去了剪辑的烦恼 我们来看看文本生成的视频效果预览 为了方便在页面上展示 下面显示的视频
  • 编写程序,输出100以内能够整除7,但不能整除5的数。要求每一行输出6项数据。

    from math import n 0 for i in range 1 101 if i 7 0 and i 5 0 print gt 2d format i end n n 1 if n 6 0 print
  • 反射与注解(详细)

    文章目录 一 注解Annotation 1 什么是注解 2 内置注解 3 元注解 4 自定义注解 二 反射机制 1 静态vs动态语言 动态语言 静态语言 2 java反射机制概述 3 java反射机制研究及应用 反射机制提供的功能 优点 缺
  • 如何判断1024!末尾有多少个0

    分析 方法一 暴力法 简单的方法就是就算出1024 的值 然后判断末尾有多少个0 但是这种方法有两个非常大的缺点 第一算法效率非常低下 第二 当这个数字比较大的时候直接计算阶乘可能会导致数据溢出 从而导致计算结果出现偏差 因此 下面给出另外
  • mysql 按时间降序排序、时间为空的排在前面

    SELECT FROM t task info ORDER BY IF ISNULL end at 0 1 end at ASC
  • web安全--文件上传漏洞实例操作

    1 进入owasp靶机测试环境 进入dvwa login登录名和密码都为admin2 2 进入DVWA Security选择安全级别 首先选择低安全级别 3 进入upload 可以选择右下角的view resource 查看后端源码可以上传
  • SpringBoot入门学习—— 三、项目属性配置

    三 项目属性配置 第一种 application properties 访问http 127 0 0 1 8081 girl hello 第二种 application yml 填写属性需要空格 idea中颜色会变 访问网址 http 12
  • 打不开github

    https blog csdn net qq 41176055 article details 128496628
  • BearPi-HM Micro 鸿蒙应用开发体验

    这是在去年小熊派开发的一款开发板 核心STM32MP157 我之前也花了一些时间来学习开发了一个应用 包含南向各种外设驱动的开发和北向hap APP的开发 最终实现了自己的构想 之前没有时间记录 今天简单记录总结 南向开发功能如下 板载陀螺
  • k8s笔记24--安装metrics-server及错误处理

    k8s笔记24 安装metrics server及错误处理 1 介绍 2 安装 3 常见错误 第一次错误 持续 Failed probe 第二次错误 bad status code 403 Forbidden 4 说明 1 介绍 最近一个同
  • 机器学习课程笔记(一)导论

    符号与名词定义 有监督学习的输入被称作input variables features attributes 有监督学习的输出被称作output variables targets 输入 输出被称作training example inst