机器学习初窥

机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、 逼近论凸分析算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
它是 人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。

学习是人类具有的一种重要智能行为,但究竟什么是学习,长期以来却众说纷纭。社会学家、逻辑学家和心理学家都各有其不同的看法。
比如,Langley(1996) 定义的机器学习是“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在 经验学习中改善具体算法的性能”。(Machine learning is a science of the artificial. The field's main objects of study are artifacts, specifically algorithms that improve their performance with experience.')
Tom Mitchell的机器学习(1997)对 信息论中的一些概念有详细的解释,其中定义机器学习时提到,“机器学习是对能通过 经验自动改进的计算机算法的研究”。(Machine Learning is the study of computer algorithms that improve automatically through experience.)
Alpaydin(2004)同时提出自己对机器学习的定义,“机器学习是用数据或以往的 经验,以此优化计算机程序的性能标准。”(Machine learning is programming computers to optimize a performance criterion using example data or past experience.)
尽管如此,为了便于进行讨论和估计学科的进展,有必要对机器学习给出定义,即使这种定义是不完全的和不充分的。顾名思义, 机器学习是研究如何使用机器来模拟人类 学习活动的一门学科。稍为严格的提法是:机器学习是一门研究机器获取新知识和新技能,并识别现有知识的学问。这里所说的“机器”,指的就是计算机, 电子计算机,中子计算机、光子计算机或神经计算机等等。
机器能否象人类一样能具有学习能力呢?1959年 美国的塞缪尔(Samuel)设计了一个下棋程序,这个程序具有学习能力,它可以在不断的对弈中改善自己的棋艺。4年后,这个程序战胜了设计者本人。又过了3年,这个程序战胜了美国一个保持8年之久的常胜不败的冠军。这个程序向人们展示了机器学习的能力,提出了许多令人深思的社会问题与哲学问题。
机器的能力是否能超过人的,很多持否定意见的人的一个主要论据是:机器是人造的,其性能和动作完全是由设计者规定的,因此无论如何其能力也不会超过设计者本人。这种意见对不具备学习能力的机器来说的确是对的,可是对具备学习能力的机器就值得考虑了,因为这种机器的能力在应用中不断地提高,过一段时间之后,设计者本人也不知它的能力到了何种水平。
机器学习有下面几种定义: “机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”。 “机器学习是对能通过经验自动改进的计算机算法的研究”。 “机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。” 一种经常引用的英文定义是:A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E.
机器学习已经有了十分广泛的应用,例如: 数据挖掘计算机视觉自然语言处理生物特征识别搜索引擎医学诊断、检测 信用卡欺诈证券市场分析、 DNA序列测序、 语音手写识别、 战略游戏机器人运用。

2发展史

机器学习是人工智能研究较为年轻的分支,它的发展过程大体上可分为4个时期。
第一阶段是在20世纪50年代中叶到60年代中叶,属于热烈时期。
第二阶段是在20世纪60年代中叶至70年代中叶,被称为机器学习的冷静时期。
第三阶段是从20世纪70年代中叶至80年代中叶,称为复兴时期。
机器学习的最新阶段始于1986年。
机器学习进入新阶段的重要表现在下列诸方面:
(1) 机器学习已成为新的边缘学科并在高校形成一门课程。它综合 应用心理学、生物学和神经生理学以及数学、自动化和 计算机科学形成机器学习理论基础。
(2) 结合各种学习方法,取长补短的多种形式的集成学习 系统研究正在兴起。特别是连接学习 符号学习的耦合可以更好地解决连续性 信号处理中知识与技能的获取与求精问题而受到重视。
(3) 机器学习与人工智能各种基础问题的统一性观点正在形成。例如学习与问题求解结合进行、知识表达便于学习的观点产生了通用智能系统SOAR的组块学习。类比学习与问题求解结合的基于案例方法已成为 经验学习的重要方向。
(4) 各种学习方法的应用范围不断扩大,一部分已形成商品。归纳学习的知识获取工具已在诊断分类型专家系统中广泛使用。连接学习在声图文识别中占优势。分析学习已用于设计综合型专家系统。 遗传算法与强化学习在工程控制中有较好的应用前景。与 符号系统耦合的 神经网络连接学习将在企业的智能管理与智能机器人运动规划中发挥作用。
(5) 与机器学习有关的学术活动空前活跃。国际上除每年一次的机器学习研讨会外,还有计算机学习理论会议以及遗传算法会议。

3主要策略

学习是一项复杂的智能活动,学习过程与推理过程是紧密相连的,按照学习中使用推理的多少,机器学习所采用的策略大体上可分为4种——机械学习、通过传授学习、类比学习和通过事例学习。学习中所用的推理越多,系统的能力越强。

