赞
踩
相信是成功的必要条件(Trust is necessary for success)。相信自己能够克服学习上的困难,能够掌握人工智能方法及编程。
遇到相关的名词术语,方程,公式,代码看不懂。
首先查询维基百科、bing等高质量搜索引擎
代码感到困难做不出来
查询高质量搜索引擎,Stack Overflow,GitHub
当一件事件被解决,尝试另一种事件。
分类 -(围棋的搜索范围很大)-
1 图灵:图灵测试,概念上的图灵机,实现数学证明。
2 冯·诺依曼: 图灵机的实现。
3 从最简单的分类问题做起,异或无法通过线性模型,研究思路从函数编导到逻辑方式。 Changed AI research to Symbols and Logics
4 反向传播,给与正确的数据,不断的调整拟合,计算得到正确的参数 (1980-1990)
5 文字识别,神经网络发展缓慢(需要大量的计算数据,计算能力不足)。
6 在文字识别领域获巨大成功 Clasification Results(CNN + 深度神经网络)2015
7 围棋方面战胜人类, 基于深度学习的强化学习方法。AlphaGo 战胜围棋九段。 2016 (做决策,规划类)
8 人工智能随着国家战略在各行业的广泛应用 2019
这两种方法的优劣是什么,在整个学习的过程中需要反复思考。
比如如何让计算机生成像人一样的话,通过语句出现的概率进行选择,结合上下文选择出现概率最大的词语。
使用逻辑分析或者规则驱动的方法。示例:如何用计算机实现一段像人一样的话。
实现说明: 存在规则时句子不断向下替换,在规则中不存在时原样输出。
# 如何让计算机生成像人一样的话
from icecream import ic
import random
grammar_rule = """
复合句子 = 句子 连词 复合句子 | 句子
句子 = 主语s 谓语 宾语s
谓语 = 喜欢 | 讨厌 | 吃掉 | 玩 | 跑
主语s = 主语 和 主语 | 主语
宾语s = 宾语 和 宾语 | 主语
主语 = 冠词 定语 代号
宾语 = 冠词 定语 代号
代号 = 名词 | 代词
名词 = 苹果 | 鸭梨 | 西瓜 | 小狗 | 小猫 | 滑板 | 老张 | 老王
代词 = 你 | 我 | 他 | 他们 | 你们 | 我们 | 它
定语 = 漂亮的 | 今天的 | 不知名的 | 神秘的 | 奇奇怪怪的
冠词 = 一个 | 一只 | 这个 | 那个
连词 = 但是 | 而且 | 不过
"""
def parse_grammar(rule):
grammar = dict()
for line in rule.split('\n'):
if not line.strip(): continue
target, expand = line.split('=')
expands = expand.split('|')
grammar[target.strip()] = [e.strip() for e in expands]
return grammar
def gene(target, grammar):
if target not in grammar: return target
expand = random.choice(grammar[target])
return ''.join([gene(e, grammar) for e in expand.split()])
if __name__ == '__main__':
another_rule = """
expression = ( math ) op ( expression ) | math
math = num op num
num = sing_num num | sing_num
sing_num = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
op = + | - | * | / | ^ | ->
"""
for i in range(5):
ic(gene('expression', parse_grammar(another_rule)))
# 替换规则实现不同的输出
ic(gene('复合句子', parse_grammar(grammar_rule)))
这个问题人可以立刻反应:比如大巴在哪里,判断是猫还是狗。本能的智慧。图像分类。目前人工智能做的最好的。
人需要一步步思考的问题。比如围棋,路径规划等。
问题示例:均为无刻度杯子, 大杯子90ml,小杯子40ml,如何得到 70ml的水。
from icecream import ic
# 返回每一次倒水后的6种状态
def successors(x, y, X, Y):
return {
(0, y): '倒空x',
(x, 0): '倒空y',
(x + y - Y, Y) if x + y >= Y else (0, x + y): 'x倒入y中',
(X, x + y - X) if y + x >= X else (x + y, 0): 'y倒入x中',
(X, y): '装满x',
(x, Y): '装满y'
}
# 基于广度优先搜索实现
def search_solution(capacity1, capacity2, goal, start=(0, 0)):
# 所有结果路径的保存
paths = [ [('init', start)] ]
# (x,y)状态的集合,用于剪枝,状态重复则不继续搜索,避免死循环。
explored = set()
while paths:
path = paths.pop(0)
frontier = path[-1]
(x, y) = frontier[-1]
for state, action in successors(x, y, capacity1, capacity2).items():
# ic(frontier, state, action)
if state in explored: continue
new_path = path + [ (action, state) ]
# 找到结果
if goal in state:
return new_path
else:
paths.append(new_path)
explored.add(state)
return None
if __name__ == '__main__':
path = search_solution(90, 40, 70, (0, 0))
for p in path:
print('--=>')
print(p)
优化问题,给定边界条件(限制性条件),使目标达到最优
逻辑类, 比如 下雨天会地面湿润,那么地面没有湿问有没有下雨。是四者中做的最差的方面。
如何创建能够解决问题的AI方法与模型
如何使用这些AI模型,完成实际问题。
机器学习
机器学习指计算机通过观察环境,与环境进行交互,在吸取信息中学习、更新和进步。
简单的说,大多数机器学习可以分成训练和测试两个步骤,这两个步骤可以重叠进行。训练,一般需要训练数据,就是告诉机器前人的经验,比如什么是猫,什么是狗,看到什么该停车。训练学习的结果,可以认为是机器写的程序或者存储的数据,叫模型。总体上来说,训练包括有监督训练和无监督训练。有监督训练好比有老师告诉你答案,无监督训练仅靠观察自学,机器自己在数据里面找模式和特征。
深度学习
是机器学习的一种方法,它基于神经网络,适用于音频、视频、语言理解等多方面。深度学习是现今非常流行的一种机器学习方法。它由多层神经网络组成,浅层神经网络识别简单内容,深层神经网络得到高级语义信息,使用反向传播优化算法来更新权重参数,不断降低损失值,得到一个具有较好预测效果的模型。
根据上面的定义描述,我们不难得出结论:深度学习是机器学习的一种基于神经网络的分支,机器学习是人工智能的一种实现方法。
根据数据集有无标签,机器学习分为监督学习和无监督学习,那么他们之间有什么区别呢?
监督学习与无监督学习的区别
监督学习应用标记过的数据,输入规定范围内的数据,同时也规定了输出的范围。如果使用监督学习来训练人工智能,你要给它一个输入并告诉它预期的输出。有些类似大学期间学的高等数学中的函数。
如果机器输出的内容不在预期范围内,它会重新调整它的计算。这个过程是通过计算完成数据集才完成的,直到机器不再犯错。监督学习的一个例子是天气预报AI,它通过历史数据来学习预测天气,训练数据有输入(气压,湿度,风速)和相应的输出(温度)。
无监督学习是使用没有固定结构或者范围的数据集进行机器学习。如果使用无监督学习训练机器,就是让机器对数据按照一定的逻辑进行分类。无监督学习的一个例子是电商网站的行为预测,根据用户的行为来推荐用户可能会购买的商品。它会自己对输入数据创建分类,会告诉你哪种用户最有可能购买这款产品。
机器学习和统计学都是数据科学的一部分。机器学习中的学习一词表示算法依赖于一些数据,来优化权重参数。这包含了许多的技术,比如逻辑回归、支持向量机和集成学习。统计学是通过搜索、整理、分析、描述数据等手段,以达到推断对象的本质,甚至预测对象未来的一门综合性科学。统计学用到了大量的数学及其它学科的专业知识,其应用范围几乎覆盖了社会科学和自然科学的各个领域。
细说之,数据科学包括:
数据集成(data integration)
分布式架构(distributed architecture)
自动机器学习(automating machine learning)
数据可视化(data visualization)
数据工程(data engineering)
产品模式中的部署(deployment in production mode)
自动的、数据驱动的决策(automated, data-driven decisions)
我们将通过建立一个假想的车票估价服务来了解深度学习是如何工作的。我们将使用监督学习方法进行训练。 我们希望估价工具能够使用以下几个数据指标来预测车票价格:
始发车站
到达车站
发车日期
路线
首先,来看看人工智能的内部构造。和人类一样,深度学习也是有大脑内部的神经元的,通常用圆圈来表示。并且它们是互相连接在一起的。
这些神经元被分成三层:输入层、隐藏层和输出层。
输入层来接收数据。在之前的案例中,输入层有4个神经元:始发车站、到达车站、发车日期、路线,输入层把输入传递到隐藏层的第一层。
隐藏层对输入数据进行数学计算。建立神经网络的一个难题就是如何决定隐藏层的数量以及每一层的神经元个数。 深度学习中的“深”指的是神经网络有超过一层的隐藏层。
输出层返回输出数据。在前文的案例中,输出就是价格预测。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。