社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

最值得收藏的机器学习入门方法,今天统统分享给你

AI研习社 • 8 年前 • 516 次点击  

这里是语言风趣,画风搞怪,演技动人的脏辫小哥Jabrils的油管专栏,每周10分钟,原来机器学习也可以这样好玩!

原标题  HOW TO GET STARTED WITH MACHINE LEARNING!

翻译 | 杨惠淳   字幕 | 凡江


一说到机器学习,我被问得最多的问题是:给那些开始学习机器学习的人的最好的建议是什么?

其实说句实话,我并不知道怎么回答这个问题。每一个学习者都是独一无二的个体,有自己的学习需求和目的。我所能做的,就是分享一下当初我开始学习机器学习的时候,对我很有用的方法。

  我是如何开始接触机器学习的

让时间回到2017年,我看到了SethBling实现机器学习来玩游戏的一个小演示。

Sethbling-Marl/O-Machine Learing for Video Games

这个小机器人有了自主学习的能力,甚至可以一次又一次地玩马里奥游戏,当时我就震惊了。在那之后,我看到了别的使用神经网络的机器人,被用于各种不同的游戏——

Ding Nicolas-A genetic algorithm learns how to fight!

从 Caryhk 传统的机器学习项目

carykh-Neural Networks and Unwanted Pregnancies in Evolv.io!

到星际机器学习项目——

Youtube Uploaded-AI SC2 FirstSteps

有些人还做了关于侃爷 Rap 的 LSTM 项目

Rabboie Barrat-Neural Network Generated Rap, V2

还有Dota2的Open AI

Dota 2 Dendi vs OpenAI(Bot)-1v1-T17

sentdex 制作的 GTA

sentdex-Stream, FPV, and more dada-Python plays GTA P.15

我知道我必须要去学机器学习,这玩意儿简直太酷了。

我安装了TensorFlow,从syntax上下载了些代码,但是完全不知道代码里是怎么一回事,神经网络的确成功地使用大量的数据集,训练了模型,但我对代码所做的每一次修改都会报错,部分是因为 Python的语法我之前完全没接触过,更为重要的是,我完全不知道该怎么写神经网络。

我先是快速Google了一下“怎样写一个神经网络?”,我发现了一个由完全听不同的数学和符号组成的庞然大物,对我而言看上去就像是外星语,那时我感觉到了强烈的挫败感,但我不达目的誓不罢休。就在那时我接触到了Coursera上吴恩达的机器学习课程,我的天,那个课程同样也是外星语,我能够完成前几章课程完全没有问题,但那之后,吴恩达又开始讲外星语了。

  我是如何坚持下去的

同志们,如果像我这样开始机器学习旅程,毫无疑问你会碰到一次巨大的词汇冲击。相信我,你大多数的困惑是因为无法理解提及的单词所引起的。当我意识到这个之后,我改变了我学习方法,转而去学习这个庞大的外星语。在我学习的过程中,有很多术语和符号会反复出现:向量,矩阵,激活函数传播,机器学习等等。我在“向量”这个概念上花了一段时间,感谢 unity3D,每当我觉得理解了机器学习中的一些概念,比如矩阵乘法,我都会回到我最喜欢的机器学习资源,去看看它们对于我来说,是不是变得容易理解了。我很惊讶突然之间,我能够稍微更好地理解这门外星语了。

每当有概念毫无头绪让我止步不前,我都会把他们单独拿出来,举个例子,当我遇到sigmoid或者其他的激活函数,我就会列出一堆困扰我的问题,然后一个个单独查找。

说到这,我非常推荐可汗学院.com。这里有所有在你写自己的机器学习算法所要用到的。我在这里列出了一些你需要去学习的很重要的数学课供你参考,对我个人而言,帮助很大。

我个人很喜欢的学习资源:

Activation Functions -  https://en.wikipedia.org/wiki/Activation_function

Luis Serrano's Neural Network Series (REALLY GOOD) - https://www.youtube.com/watch?v=UNmqTiOnRfg

Giant_Neural_Network's Neural Network Series (REALLY GOOD) -  https://www.youtube.com/watch?v=ZzWaow1Rvho

Macheads101's Neural Network series - https://www.youtube.com/watch?v=OypPjvm4kiA

3Blue1Brown's Neural Network Series - https://www.youtube.com/watch?v=aircAruvnKk

Hugo's Neural Network Series - http://www.mooc.ai/course/300

James Mccaffrey Talk (A BIT OUTDATED INFORMATION BUT STILL A FUN ONE)- https://www.youtube.com/watch?v=-zT1Zi_ukSk

一些很重要的数学课

Vectors (explained with Linear Algebra): https://www.khanacademy.org/math/linear-algebra/vectors-and-spaces

Vectors (explained with PreCal): https://www.khanacademy.org/math/precalculus/vectors-precalc

Matrices: https://www.khanacademy.org/math/precalculus/precalc-matrices

Sequences: https://www.khanacademy.org/math/precalculus/seq-induction

Derivative Rules: hhttps://www.khanacademy.org/math/ap-calculus-bc/bc-derivative-rules

一些可能会帮助到你的数学课

Algebra Functions: https://www.khanacademy.org/math/algebra/algebra-functions

Quadratics: https://www.khanacademy.org/math/algebra/quadratics

Irrational: https://www.khanacademy.org/math/algebra/rational-and-irrational-numbers

Analyzing Categorical Data: 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

更多文章,关注雷锋网(公众号:雷锋网),添加雷锋字幕组微信号(leiphonefansub)为好友

备注「我要加入」,To be an  AI  Volunteer !

从Python入门-如何成为AI工程师

BAT资深算法工程师独家研发课程

最贴近生活与工作的好玩实操项目

班级管理助学搭配专业的助教答疑

学以致用拿offer,学完即推荐就业


新人福利


关注 AI 研习社(okweiwu),回复  1  领取

【超过 1000G 神经网络 / AI / 大数据资料】


7 个开发者应该知道的机器学习相关 Github 项目


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/kjoAIcl4l2
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/11238