之前关注过一段时间,入神经网络、卷积神经网络和贝叶斯公式和隐马尔可夫模型。感觉和自己还是有一定距离,所以最终还是放下了。不过越来越发现机器学习无处,而且自己对机器学习一直擦拳磨掌跃跃欲试。
随着不断学习,觉得自己对神经网络有一定了解,拿出来和大家分享分享。
机器学习并不是什么新鲜事物,很早以前就曾经火过一段时间,只不过最近有新的理论支持可以突破一些计算机的限制。
随着 AlphaGo 基于此理论在围棋(之前人工智能是无法触及领域)上,完胜了世界冠军李世石。 机器学习叫做人工只能以新的名词神经网络再次吸引我们注意。
今天来分享一下我对机器学习认识,我们先看看生物吧,生物的特征是由基因决定的,可以将基因抽象一个有一定规则的数字,这串有序的数字是有一定意义,每一个单独的个体都是有唯一编码,也就是他的 id。我们是通过这串数值在生物外形或是说外在特征的表现来读取这串数值。
识图、语音识别以及自然语义处理是当下神经网络主要应用的领域。我们怎么识别出我们看到的事物呢,假设我们看到的都是一张一张连续照片,这是因为我们的大脑计算也需要一定时间。
现在我们做应用也可以是系统,根据输入给出输出,具体如何根据生么样输入给出什么样输出,是开发人员根据设计来实现的来满足用户需求。也就是我们提供一个模型来处理输入给出输出。
而机器学习就是要做的就是这件事,根据输入的数据通常获得一条曲线作为结果(这条曲线也就是函数一个算法)根据这条曲线我们可以进行预判和做出判断。所以我们很容易将图片抽象
对这些理论学习框架有很多,不同语言都有自己框架来帮助开发人员快速搭建出神经网络的学习框架,不过其中比较流行的就当数是 google 给出 TensorFlow 了,TensorFlow 对 python,c以及 c++ 都会支持,但是其中对 python 支持更全面,所以今天我们就开始基于 TensorFlow 学习机器学习。
当然神经网络背后有许多概念和知识需要我们学习和复习,为什么说是复习呢,因为在学习过程中我们会用到大学的线性代数和导数的知识。
Tensorflow 安装
安装 Tensorflow 相对比较繁琐,我们可以找一条快捷方式来安装 TensorFlow 也就是先安装 Docker 然后安装 TensorFlow 的镜像来运行 TensorFlow 的环境这样会省不少事。所以先安装 Docker
然后获取 tensorflow 镜像
docker pull tensorflow/tensorflow:1.4.0
下载 tensorflow 镜像后,我们就可以运行下面命令来运行来学习 TensorFlow 了,随后会介绍一步一步地安装 TensorFlow。
sudo docker run -it -p 8888:8888 tensorflow/tensorflow:1.4.0
写出我们第一行代码,这些都是什么,具体做了什么,随后会详细进行介绍。
from __future__ import print_function
import tensorflow as tf
with tf.Session():
a = tf.constant([1.0,2.0],name="a")
b = tf.constant([1.0,2.0],name="b")
output = tf.add(a,b)
result = output.eval()
print("result:",result)
首先我们来看 Tensorflow 这个词是由 Tensor 和 flow 组成的,那么 Tensor 是向量的意思,而 flow 是流动,那么 TensorFlow 顾名思义就是向量流动结构,我们需要定义好结构,框架就会训练出我们想要函数。
- a 作为向量的常量作为输入(这里应该叫做依赖,在 TensorFlow 连接节点表示依赖,而节点是计算单元),b 同理
- add 根据
从上面的代码 Session 就是一次对话,TensorFlow 为什么快呢也就是 Session 会被转为 c++ 代码来执行,然后创建
随便谈下让人振奋的 google 广告,看了之后就想让你投入到学习其中,来通过代码改变世界。
下一次我们会介绍神经网络的构成以及如何通过神经网络来识别图形的。