给高中生看的机器学习教程即FastBook读书笔记1.介绍

编程入门 行业动态 更新时间:2024-10-23 23:22:49

给高中生看的机器学习教程即FastBook<a href=https://www.elefans.com/category/jswz/34/1768764.html style=读书笔记1.介绍"/>

给高中生看的机器学习教程即FastBook读书笔记1.介绍

        偶然在Github发现一本学习机器学习不错的书,准确来说是个项目fastbook,做直播读书时有同学问起能不能读些机器学习AI相关的书,由于时间关系目前就先写下读书笔记,也算给粉丝交作业了.

        言归正转,人家的项目命名叫fastbook,我为什么说它是"给高中生看的机器学习教程呢"?印象中做机器学习的都是高等院校出身,高的少的都很少见,一般都是什么什么博士,什么什么硕士的,一个重点学校的本科在这个群体里都觉得"出身低微"了.高中生能做机器学习?你该不是标题党赚点击量的吧?

       我取这个名字还真是有根据的,还真不是我瞎诌.在fastbook的第一章作者就说了:

"Deep Learning Is for Everyone"

       翻译过来就是每个人都可以搞机器学习(深度学习).是的,每个人.我还加了个高中生呢.怕你不信,作者还列了个表:

误解真相
搞(学习)机器学习需要很多数学知识学完高中的数学课就可以了
搞(学习)机器学习需要很多数据我们见过使用不到50条数据的
搞(学习)机器学习需要很贵的电脑你甚至可以免费使用这些机器

     相同的话不同的人说出来可信度是不一样地,这作者如果是机器学习的资深大神那他这样说可信度还是有的吧,联合作者中有位Jeremy,据说有30年的机器学习教学和使用经验.是不是大神咱也不认识啊,现在专家比沙尘暴多,咱也不敢信啊.那就读几章看看能不能看懂吧,接下来说说我的亲身体验:抱着试一试的心态我就读了俩章,跟着教程配置运行了几个模型,还真跑起来了.课程中介绍的一些概念也能看的懂.大家知道高考后该还给老师的都还给老师了.况且这么多年过去了没还的也忘干净了.既然我用后有效果,你们也可以试一试.不,是能看懂,你们也不妨读下看,反正是免费的.

      还得说下我是有编程经验的,所以我选择了使用自己的电脑搭建训练模型,没有使用书中推荐的免费云资源,主要是咱也没有信用卡.如果没有编程经验最好先同步学习点Python.

      还有必要介绍下我们的老搭档,2016年款身价4k配有8G内存,2G显存Nvidia显卡一枚的游戏笔记本一台.是不是比你们的游戏本价格低多了?我不玩大型游戏也不知道这配置打游戏爽不爽,但用来编程那是相当流畅.是的,多少人以学习的名义买了高配的电脑玩起了游戏,我却发现它更适合编程.

     书免费的,电脑使用的现有的,没有额外花费.

      这么好的东西,谁不想试一试呢?那就开始吧:

      1.安装Python3 pip

      2.安装Jupyter 

pip install jupyterlab

      3.下载clone fastbook项目:

      git clone .git

     4.启动jupyter netbook

      cd fastbook

      jupyter-lab

     5.开启你的机器学习之旅

     上面一顿操作如果没有问题,执行juypyter-lab后就会打开浏览器:

                  

  双击第一章对应文件01_intro.ipynb就可以开启你的学习之旅了.

 既然要开始阅读了,有必要看下阅读注意事项:

1.本套教程使用Juputer编写,在阅读的同时还能边执行嵌入的示例代码。还可以修改示例代码运行看下效果,学编程就是要多折腾,别怕整坏了,整坏了大不了重新下载一份就可以了(建议使用git)。就像在Rust课程中总说的编程是需要动手的艺术,要多动手。

运行代码可以把光标放到代码格Cell里然后点击菜单Run(运行)-->Run Selected Cells(运行选中代码格) 就可以了。还有很多快捷的操作等着你去发现.

2.在阅读时如果遇到暂时不懂得概念或者运行不了的代码也可以先跳过看后面的内容,一般后面会有更详细的解释和帮助信息。

比如我在运行第一章的示例代码时就遇到了GPU内存不够的问题。费了好大劲才找到可以通过调整训练模型的批次大小降低一次使用的显存大小(具体解决方法可以参考这里).后来发现解决方法已经藏在了第5章:

小样藏的还挺深。对于一些需要了解的数学知识,书中也会给出参考链接。比如微积分的,别被名字吓到,从名字看像是微信积分,我都不记得读书时这个是怎么学的学的什么了,反正现在跟着推荐的可汗学院的课程学习,感觉还是挺so easy的.

