关于机器学习

0038038013322071_b

文:李杰克

简语:

1、机器学习第一语言Python

2、机器学习中数学基础

3、机器学习算法基础

4、深度学习框架基础

0038038013322071_b1、学习资源获取渠道

至于如何获取这些资源的下载链接呢?在本文结尾的地

方,我会分享给大家:)

下面内容,会从四个方面展开:

1、机器学习第一语言Python

2、机器学习中数学基础

3、机器学习算法基础

4、深度学习框架基础

再次强调,我本文中提及所有知识点和资源,仅仅是让你入门机器学习,如果想要走更远,那肯定是远远不够的,我们还是要继续努力才可以呢!

headlines-cover

2、机器学习第一语言Python

讲真,曾经中二的李杰克一直很傻地跟身边朋友说“编程是帮别人实现想法工具,而特立独行善于思考如我(二得不行…)的人要去做策略和方案才能体现出价值嘛!”

当然除了中二之外,李杰克还是一个表里如一的人,所以大学里真的是一点编程都没有去学……直到李杰克上手编程后才发现编程其实也可以是件很有意思很有效率的事情嘛。

我也终于能够理解在自己产品经理时期的某一次深夜发布后,我的程序猿好友王建国一脸升天的样子跟我说他刚刚写了一段无比漂亮美丽还略带性感风骚的代码的心情。

我知道,那一刻,他满脸抖动的肉牵扯出来的笑就像一个两百多斤的孩子那般纯粹

我也知道,那一刻,他骄傲得就像自己是整个代码世界里流淌着最高贵血液的王

我还知道,他如果一直保持从代码中获得快乐和满足的话,他们老王家怕是永远抱不上孙子了……

说到学习编程就不得不提到我们的大主角Python了,其实包括Java、lua、MATLAB、Julia、R、Perl、python、Ruby在内的多种语言都能搞机器学习,那为什么只有Python独占鳌头,被推向了机器学习第一语言的神坛呢?

915d49ecc2655c2110cd8e66286a9a7e

李杰克觉得主要有两个原因

1、之前搞机器学习的那帮人都喜欢用Python,所以Python慢慢就积攒了很多优秀的机器学习库,所谓的库,你就理解为别人封装好的一些具有某些功能的模块,我们可以通过调用这些模块来实现某些功能,而不用自己从头写代码;

2、Python真的是一个极易上手的语言,语法很简单,容易理解,且实现同一功能的代码量会比一般语言要少一些,李杰克上手python的过程除了最开始熟悉语法的阶段比较无聊烦躁外,后面都没有太不适的感觉。

就算你不搞机器学习,如果要学编程,那Python也是个极佳选择,因为Python这货实在腻害,机器学习、数据分析、爬虫、Web 网站、游戏、后台服务、运维都能做,因为什么事情都能掺和上一脚的特性,江湖人称“万能胶水”。

话说现在都有小学都把Python列为必修课了,浙江还把Python列为高考内容,就问一句你怕不怕,反正我已经是瑟瑟发抖了,坐等被拍死……


t01f301f9888b1e69ee

回归正题,下面我们来说下,在机器学习这一领域,需要掌握哪些基本的Python知识

一、Python的基本语法和应用

1、基本元素

基本上就是整数、浮点数、字符串、变量、布尔值、list、tuple、dict和常用格式文件等元素的操作和使用。

2、判断和循环

你可以理解为把上面说的一些基本元素通过if..else…., forwhile等来做一些判断和循环。判断很简单,在某个节点上,如果是A,下面一步应该怎么走,如果是B,下面应该怎么走。循环也不难理解,比如说我们有一个list[1,2,3],我们把里面的每个元素都取出来做某些处理。

3、函数和类

你可以理解为我们故意把某些逻辑做成类或函数,在某些需要用到这端逻辑的场景下,我们可以直接调用相关函数,而不用重新去写这段逻辑的代码,其实就是程序猿常说的不要重复造轮子的事情。

聪明的你是不是感觉有点熟悉似曾相识啊,对的哇,前面说的库里的模块,其实就是一个个封装好的函数哈。

再次强调,这只是你需要掌握的最最基本的东西,Python的世界可是大着呢!

二、科学计算库numpy和pandas

