机器学习笔记-01-初识基础(问题-解答自查版)

機器學習基石(Machine Learning Foundations) 机器学习基石 作业三 课后习题解答 今天和大家分享coursera-NTU-機器學習基石(Machine Learning Foundations)-作业三的习题解答。笔者在做这些题目时遇到很多困难,当我在网上寻找答案时却找不到,而林老师又不提供答案,所以我就想把自己做题时对题目如何思考的写下来,为大家提供一些思路。当然,我对题目的理解不一定是正确的,如果各位博友发现错误请及时留言联系,谢谢!再次提醒:请不要以此博客作为通过考试的用 阅读详情

前言

以下问题以Q&A形式记录,基本上都是笔者在初学一轮后,掌握不牢或者频繁忘记的点

Q&A的形式有助于学习过程中时刻关注自己的输入与输出关系,也适合做查漏补缺和复盘。

本文对读者可以用作自查,答案在后面,需要时自行对照。


问题集

数据集

Q1:什么是结构化数据与非结构化数据?二者有什么不同的处理方式?

Q2:对于一个数据集dataset,什么是feature?如果数据集是非结构化数据,他的特征(feature)的格式大致是什么?

Q3:回归任务(regression)的主要目标是什么?

Q4:逻辑回归是什么?逻辑回归的特性?(回归中有线性回归和多项式回归,这些和逻辑回归有什么关系?)


机器学习的分类

Q5:分类和回归都属于监督学习,这个说法正确吗?

Q6:数据的降维,从特征视角看是做了什么工作?降维和数据可视化属于什么学习?

Q7:数据降维有哪几种方法?


Q8:未来ai的重要问题:模型可信,小样本,推理而不是判断(缺乏抽象思维和逻辑推理)


下图四大工具的主要内容是否已经熟知?

Q9:jupyter的用法和魔法命令?

Q10:在jupyter中,%%whos %%lsmagic 是做什么的?


Q11: 对于以下代码,其输出的结果是什么?

x = [i for i in range(10)]

Q12:创建数组有两种方法:range 和 np.arange,二者显著的区别是什么?

Q13:在numpy中random.seed设置之后,执行的代码行数不同为什么有不同结果?


数组切片

Q14:numpy中,a[:] ,以及 a[::2] 代表什么?( 思考:a[x:y:z] )

Q15:对numpy的数组a,制造一个切片 a[1:3],并且对这个切片内容进行修改,a会发生改变吗?原生数组呢?

Q16:如果数组切片会改变,那么有效的处理方式是什么?(我就想要一个“不会改变的”切片之后的array,该怎么做?)

Q17:numpy中的均值?标准差?方差?

Q18:numpy中,如果想知道一个x[1000000]数组中,min值所在的数组下标,该怎么做?

Q19:如何合并和拆分数组?除了hstack和vstack?(最为原始的是哪一个?对应的拆分?)

Q20:用vstack和vsplit??

Q21:如何将 a[2,3] 这个数组的最后一列split开?(注意使用“最后一列”方法切片,而不是切“第3列”)

Q22:已知A=[1,2,3,4] ,如何获得 A2 = [1x2, 2x2, 3x2, 4x2]

Q23:神奇索引怎么使用?如何结合布尔数组使用?

Q24:numpy中,假设x是一个数组,那么 x[x>3] 是什么语法含义?

Q25:arg是用来干什么的?

Q26:np.all 和 np.any 是干什么的?

Q27:np.count_nonzero(x[x==3])


参考解答

数据集

Q1:什么是结构化数据与非结构化数据?二者有什么不同的处理方式?

A1:结构化数据可以是“鸢尾花→A参数:x,B参数y,....”,

非结构化数据可以是图片文字等参数与值一一对应的数据,其处理方式有:

         1)映射成结构化特征 2)直接进行处理

Q2:对于一个数据集dataset,什么是feature?如果数据集是非结构化数据,他的特征(feature)的格式大致是什么?

A2:在机器学习和数据分析领域,数据集(dataset)通常由多个数据点组成,每个数据点可以是一条记录或一个实例。而特征(feature)则是指数据集中每个数据点的属性或测量值。特征可以是连续的数值,也可以是离散的类别。

