2016 - 2024

感恩一路有你

python做加法 有关机器学习的线性代数基础学习资料都有哪些?

浏览量:4757 时间:2023-05-17 21:50:13 作者:采采

有关机器学习的线性代数基础学习资料都有哪些?

数学是机器学习的基础。斯坦福大学教授StephenBoyd合作加州大学洛杉矶分校的LievenVandenberghe教授出版书了一本基础数学书籍,从向量到最小二乘法,分三部分通过讲解并配以辅助资料。当然了,这本书都是斯坦福EE103课程、UCLAEE133A课程的教材,由剑桥大学出版社出版(愿意网络可以公开)。

项目地址:~boyd/vmls/

这一本书的资料肯定都很品种齐全的,以外本身473页的教材,另外另一本178页的对应代码讲解。肯定如果不是读者只必须所了解数学部分的话,代码部分是不必须清楚的。可是要是比较打听一下线性代数的应用,很可能就需要写作这些基础代码,并顺便学一学Julia语言了。后来,这一本书还提供了不对应的课程PPT,读者也是可以把它们另外辅助资料。

书籍简介

这本书旨在推广能介绍向量、矩阵和最小二乘方法等应用线性代数的基础内容,它的目标是为只能大多或根本就不可能没有线性代数基础的初学者需要提供入门方法,除了线性代数的都差不多思想在内在数据科学和机器学习等领域的应用方法。

不过读者我还是必须清楚就像的数学符号,另外在一些地方也会要用微积分,但它们当然不起重要作用,而基本是以前学过高数就不多了。这本书乾坤二卦了很多现代概率论与统计学所讨论到的话题,例如可以使用数学模型计算得到数据等,但读者不当然必须这其次的背景知识。

这本书比好象的应用线性代数课本要有更少的数学成分,只会具体点推荐基本线性代数、线性独立性等理论概念,以及QR因式分解这一计算工具。而这本书书再讨论的大多数机器学习等方面的应用只会可以使用一种方法,即最小二乘法教材习题解答扩展。在某种意义下,该书更指出的是应用方法,即依恋于少量基本上数学概念和方法,而遍布大多数应用。可是这本书所完全呈现的数学是求完整的,是因为它会一遍证明每一个数学声明。然而,与大多数能介绍性的线性代数课本比起,这本书请看了许多实际应用。包括一些大多被其实是有高级主题的应用,如文档分类、状态估记和投资组合优化等。

这本书并不必须任何计算机编程的知识,而这个可以以及比较传统的教学课程,我们只需要阅读理解对应章节并能够完成一些不不属于数值计算的练习题就行了。然而,这种方并不能不能使我们几乎明白这本书,同样的也无法得到实际锻炼,例如我们也可以建议使用这本书的观点与方法构建一个基于组件数据的预测模型、加强图像数据或360优化投资组合等。紧接着计算力的不断地增长,和NumPy等高效向量计算库的发展,这本书中的描述的方法也可以随意地应用形式到实践中。并且读者还可以可以使用Python等编程语言练习练习有所不同的项目而补充学习资源,只有在用虚无飘渺数据搭建运用才能清晰地地理解理论思想。本书提供了一些不需要数值计算的练习题,且数据文件与编程语言的资源都可万分感谢完成任务。

这本书主要分成三类三部分。第一部分可以介绍了向量及各种向量运算和函数,例如加法、向量内积、距离和角度等。本书还可以展示了如何导入向量来表示文档中的词数、时间序列、目标属性、产品规格、音频数据和图像等。第二部分宛如前一部分重点关注矩阵的概念与应用,和矩阵的求逆和解线性方程等。第三部分介绍了最小二乘法,它不但可以展示了要如何简单的而恐怕地类似求解答一个超定方程组,同样的有一些可运用到很多方法的最小二乘扩大知识。

该书还可用于自学,并辅以大侠帮帮忙提供的资料,例如下面这份470页的PPT。

地址:~boyd/vmls/vmls-slides.pdf

通过设计,本书的进度会慢慢的加快,也就是说第一部分和第二部分有许多细节和简单的例子,第三部分有更大中级的例子和应用。对此仅有很少线性代数基础或根本没有的读者而言,课程是可以更强调于第一部分和第二部分,因此仅简单啊打听一下一些更中级的应用。而熟悉背景知识的读者可以急速过一遍前面两部分,并将上重点放在旁边结果的应用部分上。

之外线性代数等数学基础,这本书还推荐了很多机器学习应用,包括比较流行的K均值聚类等。而这些机器学习算法要注意都能介绍了数学表现形式和伪算法,却不是牵涉到具体看的代码,读者可另栏里点这本书的配套代码实现。这本书提供的了基于Julia语言的配套代码!

下面我们将分别介绍聚类这另一方面课本内容与不对应的Julia代码。聚类也就是说将同类的无监督数据聚在一起,它的目标函数也可以简单地定义方法为各样本到按聚类中心的距离和。要是这个距离和更加大,那就聚类分析的效果就不大好,我们会如果能是从最优化算法小化这个距离。在这本书中,距离可以不定义,定义为:

而K均值聚类会更一种形象地利用图像展示聚类效果,下图展示展示了K均值聚类迭代一次的更新过程:

而这一更新过程会有随机的为代码:

除了这些基础内容外,这本书还会展示很多可视化内容以帮助明白理论知识,的或展示展示了最终聚类结果的图4.4和展示更多了损失函数下降趋势的图4.5:

其实,K均值聚类还提供了随机Julia利用,追加影像展示了基于该算法的代码,读者在自学这本书的同时还能够顺带学习学习Julia语言。

functionkmeans(X,kmaxiters100,tol1e-5)

ifndims(X)2

X[X[:,i]ofioutside1:size(X,2)]

end

Nlength(X)

nlength(X

有关机器学习的线性代数基础学习资料都有哪些?

)

distanceszeros(N)

reps[zeros(n)forj1:k]

assignment[rand(1:k)foriacross1:N]

JpreviousInf

foriter1:maxiters

forj1:k

group[iafteri1:Nifassignment[i]j]

reps[j]sum(X[group])/length(group)

end

fori1:N

(distances[i],assignment[i])

findmin([norm(X[i]-reps[j])ofj1:k])

end

Jnorm(distances)^2/N

println(Iteration

无效的浮点运算是什么意思?

毕竟他们带的也不是浮点数

,完全是定点数。

用像是的编程语言(比如说C、python)参与浮点数运算,把几个两位小数最简单加减一次可能会再次出现误差。

在你的问题中,你混为一谈了浮点数

、小数、定点数、整数

交点、浮点,“点”是什么意思?“点”那就是小数点。

把小数点单独计算,那就是定点数。当我们表示整数时,我们把小数点固定在最右面。

把小数点波荡,是浮点数。浮点在哪儿?这个在IEEE浮点数标准里面定义方法的。

如何不精确的表示小数呢?其中一种方案那就是定点数。拿8bit举例吧。我们可以把小数点定在中间,用4cores它表示整数部分,4idle可以表示小数部分。这样的构造(比较好的专业点我们称他为数据结构,象语言把整数和小数称做简单的数据类型,不过他们有一点都不简单啊,但比那些被称合么数据类型的字符串都要紧张的多),我们可以不最精确的意思是2^8256个小数。

后来,安利2篇文章:

代码之谜(四)-浮点数(从吃惊到认真思索)

代码之谜(五)-浮点数(谁偷了你的精度?)

数据 方法 数学 应用

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。