机器学习-Coursera笔记
AI->机器学习分类图
矩阵补课
特征值分解EVD,奇异值分解SVD
EVD特征值分解(The eigenvalue value decomposition)
针对方阵,特征值
SVD奇异值分解(Singularly Valuable Decomposition)
应用
存储领域,选取u,v正交基矩阵,计算奇异值矩阵,使奇异值矩阵尽量集中,即可取到
机器学习
1、Introduction
E:经验 T:任务 P:概率
机器学习分类
- 监督学习(supervisor learning):分类(classification)、回归(regression)
- 无监督学习(unsupervisor learning):
- 强化学习Reinforcement learning
2、Linear regression线型回归
Cost funciton-代价函数
- 正规方程法(Normal Equation)
b相当于y,a相当于x组成的矩阵,
求导过程
线性代数回顾
矩阵、向量使用规范
加速梯度下降方法,让(x_i)尺度一致
回归问题方法选择
正规方程法行不通:
回归问题的矩阵表达
3、Logistic Regression逻辑回归
分类classification
函数表达式
作用
h(z)代表着一个边界,将值分为>0和<0 由于sigmoid函数的特性,程序最终会优化到z取值远离零点
Cost function 的选择
不能选择最小二乘法,因为目标是一个非凸函数 凸函数才能最好利用梯度下降法 所以对于,y-0,1的分类问题,改写cost function为
进一步改写为一个式子
其他参数优化方法
1.设置优化参数 optimset = 初始参数,方法,强制结束迭代次数
2.设置初始条件,Initialpara =
3.[Jval, theta'] = Cost_function (X,Y)
4.调用优化函数[Jval,theta'] = (@Cost_function,Initialpara,optimset),
多类别分类
构建i个分类器,利用i个h(z),处理 分别给出属于某个分类的几率值
X 特征矩阵
3.2回归遇到的问题,解决方案,正则化
- 过拟合 拟合特征数>>样本量,
- 欠拟合 特征数不够<<样本量,不能正确预测,回归 办法 1、 减少无关特征
- 手动减少无关特征
- 模型选择算法,自动选择相关变量 2、 regularization 正则化
正则化参数,使特征拟合参数减小权重
线性回归正则化
对于逻辑回归正则化,式子一样
4、神经网络——Nonlinear Hypotheses
输入层、隐藏层、输出层
Backpropagation
Cost function 符号约定
BP神经网络——算法步骤
调用函数的时候 unroll矩阵->Vector
6、Advice for applying machine learning
评价拟合函数hypothesis
- 分类数据集(training set、test set)
- 用训练集的theta 计算测试集的误差(分类问题,误差定义为0/1,最终统计结果表现为错误率) ### 模型选择——(Train/ Validation/ Test sets)
- 训练多个模型,在测试集中找到表现最优
- 偏差和方差(Bias/ Variance) 关于 模型种类
关于 正则化参数
学习曲线
High bias
High Variance
6.2 设计神经网络
- 快速部署、设计简单网络
- plot 学习曲线,发现问题
- 误差分析(验证集):数值被错误分类的特征,度量误差
误差度量 for skewed classes 偏斜类
precision/recall
针对最后一级h(x), 防止错判,阈值提高,设定逻辑判断阈值0.9 instead of 0.5 防止漏过1,阈值放低
综合评定标准
7、支持向量机SVM(support vector machine)
7.1 SVM 大间距分类器(Large Margin Classification)
重写了cost function 和 h(z)
支持向量机的代价函数为: [min_{theta} C[sum_{i=1}^{m}{y^{(i)}}cost_1(theta^Tx^{(i)})+(1-y^{(i)})cost_0(theta^Tx^{(i)})]+frac{1}{2}sum_{j=1}^{n}{theta_j^2}]
有别于逻辑回归假设函数输出的是概率,支持向量机它是直接预测 y 的值是0还是 假设函数
7.2 kernels核函数
高斯核函数
注意的点
核函数用于逻辑回归,运算很慢 核函数优化算法仅适用于SVM 使用前,一定归一化处理
分类模型的选择
7.3 分类模型的选择 目前,我们学到的分类模型有: (1)逻辑回归; (2)神经网络; (3)SVM 怎么选择在这三者中做出选择呢?我们考虑特征维度 n 及样本规模 m :
8、无监督学习(Unsupervised learning)
8.1 分类K-means algorithm(Clustering)
- cluster 分类,计算到(mu_k)距离将下表k分配给(c_i)的
8.2 Dimensionality reduction
数据压缩 Data Compression
减少冗余特征变量
可视化
PCA主成分分析法(Principal Component Analysis)
PCA算法流程
PCA-point
9、异常检测
9.1高斯分布(Gaussian normal distribution)
算法评价
异常检测与逻辑回归的区别
异常检测数据特点是:
- 数据偏斜,y=1数据量极少
- 异常数据特征不聚类(不稳定),难以预测
多元高斯函数
算法流程-多元高斯分布异常检测
相关性
一般高斯模型: 需要手动创建一些特征来描述某些特征的相关性 多元高斯模型: 利用协方差矩阵(Sigma)获得了各个特征相关性
复杂度
一般高斯模型: 计算复杂度低,适用于高维特征 多元高斯模型: 计算复杂
效果¶
结论:
基于多元高斯分布模型的异常检测应用十分有限。
9、2 推荐器 Recommender system
Content based recommendations
协同过滤Collaborative filtering
正则化
10、大数据集——提升运算速度
Stochastic Gradient Descent(随机梯度下降法)
Mini-Batch Gradient Descent
矢量化->并行计算,提高效率
在线学习Online learning
数据集连续,减少存储成本
Map reduce and data parallelism
代数计算库自动implement
12、Photo OCR pipeline
- 文本检测
- 特征分割
- 特征识别
- 修正C1eaning->cleaning ### Sliding window 滑窗分类器 #### 文本检测 步长step size 不同大小,按照比例缩放
检测到特征,相邻互联
特征分割
获取数据,人造数据
- 加背景噪音
- 字体处理
- 人工扭曲
加入高斯噪声没用
大量数据获取建议
Ceiling analysis上限分析
找到提升最大的Module
强化学习
一些概念
- 向量机
- 核函数 作用: 减小计算量,解决多维输入问题 无需知道非线性变换函数的形式和参数
- 贝叶斯滤波器:概率滤波器
处理微分的手段
- 微分+一阶惯性环节,(tf = s/(T_s s +1))
- TD微分跟踪器
- 状态观测器
- 卡尔曼滤波器
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(十一)SVN服务器进阶
- node服务的监控预警系统架构
- Maven构建项目速度太慢的解决办法
- 分析函数之窗口子句(r4笔记第3天)
- node模块加载层级优化
- 使用ajax方法实现form表单的提交
- 翻译:如何使用CSS实现多行文本的省略号显示
- node中子进程同步输出
- Java开源博客My-Blog之docker容器组件化修改
- 几个行列转换的实用小例子(r4笔记第2天)
- History API与浏览器历史堆栈管理
- node中创建服务进程
- 数据挖掘工程师:如何通过百度地图API抓取建筑物周边位置、房价信息
- crontab导致CPU异常的问题分析及处理(r3笔记第100天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何通过Cloudera Manager页面自定义图表
- 【-Flutter组件篇- 】1.20新增组件InteractiveViewer
- Android使用SoundPool实现播放音效
- 【- FlutterUnit重大更新 -】Flutter要点集录.md
- Android实现美团外卖底部导航栏动画
- Kudu遇到的问题
- 【 -Flutter自定义组件- 】Wrapper组件,包裹装饰你的一切
- Android Shape属性创建环形进度条
- Ranger同步ldap组问题
- Android系统添加自定义鼠标样式通过按键切换实例详解
- Impala MetaData问题
- 聚焦 Android 11: UI 与 Compose
- 如何给Flutter界面切换实现点特效
- 恢复 RecyclerView 的滚动位置
- android实现指纹识别功能