大龄程序员的人工智能学习之路[2]

栏目: 数据库 · 发布时间: 4年前

内容简介:吴恩达的《Machine Learning》在线课程就不用我赘述了,有两个学习途径:

大龄 <a href='https://www.codercto.com'>程序员</a> 的人工智能学习之路[2]

题图:由 Sasin Tipchai Pixabay 上发布

吴恩达的《Machine Learning》在线课程就不用我赘述了,有两个学习途径:

  1. 上Coursera在线教学网站学习,优点是每个章节学习之后可以在线答题,可以提交答案检验是否正确,而且还可以做编程练习,编程练习提交到系统后,系统可以自动测试程序是否运行正确。缺点是需要科学上网,而且有些视频并没有中文字幕。

  2. 上网易云课堂学习,优点是速度快,全部视频都有中文字幕。缺点是没有在线习题,也没有编程练习。

在这两个地方学习,都是完全免费。我一直都在科学上网,英文字幕也勉强能看懂,所以我是上Coursera网站学习的。当然也可以在网易云课堂上看视频,到Coursera上做习题和编程练习。这门课程虽然叫机器学习,但其实重点讲的是回归和梯度递减算法,而没有像《机器学习实战》那本书那样涉及好多机器学习的算法。对于线性回归和逻辑回归以及梯度算法讲的非常透彻,辅助以代码实例,也容易懂。每个章节后面都有习题加深巩固。从第二周开始每周有编程练习。整个课程安排了十一周,这是考虑到学习时间有限的情况下,其实如果时间充裕,一天完成一周的学习都没问题。

这门课我认认真真学习了每个视频,完成了每个习题和编程练习。这门课让我开始对机器学习有些感觉,对于回归和梯度算法有了比较深入的理解。编程练习采用的是和matlab兼容的Octave语言,要是选择 python 语言就更完美了。当然Octave语言也比较简单,稍微学习一下就可以上手。

学完这门课程之后,我又马不停蹄的学习了他的另一门课程《Deep Learning》,准确的说是一个微专业,包含了五门课程:Neural Networks and Deep Learning、Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization、Structuring Machine Learning Projects、Convolutional Neural Networks、Sequence Models,每门课程安排了大约3到4周的学习时间,每个章节都给出了建议学习时间。如果是边工作边学习,就按照这个进度学习就很好。

这门微专业在网易云课堂上同样免费,在Coursera上也可以免费看,但如果要在线提交习题和编程练习,需要收费,折合人民币308元。考虑到在Coursera上可以在线做练习,308元的价格也不贵,我选择了付费,国内带VISA标志的信用卡可以付费,直接折算成人民币付款。

每节课成后面的习题,我都认真做了分析,并写在公众号里:

[神经网络与深度学习] Introduction to deep learning习题解析

[神经网络与深度学习] Neural Network Basics习题解析

[神经网络与深度学习] Shallow Neural Networks习题解析

[神经网络与深度学习] Key concepts on Deep Neural Networks习题解析

[改善深度神经网络] Practical aspects of deep learning习题解析

[改善深度神经网络] Optimization algorithms习题解析

[改善深度神经网络] Hyperparameter tuning, Programming Frameworks习题解

[卷积神经网络]课程:The basics of ConvNets习题解析

[卷积神经网络]课程:Deep convolutional models习题解析

[卷积神经网络]课程:Detection algorithms习题解析

[卷积神经网络]课程:Face recognition & Neural style transfer习题解析

[序列模型] Recurrent Neural Networks习题解析

[序列模型] Natural Language Processing & Word Embeddings习题解析

编程练习使用了Google的TensorFlow框架,考虑到Google在业界的影响力,我决定主要使用TensorFlow框架,为此还看了一本《TensorFlow实战》。

这本书谈不上经典,但比较实用,作为了解TensorFlow框架的基础书籍,还算可以,但这本书我并没有看完,只挑了我感兴趣的章节。

对深度学习以及TensorFlow框架有了一定的掌握之后,决定做一个小项目来练练手。一次看到微信上的 识花君 小程序后,决定做一款类似的小程序,拍照识狗,取名为 识狗君 。这实际上是一个图片分类问题。图片分类问题是深度学习最基础的应用,各种图片分类的示例代码满大街。但对于一个新手来说,照着代码一行行敲,运行出来不难,但对于一个新项目来说,还是有许多问题需要解决:

  1. 狗狗图片数据集哪里来?

  2. 选择哪种图片分类模型?如何再训练?是采用端侧推理还是在服务器端识别?

  3. 微信小程序如何开发?

  4. 模型如何部署?

  5. 微信小程序如何与服务端通信?

在这个开发过程中,我在公众号上分享了我对于项目的考虑,碰到的问题,研究的方法:

这个中秋,我开发了一个识别狗狗的app

一头栽进了tensorflow lite的巨坑里

当微信小程序遇上TensorFlow:Server端实现

当微信小程序遇上TensorFlow:Server端实现补充

当微信小程序遇上TensorFlow:小程序实现

当微信小程序遇上TensorFlow:接收base64编码图像数据

当微信小程序遇上TensorFlow:终章

识狗君微信小程序的部署

项目的所有源代码都放在github上:https://github.com/mogoweb/aidog

需要注意的是:TensorFlow框架一直在进化中,可能上面的代码在最新框架上并不能直接使用,我正在考虑将其移植到TensorFlow 2.0上。另外上述方法并非最优方法,只是我在当时能想到的最好方法。如果你有什么好的想法,欢迎交流。

当时看到报道,有AI写诗、AI作曲、AI作画,对GAN(生成 对抗 网络)产生了兴趣,还买了一本《GAN:实战生成对抗网络》。

在下一篇文章中,我将继续讲述我的大龄程序员的人工智能学习之路,敬请关注。

你还可以读:

大龄程序员的人工智能学习之路[1]


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java Web开发从初学到精通

Java Web开发从初学到精通

方振宇 / 电子工业 / 2010-6 / 69.00元

《Java Web开发从初学到精通》介绍如何整合Web框架进行J2EE开发,所有实例都基于MyEclipse IDE开发,引领读者快速进入基于JaVa web的J2EE应用领域。《Java Web开发从初学到精通》开始主要介绍Servlet、JSP、JavaBean、EL、JSTL、JDBC等Web开发基础知识,然后学习Struts、Hibernate、Spring、Ajax、JSF等开源框架,并......一起来看看 《Java Web开发从初学到精通》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码