numpy和pandas是非常出名两个科学计算库,很多做数据分析和金融的童鞋都会用到

那为什么机器学习会用到这两个库了?

我们先来无脑吟唱下这句话:在机器的世界里,万物皆可为向量向量其实也算是一维的矩阵,我们的训练数据和要预测的数据也都是以矩阵的形式喂给机器的。

而numpy和pandas可以说是处理矩阵的好手,所以通常会用numpy和pandas对数据进行处理后再喂给机器,就我目前的实践经验来说,numpy应用的场景会比pandas多些

其实好一些机器学习框架(如TensorFlow和Mxnet)也有自己处理数据的模块,但大多是通过封装numpy得到的,使用的方法也很像,所以无脑去上手numpy肯定不亏。

关于numpy和panda,我给大家提供一个PPT《机器学习numpy与pandas基础》,大概100来页,两个库的基本知识都说到了,感觉还不错,已经放在云盘里了。

另外,网上有一篇叫《十分钟搞定pandas》的文章梳理得还算清晰到位,大家不妨也去读读,反正也花不了多少时间。

  • 《机器学习numpy与pandas基础》获取方式:详见文末
  • 《十分钟搞定pandas》阅读地址:http://t.cn/RpYFh6h

三、画图库matplotlib

在搞机器学习过程中,画图不是必须的,但通过画图能够让我们可视化一些数据,从而能够更直观地观察数据特征训练过程

我们可以把每一个数据样本都理解为其特征空间中的一个点。当我们把这些数据样本在其特征空间中画出来后,就可以了解到数据的分布了。

通过观察数据分布是可以发现一些规律的,比如下图的是机器学习中著名的手写识别体数据集mnist(手写的0到9十个数字的图片)的数据经过处理后的可视化效果。

timg_副本

是不是有发现相同数字的数据都分布得比较近?其实不难理解,两个数据样本在特征空间中的距离越近,就说明它们越像

我们不妨再微微展开一下,话说我的好友王建国童鞋是个二次元妹纸颜控,在他眼中每一个二次元妹纸都可以被量化为四个维度的数据样本:脸萌的程度(0-100)、声音萌的程度(0-100)、胸大的程度(0-100)、腿长的程度(0-100),所以每个二次元妹纸都是以上四个维度构成特征空间中的一个点。

聪明的你知道三维以内的空间是可以画出来的,那如果一个模型里的数据超过三维,那我们是不是就不能可视化了?

好问题,数据超过三维后的确是不能够可视化,因为我们根本就画不出来的嘛。

但你可能还记得我们之前说过有一类机器学习算法,是可以在保证数据信息损失尽可能小的前提下压缩数据维度的,所以我们可以通过这类算法先把数据压到三维以内,再做可视化处理。

有点抽象?那李杰克说具体点,我们把王建国童鞋认识的所有二次元妹子的数据样本都喂给机器,机器扑哧扑哧研究后,发现脸比较萌的妹纸通常声音也比较萌,然后就搞出一个新的维度来代替了脸萌程度和声音萌程度两个维度。所以我们这些二次元妹纸的数据就被压成了三个维度的数据,这个时候我们就可以通过可视化来看数据分布了。

另外,我们还可以通过matplotlib来画出训练过程中一些数据的变化,比如下图这个最简单的线性回归训练拟合的过程:

AI_cover

matplotlib的基本操作学习成本并不高,基本一到两天,可以把里面基础常用函数模块搞得差不多懂,建议可以学学。下面这篇文章《matplotlib绘图可视化知识点整理》,是李杰克觉得基本知识点梳理得还不错的的,各位同学可做参考。

  • 《matplotlib绘图可视化知识点整理》阅读地址:http://t.cn/RqDxDo8

四、一些Python学习的建议

Python有2和3的两个版本,我最开始用的是Python2,因为在网上看到的信息都是说有些机器学习的库不支持Python3,后来发现其实基本上都是支持的,所以我又迁移到Python3,总体上Python2和Python3的区别不大

但诸如numpy等一些库已经宣布停止对Python2的更新,Python的未来大势也是向Python3迁移,所以建议各位童鞋直接上手Python3

