热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述

目录前言基本概念机器学习的三个基本要素1.模型2.学习准则几种常用的损失函数风险最小化准则3.优化算法参数与超参数梯度下降法前言机器学习就是让计算机从数据中进行自动学习,得到某种知

目录

      • 前言
      • 基本概念
      • 机器学习的三个基本要素
        • 1.模型
        • 2.学习准则
          • 几种常用的损失函数
          • 风险最小化准则
        • 3.优化算法
          • 参数与超参数
          • 梯度下降法

前言

机器学习就是让计算机从数据中进行自动学习,得到某种知识(或规律),并利用学习到的规律对未知的数据进行预测。整体思路是让计算机“看”大量的样本,并从中学习到一些经验,再用这些经验来识别新的样本。比如进行手写体数字识别的过程。

基本概念

以在市场上买芒果为例,介绍机器学习基本概念。随机挑选一些芒果,列出特征,比如颜色、大小、形状、产地。再列出要预测的标签,比如芒果的甜度、水分(连续值),也可以是离散值比如好、坏。一个标记好特征和标签的芒果就是一个样本,一组样本构成一个数据集,数据集一般分为训练集和测试集,训练集是用来训练模型的,测试集是用来检验模型好坏的。
用一个dd维的向量表示一个芒果的所有特征构成的向量,称为特征向量,每一维表示一个特征。假设训练集有NN个样本,构成训练集DD
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述

希望让计算机自动学习一个函数来建立每个样本特征向量和标签之间的映射,对于一个未知样本可以通过此函数来预测标签的值。其中 θ\theta是可学习的参数。
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
通过一个学习算法,在训练集上找到一组参数θ\theta^*,使得函数ff可以近似真实映射关系。这个过程称为学习或者训练过程,函数ff称为模型。然后对测试集中的样本使用学习到的模型来预测标签,计算预测结果的准确率。
如下图所示为机器学习系统示例:
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述

机器学习的三个基本要素

1.模型

一个机器学习任务需要确定其输入空间和输出空间,不同的机器学习任务的区别主要在于输出空间不同,比如在两类分类问题中y={+1,1}y=\lbrace+1,-1\rbrace,在CC类分类问题中,y={1,2,3...C}y=\lbrace1,2,3...C\rbrace,在回归问题中y=Ry=R
输入空间和输入空间构成了一个样本空间,对于样本空间中的样本(x,y)(x,y),要找到一个映射函数g:x>yg:x->y,使得y=g(x)y=g(x)
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述

机器学习的目标是找到一个模型来近似真实映射函数g(x)g(x)或者真实条件概率分布,于是根据经验确定一个假设函数集合FF,称为假设空间,然后观察其在训练集上的效果,选择一个理想的假设fFf^*∈F,假设空间为一个参数化的函数族,如上式所示,其中,f(x,θ)f(x,\theta)为假设空间的模型,θ\theta为可学习参数,mm为参数数量。常见假设空间分为线性空间非线性空间,对应的模型分别为线性模型非线性模型
线性模型: 线性模型的假设空间为一个参数化的线性函数族,参数θ\theta包括了权重向量WW和偏置bb
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述

非线性模型: 广义的非线性模型可以理解为多个非线性基函数ϕ(x)\phi(x)的线性组合,即f(x;θ)=wTϕ(x)+bf(x; θ) = w^Tϕ(x) + b

2.学习准则

令训练集是由NN个独立同分布的样本组成,要求样本分布必须是固定的,不会随时间变化,如果本身是可变的,则无法用这些数据学习。一个好的模型f(x,θ)f(x, θ^∗)应该在所有(x,y)(x, y) 的可能取值上都与真实映射函数y=g(x)y = g(x)一致,即满足下式。其中ϵ\epsilon是一个很小的正数。
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
模型f(x;θ)f(x; θ)的好坏可以通过期望风险R(θ)R(θ)来衡量,其中pr(x,y)p_r(x, y)为真实的数据分布,L(y,f(x;θ))L(y, f(x; θ))损失函数,用来量化两个变量之间的差异。
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述

几种常用的损失函数

0-1损失函数: 直观表示模型的错误率,但是数学性质不好,不连续且导数为0,难以优化。
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
平方损失函数: 一般用在预测标签为实数值的任务中,一般不适用于分类问题。
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
交叉熵损失函数: 一般用于分类问题,假设样本的标签y{1,C}y ∈ \lbrace1, · · ·C\rbrace为离散的类别,模型f(x;θ)[0,1]Cf(x; θ) ∈ [0, 1]^C的输出为类别标签的条件概率分布,即
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
并满足《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
CC维的one-hot向量yy表示样本标签,假设样本标签为kk,那么只有第kk维的值为1,其他为0。可以理解向量yy为样本标签的真实概率分布,即样本类别为kk,其属于第kk类的概率为1,属于其他类的概率为0。对于标签真实分布yy和模型预测分布f(x,θ)f(x,\theta),一般用交叉熵衡量差异,即
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
由于yy是one-hot向量,所以也可以将交叉熵函数写成如下式所示,其中,fy(x;θ)f_y(x; θ)可以看作真实类别y 的似然函数。因此,交叉熵损失函数也就是负对数似然损失函数。
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述

风险最小化准则