3.课程还有配套的讲解视频,也是有作者录制的,可以访问fast.ai观看。

4.不要把教程转换为PDF等易于传播阅读的格式,如果有需要可以购买纸质图书。

这个也可以理解,作者这么辛苦的编写了完整的教程,又是讲解又是代码的,还都是开源免费的,我们也识趣点如果有需要就购买纸质书支持下作者.

5.可以写笔记,作者也鼓励我们写笔记.

说了这么多,深度学习到底是个啥呢?

这个可以从1943年讲起,也就是我们大批河南人背井离乡出外逃荒(电影1942)的第二年,俩个外国佬,Warren McCulloch和Walter Pitts,据说一个是芝加哥大学教授神经生理学专家一个是高中没毕业的数学家,组队打怪,一不小心打出了个人工神经元的数学模型。就是以数学的方式模拟人脑中的神经元是怎么工作的。从此开辟了一个新的学科——计算神经科学.他们的研究成果影响了一个生物学家Rosenblatt,Rosenblatt一看数学的神经元有了,是不是就可以基于此创建一个类似大脑可以自己学习的机器.这个机器的名字就叫初代感知机。他在一本书中这样写到:

“我们现在即将见证这样一台机器的诞生——一台能够感知、识别和识别周围环境的机器,而无需任何人类的训练或控制。”

后来Resenblatt的高中学弟,麻省理工大学教授 Marvin Minsky在学术著作中写到:

"这种基于单层神经元的感知机可能不能学习到一些简单但关键的数据函数,但是如果使用多层神经元也许可以."

遗憾的是人们都注意到前半句而忽略了后半句,计算神经科学从此暗淡,很多科学家开始转向研究其它领域。唉!我们总是喜欢断章取义,也因此走了不少弯路。

直到1980s左右随着计算机科学的发展基于多层神经元的模型被广泛用于图像识别,语言识别,人类自然语言处理等多个领域,并展示了良好的准确性和可用性,计算神经科学才又被簇拥到聚光灯下。不过今天我们习惯称这种有很多层的神经模型为深度神经网络。使用这种模型进行机器学习就叫深度学习喽.

使用深度神经网络真的可以像人脑一样学习吗?说的再好都不如伸手摸一摸。接下来我们就训练一个基于深度神经网络的模型,让它可以识别图片中是不是猫。训练其实就是让模型学习的过程。为了训练模型我们得先准备一些教材。比如一些猫的图片和一些其它动物的图片。拿着这些图片给模型看:看好了,这张是猫,这张不是猫。

去哪找图片呢?

fast.ai已经帮我们准备好了,只需要:

# 引入fastai 虽然不建议大家像这样使用*引入,以免引入过多不需要的资源,但fastai内部有特殊处理可以放心大胆的这样用。

from fastai.vision.all import *

#根据提供的Url下载包含图片的压缩包并解压,返回图片所在目录.
path = untar_data(URLs.PETS)/'images'

上面代码如果是第一次执行需要下载图片压缩包会慢一些,以后再执行就快了。

有了图片还需要知道图片具体是不是猫,这个可以使用图片文件名称判断,如果图片名称的第一个字母是大写的就是猫,反之就不是。逻辑很简单,写个is_cat函数实现判断:

def is_cat(x): return x[0].isupper()

接下来就可以加载图片并训练模型了,加载图片需要创建图片加载器ImageDataLoaders:

dls = ImageDataLoaders.from_name_func(
    path, get_image_files(path), valid_pct=0.2, seed=42,
    label_func=is_cat, item_tfms=Resize(224))

如果对创建图片加载器中用到的参数不理解没关系,后面会有说明,只需要知道我们把刚创建的图片路径地址path和刚编写的函数is_cat做为参数用于创建图片加载器了.

接下来就可以训练模型了:

learn = cnn_learner(dls, resnet34, metrics=error_rate)
learn.fine_tune(1)

偷偷的告诉你,不使用GPU也可以训练成功,就是慢一些。模型训练好就可以上传一张猫的图片或者狗的图片测试下。注意要使用猫的照片不要使用漫画手绘的猫 。

如果是猫,结果大概是这样:

Is this a cat?: True.
Probability it's a cat: 1.000000

好了,快自己动手试试吧。

 

     

更多推荐

给高中生看的机器学习教程即FastBook读书笔记1.介绍

本文发布于:2024-02-26 09:59:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1702108.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:读书笔记   机器   教程   高中生   FastBook

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!