用Tensorflow进行线性回归和逻辑回归(一)

这一章告诉你如何用TensorFlow构建简单的机器学习系统。第一部分回顾构建机器学习系统的基础特别是讲函数,连续性,可微性。接着我们介绍损失函数,然后讨论机器学习归根于找到复杂的损失函数最小化的点的能力。我们然后讲梯度下降,解释它如何使损失最小。然后简单的讨论自动微分的算法思想。第二节侧重于介绍基于这些数学思想的TensorFlow概念。包括placeholders, scopes, optimizers,和TensorBoard, 并实际构建和分析学习系统。最后一节研究如何用TensorFlow训练线性和逻辑回归模型。这一章较长,并介绍许多新的思想。如果你不想了解每一个细节,你可以继续往下读然后在必要时返回来。在后面我们将重复这些基础。

1.函数的数学回顾

第一节回顾概念上理解机器学习所需要的数学工具。我们尽量减少希腊符号侧重概念上的理解而不是技术操作。

在我们讨论的大部分问题里,我们的任务是创建数学函数:

y = f x

注意, x和y写成黑体。这提示它们是向量。这个函数可以有任意数量的输入,可以是上百个甚致是上百万个,它的输出也可以是许多个。你想创建的函数的例子有:

• x 包含图像里所有像素的色彩。 如果图像包含猫f(x)等于 1,如果不包含猫则等于0。

• 同上面一样,f( x)应该是数字的向量。第一个数字表示图像包含猫,第二个数字表示图像包含狗,第三个数字表示它包含飞机,等等上千个对象。

• x 包含染色体的 DNA序列。 y 是向量它的长度等于染色体的碱基数量。如果那个碱基编码某个蛋白质则对应元素应为1,否则为0。

• x 描述分子的结构。 (后面我们讨论各种呈现分子的方法) y应为向量每个元素描述一些分子的特理特征:是否易溶于水,是否与某些分子强列结合等。

如你所见,f(x)可以是非常非常复杂的函数。它的输入通常是长的向量,并从输入里提取信息,这些信息是很难从输入直接看出的。

解决这种问题的传统方法是手工设计函数。你从分析问题开始。提示有猫的像素模式是什么?区别编码区域和非编码区域的DNA模式是什么?你可以写计算机代码来识别特定的特征,然后识别产生你想要的结果的特征组合。这个过程很慢而劳动强度大,严重依赖于个人的专业知识。

机器学习采用不同的方法。不是手工设计函函,你让计算机基于数据学习函数。你收集上千个到上百万个图像,每个标签提示是否有猫。你给计算机提供所有的训练数据,然后让计算机找到函数结果接近1表示有猫而函数结查接近0表示没有猫。

“让计算机找到函数”是什么意思?一般来说,你创建一个模型来定义一大类函数,模型包含参数,参数是可以取任意值的变量。通过选择参数的值,你从模型定义的一大类函数里得到特定的函数。计算机的任务是找到参数的值。它试图找到这种值,当你输入训练数据时,输出尽量接近于目标。

函数和可微性

这一节简单的回顾函数和可微的概念。函数f是一种将输入转变为输出的规则。所有的计算机编程语言都有函数,函数的数学定义没有很大的不同。但是通常用于物理学和工程学数学上的函数有些重要的特性例如连续性和可微性。连续函数,宽松的说,就是可以连续的在纸上画而不需要将笔提起的函数,如图3-1所示。 (当然这不是技术上的定义,但这是连续函数的精髓。)

            

图 3-1. 一些连续函数.

可微性是函数的一种类型的平滑条件。它是说函数里没有尖的转角(如图 3-2).

                     

图3-2. 可微函数.

