文档章节

我是如何花了一年时间来学机器学习的

盈思创通科技
 盈思创通科技
发布于 2017/06/05 15:06
字数 2584
阅读 14
收藏 0
点赞 0
评论 0

 

 

 

  我们都了解AI 的发展方向不错,比如 Google 成为了一家 AI First 的企业,很多开发者也逐渐开始关注机器学习。所以,我就找来这篇文章,给大家分享下如何学习机器学习并对此产生兴趣。

  这位学习者刚开始在 Hacker News 上认识机器学习并对他有了浓厚的兴趣,然后用了一年左右的时间,从开始机器学习到应用在实际项目中。当中利用 Udacity、Coursera、Kaggle竞赛、斯坦福大学课程等多种资源来进行学习和训练,也遇到了各种难题。

  一年前我写过一篇文章《Machine Learning in a Week》,那时我花了五天的时间学了一些机器学习基本概念,算了入了门。从那之后,我开始利用业余时间,持续学习了一年时间,现在我已经能实际项目中应用了机器学习这门技术。

  对我来说,我的本职工作需要我去学习机器学习,而这门技术恰好又是我感兴趣的。

  我之前一直认为,只有机器学习领域的硕士或博士才能应用这门技术,但现在我发现这种想法并不正确。

  真实情况是,入门机器学习并不需要多么高深的数学知识,而且你也不需要非得拿个研究生学位才能深入研究机器学习。

  这篇文章里我想分享一下一年来我的学习心得,希望对大家有帮助。

  入门:Hacker News 和 Udacity

  我对机器学习的兴趣始于2014年,当时我在阅读 Hacker News 上的文章,文中提出了一个思想:我们可以提供大量数据来给机器去学习,这个思想深深吸引了我。当时的我只是个普通的程序猿,做过几个小的项目。

  于是我当时开始去学习 Udacity 上的 Supervised Learning (监督学习)课程,同时也会阅读各种机器学习相关的文章。

  这些课程和文章让我对机器学习的概念有了一定的了解,但并没有培养实际的技能。我并没有看完 Udacity 的课程,就像我也很少能看完 MOOC 上的课程。呵呵。

  未预期完成 Coursera 上的机器学习课程

  在 2015 年一月,我加入了位于伦敦的一个 Founders and Coders 训练营,希望借此机会成为一名机器学习开发者。那时我和几个基友一起学习,每周二晚上,我们一起看 Coursera 上 Andrew Ng 的机器学习课程。

  这个课程有点碉堡了,我从中学到了非常多。但是,它对于初学者而言还是有点难度。我当时也是反复多次看视频才能理解其中的概念。其中的 Octave 变成任务非常的有难度。在几周的学习中,由于其本身的难度不小,不少学员陆陆续续放弃。最后,我也放弃了。

  现在回想下,我当时应该去找一门实践性更强的课程,最好让我们应用某些机器学习 library 来做一些编程实践,如果允许使用一门我已知的编程语言就能好了。

  一边学习新语言,一边学习机器学习算法,这样的学习方式对于新手来说有点不太现实。

  如果我再重新学一遍,我会先从 Udacity 的机器学习入门课程开始,因为这个课程更加简单,而且是使用 Python 和 Scikit 工具。这样子的话,会学得更加轻松,培养自信,学习起来也更有趣。

  经验值: 先从简单、实用的方式来开始学习,而不是一上来就学习难点和纯理论。

  一周沉浸式训练

  在 Founders and Coders 我做的最后一件事是一周魔鬼训练:完整花费一周的时间投入到机器学习上,并利用我掌握的机器学习知识来解决一个实际问题。

  这一周我做了下面几件事:

  学习 Scikit Learn

  针对 真实世界数据集 采用机器学习处理

  编写 线性回归 算法代码(基于 Python)

  做一些自然语言处理

  那一周是我经历过的最深入的学习曲线。感兴趣的话可以读一下这篇文章《Machine Learning in a Week》

  经验: 沉浸式地把自己投入去学习是非常高效的。

  不顺利地神经网络学习

  在我完成了伦敦的 FAC 训练营并会到挪威后,我尝试再用一周的沉浸式训练来学习神经网络技术。

  不过这次,我失败了。

  很简单,每天花完整的 10 个小时来学习并编程很容易受到各种干扰。我才发现,自己低估了当时在 FAC 训练营集体学习的重要性了,有同伴一起学习,往往效率会高很多。

  经验:在学习有难度的知识技能时,尽可能找一个积极向上的环境围绕自己。

  但是,不管怎样,我至少入门了神经网络,并能缓慢地理解其中一些概念。到了2016年7月,我开始编写自己的神经网络代码。虽然那份代码写的非常蹩脚,我甚至都不好意思拿出来,不过,它确实基本实现了神经网络的功能。这也表明我大致理解了 backpropagation 反向传播算法 和 gradient descent 梯度下降算法。

   

 

 

  在 2015 年下半年,我的学习进度有所下降,因为我重新换了工作。这期间我的主要成长是从非向量化神经网络实现到向量化实现。

  在 2015 年底,我写了一篇总结文章介绍了我在神经网络的学习进展:《Learning How To Code Neural Networks》

  尝试 Kaggle 算法竞赛

  在 2015 年圣诞节期间,我决定尝试下 Kaggle 测试[Kaggle是一个数据建模和数据分析竞赛平台]。于是我花了很多时间来实验各种算法来解决Homesite Quote Conversion, Otto Group Product Classification 和 Bike Sharing Demand 问题。

   

 

 

  Kaggle 是一个很赞的平台,它上面提供丰富的数据集,而且你能看到你的算法的实际运行性能。

  这段期间我主要学会了不断迭代算法,来改善试验结果。而且在做机器学习时,我也学会了相信我的代码逻辑,很多时候只要调整一些参数就可以达到不错的效果。

  在工作中继续保持学习

  到 了 2016 年一月份,我想继续投入更多时间在机器学习上。于是我向 manager 请求在工作时间来学习机器学习,manager 同意了我的请求!我很高兴,还写了一篇文章关于如何利用工作时间来提高自己的技能:《How To Setup A Learning Routine At Work》

  于是,我继续了我的学习。那时我已经对神经网络有了基本的理解了,我希望能够进一步去学习深度学习。

  令我失望的 Udacity 深度学习课程

  我第一次接触深度学习是 Udacity 的深度学习课程,不过这个课程让我非常失望。每一集的视频内容质量还不错,但是每一集实在是太短了,地主坑农民啊。

  而且课程里采用的 IPython Notebook非常难使用,我花了大多数时间来调试代码错误,这直接毁了我的学习激情。于是在学了几次后,我直接放弃了。

  当然,我并不是说 IPython Notebook 不好,只不过 IPython Notebook 对于初学者的我来说实在是个噩梦。

  超赞!斯坦福大学-自然语言处理中的深度学习

  很幸运,我随后发现了斯坦福大学的课程 CS224D并决定去尝试一下。这个课程非常赞!虽然它讲的内容有点难度,但我再也不用去持续不断 debug 代码问题了。

  而且,他们还提供了答案代码,每次我搞不懂时就去读答案,这也帮助了我理解一个问题是如何一步步被解决的。

  虽然我还没有完全学完这套课程,但它大大扩展了我在自然语言处理和神经网络方面的知识面。

  不过,这个课程不是那么容易。有一次,我意识到了自己必须要一位大牛来帮我,于是我花了 40 刀每小时请了一位博士学生来做我的家教,帮我讲解遇到的问题,形成整体的理解。这位家教帮我扫清了很多知识上的漏洞。

  经验:可以考虑花 50 刀每小时的金钱来换取一位优秀的机器学习老师。如果你资金上宽裕,那一定值得这样做。

  而且,我的公司 Xeneta 最近招了一位数据科学家,他有数学硕士学位。因此每次我遇到线性代数、微积分或机器学习的问题时就会向他请教。所以,尽可能让公司内部的资源帮助你的学习。

  使用机器学习的知识来改进我们公司的销售评估。

  学习了半年多以后,我认为我已经做好准备在实际应用中了。然后,我使用我们公司的一些描述信息数据,写了一套算法来评估销售人员的业绩。这套算法也为我们公司的销售人员带来了极大的高效率。

  这段学习过程虽然很长,但是也不算太慢。因为当我刚开始一周的学习时,并没有想到我在一年之内就能掌握,并且还运用到实际项目中。

 

  这样的方式我相信大部分人都可以像我一样学的会,而且是十分有用的学习方式。

 