4基本结构

表示学习系统的基本结构。环境向系统的学习部分提供某些信息,学习部分利用这些信息修改 知识库,以增进系统执行部分完成任务的效能,执行部分根据知识库完成任务,同时把获得的信息反馈给学习部分。在具体的应用中,环境,知识库和执行部分决定了具体的工作内容,学习部分所需要解决的问题完全由上述3部分确定。下面我们分别叙述这3部分对设计学习系统的影响。
影响学习系统设计的最重要的因素是环境向系统提供的信息。或者更具体地说是信息的质量。知识库里存放的是指导执行部分动作的一般原则,但环境向学习系统提供的信息却是各种各样的。如果信息的质量比较高,与一般原则的差别比较小,则学习部分比较容易处理。如果向学习系统提供的是 杂乱无章的指导执行具体动作的具体信息,则学习系统需要在获得足够数据之后,删除不必要的细节,进行总结推广,形成指导动作的一般原则,放入知识库,这样学习部分的任务就比较繁重,设计起来也较为困难。
因为学习系统获得的信息往往是不完全的,所以学习系统所进行的推理并不完全是可靠的,它总结出来的规则可能正确,也可能不正确。这要通过执行效果加以检验。正确的规则能使系统的效能提高,应予保留; 不正确的规则应予修改或从数据库中删除。
知识库是影响学习系统设计的第二个因素。知识的表示有多种形式,比如特征向量、一阶逻辑语句、产生式规则、 语义网络和框架等等。这些表示方式各有其特点,在选择表示方式时要兼顾以下4个方面:
(1)表达能力强。
(2)易于推理。
(3)容易修改知识库。
(4) 知识表示易于扩展。
对于知识库最后需要说明的一个问题是学习系统不能在全然没有任何知识的情况下凭空获取知识,每一个学习系统都要求具有某些知识理解环境提供的信息,分析比较,做出假设,检验并修改这些假设。因此,更确切地说,学习系统是对现有知识的扩展和改进。
执行部分是整个学习系统的核心,因为执行部分的动作就是学习部分力求改进的动作。同执行部分有关的问题有3个:复杂性、反馈和透明性。

5代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
//在gcc-4.7.2下编译通过。
//命令行:g++-Wall-ansi-O2test.cpp-otest
#include<iostream>
usingnamespacestd;
voidinput( int &oper,constboolmeth)
{
//meth为true则只判断1,为false则判断1或0
while ( true )
{
cin>>oper;
if (meth&&oper==1)
break ;
elseif(oper==0||oper==1)
break ;
cout<< "输入错误,请重新输入。" <<endl; //判断参数
cin.sync(); //避免极端输入导致死循环
cin.clear();
}
}
intmain( void )
{
cout<< "1+1=2吗?那要看您怎么教我了,不要惊讶我会学习的" <<endl;
intladd,radd,aprs,rcnt(0),wcnt(0); //定义输入与结果,正确次数与错误次数
cout<< "开始学习……" <<endl;
for (inti(0);i!=10;++i)
{
cout<< "参数1(必须是1):" <<flush; //提示输入参数
input(ladd, true );
cout<< "参数2(必须是1):" <<flush;
input(radd, true );
cout<< "结果:" <<(ladd+radd)<<endl; //输出结果
cout<< "您对这满意吗(满意输入1,不满意输入0):" <<flush; //评价等级
input(aprs, false );
if (aprs) //判断用户评价
++rcnt;
else
++wcnt;
cout<< "正确次数:" <<rcnt<< "错误次数:" <<wcnt<<endl; //错误次数
}
if (rcnt>wcnt) //判断学习结果
cout<< "主人告诉我1+1=2。" <<endl;
else
if (rcnt<wcnt)
cout<< "主人告诉我1+1!=2。" <<endl;
else
cout<< "我不明白主人是什么意思。" <<endl;
intterm; //退出部分
cout<< "您对我的表现满意吗?满意请输入1不满意请输入0:" <<flush;
input(term, false );
if (term)
cout<< "谢谢我会继续努力学习" <<endl;
else
cout<< "谢谢我会继续努力学习D" <<endl;
//cin>>term;//在Windows上测试时启用
return0;
}
本程序将根据您的评价判断执行结果 "1+1=2"
  实际上仅用了最简单的 if else for 语句
  这就是一个机器学习的例子,通过环境影响来进行学习。
  通过本例我们不难看出,在人工错误的引导下,机器会给出错误的答案 1+1不等于2。
  所以此类学习方法,一定要在正确引导下实践,否则会得到最坏的结果。
  学习完毕后,计算机会记录本次学习结果,存入数据库,下次执行相应任务时,再将结果调出执行。


深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值