机器学习入门-读书摘要

先看了《深度学习入门:基于python的理论和实践》这本电子书,早上因为入迷还坐过站了。。

因为里面的反向传播和链式法则特别难懂,又网上搜了相关内容进行进一步理解,参考的以下文章(个人认为都讲的都非常好):
神经网络15分钟入门:https://zhuanlan.zhihu.com/p/65472471
神经网络中的链式法则:https://zhuanlan.zhihu.com/p/790621956
反向传播到底是怎么传播的?https://zhuanlan.zhihu.com/p/66534632

什么是卷积:https://zhuanlan.zhihu.com/p/526705694

CNN卷积神经网络30分钟入门:https://zhuanlan.zhihu.com/p/635438713

机器学习的问题大体上可以分为回归问题和分类问题
关于输出层的激活函数,回归问题使用恒等函数;分类问题一般使用softmax函数(概率函数)

学习指的是从训练数据中自动获取最优权重参数的过程。引入损失函数衡量调整的指标,学习的目的找出使得损失函数的值达到最小的权重参数。

1 forward 正向传播,由输入到输出的过程 ---推理处理
backward 反向传播,由输出到输入的过程 ---机器学习
2 激活函数
线性函数 可以表示为cx,c为常量,x为输入,也就是可以用一条直线标识,不适用于神经网络
非线性函数
阶跃函数  感知机使用的,大于某个值,输出是另一个值
神经网络使用平滑变化的sigmoid或ReLU函数
softmax函数   概率函数,所有输出加起来是1

机器学习中一般将数据分为训练数据(也可以成为监督数据)和测试数据分别进行学习和实验(评价得到的模型的实际能力,损失函数)。

学习数据:
MINIST数据集  ---手写数字图像集(0到9,图形是28像素*28的),经常作为实现数据出现;比如训练图片6w张,测试图片1w张
正规化--将数据限定再一定范围,比如0-1

图像的特征量通常表示为向量的形式。在计算机视觉领域,常用的特征量包括SIFT、SURF和HOG等。
使用这些特征量将图像数据转换为向量,然后对转换后的向量使用机器学习中的SVM、KNN等分类器进行学习。

泛化能力  评价学习能力,能否将训练模型应用于未来的数据预测。
过度拟合问题:指模型在训练数据上表现优异,但在测试数据或新数据上表现不佳的现象。原因:
(1)模型复杂度过高:捕捉到了训练数据中的一些特定的局部的特点(噪声)
(2)训练数据不足

        神经网络学习用的指标成为损失函数,可以是任何函数,一般用均方差(mean squared error)等。
        机器学习使用训练数据学习,严格来说,就是针对训练数据计算损失函数的值,找出使得该值最小的参数。

导数、偏导数、梯度
导数就是计算某个瞬间的变化量。
为了寻找使损失函数最小的参数,需要计算该参数的导数(确切的说就是梯度?),然后以这个导数为指引,逐步更新参数值。
损失函数其实是对权重参数求偏导数(因为神经元有多个参数,对某个参数求的是偏导数)。

像这样的由全部变量的偏导数汇总而成的向量称为梯度(gradient)。这个梯度意味着什么?可以用图像直观表示。
梯度呈现为有向向量(箭头)。我们发现梯度指向函数的“最低处”(最小值),就像指南针一样,所有的箭头都指向同一点。其次,
我们发现离“最低处”越远,箭头越大。梯度指示的方向是各点处的函数值减少最多的地方,无法保证梯度所指的方向就是函数的最小值或者真正应该前进的方向。
虽然梯度的方向并不一定指向最小值,但沿着它的方向能够最大限度地减小函数的值。因此,
在寻找函数的最小值(或者尽可能小的值)的位置的任务中,要以梯度的信息为线索,决定前进的方向。
梯度法:位置沿着梯度方向前进一定距离,然后在新的地方重新求梯度,再沿着新梯度方向前进,如此反复,不断地沿梯度方向前进。
像这样,通过不断地沿梯度方向前进,逐渐减小函数值的过程就是梯度法(gradient method)。梯度法是解决机器学习中最优化问题的常用方法,特别是在神经网络的学习中经常被使用。
梯度下降法和梯度上升法本质上是一样的,将损失函数加个负号即可。

