【深度学习讲解笔记】第1章-机器学习基础

news2024/11/16 11:59:33

1.机器学习是什么

机器学习(Machine Learning,ML),顾名思义就是让机器学会做一件事情,比如语音识别,机器听一段声音,产生这段声音对应的文字。或是识别图片中有几个人,几辆车。这些复杂的功能,归结起来就是:让机器具备找一个函数的能力。这个函数显然非常复杂,人类难以把它写出来,因此想通过机器的力量把这个函数自动找出来。AlphaGo 也可以看作是一个函数,该函数的输入是棋盘上黑子跟白子的位置,输出是机器下一步应该落子的位置。

随着要找的函数不同,机器学习有不同的类别。假设要找的函数的输出是一个数值,一个标量(scalar),这种机器学习的任务称为回归。比如输入房子的面积,楼层,地段来预测房价;或是输入上一周的气温预测今天的气温等。这类任务输出是连续空间中的一个值。

除了回归以外,另一个常见的任务是分类(classification)。分类任务要让机器做选择题。人类先准备好一些选项,这些选项称为类别(class),现在要找的函数的输出就是从设定好的选项里面选择一个当作输出,该任务称为分类。举个例子,每个人都有邮箱账户,邮箱账户里面有一个函数,该函数可以检测一封邮件是否为垃圾邮件。分类不一定只有两个选项,也可以有多个选项。这类任务输出是离散空间中的一个值。

2.机器学习做什么

以视频的点击次数预测为例介绍下机器学习的运作过程。假设后台可以看到很多相关的信息,比如:每天点赞的人数、订阅人数、观看次数。根据一个频道过往所有的信息可以预测明天的观看次数。找一个函数,该函数的输入是后台的信息,输出是隔天这个频道会有的总观看的次数。

1.定义函数

数学上的函数不胜枚举,如果让机器自己找会十分费力,我们可以简化一下过程:人类给出一系列函数,让机器自己找到其中最适合当前任务的一个。比如人类告诉机器某天的播放量y与前一天的播放量x有如下关系:y = wx+ b ,其中w和b是未知的参数,故而上述公式中包含了一组函数。如y = 1.5x + 2, y = -0.4x都在里面。让机器自己去找到最适合预测观看次数的w和b的值,从而确定唯一的函数。如y = 0.9x + 1。

带有未知的参数(parameter)的函数称为模型(model)。模型在机器学习里面,就是一个带有未知的参数的函数,特征(feature) x是这个函数里面已知的,它是来自于后台的信息,前一日点击的总次数是已知的,而 w 跟 b 是未知的参数。w 称为权重(weight),b 称为偏置(bias)。

2.定义损失

那么如何让机器找到最合适的函数呢?比如机器怎么知道y = 1.5x + 2, y = -0.4x 和 y = 0.9x + 1 哪个更好呢?这就需要定义损失(loss)。损失也是一个函数。这个函数的输入是模型里面的参数,
模型是 y = b + wx,而 b 跟 w 是未知的,损失是函数 L(b, w),其输入是模型参数 b 跟w。损失函数输出的值代表当前的b和w确定的模型好还是不好。

计算损失的方法有:平均绝对误差,均方误差,交叉熵等。在回归问题中,损失越小,代表回归模型对样本的拟合越好;在分类问题中,损失越小,代表分类模型对样本的分类越准确。

3.优化模型

到这里你可能想问:机器怎么找到损失最低的模型呢?让机器一个一个蒙?先蒙一个y = 1.5x + 2,再试y = -0.4x,再试y = 0.9x + 1,从这3个中选一个损失最低的。如果3次不够,就试100次,1000次,反正有的是时间。这样做的问题就是:运气的成分太大了。机器学习的任务是从无穷多的模型中找到一个效果较好的,有限次的采样必然不能找到最好的;另外这种方法有一个问题:小张训练1000次得到的模型和小李训练1000次的模型效果差异很大,小张运气好采到了最优解,而小李运气差些没有采到最优解,这种结果肯定不是我们想要的。