关于Python安装,建议大家使用anaconda版本的Python,因为anaconda有强大的库和环境管理功能。通常一个库的安装会依赖一些相联的库,anaconda可以帮你直接把所有相关联的库都一步到位安装了,而不用你自己一个一个手动安装。相信我,这很重要,至少你不会因为装一个库装了一两天还装不对而暴躁得想砸电脑…..而且大家以后机器学习常用来写代码的jupyterspyder也已经内置在了完全版的anaconda中,会很方便。

  • anaconda下载地址:http://t.cn/RW92Dcn

请选择Python3:

李杰克这里也简单说下自己学习Python的过程,因为之前不具备编程基础,也担心自己学到半路放弃,所以我特意找了一个比较容易和甚至看起来略low的切入方式。

有一本书叫做《笨办法学Python》,这本书名副其实,确实很笨……你需要做的就是下一个Python,然后老老实实地跟着把书上的代码都敲上一遍,偶尔敲烦了,我会去看看《廖雪峰Python教程》。

《廖雪峰Python教程》讲得不复杂,比较适合初学者。如果你时间有限,下图红框内部分知识可以先不学习,因为在机器学习领域基本上很少会用到的,当然如果你是个时间充裕又喜欢学习的孩子,那都去学了吧。

《笨办法学Python》敲上一遍和《廖雪峰Python教程》看上两三遍后(反正李杰克第一遍是看得比较懵逼),基本上Python的基本语法就没什么大问题了,剩下的就是一个熟能生巧的事情了,不断地去练习,不断地发现问题,不断地去百度。

另外,李杰克刚开始学习Python的时候,有人建议我去刷《Python100例》,对熟悉基本知识的应用的确是有帮助,但个人觉得没有必要全刷,你可以随机挑二十来个练练手就好了。

  • 《笨办法学Python》获取方式:详见文末。李杰克也提供了PDF电子版给大家,同样放在了云盘中。
  • 《廖雪峰Python教程》阅读地址:http://t.cn/RK0qGu7
  • 《Python100例》阅读地址:http://t.cn/RfOJSc5

基本语法我们都搞定了后,我们就可以去做一件看起来很酷炫的事情了——爬虫

但你可能不知道,Python爬虫也可以是一个上手快、出活易的东西。

爬虫也算是跟机器学习有那么一点关系的;机器学习需要数据,我们可以通过爬虫爬取一些需要使用到的数据,所以建议还是学一学,以备不时之需

同时,爬虫是一个可深可浅的东西,请注意我们的目的用来练手,所以我们只需要学会使用最基础的requests、beautifulsoup等库来实现抓取数据的目的即可,暂时不要去折腾什么多线程、scrapy框架之类的东东。

你应该用不了几天就可以尽情地去爬小说、爬音频、爬评论爬一些不可描述的阔爱的女孩子的图片……但是答应我,好东西记得要分享好不好?

在李杰克看过的所有爬虫相关文章里,知乎上有一个叫“从零开始写爬虫”的专栏是最棒最适合入门哒,我把当中的最适合大家的几篇挑出来了。

这些文章满足我们需求:

1、只用最简单的两三个库;

2、手牵手一步一步地教学,想不学会都难的那种;

如果你已经具备了Python基础,按着我分享出来的资料折腾的话,李杰克保证你两三天可以折腾出一个爬虫,意不意外,惊不惊喜,刺不刺激,开不开心!

 

《从零开始写Python爬虫》

  • 《 1.1 requests库的安装与使用》阅读地址:http://t.cn/RTuUuf7
  • 《1.2 BS4库的安装与使用》阅读地址:http://t.cn/RTu4PLz
  • 《1.5 爬虫实践: 获取百度贴吧内容》阅读地址:http://t.cn/RTu4ZbV
  • 《1.7 爬虫实践: 排行榜小说批量下载》阅读地址:http://t.cn/RTu4UHw
  • 《1.8 爬虫实践: 电影排行榜和图片批量下载》阅读地址:http://t.cn/RTu45gz
3、机器学习数学基础

对于数学知识,李杰克知道很多童鞋都很关心也很忧虑,我也深深地明白数学知识是机器学习从入门到放弃的重要节点

李杰克也有朋友一开始就扑哧扑哧各种啃高数线代概率论,几天后硬是把自己啃绝望了,从此弃坑。