可微函数的好处是我们可以使用在某个点函数的斜率来找到比当前点更高或更低的值的点。这可以让我们找到函数的最小值。可微函数f的微分记为f′,是另一个函数,它提供原函数在所有点的斜率。概念上的思想是函数在某一点的微分指示了函数值比当前值更低或更高的方向。优化算法按这种方向移动以逼近函数f的最小值。在最小值处,函数的微分为零。刚开始是看不到微分驱动的优化的强大之处的。 学微积分的学生都会觉得在纸上练习找小型函数的最小值很乏味。这些练习并没有什么作用,因为用少量的输入参数找到函数的最小值是微不足道的。当有上百个,上千个,上万个变量时,微分驱动的优化的强大就变得很明显了。在这种规模上,理解函数解析式几乎不可能,并且所有的可视化都是令人担心的练习,它可能失去函数的某些重要特征。在这种规模上,函数的梯度 ∇f ,是多元函数微分f′的泛化,是理解函数和它的行为的最为强大的数学工具。后面我们将深入学习梯度 (那是概念上的;我们不在这里讲梯度的技术细节)。

从高层次看,机器学习简单的来说就是最小化函数:优化算法无非就是合适的函数的最小值发现者。这个定义的好处是数学上简单。但是编码有用的解决方案于最小值的特殊的可微函数到底是什么,我们如何找到它们?

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

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

相关文章

java/.net跨平台UI浏览器SDK,浏览器控件开发包分析

在 Linux 系统中,虽然没有完全等同于安卓 WebView 的内置浏览器 SDK,但存在多种基于开源浏览器引擎的解决方案,支持通过 Java 代码控制网页加载和执行 JavaScript。以下是具体实现方案和技术细节: 一、核心技术方案对比 方案名称…

Taro 状态管理全面指南:从本地状态到全局方案

在跨端应用开发中,状态管理是构建可维护、可扩展应用的核心环节。作为京东凹凸实验室推出的多端统一开发框架,Taro 支持 React/Vue 等主流前端框架,自然也继承了丰富的状态管理生态。本文将全面剖析 Taro 中的各种状态管理方案,从…

记录一下jar做成windows服务问题

1、打包好jar 2、把jdk防止到和jar同一目录下 3、下载winsw-x64.exe 和 sample-minimal.xml https://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exehttps://github.com/winsw/winsw/releases/download/v2.12.0/WinSW-x64.exe sample-minimal.xmlhttps://…

【Dify 案例】【MCP实战】【二】【超级助理】

我们创建一个工作流。你是一个超级助理,能够根据输入的指令,进行推理和自主调用工具,完成并输出结果。 注意,需要判断是否调用高德MCP来获取对应工具协助你完成任务。 1.开始 2.策略大脑 2.1 AEGNT策略 2.2 工具列表 2.3 指令

Qt Quick 与 QML(二)qml中的顶级窗口

一、前言 在QML中,‌顶级窗口不是绝对必需的‌,但它在大多数应用场景中扮演着关键角色。 需要顶级窗口的典型场景: 1.独立桌面/移动应用‌ 必须使用Window或ApplicationWindow作为根元素。 2.多窗口应用 每个独立窗口都需要一个顶级窗口实例…

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 免费服务开通全流程与Rest API和OpenAI SDK调用详解

华为云FlexusDeepSeek征文|DeepSeek-V3/R1 免费服务开通全流程与Rest API和OpenAI SDK调用详解 前言 本文将详细介绍DeepSeek-V3/R1 免费服务开通全流程,并且详细讲解通过本地方式Rest API和OpenAI SDK两种方式调用DeepSeek-V3/R1 前提准备 1、访问 Mod…

Qt 连接信号使用lambda表达式和槽函数的区别

1. 语法与代码结构 成员函数 需在类中显式声明槽函数(public slots: 或 Qt 5 后的任意成员函数),并在连接时指定接收对象。 class Receiver : public QObject {Q_OBJECT public slots:void handleSignal(int value) { /* ... */ } };// 连接…

学习笔记丨AR≠VR:透视沉浸式技术的“虚实象限”法则

