这里还有一个关于AI不为人知的小秘密:
事实上你不需要储备那么多的数学知识才能开始使用AI。
如果你是一名开发人员或系统管理员,你可能早已使用了很多你所了解的库和框架。为了使用curl(一个广泛使用的用来上传和下载的命令行工具),其实你不必了解网站检索内部如何工作。AI也是如此。有很多框架和项目可以帮助你快速地使用AI算法,而不需要你成为一名数据科学博士。
不要误会我的意思。数学有助于你对算法背后发生的事情有所了解。借助它,你可以阅读研究类论文,当看到像Ian Goodfellow著作的深度学习一类高级书籍时,不会毫无头绪。但是,如果你想开始使用AI,你可以今天就开始。
让我们从一些实际的项目来开始做起。
我的学习方法与“第一个二十小时”中概述的优秀方法非常相似。我们都知道一万小时定律。要真正掌握一门技能,你需要投入大量时间。但我们只是刚刚开始。现在我们试图通过初次尝试来发现它的乐趣!
方法很简单:
选择一个项目;
克服自己一定会失败的想法;
进行各种尝试并从失败中快速学习
实践。
很容易吧?所以让我们开始!
选择一个项目
首先你需要一个项目来激励你离开舒适区。
一个有一百万美元奖金并且可能对肺癌研究产生影响的项目听起来如何?
Kaggle是你可以找到机器学习项目的地方。现在他们正在举办一场价值100万美元的竞赛来改善肺癌病变的分类。任何人都可以加入,包括你。
现在我知道你在想:我绝对没有机会赢。这是一个聚集了最优秀机器学习从业者的比赛。很高兴你想到这里,因为把我们带到了第二步:
克服自己一定会失败的想法
学习任何新事物最重要的一步是尽可能地关掉头脑中自我怀疑的声音。“第一个二十小时”主张通过尝试消除干扰,根据时间制定训练计划和一些其他方法,例如冥想,自我肯定或适度饮酒等,做只要能让声音消失,让你可以专注的事。如果你需要一本自我帮助的书来翻越这一障碍,请尝试“You are a Badass”,一部有趣、滑稽和充满讽刺意味的杰作。
就是这种情形:你现在感觉糟糕透了。但是没关系,你不会这样感觉很久。
第一阶段的学习总是会感到困惑和沮丧。所以,不要和自己过意不去,这表明你在正确的轨道上。你正在学东西,你很棒!你可能不会赢得比赛,但那又怎样?专注于在截止日期之前提交一份证明你实力的报告。不是每个人都可以赢得一场马拉松比赛,但是完成一场比赛本身就是一种成就,对吗?
你知道吗?你可能会赢。我是认真的。
作为业余爱好者,你不会像专业人士一样被多年的理论想法所束缚。只要记住这个关于学生的故事,他在黑板上看到了两个看似无法解决的数学问题,误以为是作业,然后解了出来。事实上数据科学较于科学更似艺术。这是一个吸引了各种各样学科背景的博学者聚集的领域。所以放手去试试你能做些啥把。
谁知道会发生什么?
也许你会发现连专家都错过的东西;真真切切地影响到癌症检测,并将这笔可观的收益带回家。
进行各种尝试并从失败中快速学习
如果你是一个开发人员,你就会知道这个口头禅。同样适用于学习。我的做法是找出有代表性的书,快速浏览他们,看看哪些对我来说是最有意义的。每个人都有不同的口味,所以有些书适合于一个人而其他人却不喜欢。选最适合你的那个。
现在已经有一些关于机器学习的书,像“Real World Machine Learning”。不幸的是,由于这是个新兴领域,大部分的书籍今年才刚刚出现。你可以去预订“Deep Learning: A Practitioners Approach ”或“Hands-on Machine Learning with Scikit-Learn and Tensorflow”。
但你不必等待。这里我推荐Safari Books Online。你可以使用现成工具来快速学习如何应用深度学习,这样你才能在比赛项目里用上。
你要一起使用Kera与 TensorFlow或者Theano,都可以。
你甚至不需要自己设置。试试github上这个非常棒的一体式深度学习Docker映射。(https://docs.docker.com/get-started/#prerequisites)
坦白的说,无论你使用TensorFlow还是Theano都没关系。它们本质上都是运行机器学习的引擎。在你现阶段的水平上,两者几乎是一样的,所以选择一个即可。
Keras是由一流的Google AI研究人员创建的机器学习框架库。本周末,我有幸地遇见了Keras的创始人Francois Chollet。他把Keras形容为“AI民主化”的关键,他提到“深度学习是成熟的,但还没有被广泛传播……你不必是AI研究员才去使用Keras”。而是可以马上开始使用各种各样最先进的技术算法。
如果你已经有了一个Mac或者是Linux的设备以及英伟达显卡那么你将可以继续了。如果没有,请考虑挑选一款戴尔的外星人。我推荐中档Aurora系列。你并不需要一个强大的处理器,而是一个SSD、备用磁盘来转存数据、16-64GB的内存和最好的英伟达显卡。你该将你所有的现金集中花费在显卡上,因为他们真的可以加速深度学习的速度。你进一步需要使用Linux重新格式化并获取最新的二进制驱动程序。不幸的是,开源软件并不会在你最新的芯片组工作得很好,但及有可能会引起黑屏。你可以参考这个链接解决。(https://askubuntu.com/questions/760934/graphics-issues-after-while-installing-ubuntu-16-04-16-10-with-nvidia-graphics)
如果你想自己动手,还有一些教程(https://medium.com/@acrosson/building-a-deep-learning-box-d17d97e2905c)可以帮助于建好需要的设备。另外,我刚刚在第三部分添加了自己的教程!最后,你可以使用AWS,Google或者Azure cloud,但GPU在云计算里快起来会很贵。在你知道你在做什么之前,购买设备才比租赁更合适。
实践
现在你准备好开始了。以下是使用Keras入门的超简单示例。你将需要一个进行比赛的方法。再一次我会为你节省一些时间。目前最有效的标记和研究图像的方法是广为人知的卷积神经网络(CNN)。Google, Facebook, Pinterest和Amazon都使用它们进行图像处理和标记。你也可以从实践中最好的算法开始吧?
实际上,如果你直奔竞赛本身,获取数据集,并查看该教程(https://www.kaggle.com/c/data-science-bowl-2017/details/tutorial),你将会看到它会引导你切割图像并使用搭有Keras和TensorFlow后端的CNN。瞧!你几周可能做的仅仅是实施教程还不得不把参数调来调去,但可以看看你收获了什么。
随后一切会变得疯狂。在数据上使用不同的参数和算法。做实验和寻找乐趣。也许你会偶然发现专家错失的东西!
如果你准备尝试更高级的内容,那么在the Kaggle Data Science Bowl 2017 board(Kaggle数据科学超级碗2017, https://www.kaggle.com/c/data-science-bowl-2017/kernels)上有一些很棒的帖子。事实证明,数据科学家们并没有超越他们分享的秘笈。查看这一个(https://www.kaggle.com/anokas/data-science-bowl-2017/exploratory-data-analysis),它是一系列匿名检查者的CT扫描图片,有助于你开始探索数据。这是一个目前论坛上更先进的,最受欢迎的帖子。它可以帮助你做“预处理”,它基本上是清洗和转换数据,使神经网络更流畅、更容易处理。它实际上将两维的图像转化为3维图像!超酷!
坦白说,如果你自己输入这些代码并让它运行,你已经做得很好了。这种编程方法是“艰难的”,直到真正了解前就开始实践。甚至还有一系列关于Python和其他语言的书籍(http://amzn.to/2jQfHvR),采用这种学习方式,它可能适用于你。
一个警告:有些人在比赛中发布了一个完美的比分。然而却是以通过研究比赛排行榜和增加训练集大小的小聪明来获得(https://www.kaggle.com/olegtrott/data-science-bowl-2017/the-perfect-score-script)。这完全合法,但它不会真正有助于你实现目标。你的目标是学习针对训练集如何运行神经网络。现在我将会跳过这个方法,并专注于针对CT扫描图像运行Keras。
就到这儿!祝你好运,你将帮助重新定义癌症的研究,并把一些现金带回家。不是糟糕的一天的工作。
但是,即使你没有赢,你将会很好地学习如何在现实世界中使用AI。
无论发生什么,记得要玩得开心!
原文发布时间为:2017-5-08
本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“BigDataDigest”微信公众号