吴恩达 Machine Learning(Class 3)

Week 1

1.1 K-means 

Cluster centroid

  • K-means 是无监督学习中聚类算法的一种,核心在于更新聚类质心;
  • 首先将每个点分配给几个聚类质心,取决于那些点离哪个质心更近;然后将几个聚类质心移动到分配给他的所有点的平均值,不断重复,直到没有点更改类别;

K-means algorithm

  • 如果一个簇里面没有点分配给他,最常见的方法就是消除一个簇;
  • 总的来说,减少 cost 的两步:就近分配中心点,中心点移动到平均点;

  • 对于没有很好分离的样本族群:

Optimization objective

  • x^{(i)} 指的每个点,c^{(i)} 指的每个点被分配给的簇,\mu _{k} 是簇质心位置,\mu _{c}(i) 指 x^{(i)} 所属簇的质心位置;
  • 损失 J = 每个数据到其最近质心的距离平方的平均值;

  • 这个损失函数还有一个别名:失真函数(distortion funtion);

Initializing K-means

  • 更常见的初始化质心位置的方法:将质心分配到几个训练数据的位置上;

  • 在经过多次的随机初始化后,选取 J 最低的初始化方式;

Choosing the value of K

  • 如何选择聚类的数量 K,需要平衡 K 与 J 的关系,但是一般不会为了降低 J 而增加 K;

  • 最合适的选择还是和实际情况相结合:

1.2 Anomaly Detection

Example and Solution

  • 这里记录的数据为飞机引擎温度与振动强度,越接近密集区的数据越正常,越偏离越异常;

  • 一种最常见的方法是密度估计:

Gaussion/Normal Distribution

  • 正态分布:

  • 越接近中间的数据越正常:

Algorithm

  • 概率密度函数不表示概率,但是概率密度函数的值可以表示取这个值附近的点的概率;
  • 计算每个特征的概率密度,然后累乘,最后比较;

  • 二维的正态分布如果是独立的,那么联合概率分布就等于两个相乘;
  • 将计算出的概率密度与预先设定好的 \varepsilon 相比较,如果小于它,则为异常;

Evaluating system

  • 评估系统:设立交叉验证集和测试集,或者只保留交叉验证集,训练集不包含异常数据;
  • 相当于用无标注的训练集训练出一个特定均值和方差的正态分布,并默认两端的极值是不正常的。再通过测试集来调整阈值,使得阈值之上的都是正常的,阈值之外的都是不正常的。

  • 利用交叉验证集和倾斜数据集里的F1 score计算出最合适的 \varepsilon

Compared with supervised learning

  • 异常检测面对未知异常情况,监督学习面对已知异常的所有可能;
  • 本质区别:一个反向排除,一个正向学习;

Choosing featrues

  • 选择更接近高斯分布的特征集,或者将其转化为类似高斯分布的特征集;

  • 如果已有特征无法分辨该数据是否异常(计算得出是异常,但与其他示例又十分接近),则试图找出是什么让我认为是一个异常,由此识别出新特征;

  • 组合原有特征合成新的特征:

Week 2

2.1 Recommender System

Making recommendations

  • 电影评分:r(i, j) 表示用户 j 是否对电影 i 进行评分,y(i, j) 表示用户 j 对电影 i 的评分;
  • n_{u} 为用户数,n_{m} 为电影数;

Using featrues

  • n 为特征数,这里为每个用户构建一个线性模型:

  • m^{(j)} 表示用户 j 有评分的电影数量,注意这里求和的是 r = 1 的用户,就是有评分的数据;;
  • 计算损失:

Collaborative filtering algorithm 

  • 协同过滤算法:特征向量未知,但是参数 w, b 已知;
  • 也就是说我们可以通过用户对电影的评分然后计算出参数 w 和 b。然后计算出 w 和 b 后,就可以通过数据来预测对未知电影特征进行评分;

  • 计算损失:注意这里的正则化是用 x 而不是 w;

  • 结合两个损失公式,得到总体成本函数(类似线性回归,但是包含三个变量):
  • 这里的求和项只是变了一种形式而已。第一个表示先对列求和,在对行求和。第二个则表示先对行求和,再对列求和。最后这个再形式上化简了,没有行和列的概念。直接对每个(i,j)对求和;

Binary labels

  • 二进制标签应用:1代表看到了且参与,0代表看到了但是未参与,?代表没有看到;

  • 计算损失(类似 logistic 回归,只是包含三个参数):

2.2 Mean Normalization

  • 均值归一化:一个新用户,没有任何信息,但是我们不能不给TA推东西,所以要靠取均值来进行冷启动;这里做的是行归一化,参数初始化为 0;
  • 行归一是对于新用户的预测更加合理,列归一是对于新电影的预测更加合理;

2.3 Finding related terms

  • 通过计算两个特征向量间的差平方和,从而判断两者是否相似:

Cold start

  • 协同过滤的限制:1.冷启动问题(初始数据不足)2.难以利用其他信息;

