当前位置: 首页 > 科技观察

最值得收藏的机器学习入门方法今天分享给大家

时间:2023-03-16 19:35:37 科技观察

原标题:HOWTOGETSTARTEDWITHMACHINELEARNING!视频介绍:https://v.qq.com/iframe/player.html?vid=f0639ireb7v&tiny=0&auto=0  说到机器学习,我被问得最多的问题是:什么是最好的建议对于刚开始学习机器学习的人?  其实说实话,我不知道怎么回答这个问题。每个学习者都是一个独特的个体,有自己的学习需求和目标。我所能做的就是分享我刚开始学习机器学习时对我有用的东西。  我是如何开始使用机器学习的  早在2017年,我就看到了一个SethBling实现机器学习来玩游戏的小演示。Sethbling-Marl/O-MachineLearningforVideoGames  当这个小机器人能够自己学习,甚至一遍又一遍地玩马里奥游戏时,我被震惊了。之后,我看到了其他使用神经网络的机器人,用在各种游戏中——丁尼古拉斯——遗传算法学习如何战斗!  来自Caryhk传统机器学习项目carykh-NeuralNetworksandUnwantedPregnenciesinEvolv.io!  到星际机器学习项目——Youtube上传-AISC2FirstSteps  有人还做了关于KanyeRapRabboieBarrat的LSTM项目-神经网络生成Rap,V2  和Dota2的OpenAIDota2DendivsOpenAI(Bot)-1v1-T17  sentdexGTAsentdex-Stream,FPV,andmoredada-PythonplaysGTAP.15  我知道我要学机器学习了,这玩意儿太爽了。  我安装了TensorFlow,从syntax下载了一些代码,但是我完全不知道代码中发生了什么,神经网络确实成功地使用了大数据集来训练模型,但是我对代码所做的每一次修改会报错,一方面是因为我之前从来没有接触过Python的语法,更重要的是,我完全不知道神经网络应该怎么写。  我首先快速谷歌了下“如何编写神经网络?”我发现了一个完全不同的数学和符号的庞然大物,对我来说就像一门外星语言,当我感到强烈的挫败感时,但我不会放弃,直到我达到我的目标。那是我在Coursera上看到AndrewNg的机器学习课程,天哪,那门课也是外星语言的,我能够毫无问题地完成前几章,但在那之后,AndrewNg开始说外星语语言再次。  我是如何坚持的  战友们,如果你像我一样开启机器学习之旅,无疑会遇到巨大的词汇冲击。相信我,您的大部分困惑是由于无法理解所提到的词语造成的。意识到这一点后,我改变了学习方法,转而学习这门庞大的外星语言。在我学习的过程中,有很多术语和符号反复出现:向量、矩阵、激活函数传播、机器学习等等。我花了一段时间在“向量”的概念上,感谢unity3D,每当我觉得我理解了机器学习中的一些概念,比如矩阵乘法,我就会回到我最喜欢的机器学习资源,看看它们对我有用,是不是更容易理解?我很惊讶,突然??之间,我能够更好地理解这种外星人的语言了。  凡是有阻碍我前进的概念,我都会挑出来。比如遇到sigmoid或者其他激活函数的时候,我会列出一堆困扰我的问题,然后一个一个的去搜索。  说到这里,我强烈推荐KhanAcademy.com。这是您编写自己的机器学习算法所需的一切。我在这里列出了一些您需要学习的非常重要的数学课程,供您参考,这对我个人很有帮助。  我个人非常喜欢的学习资源:激活函数-https://en.wikipedia.org/wiki/Activation_functionLuisSerrano的神经网络系列(非常好)-https://www.youtube.com/watch?v=UNmqTiOnRfgGiant_Neural_Network的神经网络系列(真的不错)-https://www.youtube.com/watch?v=ZzWaow1RvhoMacheads101的神经网络系列-https://www.youtube.com/watch?v=OypPjvm4kiA3Blue1Brown的神经网络系列-https://www.youtube.com/watch?v=aircAruvnKkHugo的神经网络系列-http://www.mooc.ai/course/300JamesMccaffreyTalk(有点过时但仍然很有趣)-https://www.youtube.com/watch?v=-zT1Zi_ukSk  一些很重要的数学课向量(用线性代数解释):https://www.khanacademy.org/math/linear-algebra/vectors-and-spacesVectors(用线性代数解释)PreCal):https://www.khanacademy.org/math/precalculus/vectors-precalcMatrices:https://www.khanacademy.org/math/precalculus/precalc-matricesSequences:https://www.khanacademy.org/math/precalculus/seq-inductionDerivativeRules:hhttps://www.khanacademy.org/math/ap-calculus-bc/bc-derivative-rules  一些可能对你有帮助的数学课代数函数:https://www.khanacademy.org/math/algebra/algebra-functionsQuadratics:https://www.khanacademy.org/math/algebra/quadraticsIrrational:https://www.khanacademy.org/math/algebra/rational-and-irrational-numbersAnalyzing分类数据:https://www.khanacademy.org/math/statistics-probability/analyzing-categorical-data  我的建议  (1)更好地理解伪代码  感觉学习如何编写机器学习算法*最好的方法是为了更好地理解伪代码。我们需要了解如何计算它们,并且有各种指标可以相互转换。根据我的经验,大部分时间伪代码都非常清晰。但如果不是,可能是因为它在外星语言中出现得太频繁了。  学习如何将伪代码转换成你喜欢的编程语言其实是最重要的。事实上,不存在放之四海而皆准的神经网络。事实上,当你向不同的老师学习如何编写神经网络时,请注意他们不会总是使用相同数量的输入、隐藏层节点和激活函数。可能连术语都不一样,有些老师可能会把偏差说成另一个词,这就是伪代码如此重要的原因。  (2)前馈神经网络示例  除了我之前说过的,我能给你的最好建议是从一个简单的前馈神经网络示例开始你的学习,这是一个很好的示例-制作一个文本颜色预测器,当你为它提供红色、绿色和蓝色值作为输入时,试着训练它做出,应该在这上面使用深色或浅色文本,让它做出可以识别的预测。我认为这是一个非常好的和简单的项目,值得认真研究以学习机器学习的基础知识。  (3)开始  我建议你从一开始就手写你的神经网络,我是说你学习的第一天,就在这个视频的最后,立即打开你的IDE。纸上谈兵的成果总是肤浅的,我知道这件事必须要做。虽然理论上知道如何编写神经网络很酷,但实际上编写神经网络完全是另一回事。  当你开始写一个神经网络的时候卡住了,然后你有第一个问题要找,尝试解决,以此类推,直到成功。我特别希望,从一开始我就知道这个建议,它可能会节省我大部分的学习时间。  (4)站在巨人的肩膀上  如果你真的想能够写好机器学习算法,你需要依赖别人的研究和代码,因为其实这还是一个初出茅庐的人领域,每周都有新事物诞生。  ***我想给你的一个重要建议是,你实际上可以按照我之前说的不同来做。就图像而言,机器学习就像一台计算机。如果你真的想要一台电脑,你可以从头开始组装一台,也可以只买一台完整的电脑,两者的结果是完全一样的。我个人想学习如何从头开始构建神经网络,因为,好吧,我是一个有很多控制权的疯子。  有许多机器学习框架,例如TensorFlow、PyTorch、Theano、Keras等。它们就像一台预装的电脑。您可以开始观看教程并开始学习如何使用它们。你不需要我太关心导数、矩阵乘法和激活函数等概念。这些机器学习框架已经完成了大部分复杂的事情,但是很明显,代价就是当网络内部出现问题,或者不能正常工作时。要找出问题出在哪里可能会非常困难,全看你想要什么  无论如何,请记得满足你的好奇心,在机器学习的道路上越走越远。  视频原站https://www.youtube.com/watch?v=I74ymkoNTnw