例如,如果我们有一个数据集是关于不同汽车的信息,那么可能的特征包括:

  • 汽车的制造商(离散特征)
  • 汽车的年份(连续特征)
  • 汽车的里程数(连续特征)
  • 汽车的价格(连续特征)
  • 汽车的类型(离散特征,如轿车、SUV等)

对于非结构化数据,例如图像一类的非结构化数据的feature可以是像素,我们也可以把一个32x32的像素集合当成一个特征向量。

Q3:回归任务(regression)的主要目标是什么?

A3:量化xx是xx的概率。

Q4:逻辑回归是什么?逻辑回归的特性?(回归中有线性回归和多项式回归,这些和逻辑回归有什么关系?)

A4:一种可解释性强,可并行的二分类任务,业界工程化中很受欢迎。不过他的 f() 与二分类有所不同,这部分深挖起来细节很多


机器学习的分类

Q5:分类和回归都属于监督学习,这个说法正确吗?

A5: √,监督学习的关键特点在于训练数据包含输入特征及其对应的标签或结果。

Q6:数据的降维,从特征视角看是做了什么工作?降维和数据可视化属于什么学习?

A6:无监督学习。数据的降维实际上是将多个特征合并成一个

Q7:数据降维有哪几种方法?

A7:在众多数据降维方法中,以下是最新或最著名的四种降维技术:

    1. 主成分分析(PCA):PCA是一种经典的线性降维技术,通过正交变换将原始数据转换到一组线性不相关的主成分上,以找出数据的“最大方差”方向,并将数据投影到这些方向上。它通常用于减少数据集的维度,同时尽可能保留数据中的变异性,也常用于可视化高维数据 。
    2. t-分布随机邻域嵌入(t-SNE):t-SNE是一种非线性降维技术,非常适合高维数据降维到2维或3维进行可视化。它基于概率分布的方式将高维数据映射到低维空间,尤其适用于数据具有复杂分布特征的数据集 。
    3. 局部线性嵌入(LLE):LLE也是一种非线性降维技术,核心思想是保持数据点的局部特性。它在每个点的邻域中找到最佳的线性表示,然后在低维空间中重建这些线性关系,尤其适用于那些局部区域结构重要的数据 。
    4. 自动编码器(Autoencoders):自动编码器是一种基于神经网络的非线性降维技术。它通过训练网络学习一个低维表示(编码),然后重构输出,以尽可能接近输入数据。在深度学习领域,它们广泛用于无监督学习的特征提取和数据压缩 。

A8:--

Q9:jupyter中的魔法命令?

A9:jupyter

Q10:在jupyter中,%%whos %%lsmagic 是做什么的?

A10: %whos 用来调试

%lsmagic 用来列出所有的魔法命令

Q11: 对于以下代码,其输出的结果是什么?

x = [i for i in range(10)]

A11:

1) x = [ i for i in range(10) ]

特别注意!输出的是数组 [0,1,...,9 ], 而不是10。python的range采用了左闭右开的设计规则!

2)如果在调用 random.seed() 之后,执行了其他未指定随机种子的操作,这些操作可能会影响随机数生成器的状态,从而导致不同的结果。

Q12:创建数组有两种方法:range 和 np.arange,二者显著的区别是什么?

A12:range的方式不限定数组元素类型,处理起来较慢,输出也是体量较大的多功能数组类型。

np.arange 的底层是 np.array ,更面向数学,处理速度快很多,像是向量和矩阵的概念。

Q13:在numpy中random.seed设置之后,执行的代码行数不同为什么有不同结果?

A13:一般是意外情况。如果你在代码的不同位置设置了不同的种子值,或者在某些地方没有设置种子,那么随机数生成器的起始点将会不同,从而导致生成的随机数序列也不同。一个典型例子:如果在代码的不同部分多次调用了 random.seed 并且使用了不同的值,每次设置都会改变随机数生成器的状态,导致后续生成的随机数序列不同。


数组切片

Q14:numpy中,a[:] ,以及 a[::2] 代表什么?( 思考:a[x:y:z] )