2.4 Content-based filtering

Compared with Collborative filtering

  • 基于内容过滤:通过用户和电影的特征,计算两者间的匹配度;

  • x_{u} 和 x_{m} 分别代表用户,电影的特征向量:

Learning to match

  • 通过 x_{u} 和 x_{m} 计算出 v_{u} 和 v_{m},并且两者大小需要相同,然后进行点积计算得到用户对某电影的预估分数:

Neural network 

  • 利用神经网络将特征向量变换为 v_{u} 和 v_{m},可以做点积得到电影预估分数,也可以再利用一次 logistic 回归计算喜欢概率:

  • 计算损失:

  • 还可以利用这个方法区找到相似电影:

2.5 Large catalogue

Retrieval

  • 第一步是检索:按照计算出的最相似的电影、常看题材的Top10、总榜单Top20,并且删除已经看过的,可以先得到一个粗略的较大列表;

Ranking

  • 第二步:将检索的电影带入模型计算预测分数,按照分数进行排名推荐;

Week 3

3.1 Reinforcement Learning

  • 强化学习:核心在于指定一个奖励函数,告诉它什么时候做得好,什么时候做的不好,算法的工作是自动找出如何选择好的动作;

Mars Rover Example

  • 火星探测器:这里的(s,a,R(s),s')表示(状态,动作,当前状态的奖励,下一个状态);

Return

  • 强化学习的回报:每走一步都要乘以一个折扣因子,由此计算回报;

  • 这里是几种不同的选择:一直向左、右,还有根据计算结果选择方向;

Policy

  • 强化学习中的策略:\pi (s) = a 表示在 s 处的行动是 a;

Markov Decision Process

  • 马尔科夫决策过程:未来只取决于你现在在哪里,而不管你是怎么到这里的;

3.2 State-action value function

  • 状态 - 动作价值函数:Q(s,a)表示在 s 处做出动作 a 得到的回报;
  • 注意这里第一个计算的是先向右一步,再掉头的策略;

Picking actions

  • 如何采取行动:需要选择 Q 函数最大的策略;

Bellman Equation

  • 贝尔曼方程:原理就是递归方程,注意终端状态下计算没有第二项;

3.3 Continuous State 

  • 连续状态空间应用:

Lunar Lander Problem

  • 登月器问题 - 奖励函数:

Algorithm

  • DQN算法(Deep Q-Network):

  • 算法改进:输出值设为 4 个,方便选择最大值;

Epsilon \varepsilon - greedy policy

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

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

相关文章

MyBatis 动态查询语句详解:让 SQL 更灵活可控

MyBatis 动态查询语句详解:让 SQL 更灵活可控 在日常的数据库操作中,我们经常会遇到需要根据不同条件拼接 SQL 语句的场景。比如查询用户时,可能需要根据姓名、年龄、性别等多个条件进行筛选,而这些条件往往是动态变化的 —— 有时…

Java基础语法three

一、一维数组一维数组初始化数据类型[] 数组名new 数据类型[数组长度]//动态初始化数据类型[] 数组名new 数据类型[]{值}//静态初始化数据类型[] 数组名{值}数组长度一旦确定,就不可更改。数组是序排序;数组属于引用数据类型的变量,数组的元素…

【数据结构】排序算法全解析:概念与接口

1.排序的概念及其运用 1.1 排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的…

在 CentOS 7 上使用 LAMP 架构部署 WordPress

CentOS 7 LAMP 架构部署 WordPress全步骤本文将详细介绍如何在 CentOS 7 系统上通过 LAMP(Linux Apache MariaDB PHP)架构部署 WordPress 博客平台。 在CentOS 7上基于LAMP架构部署WordPress 一、系统基础配置 1. 修改主机名(本机IP&#…

Node.js导入MongoDB具体操作

在Node.js应用程序中,导入MongoDB是一项常见任务。本文将详细介绍如何在Node.js中连接和操作MongoDB数据库,包括安装必要的包、配置连接、执行基本的CRUD操作等步骤。1. 安装必要的包首先,确保你已经安装了Node.js和npm。然后,通过…

HTML--pre标签的作用

原文网址&#xff1a;HTML--pre标签的作用-CSDN博客 简介 本文介绍HTML里pre标签的作用。 <pre> 元素表示预定义格式文本。里边的文本会保留原格式&#xff0c;以等宽字体的形式展现出来&#xff0c;文本中的空白符&#xff08;比如空格和换行符&#xff09;都会显示出…

机器学习--数据预处理

目录 一、数据清洗&#xff1a;让数据纯净如新 1、缺失值处理&#xff1a; 2、异常值处理 3、重复值处理 二、数据变换&#xff1a;重塑数据的 “形状” 1、归一化 2、标准化 三、总结与展望 机器学习小白必看&#xff1a;数据预处理实战笔记 最近投身于机器学习的学习…

Python 数据可视化:Matplotlib 与 Seaborn 实战

Python 数据可视化&#xff1a;Matplotlib 与 Seaborn 实战​​​​在当今数据驱动的时代&#xff0c;数据可视化成为了理解和传达数据信息的关键手段。Python 作为一门强大的编程语言&#xff0c;拥有丰富的数据可视化库&#xff0c;其中 Matplotlib 和 Seaborn 尤为突出。本文…

计算机网络技术学习-day4《路由器配置》

目录 一、路由器基础认知 1. 路由器的核心功能 2. 路由器与交换机的区别 二、路由器配置基础操作 1. CLI&#xff08;命令行界面&#xff09;模式体系 2. 基础配置命令示例 &#xff08;1&#xff09;基础信息配置 &#xff08;2&#xff09;接口IP地址配置&#xff08;…

IDEA(十四) IntelliJ Idea 常用快捷键(Mac)

目录准备&#xff1a;Mac键盘符号和修饰键说明一、编辑类快捷键二、Search/Replace&#xff08;查询/替换&#xff09;三、编译、运行四、debug 调试五、Navigation&#xff08;导航&#xff09;六、Refactoring&#xff08;重构&#xff09;七、VCS/Local History八、Live Tem…

八月月报丨MaxKB在教育及教学科研领域的应用进展

在2025年5月的“MaxKB用户应用月度报告”中&#xff0c;我们对MaxKB开源智能体平台在教育行业的典型应用场景进行了总结。MaxKB在教育行业的应用主要集中在教学辅助、学术研究、校园服务、行政办公、财务管理、招生等场景。 目前&#xff0c;“DeepSeekMaxKB”的组合正在被包括…

一周学会Matplotlib3 Python 数据可视化-绘制自相关图

锋哥原创的Matplotlib3 Python数据可视化视频教程&#xff1a; 2026版 Matplotlib3 Python 数据可视化 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 课程介绍 本课程讲解利用python进行数据可视化 科研绘图-Matplotlib&#xff0c;学习Matplotlib图形参数基本设置&…

第三十三天(信号量)

非常非常非常.....的重要在共享内存的代码里面p1.c实质是有问题lt._flag 1;//这里先置1if(c Q)sprintf(lt._buf,"quit");elsesprintf(lt._buf,"大家好&#xff0c;%d 我系渣渣辉. %d 是兄弟就来砍我吧!!! %d",i,i1,i2);while(*((int *)shmptr));//如果别…

Scikit-learn通关秘籍:从鸢尾花分类到房价预测

点击 “AladdinEdu&#xff0c;同学们用得起的【H卡】算力平台”&#xff0c;H卡级别算力&#xff0c;按量计费&#xff0c;灵活弹性&#xff0c;顶级配置&#xff0c;学生专属优惠。 决策树/SVM/KNN算法对比 模型评估指标解析 读者收获&#xff1a;掌握经典机器学习全流程 …

rsync + inotify 数据实时同步

rsync inotify 数据实时同步 一、rsync简介 rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步&#xff0c; 支持本地复制&#xff0c;或者与其他SSH、rsync主机同步 二、rsync三种命令 Rsync的命令格式常用的有以下三种&#xff1a;&#…

Linux基础介绍-3——第一阶段

文章目录一、进程管理1.1 进程的基本概念1.2 常见管理命令1.3 进程优先级调整&#xff1a;nice 与 renice二、软件包管理三、防火墙管理四、shell脚本五、xshell链接kali一、进程管理 1.1 进程的基本概念 进程是程序的动态执行实例&#xff0c;每个进程都有唯一的 PID&#x…

python 可迭代对象相关知识点

1. 什么是可迭代对象 (Iterable) 在 Python 里&#xff0c;可迭代对象指的是&#xff1a; &#x1f449; 能够一次返回一个元素的对象&#xff0c;可以被 for 循环遍历。 常见的可迭代对象有&#xff1a; 序列类型&#xff1a;list、tuple、str集合类型&#xff1a;set、dict&a…

ijkplayer Android 编译

一、下载编译库文件1.1 编译库文件环境&#xff1a;ubuntu 20.04 版本liangtao:ffmpeg$lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.6 LTS Release: 20.04 Codename: focal1.2 项目源码下载使用 git 下载 ijkplayer&#…

snn前向推理时间计算(处理器实现)

公式 Tinf(1−sparsity)number of synapsesnumber of sub-processorsSIMD ways T_{\text{inf}} \frac{(1-\text{sparsity})\times \text{number of synapses}} {\text{number of sub-processors}\times \text{SIMD ways}} Tinf​number of sub-processorsSIMD ways(1−sparsity…

Linux------《操作系统全景速览:Windows·macOS·Linux·Unix 对比及 Linux 发行版实战指南》

&#xff08;一&#xff09;常见操作系统&#xff08;system&#xff09;电脑&#xff1a;Windows,Macos,Linux,UnixWindows&#xff1a;微软公司开发的一款桌面操作系统&#xff08;闭源系统&#xff09;。版本有dos&#xff0c;win98&#xff0c;win NT&#xff0c;win XP , …