神经网络的学习分成下面4个步骤。
步骤1(mini-batch)
从训练数据中随机选出一部分数据,这部分数据称为mini-batch。我们的目标是减小mini-batch的损失函数的值。
步骤2(计算梯度)
为了减小mini-batch的损失函数的值,需要求出各个权重参数的梯度。梯度表示损失函数的值减小最多的方向。
步骤3(更新参数)
将权重参数沿梯度方向进行微小更新。
步骤4(重复)
重复步骤1、步骤2、步骤3。
神经网络的学习按照上面4个步骤进行。这个方法通过梯度下降法更新参数,不过因为这里使用的数据是随机选择的mini batch数据,所以又称为随机梯度下降法(stochastic gradient descent)。
在很多神经网络,随机梯度下降法一般由一个名为SGD的函数来实现,也就是随机梯度下降的首写字母。

数值微分,可以计算权重的梯度,但还有一种更高效的计算梯度的方法,但实现较复杂,误差反向传播法计算梯度效率比较高,它利用链式法则计算
反向传播是基于链式法则的。
如果一个函数由复合函数表示,则该复合函数的导数就是各个函数的导数的乘积表示。
比如 z = t*t  t=x+y  则z对x的导数可以用z对t导数 * t对x导数。
反向传播的理解====有点儿难度。。。可能我脑子不好使了
链式法则(Chain Rule)是微积分中的重要规则,用于计算复合函数的导数。在神经网络的反向传播算法中,链式法则是计算梯度的核心工具。它允许我们通过将复杂的神经网络分解为简单的函数来逐层计算梯度,从而优化网络的权重。


 

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

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

相关文章

【AI】mac 本地部署 Dify 实现智能体

下载 Ollama 访问 Ollama 下载页,下载对应系统 Ollama 客户端。或者参考文章【实战AI】macbook M1 本地ollama运行deepseek_m1 max可以跑deepseek吗-CSDN博客 dify 开源的 LLM 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力&am…

[实现Rpc] 消息抽象层的具体实现

目录 具象层 _ 消息抽象的实现 信息的抽象类 实现 JsonMessage JsonRequest & JsonResponse 消息-不同消息分装实现 实现 Request RpcRequest TopicRequest ServiceRequest Response RpcResponse TopicResponse ServiceResponse 实现 生产工厂 本篇文章继 …

计算机考研之数据结构:深入解析最大公约数与欧几里得算法

一、生活中的公约数应用 在日常生活中,经常需要处理"均分分配"问题。例如:要将24块巧克力和18块饼干平均分给小朋友,最多能分给几个小朋友?这就是典型的求最大公约数问题。 二、基本概念详解 约数与公约数 约数&…

NCHAR_CS和CHAR_CS,导致UNION ALL 时,提示SQL 错误 [12704] [72000]: ORA-12704: 字符集不匹配

检查涉及的数据表和列的字符集设置 -- 查询表的字符集 SELECT parameter, value FROM nls_database_parameters WHERE parameter LIKE NLS_CHARACTERSET;-- 查询列的字符集(对于特定表) SELECT column_name, character_set_name FROM all_tab_columns W…

算法之 跳跃游戏

文章目录 55.跳跃游戏思路参考:56.合并区间 55.跳跃游戏 55.跳跃游戏 灵神思路 思路分析: 两种思路,思路1是我们可以直接维护当前到达i的时候所能到达的最右的边界mr,如果i>mr就说明无法到达i,否则就是可以到达;…

在C#中动态访问对象属性时,用表达式树可以获得高效性能

在C#中如何用表达式树动态访问对象属性的问题。用户可能已经知道反射的基本用法,但想用表达式树来提高性能,因为表达式树编译后的委托执行速度比反射快。 首先,表达式树的基本概念。表达式树允许在运行时构建代码,并编译成可执行的…

深入解析 Flutter 性能优化:从原理到实践

深入解析 Flutter 性能优化:从原理到实践的全面指南 Flutter 是一个高性能的跨平台框架,但在开发复杂应用时,性能问题仍然可能出现。性能优化是开发高质量 Flutter 应用的关键。本篇博客将从 Flutter 的渲染原理出发,结合实际场景…

使用 Python 爬虫获取微店快递费用 item_fee API 接口数据

在电商运营中,快递费用是影响商家利润和用户体验的重要因素之一。微店作为国内知名的电商平台,提供了丰富的 API 接口供开发者使用,其中也包括查询商品快递费用的接口。通过调用微店的 item_fee 接口,开发者可以获取指定商品的快递…

MySQL基本操作——包含增删查改(环境为Ubuntu20.04,MySQL5.7.42)