A14:numpy中,a[:] 代表整个a(切了没?如切!) a[::2] 代表隔一个取一个。

实际上 a[x:y:z] 是一个切片的完全体格式,代表着 切x~y,从x开始,每次增加z个偏移量的下标取数组元素

Q15:对numpy的数组a,制造一个切片 a[1:3],并且对这个切片内容进行修改,a会发生改变吗?原生数组呢?

A15:numpy中对数组的切片进行修改,则矩阵会被修改,而py不会。原因是为了效率考虑,设计时使用了引用。

Q16:如果数组切片会改变,那么有效的处理方式是什么?(我就想要一个“不会改变的”切片之后的array,该怎么做?)

A16:x = a[1:8].copy()

Q17:numpy中的均值?标准差?方差?

A17:平均值mean,方差std,标准差var。使用起来大概是这样:a.std()

Q18:numpy中,如果想知道一个x[1000000]数组中,min值所在的数组下标,该怎么做?

A18:

Q19:如何合并和拆分数组?除了hstack和vstack?(最为原始的是哪一个?对应的拆分?)

Q20:用vstack和vsplit??

A19:合并数组:c = np.concatenate( (a,b),axis=0 )

# 数组的合并 a = np.arange(10).reshape(2,5) b = np.full_like(a,1) print("a = \n",a,"\n","b = \n",b) # c = np.concatenate(a,b) c = np.concatenate((a,b)) # 这种就是以行的形式接上去了,默认是这样 print("concatenated c(axis=0) = \n",c) c = np.concatenate((a,b),axis = 1) # axis 可以指定合并哪个维度 print("concatenated c(axis=1) = \n",c)

输出结果:

对应的拆分:

x,y = np.split(c,2,axis=0) print(x," ",y) x,y = np.split(c,2,axis=1) x,y

A20:

# np.split? c1,c2 = np.vstack((a,b)), np.hstack((a,b)) x1,x2 = np.vsplit(c1,2) x1,x2 = np.hsplit(c2,2) x1,x2

Q21:如何将 a[2,3] 这个数组的最后一列split开?(注意使用“最后一列”方法切片,而不是切“第3列”)

A21:

a,b = np.split(c1, [-1] ,axis=1) # [-1] 代表最后一行/列,axis=1 代表列

b

Q22:已知A=[1,2,3,4] ,如何获得 A2 = [1x2, 2x2, 3x2, 4x2]

A22: numpy中,直接用 A*2 就可以。

但是注意,这个特性只有numpy有,对于py原生是不可以用的,这种情况写的就会比较麻烦:

Q23:神奇索引怎么使用?如何结合布尔数组使用?

A23:以二维数组为例,以下代码访问的分别是:D[1,2] , D[1,2], D[1,3]

D[ np.array([1,1,1]), np.array([2,2,3]) ]

或者

D[ [1,1,1],[2,2,2] ]

另外还有:

col = [1,3]

B[0,col] # 第0行,第col=[1,3]两列

B[1,1:3] # 第0行,第col=[1~3]列

Q24:numpy中,假设x是一个数组,那么 x[x>3] 是什么语法含义?

A24:x[x>3] 运用了 x>3 这一个比较索引,生成了一个 shape上等同于x的布尔索引数组

布尔索引和神奇索引连用就会产生这种效果。我们可以让任意表达式变成索引!不过一定要记得是 ndarray 才可以

Q25:arg是用来干什么的?

A25:arg主要用来返回地址,what is the index。使用了argxxx的函数最终返回的就是下标而非数据。

Q26:np.all 和 np.any 是干什么的?

A26:

Q27:np.count_nonzero(x[x==3]) 的含义?

A27:统计x[x=3]数组中非0元素的个数 → x中 =3 的元素个数

