【人工智能基础学习】Andrew Ng-机器学习基础笔记

news2025/1/16 17:31:20

⭐️我叫忆_恒心,一名喜欢书写博客的研究生👨‍🎓。
如果觉得本文能帮到您,麻烦点个赞👍呗!

近期会不断在专栏里进行更新讲解博客~~~
有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支持一下呗。👍⭐️❤️
📂Qt5.9专栏定期更新Qt的一些项目Demo
📂项目与比赛专栏定期更新比赛的一些心得面试项目常被问到的知识点。
欢迎评论 💬点赞👍🏻 收藏 ⭐️加关注+
✍🏻文末可以进行资料和源码获取欧😄

摘要

深入探讨了机器学习的基础概念,尤其是监督学习和无监督学习。我们将重点介绍两种主要的机器学习方法——线性回归和梯度下降,帮助初学者理解这些基本算法及其应用。在具体讨论线性回归时,我们会详细讲解模型的表示、代价函数的计算及其直观理解。此外,我们还会深入探讨梯度下降算法,包括其直观解释和在实际问题中的应用。

1. 引言

1.1 欢迎:

在这篇博客中,我们将探讨机器学习中的主要问题和算法,帮助大家了解不同算法在各种应用场景中的具体使用。

1.2 机器学习是什么?

机器学习是指计算机通过经验(E)来提高其在任务(T)上的性能(P)。正如Tom Mitchell所说,“当一个程序在执行任务T时,如果它在经过经验E后,其表现按P标准衡量有所提升,那么这个程序就被认为是从经验E中学习到了。” 机器学习算法通常分为监督学习和无监督学习。

1.3 监督学习

在这里插入图片描述

在监督学习中,我们提供给算法一个包含“正确答案”的数据集。两种常见的监督学习问题是回归问题和分类问题。

  • 回归问题:例如,预测房价。我们有一系列房屋的历史数据,包括每个房屋的特征和实际售价。利用这些数据,算法可以预测新房屋的价格。

  • 分类问题:例如,诊断肿瘤的良性或恶性。我们可以使用分类算法,根据已知的良性和恶性肿瘤数据,预测一个新肿瘤是良性还是恶性。

在处理特征非常多的情况下,我们可以使用支持向量机(SVM),这种算法通过巧妙的数学技巧,可以处理无数多个特征。

1.4 无监督学习

无监督学习与监督学习不同,它处理没有标签的数据。无监督学习算法会尝试发现数据中的模式和结构,例如将数据分成不同的组(聚类)。
在这里插入图片描述

  • 聚类算法:例如,鸡尾酒会问题,通过聚类算法将不同的声音分开。

总结:

  • 垃圾邮件过滤——监督学习
  • 新闻事件分类——无监督学习
  • 细分市场分析——无监督学习
  • 糖尿病诊断——监督学习

在这里插入图片描述

2. 线性回归

2.1 模型表示

在监督学习中,我们使用一个训练集来构建模型。以房价预测为例,我们可以使用线性回归来找到特征与房价之间的关系。
在这里插入图片描述

线性回归模型的表示形式通常是一个线性函数,其中只有一个特征变量时,我们称之为单变量线性回归。
在这里插入图片描述

2.2 代价函数

为了找到最佳的模型参数,我们需要最小化模型预测与实际数据之间的误差。代价函数用于量化这种误差:
在这里插入图片描述

[
J(\theta) = \frac{1}{2m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y{(i)})2
]

其中,( m ) 是训练样本的数量,( h_{\theta}(x^{(i)}) ) 是模型的预测值,( y^{(i)} ) 是实际值。

2.3 代价函数的直观理解

我们可以通过可视化代价函数的变化来理解其行为。例如,在只有一个参数的情况下,代价函数呈现为一个抛物线形状。通过找到代价函数的最低点,我们可以确定最优参数。
在这里插入图片描述

2.4 代价函数的等高线图

当我们考虑两个或更多参数时,代价函数的图像会变得复杂。在这种情况下,我们使用等高线图来表示代价函数的变化,从而帮助我们找到使代价函数最小化的参数。
在这里插入图片描述

2.5 梯度下降

梯度下降是一种用于找到函数最小值的优化算法。在机器学习中,我们使用梯度下降来最小化代价函数,从而找到最佳的模型参数。
在这里插入图片描述

  • 批量梯度下降:在每一步迭代中,利用所有的训练样本来更新模型参数:
