人工智能

【机器学习】人人都可以做深度学习应用:入门篇(上)

一、人工智能和新科技革命

2017年围棋界发生了一件比较重要事,Master(Alphago)以60连胜横扫天下,击败各路世界冠军,人工智能以气势如虹的姿态出现在我们人类的面前。围棋曾经一度被称为“人类智慧的堡垒”,如今,这座堡垒也随之成为过去。从2016年三月份AlphaGo击败李世石开始,AI全面进入我们大众的视野,对于它的讨论变得更为火热起来,整个业界普遍认为,它很可能带来下一次科技革命,并且,在未来可预见的10多年里,深刻得改变我们的生活。…

神经网络入门

眼下最热门的技术,绝对是人工智能。

人工智能的底层模型是“神经网络”(neural network)。许多复杂的应用(比如模式识别、自动控制)和高级模型(比如深度学习)都基于它。学习人工智能,一定是从它开始。

什么是神经网络呢?网上似乎缺乏通俗的解释。

前两天,我读到 Michael Nielsen 的开源教材《神经网络与深度学习》(Neural Networks and Deep Learning),意外发现里面的解释非常好懂。下面,我就按照这本书,介绍什么是神经网络。

这里我要感谢优达学城的赞助,本文结尾有他们的《前端开发(进阶)》课程的消息,欢迎关注。

一、感知器

历史上,科学家一直希望模拟人的大脑,造出可以思考的机器。人为什么能够思考?科学家发现,原因在于人体的神经网络。

  1. 外部刺激通过神经末梢,转化为电信号,转导到神经细胞(又叫神经元)。
  2. 无数神经元构成神经中枢。
  3. 神经中枢综合各种信号,做出判断。
  4. 人体根据神经中枢的指令,对外部刺激做出反应。

既然思考的基础是神经元,如果能够”人造神经元”(artificial neuron),就能组成人工神经网络,模拟思考。上个世纪六十年代,提出了最早的”人造神经元”模型,叫做“感知器”(perceptron),直到今天还在用。

上图的圆圈就代表一个感知器。它接受多个输入(x1,x2,x3…),产生一个输出(output),好比神经末梢感受各种外部环境的变化,最后产生电信号。

为了简化模型,我们约定每种输入只有两种可能:1 或 0。如果所有输入都是1,表示各种条件都成立,输出就是1;如果所有输入都是0,表示条件都不成立,输出就是0。

二、感知器的例子

从学习 Paddle 开始学习深度学习(一)

深度学习的黄金时代已经到来

开场白

首先给Baidu打一波广告。Paddle深度学习平台,你值得学习。

它的优点

  • 灵活性:PaddlePaddle支持广泛的神经网络结构和优化算法,很容易配置复杂的模型,如基于注意力(Attention)机制或复杂的内存(Memory)连接的神经机器翻译模型。(Attention和Memory参考阅读: 深度学习和自然语言处理中的attention和memory机制 、 深度学习:推动NLP领域发展的新引擎 )
  • 高效:在PaddlePaddle的不同层面进行优化,以发挥异构计算资源的效率,包括计算、内存、架构和通信等。例如:
    • 通过SSE/AVX内部函数,BLAS库(例如MKL,ATLAS,CUBLAS)或定制CPU/GPU内核优化的数学运算。
    • 高度优化循环网络,以处理可变长度序列,无需填充(Padding)。
    • 优化高维稀疏数据模型的本地和分布式训练。
  • 可扩展性:PaddlePaddle很容易使用多个CPU/GPU和机器来加快你的训练,通过优化通信实现高吞吐量、高性能。
  • 连接产品:PaddlePaddle易于部署。在百度,PaddlePaddle已经被部署到广大用户使用的产品或服务,包括广告点击率(CTR)的预测,大型图像分类,光学字符识别(OCR),搜索排名,计算机病毒检测,推荐等。

来自网络


初识

先做一个形象的比喻,Paddle就好比一台3D打印机,我们设计的神经网络就好比需要打印的模型,而我们的数据集就相当于原材料,把两者同时提供给这台打印机,经过一段时间就可以得到我们预期的产品–模型(Trained Model).

简言之,paddle 做的工作就是利用我们设计的模型和我们提供的数据 通过高性能的并行技术(CPU/GPU)来完成训练。

所以,我们在使用 Paddle 做深度学习时最基本的工作就是设计一个完美的模型并准备好数据。也就是要有以下几个文件:

  • trainer_config.py : 配置神经网络模型
  • data_provider.py : 数据提供
  • train.sh : 配置paddle训练的参数

安装

paddle提供了三种安装方式:

  • Docker 安装,非常便捷,但必须在Docker环境下部署。
  • deb 安装,

百度开源深度学习框架PaddlePaddle安装配置

一、环境配置

PC机一台+UBUNTU 16.04系统

二、过程

1、使用Docker安装PaddlePaddle

1)在Ubuntu 上安装 Docker: 参考 http://blog.p2hp.com/archives/4809

2)安装完后在命令行键入sudo service docker start和sudo docker run hello-world,验证Docker正确安装;

3)在命令行键入     sudo docker run -it paddlepaddle/paddle:0.10.0rc3-noavx /bin/bash开始下载安装Paddle docker,由于网络环境不同,下载速度会有所差异,等待Paddle docker的下载和安装

4)安装完成后,你会发现命令行发生变化了,变成了root@e1f3456e7992:/#,OK,安装成功

2、运行一个PaddlePaddle的Demo

我们以quick_start为例,

1)首先,从github上将paddle项目拉取到本地,或者从github上直接下载项目的zip压缩包:点我进入PaddlePaddle github项目

2) 进入/home/yangyanbin/下载/Paddle-develop/v1_api_demo/quick_start/data

3)在命令行键入 bash ./get_data.sh 下载实验数据

4)启动paddle的docker镜像

在命令行键入 …

探寻人工智能 —— 破解灵魂的奥秘(强烈推荐)

# 这篇文是我2015年写的那篇文章的升级版,如果你已经读过那一篇,还是建议读一下这篇喔 #

我们可以想象一下,如果机器能够像人类一样思考,将是多么可怕的一件事?

首先,细胞的工作速度远远没有芯片快,因此计算机的思考速度会是人类的千万、甚至上亿倍。这样的系统可以在几秒钟内读完整个图书馆中的书,可以在几小时内读完世界上所有的科学著作和学术论文。在解决一个实际问题时,它在一秒钟内想到的解决方案,你可能要花一年。例如在哈佛大学的实验室里,科学家让一个拥有四条腿的机器人自己去学习如何奔跑 —— 从站起来,到会走路,最后到奔跑。机器的方法很简单:将四条腿所能够组成的运动方式全部尝试一遍。仅仅过了几个小时,它就学会了奔跑。其次,它的脑容量远远超过人类。人类大脑中所能够存储的东西是有限的,所以大脑必须进行仔细的筛选。在人的一生中,我们忘掉的东西远远多于我们记住的东西。很显然,机器人没有这个烦恼,它可以同时是数学家、物理学家、语言专家、博物学家、哲学家、生物学家等等。…