一个好的模型应当有较小的期望错误,但是不知道真实的数据和映射函数,实际上无法计算期望风险R(θ;x,y)R(θ;x,y),只能是通过训练集计算经验风险,也就是训练集上的平均损失。
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
所以学习准则就是找到一组参数θ\theta^*使得经验风险最小,这就是经验风险最小化准则。但是经验风险最小化准则很容易导致模型在训练集上错误率很低,但是在未知数据上错误率很高,这就是过拟合。过拟合问题一般是训练数据少、噪声以及模型能力强造成的。常通过正则化方法,减少参数空间,解决过拟合问题。和过拟合相反的一个概念是欠拟合,即模型不能很好的拟合训练数据,在训练集上错误率就比较高,一般是模型能力不足造成的。
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述

3.优化算法

机器学习的训练过程其实就是一个最优化问题的求解过程。

参数与超参数

机器学习优化过程可以分为参数优化和超参数优化,θ\theta是模型的参数,可以通过优化算法学习,这是参数优化过程。还有一类用于定义模型结构或者优化策略的参数,叫做超参数,超参数优化一般根据人的经验来设定,常见的包括聚类算法中的类别个数、梯度下降法的步长、正则项的系数、神经网络的层数、支持向量机中的核函数等。

梯度下降法

明确如果一个函数为凸函数,则局部最小解也是全局最小解,目前的算法理论只能确保找到局部最优解,所以很多机器学习方法选择一个凸函数作为优化目标,但也有很多模型的优化目标(比如神经网络)是非凸的,这样只能求解局部最优解。
最常用的优化算法就是梯度下降法,通过迭代来计算风险函数的最小值。α\alpha称为学习率详解: 对于单变量函数,梯度就是微分,代表某个定点的切线的斜率,是变化最快的地方;对于多变量函数,梯度就是各个方向上的微分,指出各个方向上变化最快的方向,也就是整体上函数在给定点上升最快的方向,是一个向量。而梯度下降法过程,就是朝着上升最快方向的反方向前进,直到收敛。
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
可以通过提前停止防止过拟合,即使用验证集(也叫开发集)进行模型选择,测试模型在验证集上是否最优,如果在验证集上错误率不再下降,就停止迭代。一般对于小数据量的数据集,训练集、验证集、测试集的数据比例为60%、20%、20%,大数据量的比例可以为98%、1%、1%。
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
传统梯度下降法目标函数是整个训练集,称为批量梯度下降(BGD),每一次迭代需要计算整个训练集样本,耗时长,空间复杂度高。为了减少每次计算复杂度,可以每次只采集一个样本,计算这个样本损失函数的梯度并进行参数更新,即随机梯度下降法(SGD),当经过足够次数的迭代后,也可以收敛到局部最优解。这一方法实现简单,收敛速度快,被广泛应用,相当于在BGD的梯度上引入了随机噪声
《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
但是SGD不能利用计算机的并行计算能力,效率较低,所以可以使用BGD和SGD的折中,即小批量梯度下降法(Mini-Batch Gradient Descent),每次迭代选取一小部分样本计算梯度并更新参数,提高了训练效率,相对于BGD也引入了少量噪声。《神经网络与深度学习》邱锡鹏学习笔记(二):机器学习概述
样本子集中包含KK个样本,KK值的选择一般设置成2的幂次方,可以提高计算效率。


推荐阅读
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 建立分类感知器二元模型对样本数据进行分类
    本文介绍了建立分类感知器二元模型对样本数据进行分类的方法。通过建立线性模型,使用最小二乘、Logistic回归等方法进行建模,考虑到可能性的大小等因素。通过极大似然估计求得分类器的参数,使用牛顿-拉菲森迭代方法求解方程组。同时介绍了梯度上升算法和牛顿迭代的收敛速度比较。最后给出了公式法和logistic regression的实现示例。 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文详细介绍了商汤科技面试中涉及的CV算法面经内容,包括CornerNet的介绍与CornerPooling的解决方案、Mimic知识蒸馏的实现方式、MobileNet的特点、普通卷积和DW PW卷积的计算量推导、Residual结构的来源等。同时还讨论了在人脸关键点和检测中的mimic实现方式、pose对人脸关键点的提升作用、目标检测中可能遇到的问题以及处理检测类别冲突的方法。此外,还涉及了对机器学习的了解程度和相似度分析的问题。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 数据结构与算法的重要性及基本概念、存储结构和算法分析
    数据结构与算法在编程领域中的重要性不可忽视,无论从事何种岗位,都需要掌握数据结构和算法。本文介绍了数据结构与算法的基本概念、存储结构和算法分析。其中包括线性结构、树结构、图结构、栈、队列、串、查找、排序等内容。此外,还介绍了图论算法、贪婪算法、分治算法、动态规划、随机化算法和回溯算法等高级数据结构和算法。掌握这些知识对于提高编程能力、解决问题具有重要意义。 ... [详细]
  • 前言:拿到一个案例,去分析:它该是做分类还是做回归,哪部分该做分类,哪部分该做回归,哪部分该做优化,它们的目标值分别是什么。再挑影响因素,哪些和分类有关的影响因素,哪些和回归有关的 ... [详细]
author-avatar
l沈佩玉iVf
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有