原文链接:软盈平台

© 著作权归作者所有

共有 人打赏支持
盈思创通科技
粉丝 0
博文 8
码字总数 7672
作品 0
朝阳
7月4日云栖精选夜读丨阿里巴巴达摩院近一年都做了什么?

去年10月,阿里巴巴宣布达摩院,3年投入1000亿元探索前沿科技,以科技创新世界。在成立不到一年的时间里,达摩院在国际顶级技术赛事上获得了近20项世界第一,并落地了多项研究成果,全面赋能...

yq传送门
07/04
0
0
入行 AI,选个脚踏实地的岗位

算法工程师年薪百万耶,我也要当!以前没学会?没关系啊,我现在开始学,这就把工作辞了脱产学机器学习、深度学习、用 Python 调库、给 TensorFlow 调参去,学会了我也年薪百万了! 随便是个...

valada
04/12
0
0
关于机器学习,你需要知道的三件事!

机器学习是一种数据分析技术,让计算机执行人和动物与生俱来的活动:从经验中学习。机器学习算法使用计算方法直接从数据中“学习”信息,而不依赖于预定方程模型。当可用于学习的样本数量增加...

【方向】
03/01
0
0
2017总结 & 2018计划

回顾2017 工作方面 认识了几个强力师傅(我们互称师傅)。 专业水平较大幅度提升。 加了一次薪。 通过“总结+分享+接受反馈”这种方式不断的发现、解决自己的问题。 生活方面 1. 厨艺日益精进...

无夜之星辰
01/01
0
0
作为一名初级前端开发工程师的一些感悟