那我这篇文章的目的就是帮你厘清入门机器学习需要的最最最基本的数学知识以及它们在机器学习中可能出现的地方,让大家不要太纠结数学,可以尽快进入到机器学习的学习中。

需要强调的是,机器学习中数学远远不止这些,我也有意为大家过滤了很多在入门时不需要太关注的知识点,基本上,大家把我下面提到的知识点搞明白得差不多,入门机器学习也算够了。再之后,我们在机器学习过程中遇到不懂的数学知识点,再倒回去补补即可,这应该是更符合我们这些苦逼工作党的学习方式。

下面,相关的数学知识点我基本都不会展开讲,大家自己去补齐,以后李杰克会考虑做一篇这块的专题文章。我已经完全脑补出还没开始学习的你看得一脸懵逼的样子,一如以前的我……

一、高等数学

1、导数及偏导数,对应机器学习中的梯度,机器学习中学习的参数需要通过梯度下降进行更新;

2、复合函数的链式法则,同1一样,目的也是为了求出梯度更新参数,但因为深度学习网络有多层,所以模型的预测函数是个复合函数,我们需要通过链式法则从后往前求出每层参数的梯度,进而更新每层里的参数,这也就是大名鼎鼎的“反向传播法”;

3、同时可以去了解下数学中的最优化问题,大概就是目标函数在什么条件下能够取到最值的问题,因为机器学习的问题到最后都是要转化为一个损失函数最优化的问题

二、线性代数

1、标量、向量、矩阵及张量的定义及运算,让我们再回顾下,在机器的眼里,万世间物即可为矩阵,机器学习的过程其实也就是矩阵计算的过程。这也就是NVIDIA的GPU在近两年那么火的原因,因为GPU在矩阵计算上天然有很大的优势。

2、范数,对应机器学习中正则项,正则项通常会加在已有的损失函数上用来减少训练的过拟合问题;

3、常见的距离计算方式:欧式距离、曼哈顿距离、余弦距离等,我们之前说过数据样本可以表示为其特征空间里的点,而距离可以用来衡量他们的相似度。

三、概率论

1、条件概率、贝叶斯,基于概率论的分类方法经常会用到;

2、期望与方差,机器学习里一般都会对数据进行normalized的处理,这个时候很可能会用到期望和方差;

3、协方差,能够表征两个变量的相关性,在PCA降维算法中有用到,变量越相关,我们越可能对他们进行降维处理;

4、常见分布0-1分布、二项分布、高斯分布等,高斯分布很重要,数据normalized跟它有关,参数的初始化特跟它有关;

5、最大似然估计,在推导逻辑回归的损失函数时会用到。

四、信息论

这块东西其实应该不属于数据知识,没有太多东西就姑且也放到一块吧。你暂时只需要去了解下交叉熵的概念即可,大概知道这东西跟分类问题的损失函数有关即可哈。

李杰克温馨提示

大家一开始能把这些知识点搞懂是最好,没搞懂也不要慌,因为贴心的我给大家推荐的机器学习资源里都会通常都会用通俗浅显的方式去做相关推导,即使你没有搞懂这部分数学知识也不会特别懵逼,当然,用心准备总是最好哒!

4、机器学习算法基础

我勒个去!你居然坚持看到这里,真是没想到呢!快给你自己狠狠地点赞打call吧!

这可能是大家最关心的章节了,也可能是这篇文章最优价值的部分,毕竟李杰克也算是替大家提前尝了些百草(好在我还没挂),接下来李杰克会告诉大家比较适合进补的草药以及较优化的进补顺序

现在有种风气,但凡说到机器学习入门,大家基本上都在无脑推荐:啊,你要入门机器学习啊?Ng的视频不错哇,入门就看它好了!

Ng这个名字大家可能不熟悉,但吴恩达你大抵是听过的吧,不就是那个前百度的AI负责人么?

bingo!Ng就是吴恩达哈,不过在机器学习圈子里大家都喜欢叫他Ng。

其实最开始别人让我推荐入门资源时,我也会不假思索地推荐Ng的《Machine Learning》,因为这也是我完整看下来的第一套视频教程……

但我现在回望自己学习过程中看过的所有视频、书籍、文档后,我并不认为Ng的《Machine Learning》是最适合用来入门的资源