新手村:逻辑回归-01.什么是逻辑回归-初识速学 逻辑回归()是机器学习中一种基础且重要的分类算法,常用于二分类问题(如垃圾邮件检测、疾病诊断等),而非预测连续数值。它是机器学习和统计学中应用最广泛的模型之一,尽管名字中包含“回归”,但它本质上是一个分类模型线性组合特征:将输入与权重结合;概率转换:用Sigmoid函数输出概率;参数优化:通过极大似然估计找到最佳参数;决策边界划分:根据概率阈值(如0.5)分类。扩展思考如何处理非线性可分数据?(引入多项式特征或核方法)如何防止过拟合?(正则化、交叉验证)逻辑回归能否用于多分类问题? 阅读详情

相关推荐

unity learn—— ML_Agent:Hummingbirds中文教程 自译(七——测试模型)

由于官方教程是全英版,本文为根据个人理解做的中文版,并对出现的相关问题进行了解答 (能力有限,有问题的地方还望指出,同时欢迎志同道合的朋友参与讨论,谢谢!) 官方教程:https://learn.unity.com/course/ml-agents-hummingbirds?uv=2019.3 以往文章:unity learn—— ML_Agent:Hummingbirds中文教程 自译(一 ——配置Unity) unity learn—— ML_Agent:Hummingbirds中文教程 自译(二——代

~勿据散客~的博客 1586

开源机器学习项目Handson-ML的常见问题解答

开源机器学习项目Handson-ML的常见问题解答 【免费下载链接】handson-ml 该仓库包含《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow》一书的所有代码示例,为初学者提供实战式的学习路径。 ...

gitblog_00169的博客 414

【应用实例】几步教你实现无人机与遥控器的远程通信

随着传感器、无线数传设备、应用方案的不断发展和成熟,更加智能稳定、精巧耐用的无人机逐步应用在各行各业,如空中航拍、农业植保、警务安防、物流运输、勘测巡航等等方面。 而无人机的遥控离不开无线传输模块的支持——在无人机和遥控器中内置无线模块,即可实现无人机的远程通信。 1.操作步骤 遥控模式 1.将模块AS01-ML01DP5内置在手动遥控器中,将遥控器的如俯仰、横滚、控制相机拍摄、控制云台转动等操作指令通过串口发给该模块,该模块再将指令无线传输出去; 2.无人机中内置的AS01 模块接收到遥控器中通信模块发.

AshiningFAE的博客 4523

【AIF-C01认证】亚马逊云科技生成式 AI 认证正式上线啦

AWS Certified AI Practitioner (AIF-C01) 考试面向能够有效地展示对 AI/ML、生成式人工智能技术以及相关 AWS 服务和工具整体知识的掌握情况的个人(与具体的工作职务无关)。

宝耶需努力的技术分享博客 3994

李沐-斯坦福《实用机器学习》-01章

1.课程介绍 视频链接 首先介绍了机器学习作为技术本身, 它的大致构成以及所面临的一些挑战. 然后讲述学习机器学习,你会变成什么样的角色. 最后讲述了本课程中会涉及到哪些主题. 举例:房价预测问题 工业界中应用机器学习的基本流程 机器学习的应用是一个循环过程. 他从问题表述开始到收集数据建立模型并将模型上线. 上线之后要对模型不停的监测并重复更新模型. 问题—收集处理数据—训练调参—部署到线上/观测模型调整 挑战: Problem formulation 首先是将实际问题换一种描述方式, 表述成机器学

weixin_43996337的博客 3164

永磁同步电机无传感器控制:HFI与ESMO技术详解

高频注入(HFI)和增强型滑模观测器(ESMO)是现代永磁同步电机(PMSM)无传感器控制的核心技术。HFI通过注入高频信号利用电机凸极效应获取转子位置,而ESMO则通过改进传统滑模观测器,有效抑制抖振并提升动态响应。这两种技术的结合特别适用于零低速区域的位置估计,在工业伺服、电动汽车等领域有广泛应用。方波高频注入作为实现方案之一,具有计算量小、实现简单的特点,配合自适应滤波等信号处理技术,可以在保证精度的同时降低系统成本。

weixin_29183637的博客 352

01机器学习入门

机器学习

huiohuoi的博客 1505

手把手教你用SysMax桥接软件搞定CANoe、INCA和刷写工具(附驱动配置避坑点)