从大三接触前端工作到现在已有3年时间,因为本人本科专业是GIS(地理信息科学,2017届本科),唯一和前端相关的就是,专业课程关于前端学的也是一知半解,其实在那个时候大家喊的大多数都是网...

GoDotDotDot
05/09
0
0
年末总结,新年计划

今年,开年时我还记得我打开java这个葵花宝典,自称要练成神功。 就这样一口气学了多久,我还真不记得了。 真的可以说看的昏天地暗,白天看,晚上看,上班看,下班看。 时间流逝。看了大概7...

测试-雨
2015/12/30
238
0
加拿大AI有多强?一年投入60亿,吸引Hinton、Bengio等大神

提到人工智能,人们会联想到亚马逊、谷歌、腾讯和百度等美国和中国的公司。 加拿大没有这样的大型科技公司,但它正在全球人工智能地图上留下自己的印记。 多年来,加拿大政府投入了数十亿美元...

技术小能手
06/04
0
0
[年前福利]送10本自然语言处理与深度学习相关书籍

感谢大家一直对公众号的支持和陪伴,本次公众号联合机械工业出版社华章科技给大家送出10本自然语言处理与深度学习相关的10本书籍,希望大家能够收获多多,新的一年,成长进步! 下面来介绍一...

机器学习算法与自然语言处理
01/31
0
0
我学生做的游戏被禁了,但我要给他点赞

【智能观】《后汉书·冯异传》:“始虽垂翅回奚,终能奋翼黾池,可谓失之东隅,收之桑榆。”说的就是得失问题。 先有所失,后有所得。可谓教育之精髓,规规矩矩,束手束脚,思维何以拓展?惊...

智能观
06/11
0
0
从0自学成AI高手,她只用了一个产假

王小新 问耕 发自 凹非寺 量子位 出品 | 公众号 QbitAI 这是一个励志(但并非鸡汤)的故事。 △ Nicole Finnie一家 上面这位母亲,名叫Nicole Finnie,现在是一位AI高手。前不久,她从全球数...

yh0vlde8vg8ep9vge
05/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

TensorFlow 线性回归 拟合

用tf 对 一次函数进行拟合 效果 loss 简单实现如下 import tensorflow as tfimport numpy as npimport matplotlib.pyplot as plt# 保存显示数据plotdata = {"batchsize": [], "los...

阿豪boy
5分钟前
0
0
JupyterLab安装地图插件

JupyterLab安装地图插件 (本文所述软件还在发展之中,欢迎加入开源项目,提供建议、测试和开发。) 在Jupyter中进行数据分析时,往往需要将数据叠加到地图上。简单的可以利用matplotlib/ec...

openthings
13分钟前
0
0
Coding and Paper Letter(八)

资源整理 1 Coding: 1.Python项目,由Allen Downey撰写的Think Python第二版的LaTeX源代码和支持代码。 ThinkPython2 2.R语言包h3jsr,h3jsr使用V8的神奇力量通过其javascript绑定提供对Ube...

胖胖雕
22分钟前
0
0
skiplist跳跃表

插入删除log(N) TODO

梦想游戏人
23分钟前
1
0
利用世界杯,读懂 Python 装饰器

Python 装饰器是在面试过程高频被问到的问题,装饰器也是一个非常好用的特性, 熟练掌握装饰器会让你的编程思路更加宽广,程序也更加 pythonic。 今天就结合最近的世界杯带大家理解下装饰器。...

p柯西
36分钟前
0
0
Xshell登录阿里云服务器ECS

Xshell登录阿里云服务器ECS 1. 参考资料: 1). 《阿里云服务器怎么用?阿里云服务器使用教程》 链接:http://www.cr173.com/html/50758_1.html 2). eagle-zhang的CSDN博客《Xshell连接不上阿...

SuShine
46分钟前
1
0
IDEA中的HTTP Client Editor测试API

在前后端分离项目,前后端通过api进行通信。如果用postman免费版进行api测试的话,由于无法保存测试脚本到文件,不方便前端查看。 你可以选择付费版。也可以利用IDEA自带的HTTP Client Edito...

hutaishi
49分钟前
0
0
解决“只能通过Chrome网上应用商店安装该程序”的方法

摘要 : 最近有些用户反映某个Chrome插件在安装的时候,提示“只能通过Chrome网上应用商店安装该程序”,为了解决这一问题,Chrome插件网带来了相关的解决方法。 某些用户在Chrome插件网下载了...

沧海一刀
50分钟前
0
0
通过UNIX域套接字传递文件描述符

  传送文件描述符是高并发网络服务编程的一种常见实现方式。Nebula 高性能通用网络框架即采用了UNIX域套接字传递文件描述符设计和实现。本文详细说明一下传送文件描述符的应用。 1. TCP服务...

Bwar
53分钟前
0
0
python操作Excle

# -*- coding: utf-8 -*-from openpyxl import load_workbook, Workbook#index:第几个sheet页,第一个sheet页的index为0def readExcle(filename,index): # 加载excle文件 wb = l......

淺陌离殇
55分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部