为什么呢?聪明的你一脸好奇。那当然是李杰克我有更友好更容易更无痛的入门资源推荐给你啦!
18i58PICPUw_1024首先,我们再次界定下需要学习的知识范围,我知道各位童鞋大概率是对“让我们感觉AI马上就要改变世界取代人类”的那一部分知识感兴趣,这一块知识其实是机器学习中深度学习这一分支。

所以, 接下来,我会给大家分享更偏向于深度学习的学习资源,当然传统机器学习的资源也会涉及到一部分。

李杰克给大家推荐的视频资源基本上都能到B站上直接观看,额……我也是对自己居然到B站去学习机器学习这件事情感觉有点有不可思议,但神奇的B站上,的确是有些童鞋在以我不能想象的趣味和毅力去各种搬运机器学习的资源。

另一个推荐大家用B站的原因是,视频播放速度可以调整,对于部分英文教授的视频大家可以根据自己的情况适当调节速度,比如说如果你觉得吴恩达语速较慢,可以考虑加加速,如果你觉得李飞飞的博士生JJ语速有点快,那你可以减减速!

还有…..B站视频没广告,讲真,比那些开头给你放90s广告、中间还有本事给你插个45s广告的妖艳贱货是不大一样的!

额…..你不直到B站是什么东东?童鞋你去搜下“bilibili”吧。

感觉这波B站要给我广告费了…….

李杰克觉得学习一个有一定信息量的新知识时,一个不错的方式是先花不多的时间把这个东西大体上过一遍,不管能看懂多少。

所以,最开始的三份资源的目的,就是让大家先建立起一个感性认知和知识框架,这一阶段过了后我们再利用更详细的资源进入下一步的学习。

李杰克给大家推荐的第一个学习资源是台湾李宏毅老师的《一天搞懂深度学习心得》。

  •  《一天搞懂深度学习心得》观看地:http://t.cn/RTukvY6

关于机器学习的英文资料比较多,国语的除了台湾的李宏毅林轩田老师的课程外就是一票辅导机构在那里折腾了,从我看过李宏毅的部分视频来看,他讲得的确是非常浅显易懂,用来入门再合适不过了。

而且这个视频只有36分钟,你买不了吃亏,买不了上当,却能大概了解到深度学习里一些比较重要的概念。

李杰克给大家推荐的第二个学习资源是共计20集的视频教程《DeepLearning.TV》。

  • 《DeepLearning.TV》视频观看地址:http://t.cn/RTuDdSQ

你心里可能没忍住冒了句mmp:李杰克,你推荐个鬼?单单是建立感性认知和知识框架,你TM就要我去看一部连续剧长度的视频啊!

额….童鞋们,不要急,且听李杰克为你慢慢道来。

《DeepLearning.TV》虽然有20集的长度,但每集只有3到4分钟

这套视频基本覆盖了深度学习里的最基本知识,李杰克个人的学习体验是即使看得一脸懵逼也丝毫不影响自己biubiu地看完一集换下一集时获得的成就感

 

你再想一想?一个半小时也就是两局吃鸡的时间、四局农药的时间,一个半小时你陪不了妹纸看一部电影(前提你懂的…..),约不了基友吃一顿火锅。但是……你去把这组视频看了,以后去跟别人谈笑风生的时候吹牛逼的底气都要足很多了对不对?

两套视频刷完后,李杰克还给你准备了一份300页PPT的大礼包——李宏毅老师的《深度学习介绍-李宏毅》,这算是我见过最全面最清晰的PPT,你可以花上一些时间自己去啃一遍。

 

  • 《深度学习介绍-李宏毅》PPT下载地址:详见文末

大家经过以上三份资源的折腾后,应该也大概知道深度学习是个什么东东了,接下来,李杰克再给大家推荐一些同样优质的资源,大家可以进一步学习更深一点的东西。

接下来我们终于要开始接触Ng的《Machine Learning》了。其实在很多机器学习大拿眼中,Ng最大成就不是在学术上,而是作为AI布道者让更多人知道了机器学习,他也是目前和工业界互动得最好的AI科学家,最近不是又刚成立了个landing.ai要推动企业转型么?

 

  • 《Machine Learning》视频观看地址:http://t.cn/RYpskDe