我们再想一下:我们要找到最好的模型,就是找到使损失函数值最小的模型参数。回顾损失函数公式:L(b, w),欸,模型参数是损失函数的自变量。你可能也想到了,这就是数学中的最优化问题。解决最优化问题的方法很多:求导找驻点,拉格朗日乘子法等。在计算机求解中常用迭代的方法,机器学习中用的是梯度下降法(gradient descent)。

讲解梯度下降法的文章很多,这里简略说明,梯度下降法就是逐渐沿着函数向低处走。

由于损失函数是我们定义的,所以我们可以告诉计算机它的偏导数公式,对于较复杂的损失函数,我们很难对其微分的话,在计算机中有自动微分符号微分数值微分等办法。

损失函数L(b, w)的图像也叫误差表面。

 L(b, w)是关于b和w的二元连续函数,其Z轴难以画出故而用颜色深浅代替函数值。

梯度下降法每次按照一下公式更新参数:

其中η为超参数,不能由机器自己学习到,需要我们定义,这里η叫学习率,通常很小,如0.1,它决定每次沿着损失表面走多少距离。

上述公式也可以写为:

这样写更直观的反映了“梯度下降”的本质,同时当模型中不止有2个参数,而是有很多个参数时,这种写法更方便。

梯度下降的过程如下图:

 

这样机器就会自动沿着误差表面一步步地“学习”,知道找到损失最小的,也就是最优的模型。 

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

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

相关文章

2024年语音识别转文字工具的崛起

无论是繁忙的会议记录、远程教学的即时笔记,还是日常生活的语音备忘,只需轻轻一说,便能瞬间转化为清晰可编辑的文字,这种便捷与高效无疑为现代生活增添了无限可能。本文将带你深入探索语音识别转文字工具的奥秘。 1.365在线转文字…

【Python篇】matplotlib超详细教程-由入门到精通(上篇)

文章目录 第一部分:基础概念与简单绘图1.1 matplotlib 简介1.2 创建第一个折线图1.3 图表的基本组成元素 第二部分:图表样式与修饰2.1 修改图表样式2.2 添加图例2.3 调整坐标轴与刻度 第三部分:绘制不同类型的图表3.1 散点图 (Scatter Plot)3…

使用 Homebrew 在 macOS 上安装 Conda

Homebrew 是一个流行的 macOS 包管理器,可以帮助你安装和管理各种软件包。 以下是使用 Homebrew 安装 Conda 的步骤: 1. 安装 Homebrew 如果你还没有安装 Homebrew,可以通过以下命令安装: /bin/bash -c "$(curl -fsSL htt…

《机器学习》—— XGBoost(xgb.XGBClassifier) 分类器

文章目录 一、XGBoost 分类器的介绍二、XGBoost(xgb.XGBClassifier) 分类器与随机森林分类器(RandomForestClassifier)的区别三、XGBoost(xgb.XGBClassifier) 分类器代码使用示例 一、XGBoost 分类器的介绍…

微信小程序 自定义组件

1. 微信小程序 自定义组件 微信小程序支持组件化开发,这有助于我们复用代码,提高开发效率。下面我将给出一个简单的微信小程序组件化示例,包括一个自定义组件的创建和使用。 1.1. 创建自定义组件 首先,在项目的 components 目录…

建筑二次供水的基本概念

什么是二次供水? 二次供水是城市供水的主要组成部分,是指集中式供水在入户之前经再度储存、加压和消毒后,通过管道输送给用户的供水方式。 为什么要使用二次供水? 由于市政供水的服务水压通常只能达到较低的楼层,而…

部分库函数及其模拟

前言:当我们学习c/c库函数的时候,我们可以用网站 cplusplus.com - The C Resources Network 来进行查阅,学习。 目录 库函数: 1.字符串函数 1.1求字符串长度 strlen 1.2长度不受限制的字符串函数 1.2.1strcpy 1.2.2strca…

“阡陌云旅”黄河九省文化旅游平台

