侃一侃人工智能2-零散的人工智能概念
声明:本人并未深入研究人工智能技术,也暂无此打算,主要谈自己的理解,以下内容仅供参考。
人工智能概述
人工智能现状如下图
从大到小的概念依次是:人工智能(AI)->机器学习->表征学习->深度学习
机器学习主要靠的是逻辑回归,表征学习靠的是自动编码,深度学习靠的是神经网络。
人工智能的发展阶段
符号阶段(人给机器规则)
给定一个简单的逻辑运算规则,机器自己可以计算出结果。这个规则就是“编程”。说白了就是人类找到了可编程的设备。最早的是图灵机。这个阶段智能只依赖于数学模型。
统计学习阶段(数学模型和数据结合)
是数学模型和数据的结合,人最初设定一个数学模型,机器通过学习一些过去的数据,反馈回来,改变自身的结构。常用的是一些无监督学习的数学模型,有:向量机、逻辑回归、决策树、贝叶斯网络等。典型的应用比如文档分类、股票的高频交易、医学的医理和药理实验的模拟等,总之可以为人类省去一大堆繁琐枯燥的工作,把最可能的解决方案挑选出来供人们选择。
连接阶段(直接模拟人的硬件)
直接模拟人神经元的聚合模式,设计一套神经网络来解决问题。但是由于神经网络的计算结果不会收敛到唯一的答案,因此最初人们根本不知道这个神经网络能干啥。近几年由于计算机硬件的发展,GPU编程兴起,神经网络火起来了。神经网络最突出的作用就是可以提取复杂事物的表征。以卷积神经网络为例,通过一个判别矩阵,计算出图片的指纹,通过对指纹的计算最后达到识别图片的目的。
深度学习的一些概念
神经元
一个个体,多个输入通过逻辑运算产生一个输出,不同的输入有不同的权重。学习的目的就是修改这个权重。
神经网络
每一层有多个神经元,不同层之间的神经元全排列,就组成了神经网络。
深度神经网络
层数大于2的神经网络,就可以称为深度神经网络。
卷积神经网络(CNN)
把图片分成小格子,用判别矩阵遍历这些小格,最终计算出图片的指纹。
循环神经网络(RNN)
将神经网络的中隐藏层的计算结果记录下来作为下一轮计算的一个输入。相当于给神经网络添加了记忆功能,增加了时间维度,这样神经网络就可以解决一些有历史依赖的问题,比如翻译。还可以大大减少神经网络的参数,减少了操作的复杂度。但是存在结果爆炸和梯度下降的问题。比如1.01的n次方趋近于无穷大,0.99的n次方趋近于0,有记忆的神经网络会放大这种效应,造成结果失效。解决梯度消失的问题大概就是选择性记忆一部分内容,常用的有长短记忆网络(LSTM)、门循环网络(GRU)。
生产判别式网络
包括Real Data,Detective、Generator,Input for Genterator.也就是一个真实数据,一个判别者,一个生成者,一个生成者的输入。生成者根据输入,输出一个内容,判别者对比输出的内容和真实的数据把结果反馈给生成者,这样,生成者生成的数据会更接近真实数据。这个在电子试衣镜什么的地方很有前景。
人工智能需要学习的知识
线性代数
微积分、凸优化、计算方法
概率论,线性回归
python
参考
http://colah.github.io/
http://cs231n.github.io/neural-networks-1/
https://arxiv.org/