大家需要注意的一点是,《Machine Learning》讲的更多的还是传统机器学习,深度学习知识作为其中很小的部分一带而过,有多么少,李杰克没记错的话大概也就是100多章节里花了两三个章节说讲了下神经网络吧。

你要是问李杰克资次不资次你通过《Machine Learning》学习传统机器学习的算法,我当然是资次的,Ng讲课讲得确实是一流,听课体验很棒!

李杰克的建议是,大家可以通过《Machine Learning》去学习机器学习中的基础知识,我拎些重要的出来:损失函数、梯度下降、线性回归、逻辑回归、SVM、反向传播法、正则化、KNN、K-Means、PCA,大家可以优先重点搞懂这些东西,你进入到深度的知识储备算是基本够了。

当然时间充裕的情况下李杰克建议大家把所有章节都好好学习下,《Machine Learning》绝对是你可以看上几遍的课程,李杰克也打算等稍微没那么忙了再去重温一遍呢。

另外,《Machine Learning》是通过一个类似Matlab的软件Octave来教学,时间有限的情况下可以考虑不学,因为到目前为止李杰克就没有在第二个地方见到过这个软件的使用,大家学了估计也很难用上…….

《Machine Learning》有两版,一版是斯坦福教室里录制的版本,一版是Ng后来录制的版本,李杰克这里给大家推荐的是后者,相信我,前者直接上手真的可能会看哭的,别问我怎么知道……

如果非常简要地把深度学习概括为两个方向,那就是图像处理语音处理,看过我前一篇文章的童鞋会知道两者分别主要对应的是卷积神经网络递归神经网络的应用。

李杰克虽然也对递归神经网络有过接触,自己也通过递归神经网络写过一个能够写古诗的AI,但确实没有系统学习过什么资源,本着no experience no bb的原则,递归神经网络方面的资源暂不做推荐

说到图像处理领域,有些童鞋可能已经听闻过李飞飞的大名,妥妥的计算机视觉领域的大牛,接下来给大家推荐的学习资源也就是由李飞飞和她的两位博士生JustinSerena教授的《Stanford CS231N 2017》

额……话说李飞飞在第一节课出现了一会后就人间蒸发了,但并不影响我们安静地坐下来欣赏Serena小姐姐的美颜

讲真,第一次听这个华裔的小姐姐说话的时候,李杰克还是被惊艳到了,她说话的感觉简直就是Ivanka大公主的翻版

一下没忍住,给小姐姐加了个美颜和滤镜…….

  • 《Stanford CS231N 2017》观看地址:http://t.cn/RTueAct

那个啥,我猜你肯定是点开了图,并且还放大了来看……

当然,有些童鞋可能会说,李杰克你推荐的都是些英语视频我的英语水平去看这些视频可能会有些吃力怎么办

这当然不是问题啦!别忘了李杰克可是做过产品经理的哇,怎么可能考虑不到这种需求呢?对于英语一脸懵逼,不要慌,李杰克仍然有不错的资源推荐给你——李宏毅老师的《机器学习》和《深度学习》

 

  • 《李宏毅机器学习2017》观看地址:http://t.cn/RpO3VJC
  • 《李宏毅深度学习2017》观看地址:http://t.cn/RpO3VJK

如果你英语能力还能支撑你看英文视频的话,李杰克当然建议你优先看推荐的英文资源!

有童鞋也许会问,李杰克你给我们推荐的都是视频,有没有什么书要推荐哇?

讲真,网上推荐的那些大家都认为是经典的书李杰克基本都买了纸质版,但其实并没有看掉多少。李杰克还是跟大家说一下自己或多或少读过的一些书,毕竟也都是些被别人列为经典的书,仅供参考。

首先要说的是周志华《机器学习》,江湖人称西瓜书,因为它的封面是个大西瓜…..周志华算是国内机器学习的权威了,李杰克粗粗看了一两个章节后就果断弃坑,选择了Ng的视频来学习入门,因为我感觉自己看这部书效率并没有看Ng的《Machine Learning》高。

李杰克还看过Peter Harrington《机器学习实战》,其核心是教你用python来实现机器学习中的算法,我看了一半多一些的时候也弃坑了,一方面是自己渐渐明确自己的兴趣所在是深度学习,另一方面是我接触到了Tensorflow等深度学习框架,啦啦啦……从此可以开心地当一个调包侠了!

