看完还不懂什么是机器学习的概率基本为0!

机器学习中概率论知识复习 机器学习先验知识概率论部分 阅读详情

机器学习(Machine Learning,简称ML)究竟是什么?

简单来说,机器学习就是教计算机从数据中学习,以便它们能在没有明确编程规则的情况下执行任务。

可以这样想:与其给计算机一本详细的分步操作手册,不如给它一个示例库,让它自己找出其中的模式。

“如果一个计算机程序在完成某项任务T时,能根据经验E进行学习,并且通过性能度量P来评估,其在任务T上的性能随着经验E的积累而提升,那么这个程序就被认为是从经验中学习了。”这段话来自汤姆·米切尔(1997年)

"A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experience E." - Tom Mitchell (1997)

本文将为你提供一份机器学习领域的概览指南,我们将探讨它的定义、不同类型、可能遇到的常见难题,以及如何构建真正有效的模型。

为何机器学习备受关注?
传统上,要解决创建垃圾邮件过滤器这样的问题,程序员需要:

研究垃圾邮件的特征(如包含“免费”、“信用卡”等词汇)。
编写一大串复杂的规则来检测这些模式。
不断测试并更新规则,以应对垃圾邮件发送者的迭代更新,而机器学习的方法则截然不同。

以下是机器学习成为变革者的原因:

  • 自动适应:基于机器学习的垃圾邮件过滤器能自动识别“For U”是“4U”的新变体,无需程序员编写新规则。

  • 解决无解难题:对于没有已知公式的极其复杂问题,如语音识别,机器学习是最佳(且往往是唯一)的解决方案。

  • 揭示隐藏洞察:机器学习算法擅长从海量数据中挖掘出意想不到的模式,这一过程被称为数据挖掘。

何时选择机器学习?

  • 需要长串规则或精细调整的问题:如果一项任务需要编写一套复杂的硬编码规则(并不断更新),机器学习模型通常能通过自动学习规则来简化解决方案,并表现更佳。

  • 没有已知算法的复杂任务:对于许多任务(如视觉、语音、语言理解),我们没有行之有效的人工算法。在这种情况下,机器学习往往是获得良好结果的唯一可行方法。

  • 动态变化的环境:当数据或底层模式随时间变化时(如趋势、用户行为、不断演变的威胁),机器学习系统可以重新训练或设置为持续学习,以保持最新状态。

  • 需要从大量数据中获取洞察:机器学习能够处理“大数据”并发现其中的模式,这些数据量之大,超出了人工分析的能力范围。它有助于理解庞大的数据集,并揭示出(在金融、科学、市场营销等领域)不明显的关系。

在所有这些情况下,从数据中学习的能力使机器学习相较于显式编程具有优势。

另外我们精心打磨了一套基于数据与模型方法的AI科研入门学习方案(已经迭代第6次),对于人工智能来说,任何专业,要处理的都只是实验数据,所以我们根据实验数据将课程分为了三种方向的针对性课程,包含时序、影像、AI+实验室,我们会根据你的数据类型来帮助你选择合适的实验室,根据规划好的路线学习 只需3-5个月左右(很多同学通过学习已经发表了 sci 一区及以下、和同等级别的会议论文)学习形式为直播+录播,多位老师为你的论文保驾护航。

适合人群:

  • 导师放养,自学无头绪

  • 时间紧任务重有延毕风险

  • 想提前完成大小论文为之后读博或工作做准备的

  • 想通过发表sci论文、提升科研能力bao研、考研的本科同学

文章中所有的数据和资料,可添加小助手无偿分享~
扫码添加小助手即可无偿获取~

也可以关注“AI技术星球”公众号,关注后回复“221C”获取。

机器学习的多面性
机器学习并非一刀切的工具,我们可以根据机器学习系统的学习方式、学习时机以及预测方式来对其进行分类。

这些标准并非互斥——一个机器学习系统可能同时属于多个类别。

例如,一个现代的垃圾邮件过滤器可能是监督式的(基于标记的电子邮件进行训练)、在线的(随着新电子邮件的到来而持续学习)和基于模型的(使用神经网络模型)。