本文详细介绍了如何使用SysMax PCAN FD桥接软件实现CANoe、INCA和刷写工具的无缝对接,提供从驱动配置到多软件协同的全链路指南。重点解析了驱动安装避坑点、CANoe配置技巧、INCA集成方法以及刷写工具链优化方案,帮助汽车电子工程师构建高效开发环境。

weixin_30500105的博客 390

statistical-learning-method-solutions-manual:李航《机器学习方法》习题解答完整指南

statistical-learning-method-solutions-manual是一个专注于李航《机器学习方法》习题解答的开源项目,为机器学习学习者提供了清晰、专业的习题解析和实践指导。通过这个项目,学习者可以快速掌握机器学习核心算法的原理与应用,轻松应对学习过程中的各种挑战。 ## 📚 项目核心价值:为什么选择这个习题解答? 对于机器学习初学者和进阶者而言,理论学习后如何通过习题巩

gitblog_01119的博客 214

多模态融合相关概念

多模态图像融合

weixin_43921949的博客 7353

从一根USB线缆说起:深入浅出聊聊那些影响信号完整性和EMC性能的‘小细节’(双绞、屏蔽、360度搭接全解析)

本文深入探讨了USB线缆中影响信号完整性和EMC性能的关键细节,包括双绞线绞距、屏蔽层设计和360度搭接工艺。通过实验数据和实用技巧,揭示了这些‘小细节’如何显著影响高频信号质量和电磁兼容性,为工程师提供了从选购到系统设计的全面指南。

weixin_30824479的博客 437

机器学习数理基础:从概率到梯度下降的全面解析

机器学习是数据与算法的艺术,而数学是其背后的语言。无论是理解模型原理、优化算法,还是解决实际问题,扎实的数理基础都是必不可少的。本文将从概率论、线性代数、微积分三大核心领域出发,结合机器学习中的经典算法,带你从零构建数理知识体系。

Albert_Roberts的博客 1148

Cloudflare SaaS 优选IP实战:提升大陆访问速度的配置指南

本文详细介绍了如何通过Cloudflare SaaS优选IP提升中国大陆用户访问速度的配置指南。从基础环境准备到IP筛选方法,再到完整配置流程和效果验证,帮助用户突破免费套餐限制,精准优化网络线路,特别适合跨境电商和面向中国大陆用户的网站优化。

weixin_29231027的博客 683

机器学习入门 chapter01

学计算的孩子们对机器学习这个名词应该都不会太陌生吧,多多少少都应该听过机器学习,今天我就带大家来初识一下机器学习。 我们先来看一下机器学习的概念,首先是百度百科: 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之

u011488028的博客 9046

YOLOv11 改进 - 主干网络| 清华大学CloFormer AttnConv :利用共享权重和上下文感知权重增强局部感知,注意力机制与卷积的完美融合

本文介绍了轻量级视觉变换器CloFormer及其核心模块AttnConv在YOLOv11中的结合应用。为解决视觉变换器缩小到移动设备友好尺寸时性能下降的问题,提出CloFormer,其引入AttnConv操作符。AttnConv融合共享权重和上下文感知权重,先通过深度卷积提取局部表示,再用上下文感知权重增强特征,还结合传统注意力减少FLOPs,使模型感知高频和低频信息。我们将AttnConv集成进YOLOv11,实验表明,CloFormer在多个视觉任务中表现优越,改进后的YOLOv11也取得了良好实验结果

魔改工程师的博客 989

基于simulink的车道保持辅助系统(LKA)的仿真与实现

本文介绍了如何利用Simulink实现车道保持辅助系统(LKA)的仿真与建模。首先对比了车道偏离预警(LDW)和LKA的功能差异,强调LKA的主动干预特性。接着详细阐述了LKA系统架构,包括环境感知、决策控制等核心组件,并基于自行车模型建立车辆横向动力学方程。 文章重点演示了Simulink建模步骤:搭建车辆动力学模型、设计LKA控制器(采用LQR算法)、实现执行器接口和驾驶员干预检测。通过四个典型场景的仿真测试,验证了系统在直道行驶、弯道跟踪等工况下的控制性能,并给出了关键评价指标。最后展望了MPC控制、