李杰克目前还在看的是Ian Goodfellow等一票人合著的Deep Learning,Ian Goodfellow就是那个搞出了对抗式生成网络(类似于左右手互搏术的东西)的家伙,大概率李杰克不会弃坑,毕竟这也是本被称之为深度学习圣经的书。

我的建议是入门阶段可以不用购买书籍,除非你跟我一样颈椎不大好需要买个七八本书来垫垫电脑……

说正经的,不用买书是因为我把这些被大家被奉为机器学习经典的书籍(PDF版,包含上述三本)都打包放在了云盘里,大家直接去下载就好了

毕竟大家出门在外养家糊口都不容易,能省一点算一点了,而且万一你的颈椎比较争气一直都还比较好那你买的书不就一直派不上用场了么对不对

最后,无比贴心的李杰克还给大家准备了两个可以辅助大家学习和理解deep learning的工具。对你来说绝对是有用还好玩的东东,一般人我还不告诉他的呢(傲娇脸)!

一个是TensorFlow出的网页工具playground,其实就是游乐场,我们可以去玩一玩,相信对大家学习深度学习一定会有些帮助的。

playground提供了几种简单类型的data,你可以去调节网络结构、学习率、激活函数、正则项等参数,你可以非常直观地看到每个神经元和相关输出的变化,体会到简化的深度学习模型调参的过程

下面这个其实是张动图,来,用心感受下……

 

  • tensorflow playground使用网址:http://t.cn/RqJTH47

另一个工具是ConvNetJS,它把一些经典数据集(如MnistCifar-10)每层网络的输出可视化出来,对你去理解不同网络做了什么事情有大大的帮助滴!

 

  • ConvNetJS使用网址:http://t.cn/8kFEqvU

工具介绍完了,那李杰克的问题也来了:

请各位童鞋摸胸自问,李杰克推荐的工具有没有超级贴心

5、深度学习框架基础

我的天啦,你居然还在看?旁友,你不用工作的么?你们公司还差不差人啊,会打dota玩农药的那种?

不开玩笑,讲真,我知道你一路看起来不容易,毕竟李杰克也是花了两个礼拜工作之余的时间写的,还是水分比较少容易消化不良的那种…..

所以,努力的你晚上一定要去吃顿好的犒劳下自己才对得起自己嘛!

什么?你晚饭吃过了?

晚饭吃过了还可以再吃顿宵夜嘛,反正不吃你也是瘦不下去的对不对。

我们再次回到正题哈童鞋们(严肃脸),现在来说说机器学习框架的事情,同样的,这里我们专指深度学习框架。讲真,我写得有点累了,就放张cs231课程里的图吧,大家自己看看这些框架与大学和企业的关系。

不同框架间的比较见下图,李杰克暂时也不打算展开说:

 

李杰克尝试过TensorflowMxnetKeras三种框架,以使用Tensorflow为主,其他框架暂时没怎么接触。

今天重点要跟大家说的Tensorflow这个框架,Tensorflow背靠Google大树,是目前最火的框架,如果你想做一名AI工程师,那学Tensorflow一定是最好的选择,类似于一招鲜吃天下的意思。

如果你是产品经理,并不想花太多时间在框架上,但又想自己去实现一个神经网络模型的话,那李杰克建议去学习Keras

Keras基于Tensorflow又进行一层封装,当然也有基于Theano版本的,因为高度封装,使用起来异常简单,简单到什么程度呢?

你只需要十来行代码就能搞出来一个简单神经网络模型,但与此对应的是灵活度并不高,但对于产品经理一类的童鞋来说已经妥妥地够用了,再贴一下我之前写过的一个模型代码给大家看看有多简单:

 

关于框架的学习,李杰克同样有一些不错的视频资源推荐给大家,大家可以通过看视频入门,但之后实践过程中碰到问题更多的是需要去查看文档去解决问题哈。

对于Tensorflow,推荐大家看的第一个资源是视频不用博士学位玩转Tensorflow深度学习

这个视频应该是Google云大会上的一个演讲,全程约两个小时,估计下面也坐了很多小白,所以讲得还是蛮容易接受的。