1.库的操作 1.1 创建数据库 语法: 说明: 大写的表示关键字 [] 是可选项 CHARACTER SET: 指定数据库采用的字符集 COLLATE: 指定数据库字符集的校验规则 1.2 创建案例 创建一个使用utf8字符集的db1数据库 create database db1 charsetutf8; …

Spring Boot 定时任务:轻松实现任务自动化

在现代应用开发中,定时任务是一个常见的需求。比如,我们可能需要定时清理过期数据、定时发送邮件通知等。 操作流程 开启定时任务注解 在启动类添加注解EnableScheduling 设置时间(固定时间间隔) 使用 Scheduled 注解创建定时…

七星棋牌全开源修复版源码解析:6端兼容,200种玩法全面支持

本篇文章将详细讲解 七星棋牌修复版源码 的 技术架构、功能实现、二次开发思路、搭建教程 等内容,助您快速掌握该棋牌系统的开发技巧。 1. 七星棋牌源码概述 七星棋牌修复版源码是一款高度自由的 开源棋牌项目,该版本修复了原版中的多个 系统漏洞&#…

【Rust中级教程】1.12. 生命周期(进阶) Pt.2:生命周期变型、协变、不变、逆变

喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 这篇文章在Rust初级教程的基础上对生命周期这一概念进行了补充,建议先看【Rust自…

Vue 项目登录的基本流程

Vue 用户登录的基本流程包括以下6个步骤&#xff1a; 步骤&#xff1a; 1. 创建登录表单 在前端&#xff0c;首先要创建一个登录表单&#xff0c;用户输入账号&#xff08;用户名、邮箱、手机号等&#xff09;和密码。 示例&#xff1a;Login.vue <template><div…

【算法】回溯算法

回溯算法 什么是回溯 人生无时不在选择。在选择的路口&#xff0c;你该如何抉择 ..... 回溯&#xff1a; 是一种选优搜索法&#xff0c;又称为试探法&#xff0c;按选优条件向前搜索&#xff0c;以达到目标。但当探索到某一步时&#xff0c;发现原先选择并不优或达不到目标&am…

SpringAI系列 - RAG篇(三) - ETL

目录 一、引言二、组件说明三、集成示例一、引言 接下来我们介绍ETL框架,该框架对应我们之前提到的阶段1:ETL,主要负责知识的提取和管理。ETL 框架是检索增强生成(RAG)数据处理的核心,其将原始数据源转换为结构化向量并进行存储,确保数据以最佳格式供 AI 模型检索。 …

2025 docker可视化管理面板DPanel的安装

1.什么是 DPanel &#xff1f; DPanel 是一款 Docker 可视化管理面板&#xff0c;旨在简化 Docker 容器、镜像和文件的管理。它提供了一系列功能&#xff0c;使用户能够更轻松地管理和部署 Docker 环境。 软件特点&#xff1a; 可视化管理&#xff1a;提供直观的用户界面&#…

基于Python的深度学习音乐推荐系统(有配套论文)

音乐推荐系统 提供实时音乐推荐功能&#xff0c;根据用户行为和偏好动态调整推荐内容 Python、Django、深度学习、卷积神经网络 、算法 数据库&#xff1a;MySQL 系统包含角色&#xff1a;管理员、用户 管理员功能&#xff1a;用户管理、系统设置、音乐管理、音乐推荐管理、系…

微信小程序---计划时钟设计与实现

微信小程序-计划时钟已上线,欢迎各位小伙伴的测试和使用~(微信小程序搜计划时钟即可使用) 在这篇博客中,我们将探讨如何在微信小程序中设计和实现一个任务管理功能,该功能允许用户添加、删除和查看任务。任务管理系统的核心是基于日期和时间的任务管理,可以设置任务的开…

RPA-实例(UiPath )

UiPath 是一个流行的机器人流程自动化(RPA)工具,用于自动化重复性任务。以下是一个简单的实例,展示如何使用 UiPath 自动化一个常见的任务:从 Excel 文件中读取数据并将其输入到网页表单中。 实例:从 Excel 读取数据并自动填写网页表单 步骤 1:准备工作 安装 UiPath S…

华为固态电池引发的思索

华为固态电池真牛&#xff01; 超长续航&#xff1a;单次充电即可行驶3000公里 极速充电&#xff1a;五分钟内充满80% 极致安全&#xff1a;不可燃、不漏液 长寿命设计&#xff1a;循环寿命达10000次以上 如上是华为电池展示的优势项&#xff0c;每一条都让我们心动不已。…