\[
\theta_j := \theta_j - \alpha \frac{1}{m} \sum_{i=1}^{m} (h_{\theta}(x^{(i)}) - y^{(i)}) x_j^{(i)}
\]

其中,( \alpha ) 是学习率,决定了每一步的移动大小。

Python实现代码示例:

def gradientDescent(X, y, theta, alpha, iters):
    temp = np.zeros(theta.shape)
    parameters = int(theta.shape[1])
    cost = np.zeros(iters)
    
    for i in range(iters):
        error = X @ theta.T - y
        for j in range(parameters):
            term = np.multiply(error, X[:, j])
            temp[0, j] = theta[0, j] - ((alpha / len(X)) * np.sum(term))
        theta = temp
        cost[i] = computeCost(X, y, theta)
    
    return theta, cost

2.6 梯度下降的直观理解

在梯度下降过程中,我们通过计算导数来确定每一步的移动方向和步长。随着我们接近代价函数的最小值,梯度下降的步伐会自然变小,这使得算法更稳定。

2.7 梯度下降与线性回归

在应用梯度下降算法时,我们在每次迭代中使用所有的训练样本来更新参数。与线性回归模型相比,梯度下降提供了一种有效的方法来找到最优解,特别是在特征数量较多时。


总结

通过本文的学习,你将对机器学习的基础知识、线性回归模型的构建和梯度下降算法有更深入的理解。这些概念是机器学习领域的基础,有助于你进一步探索更复杂的算法和应用。

往期优秀文章推荐:

  1. 研究生入门工具——让你事半功倍的SCI、EI论文写作神器
  2. 磕磕绊绊的双非硕秋招之路小结
  3. 研一学习笔记-小白NLP入门学习笔记
  4. C++ LinuxWebServer 2万7千字的面经长文(上)
  5. C++Qt5.9学习笔记-事件1.5W字总结
    在这里插入图片描述

资料、源码获取以及更多粉丝福利,可以关注下方进行获取欧
推荐

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

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

相关文章

Python实现音乐播放器 -----------内附源码

Python做一个简易的音乐播放器 简易音乐播放器 import time import pygamefile r歌曲路径 pygame.mixer.init() print(正在播放,file) track pygame.mixer.music.load(file) pygame.mixer.music.play() time.sleep(130) pygame.mixer.music.stop()运行效果: 开始…

档案数字化扫描录入整理流程

档案数字化扫描录入整理流程可以分为以下几个步骤: 1. 确定扫描设备和软件:选择适合的扫描设备和软件,确保扫描质量和效率。 2. 准备档案文件:将待扫描的档案文件按照一定的分类和顺序进行整理和准备,如编号、分类、日…

数值计算精度问题(浮点型和双整型累加精度测试)

这篇博客介绍双整型和浮点数累加精度问题,运动控制轨迹规划公式有大量对时间轴的周期累加过程,如果我们采用浮点数进行累加,势必会影响计算精度。速度的不同 进一步影响位置积分运算。轨迹规划相关问题请参考下面系列文章,这里不再赘述: 1、博途PLC 1200/1500PLC S型速度曲…

英伟达SSD视觉算法分类代码解析

一、官方原代码 #!/usr/bin/env python3 # # Copyright (c) 2020, NVIDIA CORPORATION. All rights reserved. # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Softwa…

计算机毕业设计 | SSM 校园线上订餐系统 外卖购物网站(附源码)

1, 概述 1.1 项目背景 传统的外卖方式就是打电话预定,然而,在这种方式中,顾客往往通过餐厅散发的传单来获取餐厅的相关信息,通过电话来传达自己的订单信息,餐厅方面通过电话接受订单后,一般通…

UPerNet 统一感知解析:场景理解的新视角 Unified Perceptual Parsing for Scene Understanding

论文题目:统一感知解析:场景理解的新视角 Unified Perceptual Parsing for Scene Understanding 论文链接:http://arxiv.org/abs/1807.10221(ECCV 2018) 代码链接:https://github.com/CSAILVision/unifiedparsing 一、摘要 研究…

Java多线程之不可变对象(Immutable Object)模式

简介 多线程共享变量的情况下,为了保证数据一致性,往往需要对这些变量的访问进行加锁。而锁本身又会带来一些问题和开销。Immutable Object模式使得我们可以在不加锁的情况下,既保证共享变量访问的线程安全,又能避免引入锁可能带…