AR(增强现实)和VR(虚拟现实)是沉浸式技术的两大分支,核心区别在于虚拟与现实的融合程度。以下是两者的详细对比: 对比维度 AR(增强现实) VR(虚拟现实) 技术…

本地使用 modelscope 大模型 来进行文本生成视频(Text-to-Video)

1. ✅ 创建并激活 Conda 环境(Python 3.8) conda create -n modelscope python3.8 -yconda activate modelscope 2.✅ 安装了 PyTorch(CPU 版本) 如果你是 CPU-only 用户(没有 NVIDIA 显卡 或不想用 GPU&#xff0…

文生视频(Text-to-Video)

🕒 生成时间:每张图大概 10–60 秒(取决于设备) ✅ 二、文生视频(Text-to-Video) 以下项目中,很多都基于 SD 模型扩展,但视频生成复杂度高,生成时间一般 超过 30 秒&am…

CLion + STM32环境配置,亲测有效(2025.06.19记)

CLion STM32环境配置 遇到的问题描述: > "moniton" command not supported by this target. > You cant do that when your target is exec > 上传完成,但存在问题 > monitor reset > "monitor" command not …

借助ChatGPT快速开发图片转PDF的Python工具

一、开发背景与适用场景 随着数字文档处理需求的激增,图片转PDF的需求日益广泛。从学生提交图像化作业,到教师整合扫描试卷等资料,再到行政人员归档证件照片,工作中的方方面面都离不开图片的处理。如何高效、批量地将多个图片文件…

SuGAR代码精简解读

目录 一、全流程训练脚本 train_full_pipeline.py 二、核心训练逻辑 train.py 粗优化 (coarse_density_and_dn_consistency.py) 网格提取 (extract_mesh_from_coarse_sugar) 精优化 (refined_training) 两次优化(粗优化和精优化)中使用的损失函数及…

大模型安全关键技术研究

​ 引言 随着人工智能技术的迅猛发展,大模型已成为推动各行业变革的核心力量。从智能客服、医疗影像识别到金融风险预测,大模型的应用场景不断拓展,深刻改变着人们的生产生活方式。大模型已经转变为AI领域的基础设施,为解决各种…

java面试题04成员变量和局部变量的区别

成员变量(Member Variable)和局部变量(Local Variable)是面向对象编程中两种作用域和生命周期不同的变量,主要区别体现在以下几个方面: 1. 声明位置 成员变量: 声明在类内部、方法/构造器/代码块外部。 例如: public class Person {// 成员变量(实例变量)private Str…

升级到 .NET 9 分步指南

随着激动人心的 .Net 9 更新正式发布,漫长的等待终于结束了。它带来了一些令人惊叹的特性,例如改进的 LINQ 功能、HybridCache 等等。此外,凭借其卓越的性能提升、更佳的安全性、更完善的协议和更易维护的特性,它必将吸引开发者和…

day30打卡

# 导入模块 import math print("方式1:使用 import math") print(f"圆周率π的值:{math.pi}") print(f"2的平方根:{math.sqrt(2)}\n") # 导入特定项 from math import pi, sqrt print("方式2&#…

优化数据库查询

优化数据库查询 在实际开发中,数据库查询的性能直接关系到系统响应速度和用户体验。尤其在高并发环境下,低效的SQL语句会成为瓶颈,导致系统负载升高,甚至引发宕机。因此,查询优化是数据库性能优化中最为关键的一环。 为了系统性地理解数据库查询优化策略,本节将从SQL语…

【LeetCode#第198题】打家劫舍(一维dp)

198. 打家劫舍 - 力扣(LeetCode) 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入&#…

微前端MFE:(React 与 Angular)框架之间的通信方式

在 微前端&#xff08;MFE, Micro Frontends&#xff09; 中使用 CustomEvent 是非常常见的&#xff0c;尤其是在不同子应用&#xff08;Micro Apps&#xff09;之间通信的时候。今天将以React 主应用 ↔ Angular 子应用 之间的通信进行示例 React 主应用 <-> Angular 子…