让我们逐一解析每个分类:

  1. 学习方式:四种训练风格

这关乎算法在训练过程中获得的“监督”类型和数量。

监督学习:

这就像有老师指导的学习,算法接收带有正确答案标记的数据。

  • 分类:将项目归入不同类别(如“垃圾邮件”或“非垃圾邮件”)。

  • 回归:预测数值(如房屋的未来价格)。

没有任何

无监督学习

在这种情况下,算法独自学习,它接收未标记的数据,并必须找出隐藏的结构,没有任何提示。常见任务包括:

  • 聚类:将相似的数据点分组(如根据购买习惯对客户进行细分)。

  • 异常检测:识别不寻常的数据点(如标记潜在的欺诈性信用卡交易)。

  • 降维:通过将多个特征合并为一个来简化数据,这一过程称为特征提取。

没有任何

半监督学习

这是一种实用的折中方案,模型在少量标记数据和大量未标记数据上进行训练。

可以参考各大软件的识图功能,你选择一张照片,它就能在所有其他照片中找到你图片中的人或物。

没有任何

自监督学习

指的是一种强大的方法:从未标记的数据本身创建监督学习问题,以便无需人工标签就能预训练模型。

在自监督学习中,数据提供了监督,换句话说,我们自动从数据中生成伪标签。

没有任何

强化学习

这是通过试错来学习,智能体(学习者)在环境中采取行动,并获得奖励或惩罚。

随着时间的推移,它学习到最大化奖励的最佳策略或政策,这是游戏AI(如AlphaGo)背后的原理。

没有任何

  1. 学习时机:批量学习与在线学习

这关乎系统是否能逐步学习。

  • 批量学习/离线学习(“一次性”方法):系统一次性在所有可用数据上进行训练,离线进行。一旦部署,它就不再学习,要使用新数据更新它,你必须从头开始重新训练一个全新版本。这可能既缓慢又昂贵,随着时间的推移,其性能可能会下降,这一问题被称为模型退化或数据漂移。

  • 在线学习/增量学习(“逐步”方法):系统通过顺序接收数据来在线学习,可以是一次一个实例,也可以是以称为小批量的小组形式。这对于需要快速适应变化的系统以及处理无法装入计算机内存的庞大数据集(核外学习)非常有用。

没有任何

  1. 泛化方式:基于实例与基于模型

这关乎系统如何利用所学知识对新未见数据进行预测。

  • 基于实例的学习:系统基本上是死记硬背。它通过使用相似性度量将新数据与训练示例进行比较来做出预测。

  • 基于模型的学习:这是更常见的方法。系统根据训练数据中的模式构建模型(一个表示或方程),然后使用该模型进行预测。这涉及训练模型以找到最小化成本函数(衡量模型好坏的指标)的最佳参数值。

没有任何

主要挑战
在机器学习中,你的主要任务是选择一个好模型并在好数据上训练它,可能出问题的两个主要方面是“模型不佳”和“数据不佳”。

“数据不佳”问题

  • 数据不足:大多数机器学习算法需要数千甚至数百万个示例才能表现良好。数据往往比算法本身更重要。

  • 数据不具代表性:你的训练数据必须能代表现实世界,否则它就无法很好地泛化。小样本量可能导致采样噪声,而数据收集方法有缺陷则可能导致采样偏差。

  • 数据质量差:充满错误、异常值和噪声的数据将阻止你的系统有效学习。清理数据是数据科学家工作的重要组成部分!

  • 特征不相关:相信大家都听过“输入垃圾,输出垃圾”。机器学习项目的成功在很大程度上依赖于特征工程——选择、组合和创建最佳特征以进行训练的过程。

“模型不佳”问题
过拟合

  • 模型在训练数据上表现极佳,但无法泛化到新实例。这发生在模型相对于数据量过于复杂时。它学习的是噪声,而不仅仅是信号。

  • 解决方案:简化模型、获取更多训练数据,或使用称为正则化的技术来约束模型并防止其变得过于复杂。

没有任何

