[机器学习Lesson 1 Introduction] 机器学习的动机与应用
1. Machine Learning definition(机器学习定义)
- Arthur Samuel(1959年)将机器学习非正式定义为:在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个研究领域。 创造西洋棋程序,可以和自己对战。
- Tom Mitchell(1998年)提出一个更为正式关于机器学习的定义 :对于一个计算机程序来说:给它一个任务T和一个性能测量方法P,如果在经验E的影响下,P对T的测量结果得到了改进,那么就说改程序从E中学习。
E = the experience of playing many games of checkers
T = the task of playing checkers.
P = the probability that the program will win the next game.
2. Supervised Learning (监督学习)
它被称作监督学习是因为对于每个数据来说 我们给出了 “正确的答案”。
你有一些问题和他们的答案,你要做的有监督学习就是学习这些已经知道答案的问题。然后你就具备了经验了,这就是学习的成果。然后在你接受到一个新的不知道答案的问题的时候,你可以根据学习得到的经验,得出这个新问题的答案。(试想一下高考不正是这样,好的学习器就能有更强的做题能力,考好的分数,上好的大学.....)。我们有一个样本数据集,如果对于每一个单一的数据根据它的特征向量我们要去判断它的标签(算法的输出值),那么就是有监督学习。通俗的说,有监督学习就是比无监督学习多了一个可以表达这个数据特质的标签。
包含回归(Regression)和分类(Classfication)。
- 举例:
- 房价 与 面积的关系
2.1 Classfication (分类任务)
++离散++变量预测,设定了标准答案,复合条件,是或否。
- 举例:
- 肿瘤良性/恶性 与 肿瘤大小的关系。(0或1结构)
- 年纪 与 肿瘤大小关系。(聚合结构)
- 预测明天的气温是多少度
- Support Vector machines(支持向量机的算法):可以吧数据映射到无限维空间中。
- 问题:
- 如何把一个无限维的向量映射到计算机内存中?
- 如何表示一个无限纬空间中的点?
2.2 Regression(回归任务)
++连续++变量预测。
- 举例:
- 预测明天的气温是多少度。
3. Unsupervised Learning(无监督学习)
数据聚合、分类。
我们有一些问题,但是不知道答案,我们要做的无监督学习就是按照他们的性质把他们自动地分成很多组,每组的问题是具有类似性质的(比如数学问题会聚集在一组,英语问题会聚集在一组,物理........)。
所有数据只有特征向量没有标签,但是可以发现这些数据呈现出聚群的结构,本质是一个相似的类型的会聚集在一起。把这些没有标签的数据分成一个一个组合,就是聚类(Clustering)。比如Google新闻,每天会搜集大量的新闻,然后把它们全部聚类,就会自动分成几十个不同的组(比如娱乐,科技,政治......),每个组内新闻都具有相似的内容结构。
- 举例:
- 提供一组数据,不提供任何数据的正确答案,你能否在这组数据中寻找到一些有趣的数据结构?
- 基因数据分组。
- 聚合算法处理图像,对像素数据进行聚合分组,得到类似素描的效果,等效表达。
- 图像处理,将图像分成不同区域,像素分到不同区域。创建3D模型,创造类似AR的效果。
- 计算机集群,社交网络分析,市场划分,航天数据分析。
3.1 Cocktail party problem(鸡尾酒会问题)
假设我们在参加一个鸡尾酒会,有很多人参加,在环境嘈杂,很多人说话的情况下,能否把感兴趣的某个人的声音单独从嘈杂的背景音中提取出来?
规律:不同麦克风收集到说话者声音大小不一样。
- 算法A 将人声从人声中分离
- 独立组件分析 将人声从音乐中分离
其他应用:
- 文本处理
- 理解功能分级
使用MATLAB一行代码实现以上算法。
3.2 ICA algorithm
[W,s,v] = svd((repmat(sum(x.*x,1),size(x,1),1).*x)*x');
4. Reinforcement Learning(强化算法学习)
基本概念是一个被称为 回报函数的概念。
使用在不需要进行一次决策的情形中。
- 举例
- 使用监督学习进行癌症预测,预测一个病人肿瘤是否为恶性。你的预测决定了病人是生死。通过决策产生一个结论,要么对,要么错。
在强化学习问题中,通常会一段时间内做出一系列的决策
- 举例
- 自动直升机:给你自动直升机的钥匙,能否写个程序让它飞起来?如果做了一个坏的决策,飞机可能不会马上摔下来,只有你连续做出很多坏的决策时,飞机才会摔下来。相反的,只要连续的做出正确的决策,飞机就可以飞起来了。
- 训狗,正确奖励;错误惩罚。
- 机器人领域。
- 用粒子群优化算法求解旅行商问题
- 使用CNN(LSTM架构)进行序列预测基于TensorFlow
- 【独家】周志华教授gcForest(多粒度级联森林)算法预测股指期货涨跌
- 如何利用SOTER,1个版本内完成指纹支付开发?
- Rafy 框架 - 大批量导入实体
- Rafy 框架 - 执行SQL或存储过程
- 关于activitygroup过时,用frament替换操作
- Rafy 框架 - 为数据库生成注释
- CNN预测股票走势基于Tensorflow(思路+程序)
- 路径查找器AI
- android推荐使用dialogFrament而不是alertDialog
- 自定义圆角和园边的实现
- Rafy 中的 Linq 查询支持(根据聚合子条件查询聚合父)
- 应用潜在语义分析技术将文档进行3D可视化
- 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 数组属性和方法
- android studio使用SQLiteOpenHelper()建立数据库的方法
- Android自定义View绘制彩色圆弧
- android canvas使用line画半圆
- 说说Android的UI刷新机制的实现
- Android仿直播类app赠送礼物功能
- android自定义imageview实现圆角图片
- 基于android实现五子棋开发
- Android Fragment的静态注册和动态注册创建步骤
- Android从Fragment跳转到其他Activity的简单实例
- Android7.0以上Uri转路径的方法实现(已验证)
- Android studio实现简单计算器
- Android 自定义LayoutManager实现花式表格
- android studio编译jar包或者aar包的方法教程详解
- Android实现屏幕录制功能
- Android实现扫描二维码功能