如何从普通程序员向人工智能靠拢实践

计算机专业 2019-12-27 131 0

  如何从普通程序员向人工智能靠拢实践

  说说我学习深度学习的经历吧,从开始学习到现在大概有4个月,只能算新手,刚好可以回答新手问题。

  先说编程:自认会用C++, 熟悉Python

  英语水平:中等,能很快读懂英文科学文献

  最开始对人工智能/深度学习感兴趣是因为想用它试一试自然语言生成,后来想到一个物理方面的题目,预计可以用深度学习技术解决,开始接触深度神经网络。记录一下学习历程,

  1. 安装 Tensorflow(google 开源的深度学习程序), 尝试里面最简单的例子MNIST 获得激励。

  2. 之后尝试通过读书(看视频)理解最简单的全连接神经网络

  先搜索找到答案:为什么要Go Deep?

  (1)神经网络中输入层,隐藏层,输出层之间矩阵乘积的维度变化。

  (2)Weight, Bias 这些是什么,改变它们有什么结果。

  (3)激励函数是什么,有什么作用,有哪些常用的激励函数

  (4)误差如何向后传递,网络如何通过最小化误差函数更新,有哪些常用的优化方法

  以上这些在一本交互式电子书中可以找到答案:

  Neural networks and deep learning

  (5) 如何对权重正规化,L1, L2, BatchNormalization, (这些在以后真正应用的时候再看)

  Deep Learning chapter 7 for L1, L2 regulation.

  Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift (2024) original paper for BN

  why does batch normalization help? Quora

  Note for BN in Chinese

  Implementing Batch Normalization in Tensorflow from R2RT

  Layer normalization (2024) Replace Batch Normalization in RNN

  Why Does Unsupervised Pre-training Help Deep Learning?

  Summary and discussion on pre training

  3. 选择一种比较比较底层的神经网络开源库,tensorflow 或 theano,

  (1) 读官方文档 https://www.tensorflow.org/versions/r0.11/tutorials/index.html

  (2) 看周莫凡的网络教程 https://www.youtube.com/user/MorvanZhou

  (3) 重复敲代码,重复实现例子程序

  4. 开始理解各种不同神经网络架构所能处理的问题

  (1) CNN 图像识别,图像处理,语音处理

  (2) RNN,LSTM 自然语言理解与生成

  (3) 增强学习,玩游戏 :)

  5. 尝试各种开源的有意思的神经网络项目,新手可以从下面这个列表开始

  (1)Andrej Karpathy blog char-rnn, Deep Reinforcement Learning: Pong from Pixels

  (2) Neural Style In tensorflow.

  6. 如果能翻墙,注册 twitter, facebook 账号,follow 那些文章中经常出现的大牛的名字。他们每天提供很多新动向及最新技术,很多时候有很 Fancy的应用。试试从这个大牛follow的人开始follow

  https://twitter.com/karpathy

  当你对这些都很熟悉的时候,开始阅读艰深的文献:

  1. CNN 的原始文献

  2. RNN 和 LSTM 的原始文献

  3. Reinforcement Learning 的原始文献

  4. Google DeepMind 发表在 Nature 上的几篇经典

  最后推荐一个高级点的库: Keras Documentation

  虽然这个库还在发展阶段,里面仍有不少bug,但前途不可限量,可以很容易实现你之前读文章时候见到的那些复杂的构架。作为例子,这里有个教程:

  Deep learning book in ipython-notebook and Keras Many example code in Keras.

  这些学习历程中遇到的资料都记录在了我的个人note里,希望大家共勉:

  http://web-docs.gsi.de/~lpang/

  最后强调一个最最重要的事情:要有自己的想法,有将这种新技术用到自己项目中的强烈愿望,从开始就要Coding,不断尝试才能不断进步。

  (看了很多其他的回答,在这里想补充一段)

  说实话,作为一个其他行业(物理,工程,化学,医学,农业,卫星地图识别,网络安全领域,社会科学)的普通程序员,在本行业有比较深的理论和实验背景,能接触到海量数据(无论是传感器数据,互联网数据还是蒙特卡洛模拟数据),想做处一些创新性,交叉性的工作,这一轮人工智能的风绝对是要跟的。

  作为一个计算机专业的人,可能觉得机器学习,人工智能,深度学习已经炒的过热了。但是对于其他领域,可能大部分人还没有想到把最基本的机器学习算法如:PCA,SVM,k-means...运用到本行业积累的大数据上, 更不要说最近的深度学习。

  作为其他行业的普通程序员(除了数学与理论物理),我们不要指望从理论上彻底解决深度学习现存的问题。我们的优势不在这里,我们的优势是计算机专业的人所没有的专业知识,行业大数据。我们需要做的是把机器学习,深度神经网络当作工具,知道它们能做什么,如何去做。参考Andrew Ng 的机器学习笔记,

  Machine Learning - complete course notes

  举几个简单的例子:

  1. 使用深度学习中生成风格化图片的技术,制备具有特定功能的抗癌药物

  The cornucopia of meaningful leads: Applying deep adversarial autoencoders for new molecule development in oncology

  2. 使用反常探测,寻找网络攻击 Cyber-attacks prediction

  3. 对于国家来说,更加聪明的互联网关键词过滤

  4. 自动探测卫星地图上道路,建筑,车辆,河流。。。

  5. 环境科学中寻找雾霾与众多可能因素的非线性关联

  安利我们最近放到预印文本库的文章,

  我们用卷积神经网络来区分量子色动力学相变是crossover还是一阶相变。

  人工智能专业前景如何?http://www.99zihua.cn

  极其好。如果说计算机专业是上个时代的老大,那么人工智能专业就是下个时代的龙头。因为:

  1. 大数据、芯片计算能力、5G网络的发展使得AI人工智能得以高速发展。目前在自动驾驶、智能家居、工业制造等很多领域,人工智能都在快速突破。例如预计5-10年后,美国有50%的车辆将是无人驾驶。

  2. 真正的人工智能公司发展潜力很大, 人才更容易脱颖而出。如人工智能芯片公司“深鉴科技”,由四名清华高手仅仅创立2年后被收购,收购价3-4亿美元。当然,该专业的工资也很高,真正的人工智能岗位年薪百万比较容易。

  人工智能专业的要求高么?

  很高。该专业的前景有多好,对应的专业要求就有多高。 人工智能是计算机+数学建模的结合,该专业要求有极其好的数学逻辑能力,能把该专业真正学明白的估计没多少人。 例如给你1万张手机自拍人脸照片,让你通过编程,建立一个数学模型识别出照片中哪些人脸是高兴的表情。你需要把照片转化为计算机可处理数据,例如不同格式不同尺寸的图片如何统一处理;你需要搭建模型来判断数据有什么规律是表示高兴,例如计算嘴角的弧度、眉头的皱纹等等,同时要考虑不同年龄不同人种的脸部特点;模型要经过大量训练来优化,这会需要大量的计算机处理能力(例如几十台服务器),需要设计优秀的程序来保证训练过程尽量减少计算机的消耗以及减少计算时间(如并行计算)。

  因此,基本是绝对的数学学霸可以真正搞定该专业。


http://www.99zihua.cn/a/3839.html 如何从普通程序员向人工智能靠拢实践 计算机专业

联系方式

客服QQ: 1067845683
客服电话:

您的姓名 :
联系电话 :

如果您还不明白,欢迎关注右侧二维码了解更多。

扫一扫关注公众号

评论

标签列表

Processed in 0.612097 Second , 71 querys.