欠拟合

  • 模型过于简单,无法学习数据的底层结构。其预测即使在训练数据上也不准确。

  • 解决方案:选择更强大的模型、设计更好的特征,或减少对模型的约束。

如何构建一个成功的模型
一旦你训练了一个模型,如何知道它是否优秀?你需要测试和验证它。

训练集、验证集和测试集
要知道模型在新数据上的表现如何,唯一的方法就是尝试。

没有任何

标准做法是分割你的数据:

  • 训练集:用于训练模型的数据。

  • 测试集:你保留这部分数据,仅在最后用于评估你的最终模型在未见数据上的性能。该集合上的错误率称为泛化误差。

  • 验证集(或开发集):那么你如何选择不同的模型或调整模型的设置(超参数)呢?你不能使用测试集,否则你会最终过拟合到它。解决方案是从训练数据中创建第三个集合,即验证集。你使用这个集合来比较模型并在将最终模型运行在测试集之前进行微调。

数据不匹配问题
如果你的训练数据(如来自网络的高质量花朵图片)与生产环境中将看到的数据(如模糊的手机花朵图片)不完全匹配怎么办?这就是数据不匹配。为了诊断这个问题,你可以从训练数据中创建一个训练-开发集。

  • 如果你的模型在训练-开发集上表现不佳,那么它就是过拟合。

  • 如果它在训练-开发集上表现良好但在验证集上表现不佳,那么问题就是数据不匹配。

总结
没有一种模型能保证在所有问题上都能表现最佳,要知道什么有效,唯一的方法就是对你的数据做出合理假设,多尝试几个模型,并严格测试它们。

未命名(6)(1).gif

另外我们精心打磨了一套基于数据与模型方法的AI科研入门学习方案(已经迭代第6次),对于人工智能来说,任何专业,要处理的都只是实验数据,所以我们根据实验数据将课程分为了三种方向的针对性课程,包含时序、影像、AI+实验室,我们会根据你的数据类型来帮助你选择合适的实验室,根据规划好的路线学习 只需3-5个月左右(很多同学通过学习已经发表了 sci 一区及以下、和同等级别的会议论文)学习形式为直播+录播,多位老师为你的论文保驾护航。

适合人群:

  • 导师放养,自学无头绪

  • 时间紧任务重有延毕风险

  • 想提前完成大小论文为之后读博或工作做准备的

  • 想通过发表sci论文、提升科研能力bao研、考研的本科同学

文章中所有的数据和资料,可添加小助手无偿分享~
扫码添加小助手即可无偿获取~

也可以关注“AI技术星球”公众号,关注后回复“221C”获取。

机器学习——先验概率、后验概率、全概率公式、贝叶斯公式 先验概率(prior probability)是指根据以往经验和分析得到的概率,如全概率公式,它往往作为"由因求果"问题中的"因"出现的概率。后验概率是指在得到“结果”的信息后重新修正的概率,是“执果寻因”问题中的"果"。贝叶斯公式就是当已知结果,问导致这个结果的第 i 原因的可能性是多少。 阅读详情

相关推荐

基于ML-KNN的多标签分类算法

     最近有一个项目需要用多标签分类思想来建模,之前对这块不是太了解,查了一些论文,发现目前主流的算法包括ML-KNN、ML-DT、Rank-SVM、CML等,其中ML-KNN算法思想最简单,结合原始论文,本文大概介绍下算法思想和代码实现。      ML-KNN借鉴了KNN的思想寻找K个近邻样本,并运用贝叶斯条件概率,来计算当前标签为1和0的概率,概率大的标签定为样本最终的标签,这就是ML-...

liumy601的专栏 1万+

机器学习的书看不懂怎么办?看看大神怎么回答?

有同学问:机器学习的书看不懂怎么办?于是我去知乎找了很多大神的回复。本文来源:知乎高赞回复一 作者:张戎来源:知乎第一次学机器学习的时候还是选定一本书,先精通一本书籍,再泛读其他书籍,其...

fengdu78的博客 2721

梳理常见基本的概率分布函数及他们在机器学习中的作用

