设计一个学习系统
来源:互联网 发布:稻叶浩志 知乎 编辑:程序博客网 时间:2024/05/16 01:46
------------------------------------------------------学习的基本概念
学习的宽广定义:任何计算机程序通过经验来提高其任务处理性能的行为。
学习的严格定义:如果一个计算机程序针对某类任务T使用P作为衡量标准,而且使用经验E进行自我完善,那么我们策划那个这个计算机程序针对任务T从经验E中学习,其性能使用P进行衡量。
例子:西洋跳棋的学习问题
- 任务T:下西洋跳棋
- 性能标准P:在比赛中击败对手的百分比
- 训练经验E:和自己进行对弈
------------------------------------------------------设计一个学习系统
选择训练经验:
- 训练经验能否为系统的决策提供直接或者间接的反馈。如对于西洋跳棋系统可以直接提供正确走子的训练样例,也可以提供间接的信息,这其中包括了以往对弈中的走子情况以及每一步对最终结果的影响(这涉及一个信用分配的问题,即每一次走子对最终结果的贡献程度)。
- 学习器可以在多大程度上控制训练样例序列。这包括了学习器依赖施教者提供解决方案,学习器主动针对疑惑的问题对施教者提出询问或者完全由学习器自身控制。
- 训练样例的分布能多大程度地表示实例分布,通过样例来衡量最终系统的性能P。一般而言,训练样例的分布和将来的测试样例的分布相似时,学习具有最大的可信度。存在的问题是,掌握了样例的一种分布,不一定会使它对其他的分布也有同样好的性能。
选择目标函数:
决定要学习的知识的确切类型以及执行程序应该如何使用这些知识。一般学习任务被简化成为发现一个理想目标函数V的可操作描述。要完美地学习这样一个V的可操作的形式是非常困难的。事实上,通常我们仅希望学习算法得到近似的目标函数,由于这个原因学习目标的过程常常被称为函数逼近。
选择目标函数的表示:
一般来说,选择这个描述包含一个重要的权衡过程。一方面,我们总希望选取一个非常有表现力的描述,以最大可能地逼近理想的目标函数V。另一方面,越有表现力的描述需要越多的训练数据,使程序能从它表示的多种假设中选择。如果把一个目标函数表示为线性函数,则如V(b)=w0+x1*w1+x2*w2+x3*w3。其中x1到x3为不同参数,w0到w3为不同参数的权重。
选择函数逼近算法:
- 估计训练值,即估计训练过程中每一步的不同选择对最终结果的影响。
- 调整权值。即为这个学习算法选择最适合训练样例的权值wi。第一步须定义最佳拟合训练数据的含义。一种常用的方法是吧最佳的假设定义为使训练值和假设预测出的值间的误差平方和E最小。对于有了一定训练样例之后进一步精化权值则可以采用最小均方法,即LMS训练法则。
最终设计:
- 执行系统。用学会的目标函数来解决给定的任务,它把新问题的实例作为输入,产生一组解答路线作为输出。而执行系统采用的选择下一步走法的策略是由学到的评估函数V来决定的,其性能会随着评估函数的日益准确而提高。
- 鉴定器。以对弈的路线或者历史记录作为输入,输出目标函数的一系列训练样例。比如在西洋跳棋中将输出每一步的走子对最终结果的影响。
- 泛化器。以训练样例为输入,产生一个输出假设,作为它对目标函数的估计。它从特定的训练样例中泛化,猜测一个一般函数,使其能够覆盖这些样例以及样例之外的情形 。
- 实验生成器。它一当前的假设作为输入,输出一个新的问题供执行系统区探索。
在机器学习方面,一个有效的观点就是机器学习问题经常归结于搜索问题,即对一个非常大的假设空间进行搜索,以确定一个与观察到的数据和学习器已有知识假设的最佳拟合。因此学习器的任务就是搜索这个假设空间来定位与训练数据最佳拟合的假设。
- 设计一个学习系统
- 怎么设计一个学习资源共享系统
- 【复习笔记】设计一个学习系统
- 一个小系统设计
- 设计一个Cache系统
- 设计一个排队系统
- 设计一个监控系统
- 设计一个抽奖系统
- 如何设计一个系统?
- 机器学习6--如何衡量一个学习算法的性能和如何设计一个系统
- 机器学习系统设计
- 从零开始设计一个IT系统
- 如何设计一个RPC系统
- 设计一个智能客服系统
- HBase概念学习(八)开发一个类twitter系统之表设计
- 通过学习学生信息管理系统软件,C程序中,如何设计和编写一个应用系统?
- 通过学习学生信息管理系统软件,C程序中,如何设计和编写一个应用系统
- 面对一个设计需求,是全新设计一个系统还是基于现有系统改造一个系统?
- 数据结构学习之汉诺塔代码
- Ubuntu12.04lts疑难杂症----用户无法登入(正确输入密码后又跳回登入界面)
- DIV+CSS中10句新手最有用的css代码
- IOS开发之添加第三方lib或从其他工程引入lib时的链接错误:ld: symbol(s) not found for architecture i386
- Hadoop操作HDFS命令
- 设计一个学习系统
- 如何在windows server 2008的桌面上显示 我的电脑 我的文档 网上邻居?
- android progressbar
- jsp页显示时间标签JSTL标签 <fmt:formatDate/> 实例大全
- 10个步骤引导你开发出畅销的移动应用
- linux I/O和oracle的关系(二)
- 安装Homebrew
- 微信小黄鸡 微信公众平台娱乐助手 聊天机器人 娱乐小助手
- 嵌入式系统中的大端模式和小端模式