简评:人工智能是 21 世纪最重要的技能。在人人都很忙碌的今天,如何把人工智能这个技能点加上?做者用本身的亲身经历告诉你们。html
当我关闭个人创业公司 Zeading 时,我被此次失败惊醒的同时感受内心空落落的,就像失去了一些很是特别的东西。python
全栈工程师在面临剧变的时代是不够的。在接下来的两年中,没有人工智能技术的全栈将再也不是全栈。react
是时候采起行动了。我作出了我认为如今惟一能作的行动 —— 像开发者那样更新个人技能,以像产品经理同样的心态以及像企业家同样的哲学观来面向数据。git
正如著名的风险投资家,人工智能和金融科技的思想领袖 Spiros Margaris 雄心勃勃地对我说:github
若是创业公司和企业只依赖于最前沿的 AI 和机器学习算法做为竞争 —— 这是不够的。AI 将不是竞争优点,而是基本需求。你听过有人把用电做为竞争优点的吗?算法
通常是建议在 Coursera 注册 Andrew Ng 的课程。这是个很棒的网站但我发现我很难在观看课程时保持长时间的专一。倒不是说这门课程很糟糕,只是我真的很难在讲座中聚精会神。一直以来我我的 的学习模式就是实践,因此我想干吗不直接来实现本身的神经网络。windows
我没有直接跳到神经网络,由于它是一个更高的学习方式。我先熟悉了这个领域的全部概念,这样我才能学习用专业术语谈论这个领域。react-native
第一个任务不是学习。而是去熟悉。api
个人知识背景是纯 JavaScript 和 NodeJs,暂时不想换别的。我搜索到一个简单的神经网络模块叫 nn,而后经过模拟输入用它来实现一个与(AND)门。经过这篇指导,我选择了这个问题:对于任意的输入 X,Y,Z,输出结果都是 X AND Y。bash
var nn = require('nn')
var opts = {
layers: [ 4 ],
iterations: 300000,
errorThresh: 0.0000005,
activation: 'logistic',
learningRate: 0.4,
momentum: 0.5,
log: 100
}
var net = nn(opts)
net.train([
{ input: [ 0,0,1 ], output: [ 0 ] },
{ input: [ 0,1,1 ], output: [ 0 ] },
{ input: [ 1,0,1 ], output: [ 0 ] },
{ input: [ 0,1,0 ], output: [ 0 ] },
{ input: [ 1,0,0 ], output: [ 0 ] },
{ input: [ 1,1,1 ], output: [ 1 ] },
{ input: [ 0,0,0 ], output: [ 0 ] }
])
// send it a new input to see its trained output
var output = net.send([ 1,1,0])
console.log(output); //0.9971279763719718复制代码
幸福来得太快了!
当获得的结果是 0.9971 时,我意识到,这个神经网络学会了如何作一个 AND 操做,而且忽略附加的输入。这样的结果极大地加强了个人自信心。
这就是机器学习主要的宗旨。你给计算机程序一个数据集,而后调整内部的参数,它就可以从一个新的数据集中经过观察原始数据获得一个缩小偏差的结论。
这个方法,我后来了解到,它也被称为梯度降低。
当我从第一我的工智能程序中获取了满满的自信后,做为开发者,我火烧眉毛地想要了解能用机器学习作什么更多的东西。
我经过一个有限的数据集来用多元线性回归尝试预测哪支队伍将取得胜利(预测结果至关差,但感受仍是不错的)。
我在 Google 机器学习云上尝试了一些演示,看看 AI 在今天能作什么(做为一个 SaaS 产品,Google 作得足够好了)
我被 AI Playbook 难住了,由 Andreessen-Horowitz 组织的出色的资源,受人尊敬的基金。无愧为开发者和创业者最便捷的资源。
开始在 Youtube 上看 Siraj Rawal’s awesome channel,关于深度学习和机器学习的集中讨论。
阅读 Hacker Noon 上的优秀博客,讲述了大佬如何在硅谷建立 Not Hotdog app(不知道咋翻译 = =)。这是咱们能作的最接近深度学习的案例之一。
阅读了 Andrej Karpathy 的博客,特斯拉 AI 部门的主管。尽管我尚不可以理解他讲的任何东西,让我很头疼,可是我在屡次被血虐后,对一些概念开始有点理解了。
鼓起勇气,我开始逐字实现一些深度学习的教程(复制和粘贴)并尝试在个人机器上训练模型和运行代码。大多数时候,结果很烂,由于大多数模型须要的训练时间很长,并且我没有 GPU。
逐渐地,我从 JavaScript 切换到了 Python,而且在个人 Windows 机器上安装了 Tensorflow。
这整个过程都是在被动地消化内容,并在你的脑海里创建参考,当之后遇到一个真正的问题时,可使用这些知识。
正如 Steve Jobs 所说,你只能日后看才能把这些点连起来。
做为电影 《她》 的粉丝,我也想要作一个聊天机器人。我接受了这个挑战,而后设法用 Tensorflow 在不到两小时内完成。几天前我在我其中一篇文章里列出了这个过程的大纲和商业需求。
幸运的是,这篇文章广为好评,被 TechInAsia,CodeMentor 和 KDNuggets 推荐了。这对我我的而言是个很棒的时刻,由于我才刚开始写技术博客。我认为这篇文章能够算是我 AI 学习的里程碑之一。
我在 Twitter 和 LinkedIn 上交了许多朋友,我能够和他们全面而深度讨论 AI 开发,发现本身的不足。我在咨询项目上收获了几个 offer,最重要的是,年轻的开发者和 AI 初学者开始向我提问如何开始学习 AI。
这就是我写这篇文章的缘由。为了帮助更多的人从个人经历中找到开始他们的学习旅行的线索。
万事开头难。
这毫不是一个简单的事情。当我在 JavaScript 上卡住时,我几乎一晚上之间跳到了 Python,学习如何编写代码。在通过几小时的训练后,个人模型在个人 i7 机器上跑不出结果,这让我很烦躁,它们会返回一个胡乱的结果,就像在一个队伍在板球比赛中赢得比赛同样,这是个 50-50 的几率。学习 AI 不像学习 Web 框架同样。
在微观层次的计算中发现你的什么输出 —— 你的代码仍是数据更为合理,这是一种技巧。
AI 一样不仅是一门学科。这是一个用来形容任何从简单回归问题到某天杀死咱们的杀人机器人的总括术语。像其余你接触的学科同样,你可能想要 cherry pick AI 中任何你想要的足够好的部分,好比计算机视觉或者天然语言处理,或者上帝禁止的,统治世界的等等。
Atlantis Capital 的 Gaurav Sharma 是 AI、金融科技、加密等行业的知名领导者,在与他的对话中,他向我表示:
在人工智能的时代,“变聪明”意味着彻底不一样。咱们须要人们执行高级的、关键的、创造性的、有思考能力的以及须要高度的情感参与的工做。
你必须让本身沉迷于计算机如何忽然学会用它们的方式来作事情。耐心和好奇心是你应该坚持的两个关键原则。
这是一段很长很长的旅程。很是累,很是容易烦躁,以及很是花时间的过程。
但好处在于,像世界上其余旅程同样,从一个简单的步伐开始。
知乎专栏:极光日报
极光日报,极光开发者 的 Side Project,天天导读三篇国外技术类文章,欢迎投稿和关注。