如何用二维码进行来访登记?这个模板帮你轻松实现!

在工厂、学校、写字楼、建筑工地等人员出入频繁的场所,使用传统的纸质登记方法容易造成数据丢失,而且信息核对过程繁琐,效率低下。 可以用二维码代替纸质登记本,访客进入时扫码就能登记身份信息,能够提高门岗访客管理…

微生信神助力:在线绘制发表级主成分分析(PCA)图

主成分分析(Principal components analysis,PCA)是一种线性降维方法。它利用正交变换对一系列可能相关的变量的观测值进行线性变换,从而投影为一系列线性不相关变量的值,这些不相关变量称为主成分(Principa…

JMH309【亲测】典藏3D魔幻端游【剑踪3DⅢ】GM工具+开区合区工具+PC客户端+配置修改教程+Win一键服务端+详细外网视频教程

资源介绍: 经典不错的一款端游 GM工具开区合区工具PC客户端配置修改教程Win一键服务端详细外网视频教程 资源截图: 下载地址

数字化医疗:揭秘物联网如何提升医院设备管理效率!

在当今数字化时代,医疗领域正迎来一场技术变革的浪潮,而基于物联网的智慧医院医疗设备管理体系正是这场变革的闪耀之星。想象一下,医院里的每一台医疗设备都能像一位精密的工匠一样,自动监测、精准诊断,甚至在发生故障…

GitLab教程(三):多人合作场景下如何pull代码和处理冲突

文章目录 1.拉取别人同步的代码到本地的流程2.push冲突发生场景情景模拟简单的解决方法 在这一章中,为了模拟多人合作的场景,我需要一个人分饰两角。 执行git clone xx远端仓库地址 xx文件夹命令,在clone代码时指定本地仓库的文件夹名&#…

33.星号三角阵(二)

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/742 题目描述 给定一个整数 𝑛,输出一个…

解决:RuntimeError: “slow_conv2d_cpu“ not implemented for ‘Half‘的方法之一

1. 问题描述 今天跑实验的时候,代码报错: RuntimeError: "slow_conv2d_cpu" not implemented for Half 感觉有点莫名奇妙,经检索,发现将fp16改为fp32可以解决我的问题,但是运行速度太慢了。后来发现&…

基于WPF技术的换热站智能监控系统02--标题栏实现

1、布局划分 2、准备图片资源 3、界面UI控件 4、窗体拖动和关闭 5、运行效果 走过路过不要错过,点赞关注收藏又圈粉,共同致富,为财务自由作出贡献

理解线程安全:保护你的代码免受并发问题困扰

目录 前言 一、什么是线程安全? 二、为什么需要线程安全? 三、实现线程安全的方法 四、synchronized 使用 synchronized 关键字时,需要注意以下几点: 五、Demo讲解 前言 在现代软件开发中,尤其是在多线程编程中&…

【源码】二开版微盘交易系统/贵金属交易平台/微交易系统

二开版微盘交易系统/贵金属交易平台/微交易系统 一套二开前端UI得贵金属微交易系统,前端产品后台可任意更换 此系统框架不是以往的至尊的框架,系统完美运行,K线采用nodejs方式运行 K线结算都正常,附带教程 资源来源:https://www.…

C++ UML建模

starUML UML图转C代码 数据流图 E-R图 流程图 整体架构图 ORM关系图 参考 app.asar附件资源可免激活 JHBlog/设计模式/设计模式/1、StarUML使用简明教程.md at master SunshineBrother/JHBlog GitHub GitHub - dimon4ezzz/whitestaruml: UML modeling tool derived from …

汇编语言期末复习

目录 前言 基础知识 80x86计算机组织 80x86的寻址方式 前言 根据老师的PPT与IBM-PC汇编语言程序设计(第2版)而写,供考前突击所用。 基础知识 q 机器语言、汇编语言、高级程序语言 特性 比较 q 进位记数制与不同基数的数之间的转换 二进…

可变参数以及不可变集合

可变参数: 格式: public class ArgsDemo {public static void main(String[] args) {System.out.println(getSum(1,2,3,4,5));}//可变参数public static int getSum(int...args){int sum 0;for (int arg : args) {sum arg;}return sum;} }可变参数的…