“阡陌云旅”黄河九省文化旅游平台 GitHub地址:https://github.com/guoJiaQi-123/Yellow-River-Cloud-Journey 项目背景 “阡陌云旅”黄河九省文化旅游平台 “阡陌云旅” 黄河九省文化旅游平台是一个专注于黄河流域九省文化旅游资源整合与推广的项目。 黄河是中…

Spring Framework系统框架

序号表示的是学习顺序 IoC(控制反转)/DI(依赖注入): ioc:思想上是控制反转,spring提供了一个容器,称为IOC容器,用它来充当IOC思想中的外部。 我的理解就是spring把这些对象集中管理…

HomeAssistant添加HACS绑定米家与苹果HomeKit设备并实现远程管理

文章目录 前言1. 下载HACS源码2. 添加HACS商店3. 绑定米家设备 前言 之前介绍过如何实现在群晖NAS使用Docker部署HomeAssistant,通过内网穿透在户外控制家庭智能设备。本文将介绍如何在HA平台安装HACS插件商店,将米家,果家设备接入 Home Ass…

推荐清晖一套不错的讲解沟通的线上讲座

推荐清晖一套不错的讲解沟通的线上讲座,比较实际贴地,听完了推荐给大家: 《项目管理中的沟通策略,听出弦外之音,变身沟通达人》 地址:项目管理中的沟通策略,听出弦外之音,变身沟通达…

数据结构(1):ArrayList和顺序表

数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 下面我们就开一个新坑,数据结构。数据结构,简单来说就是存放数据的方式,这些方式多种多样,我们来一点一…

Statcounter Global Stats 提供全球统计数据信息

Statcounter Global Stats 提供全球统计数据信息 1. Statcounter Global Stats2. Mobile & Tablet Android Version Market Share WorldwideReferences Statcounter Global Stats https://gs.statcounter.com/ Statcounter Global Stats are brought to you by Statcounte…

C++ 定时器

这是第一次独立设计一个模块,从接口定义,模块组合到多线程并发可能遇到的各种问题,虽然定时挺简单的,但是想设计精度高,并且能应对高并发似乎也不是很容易,当然,最后没有测试定时器的代码&#…

架构模式:MVC

引言 MVC,即 Model(模型)-View(视图)-Controller(控制器),是广泛应用于交互式系统中的典型架构模式,尤其在 GUI 和 Web 应用中。 MVC 的概念源自 GOF(Gang …

JS解密工具之**如何续期 Charles 的 SSL 证书**

本文由 jsjiami加密/一键JS解密 独家赞助 有问题请私聊加密官方客服 Charles 是一款常用的 HTTP 代理工具,用于调试网络请求。然而,Charles 的 SSL 证书会定期过期,如果 SSL 证书失效,你将无法对 HTTPS 请求进行抓包。本文将详细…

SQL语句中in条件超过1000怎么办?

博客主页: 南来_北往 系列专栏:Spring Boot实战 引言 当遇到SQL语句中IN条件超过1000个的情况时,可以采取以下几种策略来有效处理这一问题: 使用临时表:将IN列表中的值存储在临时表中,并将该临时表与查询表进行J…

【Python 千题 —— 算法篇】寻找最长回文子串

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目背景 回文串是指一个字符串从左到右和从右到左读都是一样的。寻找一个字符串中的最长回文子串是许多经典算法问题之一,广泛应…

2024年9月最新界面:自己如何在电脑上注册新的Google谷歌账号,图文详解和关键点解析、常见问题

有一些朋友需要通过谷歌账号来工作、学习或娱乐(例如很多游戏需要用谷歌账号来注册和使用),但是不知道如何注册谷歌账号,或者知道如何注册,但是对于一些步骤或者注意事项不太熟悉,导致注册不成功&#xff0…

什么是LED智能会议一体机?COB超微小间距LED会议一体机大势所趋

LED智能会议一体机,作为现代会议室革新的核心装备,正逐步颠覆传统会议模式的界限。它不仅仅是一台集成了高清显示、触控互动、音视频处理及远程协作等功能于一体的智能设备,更是推动会议效率与体验双重飞跃的关键力量。随着技术的不断进步&am…