amy_mhd的博客 226

如何快速掌握机器学习与深度学习:handson-ml3全面解析与实战指南

handson-ml3是一个全面的机器学习与深度学习教程项目,通过一系列Jupyter notebooks,使用Scikit-Learn、Keras和TensorFlow 2在Python中讲解机器学习和深度学习的基础知识。本指南将带你从理论到实践,轻松入门并掌握这些强大的AI技能。 ## 为什么选择handson-ml3进行学习? handson-ml3项目由资深机器学习专家创建,包含了《H

gitblog_00651的博客 919

【VS Code插件开发】通用功能(二)

本篇主要从command(命令)、menus(菜单)、快捷键三个方面讲解,都归于通用功能。

编码世界 1万+

机器学习基础-day01-机器学习介绍

初学小小白,个人笔记使用,仅供参考

XZSSWJS的博客 797

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

深度学习工具包 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")

handson-ml3云端运行:Kaggle平台使用指南

想要学习机器学习但担心本地环境配置太复杂?handson-ml3项目提供了完美的云端解决方案!这个包含完整机器学习教程的Jupyter笔记本集合,现在可以通过Kaggle平台一键运行,无需安装任何软件即可开始你的机器学习之旅。 ## 为什么选择Kaggle平台运行handson-ml3? Kaggle作为全球最大的数据科学社区和竞赛平台,为机器学习学习者提供了理想的云端环境。通过Kaggle运

gitblog_01094的博客 394

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

01机器学习

参考 机器学习的基本思路 现实问题抽象为数学问题,机器解决数学问题从而解决现实问题 通过训练集,不断识别特征,不断建模,最后形成有效的模型,这个过程就叫“机器学习”! 认字的卡片在机器学习中叫——训练集 “一条横线,两条横线”这种区分不同汉字的属性叫——特征 不断学习的过程叫——建模 学会了识字后总结出来的规律叫——模型 监督学习、非监督学习、强化学...

Pang 456

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

机器学习01-基本概念

机器学习笔记机器学习主要术语labelsFeaturesExamplesModelsRegression vs. classificationQ&A 机器学习主要术语 什么是(监督)机器学习?简而言之,它是以下内容: 机器学习系统学习如何组合输入以对从未见过的数据产生有用的预测。 接下来看一些基本的机器学习术语。 labels 标签(labels): 标签是我们预测的东西——简单线性回归中的y变量。 标签可能是小麦的未来价格,图片中显示的动物种类,音频剪辑的含义或几乎任何东西。 Featur

weixin_44378235的博客 616

终极指南:如何快速掌握Hands-On Machine Learning 2nd Edition官方笔记仓库

Hands-On Machine Learning with Scikit-Learn and TensorFlow 2nd Edition官方笔记仓库是一个基于Python的开源机器学习教程,通过Jupyter Notebook形式详细介绍了如何使用Scikit-Learn、TensorFlow和Keras等库进行机器学习实践,非常适合初学者和有经验的开发者系统学习和实践机器学习算法。 ##

gitblog_00832的博客 801

【机器学习基础】关于如何使用机器学习来做异常检测的7个问题

作者:David Sweenor 编译:ronghuaiyang导读异常检测的一些入门问题。问问题是学习的最好方法之一。但有时你不知道从哪里开始,或者该问什么 —— 尤其是在你还比...

fengdu78的博客 315

从编程基础到完整的项目实战,深入了解机器学习

(文中有福利哦)转眼2020年已过去三分之一,大家都知道今年就业形势不乐观,不过即便如此,现在依然是AI招聘的热门季。疫情过后,AI行业注定会迎来一波大爆发。近几年,各大企业也开始越来越...

简说Python的博客 624

[机器学习入门笔记] 1. 周志华. 《机器学习》

周志华. 《机器学习》入门笔记~

欢迎光临~ 1701
上一篇: Win11系统下Yolov8的C++编译环境实践
下一篇: Unity:Component容器不可设置enabled成员属性的问题
睡不醒的小泽
博客等级 码龄11年 1426粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值