视屏中的小哥基本上是全程手把手地带你用Tensorflow分别搭建一个CNN模型(卷积神经网络)和RNN模型(递归神经网络),基本上看完你也算是有点入门了。

 

  • 《不用博士学位玩转Tensorflow深度学习》观看地址:http://t.cn/RTuemTK

另外,我的云盘里还有一份《三天速成Tensorflow PPT-香港科技大学》的PPT,讲得也是非常简明易懂,估计你花费大半天时间就可以过完了,也是一份非常好的入门资料,大家可以自行去下载学习。

 

  • 《三天速成Tensorflow PPT-香港科技大学》下载地址:详见文末

网上还有一个叫莫烦的童鞋做的《Tensorflow教程》视频教程不错,每集长度也就几分钟,但相关基本深度学习的知识和Tensorflow实现都讲到了,可以说是非常棒,用来入门是妥妥的不错的!

  • 莫烦《Tensorflow教程》观看地址:http://t.cn/RTuDxFT

最后一个很棒的资源是《 Deep Learning With Tensorflow》,其实里面Tensorflow的介绍得并不多,更多的是用简明的方式把Deep Learning里重要的知识都给你过了一遍,全长也就一个小时左右,用你可能玩不了一局吃鸡的时间去再次巩固下知识还是不错的呢!

 

  • 《 Deep Learning With Tensorflow》观看地址:http://t.cn/RTuDcjC

至于keras,它比较简单啦,产品经理童鞋可以学完深度学习基本知识后,直接上手下面这个视频,给大家推荐的是莫烦童鞋《Keras快速搭建神经网络》,教程视频约两个小时,一部电影的时间就可以把它消灭掉,有没有很开心!

  • 《 Keras快速搭建神经网络》观看地址:http://t.cn/RTuDLKD

一路下来,python我们提到了,数学算法也说到了,深度学习框架我们也说到了,李杰克你TM该结束这篇文章了吧?

各位童鞋稍安勿躁,真的是最后一点点东西了,我不骗你的……因为我也快把自己写得快崩溃了…..

我们都知道深度学习可能会用到比较大的数据,而CPU是很难带动大数据的训练的,GPU这个大杀器就不一样了,它会让训练的速度提升很多,所以,我们往往愿意选择GPU来训练模型

但是,我们小白哪来的GPU啊?

当然我们可以去买,但性能还不错的GPU的价格可是一点都不比我们用的笔记本便宜哟……

但你也不要慌,作为前产品经理的李杰克显然也考虑到了这一点,且听我告诉你解决方案

世界上有一种神奇的服务叫……不好意思,不是你所想的大宝剑……而是云服务。

我们不想买GPU,但我们可以去租人家的的GPU来用嘛,其中Amazon 的AWS是个不错的选择

我们需要训练的时候去临时租用它就好了,使用期间一个入门级GPU竞价实例也就是0.2刀每小时,这个性价比自然是棒棒哒!不过最近竞价示例似乎有时候会连不上,这时可以考虑用普通GPU实例,不过价格就需要0.9刀每小时了。

具体怎么使用AWS李杰克不展开讲了,提供一篇说的还算详细的攻略文章《在AWS上配置深度学习主机》给各位童鞋参考,以备大家不时之需。

  • 《在AWS上配置深度学习主机》阅读地址:http://t.cn/RxdOFOb

尾声

我的天呐,终于写完了啦

讲真,李杰克以前属于那种学习知识过后很少会再把知识写出来的人,因为从功利的角度来说,去重复已经掌握的东西对自己并没有太大帮助

同时,李杰克也是一个有点处女座性格的人,总是希望能够呈现给大家尽可能有价值有意思的东西,所以经常觉得自己没写好,然后重新写,写的过程也会比较纠结和费时

但是,李杰克还是愿意把这件事情坚持下去,因为李杰克觉得为大家写东西是有意义的,跟大家交流探讨是有意思的,与大家一起共同进步是开心的

如果这篇文章能够对大家有那么一些些帮助,李杰克会觉得很有成就感!毕竟我也是耗费了不少心血和时间的东西也有了些反馈,你敢信,我给部分文字标粗标色就花了一个多小时(生无所恋脸)…..希望大家多多支持!

 

引导关注图片

分享 :