在机器学习许多算法里面经常用到的一个建模技巧就是假定某个数据服从某个概率分布。每个概率分布都有一个概率分布函数,输入样本值概率分布函数输出当前这个样本属于某个类的概率。而任何概率分布函数都会存在未知参数,不同数据要取不同的参数。比如逻辑回归,它就认为概率分布函数长的像这样,输入样本值x,输出x属于标签为1的那个类的概率。未知参数是w和b,不同数据w和b是要取不同的值。逻辑回归要做的是根据不同数据自...

@司南牧|知乎|博客|易懂教程|李韬 2830

面对完全看不懂的机器学习理论书籍该怎么办?

面对完全看不懂的机器学习理论书籍该怎么办? 最近在看understanding machine learning一书,感觉有些概念实在是太难懂了。 悟出来的方法 将语言进行形式化,即用公式表示出来,这样就可以将抽象的东西变成我们看得见摸得着的东西,例如集合,函数等。 ...

Chenglin(Ben) Yu's Miracle 1364

Java机器学习库ML之七分类预测输出概率值

场景:一般分类预测直接输出类别标记,不过有些情况需要输出对应类别的概率值,比如判定为正例的概率是0.6,而判定为负例的概率是0.3,那自然标记为正例,这里就是看ML用classDistribution输出各类别的概率值。参考代码如下: /** * This file is part of the Java Machine Learning Library * * The Java Mac

医疗影像检索 4383

似然概率、先验概率、后验概率和边缘概率

概率类型定义应用场景似然概率给定输出时,关于参数的似然函数参数估计,特别是最大似然估计先验概率根据以往经验和分析得到的概率贝叶斯统计推断中的初始信念后验概率通过新信息修正后的先验概率贝叶斯统计推断中的更新信念边缘概率某个事件发生的概率,与其它事件无关多维随机变量的概率分析中,仅考虑某一维的概率分布这些概念在概率论、统计学和机器学习中都有着广泛的应用。

weixin_47695827的博客 2769

机器学习论文中完全看不懂的数学公式该怎样才能看懂?

看不懂公式的原因和一些建议

weixin_42098322的博客 5812

机器学习中的概率模型及使用案例

概率模型是机器学习的重要组成部分,其目的是从数据中学习模式,并对新的、看不见的数据进行预测。它们是统计模型,捕捉数据中固有的不确定性,并将其纳入预测。概率模型用于各种应用,例如图像和语音识别、自然语言处理和推荐系统。近年来,在开发能够有效处理大型数据集的概率模型方面取得了重大进展。

python收藏家的博客 2872

【机器学习】在不确定的光影中:机器学习与概率论的心灵共舞

在数据科学的浩瀚宇宙中,概率论犹如一束微光,指引着我们在纷繁复杂的数据世界中找到规律。机器学习,作为一门将数学与现实问题紧密相连的学科,离不开概率分布的深刻洞察。通过对常见概率分布的剖析——从正态分布到贝塔分布、从泊松分布到指数分布,我们得以窥见数据背后蕴含的潜在模式与不确定性。这些分布不仅揭示了数据的内在特性,也为机器学习算法提供了强有力的理论支持。在这场概率与决策的交响乐中,每一种分布都是乐章中的一个音符,指引着我们在高维数据的迷雾中寻找真理。随着对概率分布理解的加深,我们也将踏入更深层次的算法应用之旅

半截诗的博客~ 5867

机器学习强基计划5-1:概率图开篇,机器学习中的图论总结(附思维导图)

概率图是统一表示、推断、学习的灵活框架,在机器人、计算机视觉、推荐系统等领域应用广泛,本节介绍什么是概率图以及机器学习中的图论基础,附思维导图和python实验代码

FRIGIDWINTER的博客 2879

初学者必读:机器学习的完整介绍和入门,看不懂你打我

文章目录机器学习的介绍⼀、机器学习架构(1)训练阶段(Training)(2)预测阶段(Predict)⼆、机器学习的分类(1)有监督学习(2)⽆监督学习(3)机器学习算法类别概括图表三、机器学习的四个阶段(1)数据准备阶段(2)训练评估阶段(3)测试阶段(4)预测阶段 机器学习的介绍 机器学习技术不断的进步,应⽤相当⼴泛,例如推荐系统,定向⼴告,需求预测,垃圾邮件过滤,医学诊断,⾃然语⾔处理,搜索引擎,欺诈检测,证券分析,视觉识别,语⾳识别,⼿写识别,频率识别等等。 ⼀、机器学习架构 机器学习(Machine Learning)通过算法、使⽤历史数据进⾏训练,训练完成后会产⽣模型。未来当有

[spark]总结spark ML机器学习库(pyspark.ml)

目录 一、pyspark.ml.feature特征处理 二、pyspark.ml模型 三、pyspark.ml.tuning参数遍历 一、pyspark.ml.feature特征处理 方法 描述 功能 连续特征离散化 Binarizer 将连续值划分为二元离散数值 连续特征离散化 Bucketizer 将连续值划分为多元离散数值 ...

woniu201411的博客 3086

UE4入门实例17(Unreal制作卡通Post Process材质球)

效果展示 #1 创建Post Porcess材质球 #2 编写Shader功能 #3 设置场景区域内风格化渲染 #1 创建Post Porcess材质球 #2 编写Shader功能 创建基础效果 移除现有通道渲染 设置视图渲染范围 #3 设置场景区域内风格化渲染 #4 加群下载Shader源码:284105567 ...

Unity3d 攻城师一枚 1346

概率推理_概率推理的基本问题

概率推理By now, I know many people that do research in ML or play around with machine learning algorithms. Yet, most of them somehow don’t appreciate the fundamental problems that machine learning is buil...

weixin_26704853的博客 1113

eDP接口信号组成认识

eDP接口信号主要由Main Link、AUXCH与HPD三部分组成,如下图所示。 Main Link:表示主通道,用来传输各类型视频数据和音频数据; AUX CH:表示辅助通道,用于传输低带宽需求的数据,以及链路管理和设备控制信号; HPD:表示热插拔检测通道。 Main Link南1~4对数据线组成,每对数据线都是一对差分线。对于一款液晶屏而言,Main Link具体需几对数据线,这取决于屏幕的分辨率和彩色位数。 在该通道中传送的信号有视频像素信号、视频定时信号、视频格式信号、比特/像素及

精诚所至 2万+

ResNet与注意力机制:深度学习中的强强联合

本文详细介绍了ResNet和注意力机制的基本原理,并探讨了如何将两者结合,以提升网络的性能。通过在ResNet中引入注意力机制,网络可以自适应地调整特征图的重要性,从而更加关注于关键区域,提升模型的性能。实验结果表明,引入注意力机制后,ResNet的性能得到了显著提升。未来,随着注意力机制的不断发展,我们可以期待更多创新的网络架构和训练方法,进一步提升深度学习模型的性能。

2401_82355416的博客 1783

pyspark:ML和MLlib

Spark有两个用于机器学习的库,分别是ML和MLlib,可以把实际的机器学习以简单、可伸缩并且无缝的方式与Spark整合起来。Spark中ML和MLlib的主要区别和联系如下: (1)目前常用的机器学习功能2个库都能满足需求; (2)spark官方推荐使用ML, 因为在spark3.0之后,将会废弃MLlib,全面的基于ML。因为ml操作的对象是DataFrame,操作起来会比...

4204

Polymarket链上预测市场自动化交易代理开发实战指南

自动化交易代理是量化交易的核心工具,它通过预设的算法规则,自动执行市场分析、决策与下单操作,旨在提升交易效率与纪律性。其技术原理通常涉及实时数据获取、策略引擎计算、交易执行与风险管理等模块的协同工作。在区块链与DeFi领域,这类代理的价值尤为凸显,能够高效处理链上合约交互,捕捉去中心化市场的套利机会。具体到应用场景,链上预测市场如Polymarket,为自动化策略提供了丰富的博弈标的。本文以Polymarket交易代理项目为例,深入剖析其基于Node.js与ethers.js的技术栈实现,详解从环境配置、策

weixin_42533910的博客 581

机器学习从0到1——2.2概率论基础

机器学习从0到1数学基础第二部分概率论相关知识

u013867253的博客 1174

药物代谢仿真软件:PKSim_(6).案例研究与实践应用

通过本章的案例研究和实践应用,我们展示了如何利用PKSim软件构建药物动力学模型、进行参数估计、仿真预测和结果分析。这些方法不仅有助于优化药物代谢研究过程,还可以在药物研发中提供重要的数据支持。通过模型的构建和验证,我们可以更好地理解药物在体内的动态变化过程,为临床试验和药物治疗提供科学依据。

kkchenjj的博客 655

基于深度学习的活体人脸检测系统:YOLOv5、YOLOv6、YOLOv7、YOLOv8实现与UI界面设计

本博客详细介绍了如何基于YOLOv5、YOLOv6、YOLOv7、YOLOv8模型实现一个完整的活体人脸检测系统。系统包括数据集准备、模型训练、UI界面设计以及实时检测功能的实现。通过YOLO系列模型的应用,我们能够高效、准确地进行人脸检测和活体验证。未来,随着YOLOv9和其他新一代目标检测模型的出现,我们可以进一步提高检测精度和速度。此外,集成更多的传感器数据(如深度传感器、红外线传感器)可以使活体检测系统更加安全和稳定。

YOLO 540

机器学习与概率论的融合

1.背景介绍 机器学习(Machine Learning)和概率论(Probability Theory)是两个广泛应用于人工智能领域的重要学科。机器学习主要关注如何让计算机从数据中学习出某种模式,从而实现对未知数据的预测和分类。而概率论则是一门关于概率性事件发生的规律的学科,它为机器学习提供了一种数学模型,以及一种理论基础。 在过去的几十年里,机器学习和概率论之间存在着紧密的联系。概率论为机...

AI天才研究院 1564

AI安全护栏评测:TrustedExecBench如何量化评估大模型防护能力

在人工智能和机器学习领域,模型安全对齐是确保AI系统可靠、可控的核心技术。其原理是通过设计安全机制(即“护栏”)来约束模型行为,防止生成有害、偏见或越界内容。这项技术的核心价值在于平衡AI能力与风险管控,是可信AI部署的基石。应用场景广泛覆盖内容审核、对话系统、代码生成等需要人机交互的领域。本文聚焦的TrustedExecBench项目,正是针对“护栏”性能量化评估这一痛点,提供了一个标准化、自动化的开源评测框架。该工具通过构建多维度的恶意测试套件,并引入基于模型的动态评判机制,能够系统性地检验大语言模型在

weixin_42525428的博客 378

机器学习:概率论

联合概率是指两个或多个事件同时发生的概率。如果我们有两个事件和,那么它们的联合概率记作或,表示事件和事件同时发生的概率。概念说明:事件:可以是任何确定的试验结果,如掷骰子、抽扑克牌等。同时发生:意味着两个(或多个)事件在同一时间内结果满足。条件概率是指在事件已经发生的情况下,事件发生的概率,记作。公式:这里:是条件概率。是事件和同时发生的联合概率。是事件发生的概率,且必须非零。如果有两个事件和,它们被称为相互独立,如果事件发生与否不影响事件。

Wei_sx的博客 1465

禁止使用服务器 IP 访问 Apache 环境下的 Web 站点

通过在 Apache 的配置文件中添加适当的指令,我们可以轻松地禁止使用服务器 IP 地址访问我们的 Web 站点。在 Apache 环境下,有时我们希望禁止用户使用服务器的 IP 地址直接访问我们的 Web 站点,而只允许使用域名进行访问。现在,当用户尝试使用服务器的 IP 地址来访问你的网站时,他们将会被拒绝访问,只有通过域名才能正常访问。为了实现这个目标,我们可以通过 Apache 的配置文件进行相应的设置。表示禁止对根目录的访问权限,即禁止使用服务器的 IP 地址进行访问。

TpCode的博客 945

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: AI医学必看!使用SHAP解释医疗机器学习模型中的预测结果
下一篇: 一文详解经典卷积神经网络(LeNet、AlexNet、VGGNet、GoogLeNet、ResNet、DenseNet等)
深度学习机器学习
博客等级 码龄2年 495粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值